** 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
=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
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
(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*=
** 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)))
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))))
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
: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
("e" mwim-end-of-code-or-line))
#+end_src
-** [[https://github.com/vlevit/key-seq.el][key-seq]] (uses [[https://www.emacswiki.org/emacs/KeyChord][key-chord]])
+** [[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.075))
-(use-package key-seq
- :after key-chord
- :config
- (key-seq-define-global "jk" 'ryo-modal-mode))
+ key-chord-two-keys-delay 0.005))
#+end_src
* Email
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)
;; (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))
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
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
: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)
;; (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
#+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