init-kbd.el (10142B)
1 ;;; init-kbd.el --- keybindings -*- lexical-binding: t -*- 2 3 ;;; Commentary: 4 5 ;;; Code: 6 7 ;; god-mode 8 (general-def god-local-mode-map 9 "i" #'god-mode-all 10 "[" #'backward-paragraph 11 "]" #'forward-paragraph 12 "." #'repeat 13 "y" #'yank 14 "C-c C-<f12>" #'my-scratch-buffer 15 "z" #'avy-goto-char 16 "'" #'avy-goto-word-1 17 "<f2>" #'open-init-file) 18 19 ;; g for gptel 20 (general-def 21 :prefix "C-c g" 22 "g" #'gptel 23 "m" #'gptel-menu 24 "s" #'gptel-send 25 "a" #'gptel-agent 26 "t" #'gptel-tools 27 "p" #'pi-coding-agent) 28 29 (general-def gptel-mode-map 30 "C-c C-s" #'my-gptel-save-session 31 "C-c C-k" #'gptel-abort) 32 33 ;; pi 34 (general-def (pi-coding-agent-input-mode-map 35 pi-coding-agent-chat-mode-map) 36 "C-c C-q" #'pi-coding-agent-quit 37 "C-c TAB" #'pi-coding-agent-open-input 38 "C-c C-t" #'pi-coding-agent-tree-browser) 39 40 ;; elfeed 41 (general-def elfeed-search-mode-map 42 "v" #'my-elfeed-search-preview-other-window 43 "TAB" #'my-elfeed-search-preview-other-window) 44 45 ;; u for ui 46 (general-def 47 :prefix "C-c u" 48 "l" #'global-tab-line-mode 49 "d" #'disable-theme 50 "R" #'rainbow-mode 51 "i" #'indent-bars-mode 52 "t" #'consult-theme 53 "c" #'consult-colors-emacs 54 "f" #'describe-face 55 "r" #'rainbow-delimiters-mode 56 "k" #'keycast-header-line-mode 57 "w" #'global-whitespace-mode) 58 59 ;; w for whitespace 60 (general-def 61 :prefix "C-c w" 62 "f" #'fixup-whitespace 63 "r" #'whitespace-report 64 "o" #'global-whitespace-toggle-options 65 "c" #'whitespace-cleanup) 66 67 ;; f for find and consult command 68 (general-def 69 :prefix "C-c f" 70 "r" #'consult-recent-file 71 "f" #'consult-find 72 "g" #'consult-grep 73 "G" #'consult-git-grep 74 "e" #'consult-flycheck 75 "l" #'consult-locate 76 "h" #'consult-fd-home 77 "m" #'consult-man 78 "d" #'my-open-current-directory 79 "J" #'consult-register 80 "j" #'consult-jinx 81 "k" #'consult-kmacro 82 "o" #'consult-outline 83 "i" #'consult-info 84 "s" #'consult-focus-lines 85 "t" #'consult-ghostel) 86 87 ;; p for project 88 (general-def 89 :prefix "C-x p" 90 "b" #'consult-project-buffer 91 "t" #'ghostel-project 92 "g" #'my-consult-git-grep-project 93 "r" #'project-find-regexp 94 "R" #'project-or-external-find-regexp 95 "q" #'project-query-replace-regexp 96 "v" #'magit-project-status 97 "V" #'project-vc-dir 98 "i" #'project-ibuffer 99 "a" #'my-pi-coding-agent) 100 101 ;; v for version control 102 (general-def 103 :prefix "C-x v" 104 "c" #'magit-clone 105 "i" #'magit-init 106 "l" #'magit-log-buffer-file) 107 108 ;; t for modes toggle 109 (general-def 110 :prefix "C-c t" 111 "f" #'flycheck-mode 112 "j" #'jinx-mode 113 "g" #'gptel-mode 114 "h" #'global-diff-hl-mode) 115 116 ;; o for org-mode 117 (general-def 118 :prefix "C-c o" 119 "f" #'my-denote-find-file 120 "F" #'my-blog-find-file 121 "g" #'consult-denote-grep 122 "G" #'my-blog-grep 123 "s" #'consult-org-agenda 124 "C" #'calendar 125 "c" #'org-capture 126 "d" #'denote 127 "r" #'denote-rename-file-date 128 "R" #'denote-rename-file 129 "m" #'my-denote-open-metanote 130 "q" #'org-ql-search) 131 132 (general-def 133 "C-c a" 'org-agenda 134 "C-c l" #'org-store-link) 135 136 ;; j for journal 137 (general-def 138 :prefix "C-c j" 139 "o" #'my-denote-journal-open-entry 140 "n" #'denote-journal-new-or-existing-entry) 141 142 ;; m for media 143 (general-def 144 :prefix "C-c m" 145 "n" #'emms-next 146 "p" #'emms-previous 147 "b" #'emms-browser 148 "s" #'emms-start 149 "q" #'emms-stop 150 "P" #'emms-pause 151 "S" #'emms-toggle-single-track 152 "l" #'emms-playlist-mode-switch-buffer 153 "d" #'emms-play-directory) 154 155 ;; d for dired 156 (general-def 157 :prefix "C-c d" 158 "a" #'dirvish-quick-access 159 "s" #'my-speedbar 160 "h" #'dirvish-history-menu 161 "f" #'dirvish-fd 162 "F" #'dirvish-fd-switches-menu 163 "t" #'trashed 164 "d" #'discomfort) 165 166 ;; x for some other command 167 (general-def 168 :prefix "C-c x" 169 "e" #'eshell 170 "t" #'ghostel 171 "p" #'proced 172 "b" #'benchmark-init/show-durations-tree 173 "B" #'benchmark-init/show-durations-tabulated 174 "S" #'syncthing 175 "f" #'elfeed 176 "k" #'pass 177 "g" #'gt-translate 178 "s" #'my-synosaurus-lookup) 179 180 ;; r for replacement 181 (general-def 182 :prefix "C-c r" 183 "h" #'substitute-target-in-paragraph 184 "p" #'substitute-target-in-page 185 "d" #'substitute-target-in-defun 186 "b" #'substitute-target-in-buffer 187 "l" #'substitute-target-below-point 188 "u" #'substitute-target-above-point) 189 190 ;; scratch buffer 191 (if *is-mac* 192 (general-def "C-c <f12>" #'my-scratch-buffer) 193 (general-def "C-c <delete>" #'my-scratch-buffer)) 194 195 ;; dired 196 (general-def (dired-mode-map dirvish-mode-map) 197 "TAB" #'dirvish-subtree-toggle 198 "C-<tab>" #'dirvish-subtree-remove 199 "s" #'dirvish-quicksort 200 "h" #'dirvish-history-menu 201 "M-," #'scroll-other-window-down 202 "M-." #'scroll-other-window 203 "C-c m a" #'emms-add-dired 204 "b" #'dired-up-directory 205 "C-b" #'backward-char 206 "C-f" #'forward-char 207 "<right>" #'dired-find-file 208 "<left>" #'dired-up-directory 209 "C-/" #'dired-undo 210 "<SPC>" #'my-dirvish-layout-toggle 211 "C-c C-r" #'dired-rsync 212 "e" #'ediff) 213 214 (general-def (dired-mode-map dirvish-mode-map) 215 :prefix "C-c d" 216 "u" #'dirvish-setup-menu 217 "r" #'dirvish-renaming-menu 218 "v" #'dirvish-vc-menu 219 "m" #'dirvish-mark-menu 220 "i" #'dirvish-file-info-menu 221 "y" #'dirvish-yank-menu) 222 223 ;; speedbar 224 (general-def speedbar-mode-map 225 "^" #'speedbar-up-directory 226 "<tab>" #'my-speedbar-tab) 227 228 ;; magit 229 (general-def (magit-mode-map tokei-mode-map) 230 "C-<tab>" #'my-magit-toggle-parent-section) 231 232 ;; sly 233 (general-def (sly-mode-map sly-editing-mode-map) 234 "M-p" #'backward-paragraph 235 "M-n" #'forward-paragraph) 236 237 (general-def sly-prefix-map 238 "M-p" #'sly-pprint-eval-last-expression 239 "C-p" #'sly-previous-note 240 "C-n" #'sly-next-note) 241 242 ;; ghostel 243 (general-def (ghostel-mode-map 244 ghostel-semi-char-mode-map 245 ghostel-line-mode-map) 246 "M-]" nil 247 "C-q" #'ghostel-send-next-key) 248 249 (general-def ghostel-char-mode-map 250 "M-]" nil) 251 252 (general-def ghostel-semi-char-mode-map 253 "M-o" nil 254 "C-c h" #'consult-ghostel-history 255 "C-k" #'my-ghostel-send-C-k-and-kill) 256 257 ;; embark 258 (general-def embark-file-map 259 "d" #'consult-directory-externally 260 "p" #'emms-play-dired) 261 262 (general-def minibuffer-local-map 263 "C-c C-e" #'embark-export) 264 265 ;; completion 266 (general-def completion-list-mode-map 267 "M-n" #'minibuffer-next-completion 268 "M-p" #'minibuffer-previous-completion) 269 270 ;; markdown 271 (general-def markdown-mode-map 272 "M-p" nil 273 "M-n" nil) 274 275 ;; org-mode 276 (general-def org-mode-map 277 "C-<tab>" #'org-cycle-parent-subtree 278 "M-g i" #'consult-outline 279 "M-g M-i" #'consult-outline 280 "C-c t l" #'org-toggle-link-display 281 "M-{" #'backward-paragraph 282 "M-}" #'forward-paragraph 283 "C-," #'crux-duplicate-current-line-or-region 284 "C-c o l" #'denote-link 285 "C-c o L" #'denote-org-link-to-heading 286 "C-c o b" #'my-denote-find-backlink-with-location 287 "C-c o B" #'my-denote-org-find-backlink-for-heading-with-location 288 "C-c o t" #'my-org-tree-slide-start) 289 290 ;; org-tree-slide-mode 291 (general-def org-tree-slide-mode-map 292 "<left>" #'org-tree-slide-move-previous-tree 293 "<right>" #'org-tree-slide-move-next-tree 294 "C-c o t" #'my-org-tree-slide-stop 295 "q" #'my-org-tree-slide-stop 296 "M-v" #'scroll-down-command) 297 298 ;; hs-hide-mode 299 (general-def hs-minor-mode-map 300 "C-c h" #'hs-toggle-hiding 301 "C-c H" #'hs-hide-all 302 "C-c S" #'hs-show-all) 303 304 ;; calendar 305 (general-def calendar-mode-map 306 "RET" #'denote-journal-calendar-find-file) 307 308 ;; ibuffer 309 (general-def ibuffer-mode-map 310 "h k" #'my-persp-remove-marked-ibuffers 311 "h A" #'my-persp-set-marked-ibuffers 312 "h a" #'my-persp-add-marked-ibuffers) 313 314 ;; multiple-cursor 315 (general-def mc/keymap 316 "<return>" #'newline) 317 318 ;; emms 319 (general-def emms-playlist-mode-map 320 "<prior>" #'emms-previous 321 "<next>" #'emms-next 322 "C-c C-s" #'emms-history-save) 323 324 ;; perspective 325 (general-def persp-mode-map 326 "C-c p c" nil 327 "C-c p d" #'persp-kill 328 "C-x M-b" #'persp-ibuffer) 329 330 ;; info 331 (general-def Info-mode-map 332 "M-n" #'forward-paragraph) 333 334 ;; diff 335 (general-def diff-mode-map 336 "M-o" #'other-window) 337 338 ;; discomfort 339 (general-def discomfort-mode-map 340 "p" #'previous-line 341 "P" #'discomfort-poweroff) 342 343 ;; eww 344 (general-def eww-mode-map 345 "M-n" #'forward-paragraph 346 "M-p" #'backward-paragraph 347 "p" #'shr-previous-link 348 "n" #'shr-next-link 349 "P" #'eww-previous-url 350 "N" #'eww-next-url) 351 352 ;; global map 353 (general-def 354 355 ;; god-mode 356 "M-i" #'god-mode-all 357 358 ;; buffer, file, and window 359 "<f2>" #'open-init-file 360 "<mouse-4>" #'previous-buffer 361 "<mouse-5>" #'next-buffer 362 "M-[" #'previous-buffer 363 "M-]" #'next-buffer 364 "C-x C-b" #'ibuffer-other-window 365 "C-x K" #'crux-kill-other-buffers 366 "C-x b" #'consult-buffer 367 "C-x C-1" #'delete-other-windows 368 "C-x C-2" #'split-window-below 369 "C-x C-3" #'split-window-right 370 "C-x C-0" #'delete-window 371 372 ;; edit 373 "M-c" #'capitalize-dwim 374 "M-u" #'upcase-dwim 375 "M-l" #'downcase-dwim 376 "C-," #'crux-duplicate-current-line-or-region 377 "C-<backspace>" #'crux-kill-line-backwards 378 "M-y" #'consult-yank-from-kill-ring 379 "C-c <backspace>" #'hungry-delete-backward 380 "C-c C-<backspace>" #'hungry-delete-forward 381 "M-P" #'drag-stuff-up 382 "M-N" #'drag-stuff-down 383 "M-F" #'drag-stuff-right 384 "M-B" #'drag-stuff-left 385 "C-M-SPC" #'er/mark-symbol 386 "M-@" #'er/mark-word 387 "C-c e" #'er/expand-region 388 "C-c c" #'hydra-multiple-cursors/body 389 "C-S-<mouse-1>" #'mc/add-cursor-on-click 390 "C-c k" #'comment-kill 391 "M-z" #'avy-zap-to-char-dwim 392 "M-Z" #'avy-zap-up-to-char-dwim 393 394 ;; undo 395 "C-/" #'undo-fu-only-undo 396 "C-?" #'undo-fu-only-redo 397 "C-x u" #'vundo 398 399 ;; navigate 400 "M-p" #'backward-paragraph 401 "M-n" #'forward-paragraph 402 "<mouse-2>" #'xref-find-definitions-at-mouse 403 "C-M-;" #'avy-goto-char 404 "C-M-'" #'avy-goto-word-1 405 "M-g g" #'avy-goto-line 406 "C-c s" #'consult-line 407 "M-g M-g" #'consult-goto-line 408 "M-g i" #'consult-imenu 409 "M-g I" #'consult-imenu-multi 410 "M-g M-i" #'consult-imenu 411 412 ;; window 413 "C-M-<left>" #'shrink-window-horizontally 414 "C-M-<right>" #'enlarge-window-horizontally 415 "C-M-<down>" #'shrink-window 416 "C-M-<up>" #'enlarge-window 417 "M-`" #'popper-toggle 418 "C-M-=" #'popper-toggle-type-delete-other-window 419 "M-o" #'other-window 420 "M-O" #'other-window-backward 421 422 ;; other 423 "C-x r b" #'consult-bookmark 424 "C-;" #'embark-act 425 "M-s M-b" #'eww-list-bookmarks) 426 427 (cond 428 (*is-android* 429 (general-def 430 "C-M-w" #'popper-toggle-type-delete-other-window)) 431 (*is-linux* 432 (general-def 433 "M-S-SPC" #'xdg-launcher-run-app)) 434 (t nil)) 435 436 (provide 'init-kbd) 437 ;;; init-kbd.el ends here