[emacs] update 16 drones
[~bandali/configs] / init.org
index 526045a..251e587 100644 (file)
--- a/init.org
+++ b/init.org
@@ -565,6 +565,25 @@ variable.
       version-control t)
 #+end_src
 
+*** Auto revert
+
+Enable automatic reloading of changed buffers and files.
+
+#+begin_src emacs-lisp
+(global-auto-revert-mode 1)
+(setq auto-revert-verbose nil
+      global-auto-revert-non-file-buffers t)
+#+end_src
+
+*** Always use space for indentation
+
+#+begin_src emacs-lisp
+(setq-default
+ indent-tabs-mode nil
+ require-final-newline t
+ tab-width 4)
+#+end_src
+
 ** Packages
 
 The packages in this section are absolutely essential to my everyday
@@ -608,18 +627,32 @@ Roll your own modal mode
    ("n" next-line)
    ("p" previous-line)
    ("f" forward-char)
-   ("a" move-beginning-of-line)
-   ("e" move-end-of-line)
-   ("SPC" (("b b" ibuffer-list-buffers)
-           ("b k" kill-this-buffer)
-           ("b o" other-window)
-           ("b s" save-buffer)
-           ("q q" save-buffers-kill-terminal)))
+   ("/" undo)
+   ("i" ryo-modal-mode)
+   ("l" recenter-top-bottom)
+   ("v" scroll-up-command)
+   ("V" scroll-down-command)
+   ("x" delete-forward-char)
+   ("SPC" (("b" (("b" ibuffer-list-buffers)
+                 ("k" kill-this-buffer)
+                 ("o" other-window)
+                 ("s" save-buffer)))
+           ("B" (("A" borg-activate)
+                 ("a" borg-assimilate)
+                 ("b" borg-build)
+                 ("c" borg-clone)
+                 ("r" borg-remove)))
+           ("h" (("c" describe-char)
+                 ("f" describe-function)
+                 ("F" describe-face)
+                 ("i" info)
+                 ("k" describe-key)
+                 ("l" view-lossage)
+                 ("v" describe-variable)))
+           ("q" (("q" save-buffers-kill-terminal)))))
    ("d" (("w" kill-word)
-         ("d" kill-whole-line)
          ("b" backward-kill-word)))
-   ("c" (("w" kill-word :exit t)
-         ("c" kill-whole-line :exit t))))
+   ("c w" kill-word :exit t))
 
   (ryo-modal-keys
    ;; First argyment to ryo-modal-keys may be a list of keywords.
@@ -826,11 +859,14 @@ TODO: break this giant source block down into individual org sections.
 
 (use-package undo-tree
   :ryo
-  ("/" undo-tree-undo)
+  ("?" undo-tree-undo)
   ("_" undo-tree-redo)
+  :bind (("C-?" . undo-tree-undo)
+         ("M-_" . undo-tree-redo))
   :config
   (global-undo-tree-mode)
-  (setq undo-tree-mode-lighter ""))
+  (setq undo-tree-mode-lighter ""
+        undo-tree-auto-save-history t))
 #+end_src
 
 * Editing
@@ -1109,6 +1145,48 @@ Emacs package that displays available keybindings in popup
 (load-theme 'eink t)
 #+end_src
 
+** [[https://github.com/bbatsov/crux][crux]]
+
+#+begin_src emacs-lisp
+(use-package crux
+  :bind (("C-c d"    . crux-duplicate-current-line-or-region)
+         ("C-c M-d"  . crux-duplicate-and-comment-current-line-or-region))
+  :ryo
+  ("o" crux-smart-open-line :exit t)
+  ("O" crux-smart-open-line-above :exit t)
+  ("SPC b K" crux-kill-other-buffers)
+  ("d d" crux-kill-whole-line)
+  ("c c" crux-kill-whole-line :then '(crux-smart-open-line-above) :exit t)
+  ("SPC f" (("c" crux-copy-file-preserve-attributes)
+            ("D" crux-delete-file-and-buffer)
+            ("R" crux-rename-file-and-buffer))))
+#+end_src
+
+** [[https://github.com/alezost/mwim.el][mwim]]
+
+#+begin_src emacs-lisp
+(use-package mwim
+  :bind (("C-a"    . mwim-beginning-of-code-or-line)
+         ("C-e"    . mwim-end-of-code-or-line)
+         ("<home>" . mwim-beginning-of-line-or-code)
+         ("<end>"  . mwim-end-of-line-or-code))
+  :ryo
+  ("a" mwim-beginning-of-code-or-line)
+  ("e" mwim-end-of-code-or-line))
+#+end_src
+
+** [[https://www.emacswiki.org/emacs/KeyChord][key-chord]]
+
+#+begin_src emacs-lisp
+(use-package key-chord
+  :demand t
+  :config
+  (key-chord-mode 1)
+  (key-chord-define-global "jk" 'ryo-modal-mode)
+  (setq key-chord-one-key-delay 0 ; i don't need one-key chords for now
+        key-chord-two-keys-delay 0.005))
+#+end_src
+
 * Email
 ** [[https://notmuchmail.org][notmuch]]