X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/82ff3214f956e3dd33c0d63032f834d7757c361b..71668c8969f92f48d27dcb6fd8a5f1b1db5e0fd0:/init.org diff --git a/init.org b/init.org index 69ae88f..6575a91 100644 --- a/init.org +++ b/init.org @@ -442,7 +442,9 @@ Enable displaying time and battery in the mode-line, since I'm not using the Xfce panel anymore. Also, I don't need to see the load average on a regular basis, so disable that. -#+begin_src emacs-lisp +Note: using =i3status= on sway at the moment, so disabling this. + +#+begin_src emacs-lisp :tangle no (use-package time :ensure nil :init @@ -565,6 +567,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,12 +629,21 @@ Roll your own modal mode ("n" next-line) ("p" previous-line) ("f" forward-char) - ("a" move-beginning-of-line) - ("e" move-end-of-line) + ("/" 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) @@ -623,10 +653,8 @@ Roll your own modal mode ("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. @@ -833,13 +861,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) + :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 @@ -1118,6 +1147,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) + ("" . mwim-beginning-of-line-or-code) + ("" . 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]] @@ -1145,6 +1216,7 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. ;; :ensure nil :config (setq sendmail-program "/usr/bin/msmtp" + ; message-sendmail-extra-arguments '("-v" "-d") mail-specify-envelope-from t mail-envelope-from 'header)) @@ -1192,8 +1264,9 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. notmuch-hello-thousands-separator "," notmuch-fcc-dirs '(("amin@aminb.org" . "amin/Sent") + ("amin@gnu.org" . "gnu/Sent") ("abandali@uwaterloo.ca" . "\"uwaterloo/Sent Items\"") - ("amin.bandali@uwaterloo.ca" . "\"uwaterloo/Sent Items\"") + ("mab@gnu.org" . "gnu/Sent") ("aminb@gnu.org" . "gnu/Sent") (".*" . "sent")) notmuch-search-result-format @@ -1212,18 +1285,22 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. :bind (:map notmuch-hello-mode-map ("g" . notmuch-poll-and-refresh-this-buffer) - ("i" . (lambda () - "Search for `inbox' tagged messages" - (interactive) - (notmuch-hello-search "tag:inbox"))) ("u" . (lambda () "Search for `unread' tagged messages" (interactive) (notmuch-hello-search "tag:unread"))) + ("i" . (lambda () + "Search for `inbox' tagged messages" + (interactive) + (notmuch-hello-search "tag:inbox"))) ("l" . (lambda () - "Search for `latest tagged messages" + "Search for `latest' tagged messages" (interactive) (notmuch-hello-search "tag:latest"))) + ("e" . (lambda () + "Search for `encrypted' tagged messages" + (interactive) + (notmuch-hello-search "tag:encrypted"))) ("M" . (lambda () "Compose new mail and prompt for sender" (interactive)