summary refs log tree commit diff
path: root/emacs.d/custom/fcuny-navigation.el
blob: f51e99c10878de15188fd67d4aa8c6553ca90976 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
(require 'fcuny-vars)

(use-package ace-window
  :ensure t
  :pretty-hydra
  ((:title "Window Management"
    :foreign-keys warn :quit-key "q")
   ("Actions"
    (("TAB" other-window "switch")
     ("x" ace-delete-window "delete" :exit t)
     ("m" ace-delete-other-windows "maximize" :exit t)
     ("s" ace-swap-window "swap" :exit t)
     ("a" ace-select-window "select" :exit t)
     ("f" toggle-frame-fullscreen "fullscreen" :exit t))
    "Resize"
    (("h" shrink-window-horizontally "←")
     ("j" enlarge-window "↓")
     ("k" shrink-window "↑")
     ("l" enlarge-window-horizontally "→")
     ("n" balance-windows "balance"))
    "Split"
    (("b" split-window-right "horizontally")
     ("v" split-window-below "vertically"))
    "Zoom"
    (("+" text-scale-increase "in")
     ("-" text-scale-decrease "out")
     ("0" (text-scale-increase 0) "reset"))))
  :bind (([remap other-window] . ace-window)
         ("C-c w" . ace-window-hydra/body))
  :custom-face
  (aw-leading-char-face ((t (:inherit font-lock-keyword-face :bold t :height 3.0))))
  (aw-mode-line-face ((t (:inherit mode-line-emphasis :bold t))))
  :hook (emacs-startup . ace-window-display-mode)
  :config
  ;; Bind hydra to dispatch list
  (add-to-list 'aw-dispatch-alist '(?w ace-window-hydra/body) t))

(use-package bookmark
  :custom
  (bookmark-default-file (expand-file-name "bookmarks" fcuny/path-emacs-var))
  (bookmark-save-flag 1))

(use-package ls-lisp
  :ensure nil
  :custom
  (ls-lisp-use-insert-directory-program nil)
  (ls-lisp-dirs-first t))

(use-package dired
  :defer t
  :bind (("C-x C-d" . dired)
         ("C-x C-j" . dired-jump))
  :init
  (setq-default dired-dwim-target t)
  (setq-default dired-listing-switches "-alh")
  (setq dired-recursive-deletes 'always)
  (setq dired-recursive-copies 'always))

(use-package dired-x
  :ensure nil
  :config
  (progn
    (setq dired-omit-verbose nil)
    ;; hide backup, autosave, *.*~ files
    ;; omit mode can be toggled using `C-x M-o' in dired buffer.
    (add-hook 'dired-mode-hook #'dired-omit-mode)
    (setq dired-omit-files
          (concat dired-omit-files "\\|^.DS_Store$\\|^.localized$\\|^.projectile$\\|^.git$"))))

(use-package ibuffer
  :bind ("C-x C-b" . ibuffer)
  :custom
  (ibuffer-saved-filter-groups
   (quote (("default"
            ("org"    (mode . org-mode))
            ("go"     (mode . go-mode))
            ("python" (mode . python-mode))
            ("config" (or
                       (name . "\\.conf$")
                       (name . "\\.json$")
                       (mode . yaml-mode)))
            ("puppet" (or
                       (mode . "\\.erb$")
                       (mode . puppet-mode)))
            ("scripts" (mode . sh-mode))
            ("documentation" (or
                              (mode . markdown-mode)
                              (mode . rst-mode)))
            ("dired"  (mode . dired-mode))
            ("Emacs"  (or
                       (mode . emacs-lisp-mode)
                       (name . "^\\*scratch\\*$")
                       (name . "^\\.emacs")
                       (name . "^\\*Messages\\*$")))))))
  :init
  (add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default"))))

(use-package recentf
  :init (recentf-mode 1)
  :config
  (add-to-list 'recentf-exclude "\\.emacs.d")
  (add-to-list 'recentf-exclude ".+tmp......\\.org")
  (setq recentf-max-saved-items 500
        recentf-save-file (expand-file-name "var/recentf" user-emacs-directory)))

(use-package rg
  :ensure t
  :custom
  (rg-group-result t)
  (rg-show-columns t)
  (rg-align-position-numbers t)
  (rg-align-line-number-field-length 3)
  (rg-align-column-number-field-length 3)
  (rg-align-line-column-separator "#")
  (rg-align-position-content-separator "|"))

(provide 'fcuny-navigation)