X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/933e8d2742efaa00a8c6877bd40a7783b5195261..34fc3c29aacc20e306d8235e10a6437fb1f221ef:/init.org diff --git a/init.org b/init.org index 96911f2..7b4a1a9 100644 --- a/init.org +++ b/init.org @@ -76,7 +76,7 @@ file. ** License #+begin_src emacs-lisp :comments none -;; Copyright (C) 2018 Amin Bandali +;; Copyright (C) 2018 Amin Bandali ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -191,7 +191,7 @@ but for now I've decided to keep them enabled. See documentation for #+begin_src emacs-lisp (setq user-full-name "Amin Bandali" - user-mail-address "amin@aminb.org") + user-mail-address "amin@bandali.me") #+end_src ** Package management @@ -720,7 +720,8 @@ customizing it. (evil-mode 1) (general-swap-key nil '(normal motion) ";" ":") - (setq evil-want-visual-char-semi-exclusive t) + (setq evil-want-visual-char-semi-exclusive t + evil-cross-lines t) ;; custom mode state mappings (dolist (mspair '((ebdb-mode . emacs) @@ -845,7 +846,7 @@ In short, my favourite way of life. #+begin_src emacs-lisp (use-package org - :defer 3 + :defer 1 :general (amin--leader-keys :states 'normal @@ -989,7 +990,7 @@ Not just how I do git, but /the/ way to do git. #+begin_src emacs-lisp (use-package magit - :defer 2 + :defer 1 :general (amin--leader-keys "g s" 'magit-status) :bind ("s-g" . magit-status) :config @@ -1092,10 +1093,10 @@ There's no way I could top that, so I won't attempt to. (make-local-variable 'company-idle-delay) (setq company-idle-delay nil) (bind-keys :map eshell-mode-map - ("C-d" . amin/eshell-quit-or-delete-char) - ("C-l" . amin/eshell-clear) - ("M-r" . counsel-esh-history) - ([tab] . company-complete))) + ("C-d" . amin/eshell-quit-or-delete-char) + ("C-S-l" . amin/eshell-clear) + ("M-r" . counsel-esh-history) + ([tab] . company-complete))) :hook (eshell-mode . amin|eshell-setup) :custom @@ -1285,7 +1286,7 @@ TODO: break this giant source block down into individual org sections. #+begin_src emacs-lisp (use-package company - :defer 2 + :defer 1 :bind (:map company-active-map ([tab] . company-complete-common-or-cycle) @@ -1723,16 +1724,6 @@ Emacs package that displays available keybindings in popup (load-theme 'tangomod t) #+end_src -** COMMENT [[https://github.com/Malabarba/smart-mode-line][smart-mode-line]] - -#+begin_src emacs-lisp -(use-package smart-mode-line - :config - (sml/setup) - (sml/apply-theme 'light) - (remove-hook 'display-time-hook 'sml/propertize-time-string)) -#+end_src - ** doom-modeline #+begin_src emacs-lisp @@ -1808,7 +1799,7 @@ Emacs package that displays available keybindings in popup #+begin_src emacs-lisp (use-package projectile - :defer 2 + :defer t :bind-keymap ("C-c p" . projectile-command-map) :config (projectile-mode) @@ -2216,15 +2207,21 @@ For when I /have to/ use GH. :config (setq gnus-posting-styles '((".*" - (address "amin@aminb.org") - (body "\nBest,\namin\n")) + (address "amin@bandali.me") + (body "\nBest,\namin\n") + (signature-file "~/.signature-amin") + (eval (setq amin--message-cite-say-hi t))) ("gnu.*" - (address "bandali@gnu.org")) + (address "bandali@gnu.org") + (signature-file nil)) ((header "subject" "ThankCRM") - (to "webmasters-comment@gnu.org")) + (to "webmasters-comment@gnu.org") + (body "\nAdded to 2018supporters.html.\n\nMoving to campaigns.\n\n-amin\n") + (eval (setq amin--message-cite-say-hi nil))) ("nnimap\\+uwaterloo:.*" (address "abandali@uwaterloo.ca") - (gcc "\"nnimap+uwaterloo:Sent Items\""))))) + (gcc "\"nnimap+uwaterloo:Sent Items\"") + (signature-file nil))))) (use-package gnus-topic :hook (gnus-group-mode . gnus-topic-mode)) @@ -2259,6 +2256,7 @@ For when I /have to/ use GH. #+begin_src emacs-lisp (use-package message :config + (defconst amin--message-cite-style-format "On %Y-%m-%d %l:%M %p, %N wrote:") (defconst message-cite-style-bandali '((message-cite-function 'message-cite-original) (message-citation-line-function 'message-insert-formatted-citation-line) @@ -2266,19 +2264,25 @@ For when I /have to/ use GH. (message-yank-prefix "> ") (message-yank-cited-prefix ">") (message-yank-empty-prefix ">") - (message-citation-line-format "Hi %F,\n\nOn %Y-%m-%d %l:%M %p, %N wrote:")) + (message-citation-line-format + (if amin--message-cite-say-hi + (concat "Hi %F,\n\n" amin--message-cite-style-format) + amin--message-cite-style-format))) "Citation style based on Mozilla Thunderbird's. Use with message-cite-style.") (setq message-cite-style 'message-cite-style-bandali message-kill-buffer-on-exit t message-send-mail-function 'message-send-mail-with-sendmail message-sendmail-envelope-from 'header message-dont-reply-to-names - "\\(\\(.*@aminb\\.org\\)\\|\\(\\(aminb?\\|mab\\|bandali\\)@gnu\\.org\\)\\|\\(\\(m\\|a\\(min\\.\\)?\\)bandali@uwaterloo\\.ca\\)\\)" + "\\(\\(amin@bandali\\.me\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(aminb?\\|mab\\|bandali\\)@gnu\\.org\\)\\|\\(\\(m\\|a\\(min\\.\\)?\\)bandali@uwaterloo\\.ca\\)\\)" message-user-fqdn "aminb.org") :hook (;; (message-setup . mml-secure-message-sign-pgpmime) (message-mode . flyspell-mode) - (message-mode . (lambda () (setq fill-column 65 - message-fill-column 65)))) + (message-mode . (lambda () + (setq fill-column 65 + message-fill-column 65) + (make-local-variable 'company-idle-delay) + (setq company-idle-delay 0.2)))) ;; :custom-face ;; (message-header-subject ((t (:foreground "#111" :weight semi-bold)))) ;; (message-header-to ((t (:foreground "#111" :weight normal)))) @@ -2314,92 +2318,37 @@ Convenient footnotes in =message-mode=. footnote-style 'unicode)) #+end_src -** COMMENT supercite +** bbdb -#+begin_src emacs-lisp -(use-package supercite - :after message - :init - (setq sc-nested-citation-p t - ;; sc-cite-blank-lines-p t - sc-citation-leader "" - sc-reference-tag-string "" - sc-preferred-header-style 5 ; (sc-header-author-writes) - sc-auto-fill-region-p nil - sc-confirm-always-p nil) - :config - ;; (defun amin--sc-header-on-wrote () - ;; "\"On , wrote:\" unless: - ;; 1. the \"sc-author\" field cannot be found, in which case nothing is inserted; - ;; 2. the \"date\" field is missing in which case only the from part is printed." - ;; (let ((sc-mumble "") - ;; (whofrom (sc-whofrom))) - ;; (if whofrom - ;; (insert sc-reference-tag-string - ;; (sc-hdr "On " (sc-mail-field "date") ", ") - ;; (sc-hdr "" (sc-mail-field "sc-author")) " wrote:\n")))) - ;; (defun amin--sc-header () - ;; "Hi ,\n\n writes:" - ;; (let ((sc-mumble "") - ;; (whofrom (sc-whofrom))) - ;; (if whofrom - ;; (insert (sc-hdr "Hi " (sc-mail-field "sc-firstname") ",\n\n") - ;; sc-reference-tag-string - ;; whofrom - ;; " writes:\n")))) - ;; (add-to-list 'sc-rewrite-header-list '(amin--sc-header) t) - ;; (add-to-list 'sc-rewrite-header-list '(amin--sc-header-on-wrote) t) - ;; (setq sc-preferred-header-style (1- (length sc-rewrite-header-list))) - (add-hook 'mail-citation-hook 'sc-cite-original)) -#+end_src - -** ebdb - -#+begin_src emacs-lisp -(use-package ebdb - :defer 1 - :bind (:map gnus-group-mode-map ("e" . ebdb)) - :config - (setq ebdb-sources (no-littering-expand-var-file-name "ebdb"))) - -(use-package ebdb-com - :after ebdb) - -(use-package ebdb-complete - :after ebdb - :config - (ebdb-complete-enable)) +Manually install bbdb (=lisp/bbdb= copied from an ELPA-based setup), +because installing it from source on Emacs 27 using the following +submodule configuration for some reason doesn’t work and results in +very strange errors when using any of the functions. -(use-package ebdb-gnus - :after ebdb) - -(use-package ebdb-message - :after ebdb) - -;; (use-package ebdb-vcard -;; :after ebdb) -#+end_src - -** COMMENT bbdb - -#+begin_comment +#+begin_src conf :tangle no [submodule "bbdb"] path = lib/bbdb url = https://git.savannah.nongnu.org/git/bbdb.git - load-path = lisp/elisp + load-path = lisp info-path = doc build-step = ./autogen.sh - build-step = ./configure --with-lispdir=elisp + build-step = ./configure build-step = make build-step = make install -#+end_comment +#+end_src + +I tried using =borg-elpa= instead of doing it like this, but it added +2 seconds to my startup time, which is unacceptable to me. #+begin_src emacs-lisp (use-package bbdb + :load-path "lisp/bbdb" :init - (bbdb-mua-auto-update-init 'message) - (setq bbdb-mua-auto-update-p 'query) - (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)) + (load (expand-file-name "lisp/bbdb/bbdb-autoloads.el" user-emacs-directory)) + ;; (bbdb-mua-auto-update-init 'message) + (setq bbdb-mua-auto-update-p 'query + bbdb-complete-mail nil) + (bbdb-initialize 'gnus 'message)) #+end_src ** COMMENT message-x @@ -2429,181 +2378,6 @@ Convenient footnotes in =message-mode=. (gnus-harvest-install))) #+end_src -** COMMENT gnus-alias :ARCHIVE: - -#+begin_src emacs-lisp -(use-package gnus-alias - :commands (gnus-alias-determine-identity - gnus-alias-select-identity) - :bind (:map message-mode-map - ("s-i" . gnus-alias-select-identity)) - :config - (setq - gnus-alias-default-identity "amin" - gnus-alias-identity-alist - '(("amin" - nil ;; Does not refer to any other identity - "Amin Bandali " - nil ;; Organization - nil ;; extra headers - nil ;; extra body text - nil) ;; signature file - ("gnu" - nil - "Amin Bandali " - nil - nil - nil - nil) - ("uw" - nil - "Amin Bandali " - nil - (("Gcc" . "\"nnimap+uwaterloo:Sent Items\"")) - nil - nil)) - gnus-alias-identity-rules - '(("amin" ("Delivered-To" "