X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/bffae347346e1ea083c0c25640dc4637d99d099b..850dd012bd83fb5d89e31695c4e66df4f1684e87:/init.org?ds=inline diff --git a/init.org b/init.org index d171fdf..b47a513 100644 --- a/init.org +++ b/init.org @@ -105,20 +105,19 @@ file. ** Naming conventions -The conventions below were inspired by [[https://github.com/hlissner/doom-emacs][Doom]]'s conventions, found -[[https://github.com/hlissner/doom-emacs/blob/5dacbb7cb1c6ac246a9ccd15e6c4290def67757c/core/core.el#L3-L17][here]]. Naturally, I use my initials, =ab=, instead of =doom=. +The conventions below were inspired by [[https://github.com/hlissner/doom-emacs][Doom]]'s, found [[https://github.com/hlissner/doom-emacs/blob/5dacbb7cb1c6ac246a9ccd15e6c4290def67757c/core/core.el#L3-L17][here]]. #+begin_src emacs-lisp :comments none ;; Naming conventions: ;; -;; ab-... public variables or non-interactive functions -;; ab--... private anything (non-interactive), not safe for direct use -;; ab/... an interactive function; safe for M-x or keybinding -;; ab:... an evil operator, motion, or command -;; ab|... a hook function -;; ab*... an advising function -;; ab@... a hydra command -;; ...! a macro +;; amin-... public variables or non-interactive functions +;; amin--... private anything (non-interactive), not safe for direct use +;; amin/... an interactive function; safe for M-x or keybinding +;; amin:... an evil operator, motion, or command +;; amin|... a hook function +;; amin*... an advising function +;; amin@... a hydra command +;; ...! a macro #+end_src * Initial setup @@ -137,10 +136,10 @@ let's see how long Emacs takes to start up, before even loading =init.el=, i.e. =user-init-file=: #+begin_src emacs-lisp -(defvar ab--before-user-init-time (current-time) +(defvar amin--before-user-init-time (current-time) "Value of `current-time' when Emacs begins loading `user-init-file'.") (message "Loading Emacs...done (%.3fs)" - (float-time (time-subtract ab--before-user-init-time + (float-time (time-subtract amin--before-user-init-time before-init-time))) #+end_src @@ -150,9 +149,9 @@ frequency. Clearing the ~file-name-handler-alist~ seems to help reduce startup time as well. #+begin_src emacs-lisp -(defvar ab--gc-cons-threshold gc-cons-threshold) -(defvar ab--gc-cons-percentage gc-cons-percentage) -(defvar ab--file-name-handler-alist file-name-handler-alist) +(defvar amin--gc-cons-threshold gc-cons-threshold) +(defvar amin--gc-cons-percentage gc-cons-percentage) +(defvar amin--file-name-handler-alist file-name-handler-alist) (setq gc-cons-threshold (* 400 1024 1024) ; 400 MiB gc-cons-percentage 0.6 file-name-handler-alist nil @@ -167,9 +166,9 @@ done initializing. (add-hook 'after-init-hook (lambda () - (setq gc-cons-threshold ab--gc-cons-threshold - gc-cons-percentage ab--gc-cons-percentage - file-name-handler-alist ab--file-name-handler-alist))) + (setq gc-cons-threshold amin--gc-cons-threshold + gc-cons-percentage amin--gc-cons-percentage + file-name-handler-alist amin--file-name-handler-alist))) #+end_src Increase the number of lines kept in message logs (the =*Messages*= @@ -397,7 +396,7 @@ Font stack with better unicode support, around =Ubuntu Mono= and ** Useful utilities #+begin_src emacs-lisp -(defun ab-enlist (exp) +(defun amin-enlist (exp) "Return EXP wrapped in a list, or as-is if already a list." (if (listp exp) exp (list exp))) @@ -407,7 +406,7 @@ Font stack with better unicode support, around =Ubuntu Mono= and compilation." (declare (indent defun) (debug t)) (list (if (or (not (bound-and-true-p byte-compile-current-file)) - (dolist (next (ab-enlist features)) + (dolist (next (amin-enlist features)) (if (symbolp next) (require next nil :no-error) (load next :no-message :no-error)))) @@ -442,7 +441,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 @@ -628,10 +629,20 @@ Roll your own modal mode ("p" previous-line) ("f" forward-char) ("/" 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) @@ -678,16 +689,8 @@ In short, my favourite way of life. :config (setq org-src-tab-acts-natively t org-src-preserve-indentation nil - org-edit-src-content-indentation 0 - org-html-divs '((preamble "header" "preamble") - (content "main" "content") - (postamble "footer" "postamble")) - org-html-doctype "html5" - org-html-html5-fancy t - org-html-postamble nil) + org-edit-src-content-indentation 0) :hook (org-mode . org-indent-mode)) -(use-package htmlize - :after org) (use-package org-notmuch :after (:any org notmuch)) #+end_src @@ -1165,13 +1168,25 @@ Emacs package that displays available keybindings in popup ("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]] See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. #+begin_src emacs-lisp -(defun ab/notmuch () +(defun amin/notmuch () "Delete other windows, then launch `notmuch'." (interactive) (require 'notmuch) @@ -1180,18 +1195,19 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. ;; (map! ;; :leader -;; :desc "notmuch" :n "m" #'ab/notmuch +;; :desc "notmuch" :n "m" #'amin/notmuch ;; (:desc "search" :prefix "/" ;; :desc "notmuch" :n "m" #'counsel-notmuch)) #+end_src #+begin_src emacs-lisp -(defvar ab-maildir "~/mail") +(defvar amin-maildir "~/mail") (use-package sendmail ;; :ensure nil :config (setq sendmail-program "/usr/bin/msmtp" + ; message-sendmail-extra-arguments '("-v" "-d") mail-specify-envelope-from t mail-envelope-from 'header)) @@ -1225,7 +1241,7 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. mml-secure-openpgp-sign-with-sender t)) (use-package notmuch - :ryo ("SPC m" ab/notmuch) + :ryo ("SPC m" amin/notmuch) :config (setq notmuch-hello-sections '(notmuch-hello-insert-header @@ -1239,8 +1255,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 @@ -1259,18 +1276,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) @@ -1320,7 +1341,7 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]]. ;; (notmuch-tree-mode . emacs)))) (after! recentf - (add-to-list 'recentf-exclude (expand-file-name ab-maildir))) + (add-to-list 'recentf-exclude (expand-file-name amin-maildir))) #+end_src ** supercite @@ -1392,7 +1413,7 @@ Display how long it took to load the init file. #+begin_src emacs-lisp (message "Loading %s...done (%.3fs)" user-init-file (float-time (time-subtract (current-time) - ab--before-user-init-time))) + amin--before-user-init-time))) #+end_src * Footer