From fee021a2fd128742be90c24d771bd539908a312f Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 31 Dec 2019 20:49:19 -0500 Subject: [PATCH 01/16] emacs: update packages, add back orgalist finally fixed: https://lists.gnu.org/archive/html/emacs-orgmode/2019-12/msg00439.html --- .emacs.d/init.el | 2 -- .emacs.d/straight/versions/default.el | 21 +++++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 0c129d1..e75e60f 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1856,8 +1856,6 @@ This function is intended for use with `ivy-ignore-buffers'." ("M-w" . boxquote-kill-ring-save))) (use-package orgalist - ;; http://lists.gnu.org/archive/html/emacs-orgmode/2019-04/msg00007.html - :disabled t :after message :hook (message-mode . orgalist-mode)) diff --git a/.emacs.d/straight/versions/default.el b/.emacs.d/straight/versions/default.el index c42fc80..d79ef11 100644 --- a/.emacs.d/straight/versions/default.el +++ b/.emacs.d/straight/versions/default.el @@ -5,7 +5,7 @@ ("biblio.el" . "efeeab720cb8e3f95ddb4298d0cc62393cf237e9") ("boxquote.el" . "7e47e0e2853bc1215739b2e28f260e9eed93b2c5") ("bui.el" . "508577a7225b3d07eaefa9444064410af2518675") - ("closql" . "00274ce7e33aafc9ad9c7a89bca9e724213bb8fa") + ("closql" . "1e78f96dc976badb59067c986f7766cce89405cc") ("company-mode" . "14f80ed7f21d79df6639c7df2a6e61a716c07b81") ("crux" . "903db7b1a2052f4959d934cae26ec40a3f323ed4") ("dash.el" . "ea7adeb09c13de58336caa16243e192ea6ee88fb") @@ -17,10 +17,10 @@ ("el-dmenu" . "e8cc9b27c79d3ecc252267c082ab8e9c82eab264") ("elisp-refs" . "0a254e6a4dc7fa12857f8334fe6eefa72e49d1c9") ("emacs-async" . "036b475a29bbbee52f88c7d0332341c2643155fb") - ("emacs-doom-themes" . "9facd5765d2b4cfa9b4d171c537369d03a11dcde") + ("emacs-doom-themes" . "1f520a882ea924c529e01a561bdbedb3d99cca6c") ("emacs-htmlize" . "86f22f211e9230857197c42a9823d3f05381deed") ("emacs-which-key" . "1e3640e48c31f8062f018b5fc84acad696a0ea2a") - ("emacsmirror-mirror" . "b44173be25751535118e1e1b94b97fa515fc1f43") + ("emacsmirror-mirror" . "f10bab7a1f63c41ded01e85dade0a1e012ab9768") ("emacsql" . "a118b6c95af1306f0288a383d274b5dd93efbbda") ("emmet-mode" . "1acb821e0142136344ccf40c1e5fb664d7db2e70") ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6") @@ -41,29 +41,30 @@ ("gnu-elpa-mirror" . "b58580c57aab8a451d2db4956c5d5c191ddcb2a6") ("go-mode.el" . "fa2162b6b34af0d2e8038940d8fa13e775a1cae6") ("guix.el" . "c2796e68868c91253b6aca422a9ae07363aa03a9") - ("helm" . "bd979544b2474f212adfc72477e82808af10fd12") + ("helm" . "b655105e522a5541e2e155ae9247bd79bdb6afce") ("helm-bibtex" . "d4471232be26793fbf56c0ac3690b5f537c378b9") ("helpful" . "edddccbebd82dde0a18662a0995bfe930112458c") ("hl-todo" . "6c79749236c8da28183092607f824727464079fd") ("hydra" . "9db28034d7d61bfeff89899633b958f22befc53d") ("key-chord" . "72443e9ff3c4f1c3ccaced3130236801efde3d83") - ("lean-mode" . "b5ba739f68ef731c03247bf6db2708502c8ac46c") + ("lean-mode" . "f26e40daad2c1bd090e440a2b931205ac3b9b613") ("let-alist" . "681570f2abec73ec6494d67f8a904ac9ea15063f") ("log4e" . "c69424e407be0d9d0e54b427d8b18b1ac5a607e2") ("loop.el" . "e22807f83a0890dc8a904c51ee0742c34efccc6c") - ("magit" . "49dfbdbe46acbf29c28e87f12dd6f722071ef0f9") + ("magit" . "dff0bca6f783d43ca3b116d5cbeda0fbed39246d") ("magit-popup" . "832465c5022a18d8db7f85da22937ee02e155d8e") - ("markdown-mode" . "f3c54e34cc5228001af36a5301883325319f21d4") - ("melpa" . "ab197ee315e5e67ce56d81374e3589ee894000bd") + ("markdown-mode" . "e9dff50d572caa96b68a7466c18c97a8d6ed651c") + ("melpa" . "c3b4c0c6a715b4302cc6cb6171b185883f2a87e2") ("message-x" . "5524de7bbfdd8749c110f48de5afb024d9f83133") ("minions" . "ca6a3e77ddbd19cdf363ea71ba357096395a5de5") ("multiple-cursors.el" . "b880554d04b8f61165afba7d4de19ac9e39bb7ab") ("mwim.el" . "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85") ("no-littering" . "d1d6965c70fc6ce0cfb38a5115d0e112aefac1d7") ("oddmuse-curl" . "167520342f206c6451344d271e66f0f520664021") - ("org" . "ac939125a45c6069a0d1f931567bea60261af23f") + ("org" . "09df1499914b37590bf00093855e8e02bd3b311f") ("org-pdftools" . "c48942e616bef7dcf477a0df4e2982e325f8f646") ("org-ref" . "e64d5b15c1667bcff817940191a45c5ff074a6fb") + ("orgalist" . "21a4c1cfd19920eeb114d550755c4df6fff5d362") ("page-break-lines" . "2e1d274e11071bb8daea4d6f4c0369c84466de7a") ("parsebib" . "9a5f1730b8ef1fb6c29262a8ba79f8136e5548d4") ("pass" . "919d8e3826d556433ab67d4ee21a509d209d1baa") @@ -79,7 +80,7 @@ ("shrink-path.el" . "c14882c8599aec79a6e8ef2d06454254bb3e1e41") ("smart-mode-line" . "999be065b195f2eddb4e1b629f99038d832d44b7") ("soap-client" . "847b9c6919ae50bc576b1a887b4c609c6b2329ca") - ("straight.el" . "7c6048eda9dc1bd79f26b1f193cb5416fb4e3ad5") + ("straight.el" . "22415dc2755abdd905a1cf727b0f24746d4dffce") ("swiper" . "e7eca371522d96d27bc4b2f7d87f19c1b75e927c") ("switch-buffer-functions-el" . "b8d8e01e21ae8c8c84234dddeb3cc8250814f7ba") ("tablist" . "41a9612f51bad36d6689667c11f42f8143103bb2") -- 2.20.1 From f3fc0f90c54d2c34fa1c88cb85ca5e33a43b613e Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 1 Jan 2020 01:06:05 -0500 Subject: [PATCH 02/16] update site url --- .emacs.d/init.el | 2 +- .signature | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index e75e60f..21b47de 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2485,7 +2485,7 @@ https://shemshak.org/~amin") (defvar b/uw-signature "Amin Bandali, MMath Student Cheriton School of Computer Science University of Waterloo -https://bandali.eu.org") +https://bndl.org") (defvar b/csc-signature "Amin Bandali Systems Committee Computer Science Club, University of Waterloo diff --git a/.signature b/.signature index 2baf48a..7d0dbe0 100644 --- a/.signature +++ b/.signature @@ -1,4 +1,4 @@ Amin Bandali Free Software Activist | GNU Maintainer & Webmaster GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 -https://bandali.eu.org +https://bndl.org -- 2.20.1 From 7aa50129171bd35e91fd9d0bd3d169f0cea6b4b3 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 1 Jan 2020 21:07:24 -0500 Subject: [PATCH 03/16] emacs: update custom.el --- .emacs.d/etc/custom.el | 175 +++++++++++++++++++++++++++-------------- 1 file changed, 116 insertions(+), 59 deletions(-) diff --git a/.emacs.d/etc/custom.el b/.emacs.d/etc/custom.el index 65623e8..a831542 100644 --- a/.emacs.d/etc/custom.el +++ b/.emacs.d/etc/custom.el @@ -4,48 +4,64 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(abbrev-file-name "/home/bandali/.emacs.d/var/abbrev.el") - '(auth-sources (quote ("~/.authinfo.gpg"))) - '(company-dabbrev-char-regexp "\\sw\\|\\s_\\|[-_]") - '(company-dabbrev-downcase nil) - '(company-dabbrev-ignore-case nil) + '(auth-sources '("~/.authinfo.gpg")) + '(authinfo-hidden "\\(?:client-secret\\|password\\|token\\)") + '(auto-revert-verbose nil) + '(auto-save-file-name-transforms '((".*" "/home/bandali/.emacs.d/var/auto-save/" t))) + '(backup-by-copying t) + '(company-dabbrev-char-regexp "\\sw\\|\\s_\\|[-_]" t) + '(company-dabbrev-downcase nil t) + '(company-dabbrev-ignore-case nil t) '(company-minimum-prefix-length 1) '(company-selection-wrap-around t) + '(debpaste-paste-is-hidden t t) + '(delete-old-versions t) + '(display-battery-mode t) + '(display-time-mode t) + '(dmenu-prompt-string "run: " t) + '(dmenu-save-file "/home/bandali/.emacs.d/var/dmenu-items" t) '(ebdb-gnus-window-configuration - (quote - (article + '(article (vertical 1.0 (summary 0.25 point) (horizontal 1.0 (article 1.0) - (ebdb-gnus 0.3)))))) - '(ediff-split-window-function (quote split-window-horizontally)) - '(ediff-window-setup-function (quote ediff-setup-windows-plain)) - '(epa-pinentry-mode (quote loopback)) + (ebdb-gnus 0.3))))) + '(ebdb-gnus-window-size 0.3 t) + '(ebdb-mua-pop-up t) + '(ediff-split-window-function 'split-window-horizontally t) + '(ediff-window-setup-function 'ediff-setup-windows-plain t) + '(epa-pinentry-mode 'loopback) '(epg-gpg-program "/home/bandali/.guix-profile/bin/gpg") - '(epg-pinentry-mode (quote loopback) t) - '(erc-fill-function (quote erc-fill-static)) + '(epg-pinentry-mode 'loopback) + '(erc-fill-column 77) + '(erc-fill-function 'erc-fill-static) '(erc-fill-static-center 18) - '(erc-join-buffer (quote bury)) - '(erc-lurker-hide-list (quote ("JOIN" "PART" "QUIT"))) + '(erc-join-buffer 'bury) + '(erc-lurker-hide-list '("JOIN" "PART" "QUIT")) '(erc-nick "bandali") - '(erc-pcomplete-nick-postfix ",") + '(erc-pcomplete-nick-postfix ", ") + '(erc-prompt "erc>") '(erc-rename-buffers t) '(erc-server-reconnect-attempts 5) '(erc-server-reconnect-timeout 3) '(erc-track-enable-keybindings nil) '(erc-track-exclude-types - (quote - ("JOIN" "MODE" "NICK" "PART" "QUIT" "324" "329" "332" "333" "353" "477"))) - '(erc-track-priority-faces-only (quote all)) + '("JOIN" "MODE" "NICK" "PART" "QUIT" "324" "329" "332" "333" "353" "477")) + '(erc-track-position-in-mode-line t) + '(erc-track-priority-faces-only 'all) '(erc-track-shorten-function nil) '(eshell-directory-name "/home/bandali/.emacs.d/var/eshell/") '(eshell-hist-ignoredups t) - '(eshell-input-filter (quote eshell-input-filter-initial-space)) + '(eshell-input-filter 'eshell-input-filter-initial-space) + '(fci-rule-color "#5B6268") '(flycheck-mode-line-prefix "flyc") + '(global-auto-revert-non-file-buffers nil) + '(gnus-thread-sort-functions + '(gnus-thread-sort-by-number gnus-thread-sort-by-subject gnus-thread-sort-by-date)) '(ibuffer-formats - (quote - ((mark modified read-only locked " " - (name 18 18 :left :elide) + '((mark modified read-only locked " " + (name 72 72 :left :elide) " " (size-h 9 -1 :right) " " @@ -53,10 +69,9 @@ " " filename-and-process) (mark " " (name 16 -1) - " " filename)))) + " " filename))) '(ibuffer-saved-filter-groups - (quote - (("default" + '(("default" ("dired" (mode . dired-mode)) ("org" @@ -98,65 +113,102 @@ (or (name . "^\\*scratch\\*$") (name . "^\\*Messages\\*$"))) + ("exwm" + (mode . exwm-mode)) ("erc" - (mode . erc-mode)))))) - '(ls-lisp-dirs-first t t) - '(magit-display-buffer-function (quote magit-display-buffer-fullframe-status-v1)) + (mode . erc-mode))))) + '(inhibit-startup-buffer-menu t) + '(inhibit-startup-echo-area-message "bandali") + '(inhibit-startup-screen t) + '(initial-buffer-choice t) + '(initial-scratch-message nil) + '(isearch-allow-scroll t) + '(jdee-db-active-breakpoint-face-colors (cons "#1B2229" "#51afef")) + '(jdee-db-requested-breakpoint-face-colors (cons "#1B2229" "#98be65")) + '(jdee-db-spec-breakpoint-face-colors (cons "#1B2229" "#3f444a")) + '(ls-lisp-dirs-first t) + '(magit-diff-refine-hunk t) + '(magit-display-buffer-function 'magit-display-buffer-fullframe-status-v1) + '(message-elide-ellipsis "[...] +") + '(minions-mode t) + '(mm-uu-diff-groups-regexp + "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)") '(mml-secure-key-preferences - (quote - ((OpenPGP + '((OpenPGP (sign) (encrypt ("ineiev@gnu.org" "BD9D4DEE7B2FF1CBEF2EE0C4E0ACD3E0CBE7874A"))) (CMS (sign) - (encrypt))))) + (encrypt)))) '(mml-secure-openpgp-encrypt-to-self t) '(mml-secure-openpgp-sign-with-sender t) + '(objed-cursor-color "#ff6c6b") + '(oddmuse-username "bandali" t) '(org-agenda-files - (quote - ("~/usr/org/todos/personal.org" "~/usr/org/todos/habits.org" "~/src/git/masters-thesis/todo.org"))) + '("~/usr/org/todos/personal.org" "~/usr/org/todos/habits.org" "~/src/git/masters-thesis/todo.org")) '(org-agenda-start-on-weekday 0) '(org-agenda-time-leading-zero t) '(org-habit-graph-column 44) - '(org-latex-packages-alist (quote (("" "listings") ("" "color")))) + '(org-latex-packages-alist '(("" "listings") ("" "color"))) '(org-pretty-entities t) - '(page-break-lines-max-width 70 t) - '(projectile-completion-system (quote ivy)) + '(page-break-lines-max-width 70) + '(pdf-view-midnight-colors (cons "#bbc2cf" "#282c34")) + '(pdf-view-resize-factor 1.05) + '(projectile-completion-system 'ivy) '(projectile-mode-line-prefix " proj") '(recentf-max-saved-items 2000) '(recentf-save-file "/home/bandali/.emacs.d/var/recentf-save.el") + '(require-final-newline t) '(safe-local-variable-values - (quote - ((tex-main-file . "../thesis.tex") + '((tex-main-file . "../thesis.tex") (org-export-allow-bind-keywords . t) (eval load-file "thesis.el") (eval modify-syntax-entry 43 "'") (eval modify-syntax-entry 36 "'") (eval modify-syntax-entry 126 "'") - (eval require - (quote org-ref)) + (eval require 'org-ref) (eval when - (featurep - (quote typo) - (typo-mode -1))) - (eval add-hook - (quote after-save-hook) - (function a/async-babel-tangle) - (quote append) - (quote local)) - (eval add-hook - (quote after-save-hook) - (quote org-beamer-export-to-latex) - t t) + (featurep 'typo + (typo-mode -1))) + (eval add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local) + (eval add-hook 'after-save-hook 'org-beamer-export-to-latex t t) (eval setq org-latex-prefer-user-labels t) - (eval add-hook - (quote after-save-hook) - (quote org-latex-export-to-latex) - t t)))) - '(save-place-file "/home/bandali/.emacs.d/var/save-place.el") - '(savehist-file "/home/bandali/.emacs.d/var/savehist.el" t) - '(unkillable-buffers (quote ("^\\*scratch\\*$" "^\\*Messages\\*$"))) + (eval add-hook 'after-save-hook 'org-latex-export-to-latex t t))) + '(save-interprogram-paste-before-kill t) + '(save-place-file "/home/bandali/.emacs.d/var/save-place.el" t) + '(savehist-file "/home/bandali/.emacs.d/var/savehist.el") + '(search-default-mode 'char-fold-to-regexp) + '(split-width-threshold 150) + '(text-scale-mode-step 1.05) + '(unkillable-buffers '("^\\*scratch\\*$" "^\\*Messages\\*$")) + '(vc-annotate-background "#282c34") + '(vc-annotate-color-map + (list + (cons 20 "#98be65") + (cons 40 "#b4be6c") + (cons 60 "#d0be73") + (cons 80 "#ECBE7B") + (cons 100 "#e6ab6a") + (cons 120 "#e09859") + (cons 140 "#da8548") + (cons 160 "#d38079") + (cons 180 "#cc7cab") + (cons 200 "#c678dd") + (cons 220 "#d974b7") + (cons 240 "#ec7091") + (cons 260 "#ff6c6b") + (cons 280 "#cf6162") + (cons 300 "#9f585a") + (cons 320 "#6f4e52") + (cons 340 "#5B6268") + (cons 360 "#5B6268"))) + '(vc-annotate-very-old-color nil) + '(vc-git-print-log-follow t) + '(version-control t) + '(view-read-only t) + '(web-mode-enable-auto-indentation nil t) '(which-key-add-column-padding 5) '(which-key-max-description-length 32)) (custom-set-faces @@ -165,6 +217,11 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(dired-directory ((t (:weight semi-bold)))) + '(ivy-current-match ((((class color) (background light)) :background "#d7d7d7" :foreground "black") (((class color) (background dark)) :background "#65a7e2" :foreground "black"))) + '(ivy-minibuffer-match-face-1 ((t (:background "#eeeeee")))) + '(ivy-minibuffer-match-face-2 ((t (:background "#e7e7e7" :weight bold)))) + '(ivy-minibuffer-match-face-3 ((t (:background "light goldenrod" :weight semi-bold)))) + '(ivy-minibuffer-match-face-4 ((t (:background "misty rose" :weight semi-bold)))) '(ivy-virtual ((t (:inherit font-lock-builtin-face :foreground "dim gray")))) '(magit-diff-file-heading ((t (:weight normal)))) '(quote (org-block-begin-line ((t (:foreground "#5a5b5a" :background "#1d1f21"))))) -- 2.20.1 From 753f3ea721a3bd54db96abc7d6e063b82b6e8e96 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 4 Jan 2020 16:25:52 -0500 Subject: [PATCH 04/16] urxvt: fix copy & paste --- .Xresources.d/rxvt-unicode | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.Xresources.d/rxvt-unicode b/.Xresources.d/rxvt-unicode index 3953c58..cc5f766 100644 --- a/.Xresources.d/rxvt-unicode +++ b/.Xresources.d/rxvt-unicode @@ -29,11 +29,15 @@ URxvt.keysym.M-Escape: perl:keyboard-select:activate URxvt.keysym.M-s: perl:keyboard-select:search URxvt.url-launcher: /usr/bin/abrowser URxvt.matcher.button: 1 -URxvt.iso14755: false -URxvt.iso14755_53: false -URxvt.keysym.M-c: perl:clipboard:copy -URxvt.keysym.M-v: perl:clipboard:paste +! URxvt.iso14755: false +! URxvt.iso14755_53: false +! URxvt.keysym.M-c: perl:clipboard:copy +! URxvt.keysym.M-v: perl:clipboard:paste +URxvt.keysym.M-c: eval:selection_to_clipboard +URxvt.keysym.M-v: eval:paste_clipboard URxvt.keysym.C-A-V: perl:clipboard:paste_escaped +! URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard +! URxvt.keysym.Shift-Control-V: eval:paste_clipboard URxvt.keysym.C-Up: font-size:increase URxvt.keysym.C-Down: font-size:decrease URxvt.keysym.C-S-Up: font-size:incglobal -- 2.20.1 From 3619fcff8f8332e59ecdcdf976bdd865792cbe56 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 4 Jan 2020 19:03:40 -0500 Subject: [PATCH 05/16] emacs: update packages, disable orgalist again temporarily --- .emacs.d/init.el | 3 +++ .emacs.d/straight/versions/default.el | 39 +++++++++++++-------------- .signature | 2 +- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 21b47de..30ed59d 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1856,6 +1856,9 @@ This function is intended for use with `ivy-ignore-buffers'." ("M-w" . boxquote-kill-ring-save))) (use-package orgalist + ;; breaks auto-fill-mode, showing this error: + ;; orgalist--boundaries: Lisp nesting exceeds ‘max-lisp-eval-depth’ + :disabled :after message :hook (message-mode . orgalist-mode)) diff --git a/.emacs.d/straight/versions/default.el b/.emacs.d/straight/versions/default.el index d79ef11..a5e3a52 100644 --- a/.emacs.d/straight/versions/default.el +++ b/.emacs.d/straight/versions/default.el @@ -1,12 +1,12 @@ (("alert" . "a73ede85c9cdd7d1a7593d4674cde8eec66c098b") ("alloy-mode" . "0d05bdd10c77ec04c3d61eccf67e68c08284951f") - ("amx" . "b46e77d8ef9d1edf225e67055001f7e85048f842") + ("amx" . "3af93ca066aa42dd1342f1ee0ab0d02360075613") ("auth-password-store" . "ff4940c647786914b3cbef69103d96a4ea334111") ("biblio.el" . "efeeab720cb8e3f95ddb4298d0cc62393cf237e9") ("boxquote.el" . "7e47e0e2853bc1215739b2e28f260e9eed93b2c5") ("bui.el" . "508577a7225b3d07eaefa9444064410af2518675") ("closql" . "1e78f96dc976badb59067c986f7766cce89405cc") - ("company-mode" . "14f80ed7f21d79df6639c7df2a6e61a716c07b81") + ("company-mode" . "3c11c30c9ab41d8a9c88560071c48fbcdcbcba5d") ("crux" . "903db7b1a2052f4959d934cae26ec40a3f323ed4") ("dash.el" . "ea7adeb09c13de58336caa16243e192ea6ee88fb") ("debbugs" . "c50716621d1fd5d4f6ae56968d8a2f815e8051f1") @@ -17,7 +17,7 @@ ("el-dmenu" . "e8cc9b27c79d3ecc252267c082ab8e9c82eab264") ("elisp-refs" . "0a254e6a4dc7fa12857f8334fe6eefa72e49d1c9") ("emacs-async" . "036b475a29bbbee52f88c7d0332341c2643155fb") - ("emacs-doom-themes" . "1f520a882ea924c529e01a561bdbedb3d99cca6c") + ("emacs-doom-themes" . "9cd6872b1af88165834230abd45743036861f925") ("emacs-htmlize" . "86f22f211e9230857197c42a9823d3f05381deed") ("emacs-which-key" . "1e3640e48c31f8062f018b5fc84acad696a0ea2a") ("emacsmirror-mirror" . "f10bab7a1f63c41ded01e85dade0a1e012ab9768") @@ -27,44 +27,43 @@ ("erc-hl-nicks" . "756c4438a8245ccd3e389bf6c9850ee8453783ec") ("erc-scrolltoplace" . "feb0fbf1fd4bdf220ae2d31ea7c066d8e62089f9") ("eshell-up" . "9c100bae5c3020e8d9307e4332d3b64e7dc28519") - ("exec-path-from-shell" . "7e7f38188473ba1fc5325888707de3f9153d76b0") + ("exec-path-from-shell" . "76fbdf5d01bace97dbabf5a4b56b6d9414a7aea3") ("expand-region.el" . "1c31447730443d98f90f65dfcb752f347d46ad1b") ("exwm" . "02ac1ec0f61310cc5e3cd6d413da0737a5b0cb26") ("exwm-edit" . "80c1cbecafde96a59e620d8fa7e5510a5a7bbd3d") ("f.el" . "1814209e2ff43cf2e6d38c4cd476218915f550fb") ("flycheck" . "269237f6529a4ad7db5bbbc5a40c1f038accf3cd") - ("forge" . "2155328d7e13647caf1779ed77a0104659c662c6") - ("geiser" . "6ec47dc1b57c1475ace9869efc1d23332da89e9b") + ("forge" . "269effb4954071f590954c0e5b4faba3f27d03d0") + ("geiser" . "645e4775420c59bb10ef0693ed2631a8df8c0e29") ("george-mode" . "e377ef5bd21783046fc5d02dd4fdc695e9baccc7") - ("ghub" . "0804a981cea6deba69b4566d21f8f12fc5789b17") + ("ghub" . "a9c5ac44bc7691752e6bfea87ac75c7459ce88f3") ("gntp.el" . "767571135e2c0985944017dc59b0be79af222ef5") ("gnu-elpa-mirror" . "b58580c57aab8a451d2db4956c5d5c191ddcb2a6") ("go-mode.el" . "fa2162b6b34af0d2e8038940d8fa13e775a1cae6") ("guix.el" . "c2796e68868c91253b6aca422a9ae07363aa03a9") - ("helm" . "b655105e522a5541e2e155ae9247bd79bdb6afce") + ("helm" . "cb7050e42db2bf4128f3e231df7f5e22d295502d") ("helm-bibtex" . "d4471232be26793fbf56c0ac3690b5f537c378b9") - ("helpful" . "edddccbebd82dde0a18662a0995bfe930112458c") - ("hl-todo" . "6c79749236c8da28183092607f824727464079fd") + ("helpful" . "982dd49c9c7e63fa94b56824f50dea4186081f8e") + ("hl-todo" . "5d2ea49f83a7e6953f9d71de94dee478d08f9543") ("hydra" . "9db28034d7d61bfeff89899633b958f22befc53d") ("key-chord" . "72443e9ff3c4f1c3ccaced3130236801efde3d83") ("lean-mode" . "f26e40daad2c1bd090e440a2b931205ac3b9b613") ("let-alist" . "681570f2abec73ec6494d67f8a904ac9ea15063f") ("log4e" . "c69424e407be0d9d0e54b427d8b18b1ac5a607e2") ("loop.el" . "e22807f83a0890dc8a904c51ee0742c34efccc6c") - ("magit" . "dff0bca6f783d43ca3b116d5cbeda0fbed39246d") - ("magit-popup" . "832465c5022a18d8db7f85da22937ee02e155d8e") + ("magit" . "df191f42a21416ab73616769aa116928db2fec9f") + ("magit-popup" . "df9abf1a1bce3fadb5e0657eb8f4c7026efa3c69") ("markdown-mode" . "e9dff50d572caa96b68a7466c18c97a8d6ed651c") - ("melpa" . "c3b4c0c6a715b4302cc6cb6171b185883f2a87e2") + ("melpa" . "1ca43b6cf089d7c75b1fb483d8356a3ca7fec5bd") ("message-x" . "5524de7bbfdd8749c110f48de5afb024d9f83133") - ("minions" . "ca6a3e77ddbd19cdf363ea71ba357096395a5de5") + ("minions" . "c331c1516111b9d2136e632a218c1d7707215356") ("multiple-cursors.el" . "b880554d04b8f61165afba7d4de19ac9e39bb7ab") ("mwim.el" . "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85") ("no-littering" . "d1d6965c70fc6ce0cfb38a5115d0e112aefac1d7") ("oddmuse-curl" . "167520342f206c6451344d271e66f0f520664021") - ("org" . "09df1499914b37590bf00093855e8e02bd3b311f") + ("org" . "2fde90aa2e5b8ecfab57fb6203b2e33141ebd1d7") ("org-pdftools" . "c48942e616bef7dcf477a0df4e2982e325f8f646") - ("org-ref" . "e64d5b15c1667bcff817940191a45c5ff074a6fb") - ("orgalist" . "21a4c1cfd19920eeb114d550755c4df6fff5d362") + ("org-ref" . "3e168956e1e23fd0899ae51f6baa6b7798b6989c") ("page-break-lines" . "2e1d274e11071bb8daea4d6f4c0369c84466de7a") ("parsebib" . "9a5f1730b8ef1fb6c29262a8ba79f8136e5548d4") ("pass" . "919d8e3826d556433ab67d4ee21a509d209d1baa") @@ -80,17 +79,17 @@ ("shrink-path.el" . "c14882c8599aec79a6e8ef2d06454254bb3e1e41") ("smart-mode-line" . "999be065b195f2eddb4e1b629f99038d832d44b7") ("soap-client" . "847b9c6919ae50bc576b1a887b4c609c6b2329ca") - ("straight.el" . "22415dc2755abdd905a1cf727b0f24746d4dffce") + ("straight.el" . "b4fc6c487553effb8782fe1a393041c4a233ae3f") ("swiper" . "e7eca371522d96d27bc4b2f7d87f19c1b75e927c") ("switch-buffer-functions-el" . "b8d8e01e21ae8c8c84234dddeb3cc8250814f7ba") ("tablist" . "41a9612f51bad36d6689667c11f42f8143103bb2") - ("transient" . "93c9f2a251a4e5f37cd01793b88c1298a29b914e") + ("transient" . "846e0c200ce178026adcf6000a0725779261beba") ("treepy.el" . "306f7031d26e4ebfc9ff36614acdc6993f3e23c3") ("typoel" . "54a9dbcfb24a146fd14232e927109eec59b50171") ("unkillable-scratch" . "b24c2a760529833f230c14cb02ff6e7ec92288ab") ("use-package" . "4b58ab78177f636f862a66c7a8fdcf9b070e0925") ("web-mode" . "cd000fcfce97152f8b831b7eef4ea0d0b1eed11a") - ("with-editor" . "ba4ca8ab34c17fbc4c7af5b9b42c6d3836b48e1a") + ("with-editor" . "7e0bf753709f1775d2bbbb6edf4482fca7fd286a") ("xelb" . "5970017d9b35e838eb02ead9dece3998ea5375ae") ("xml-rpc-el" . "8f624f8b964e9145acb504e4457c9510e87dd93c") ("yasnippet" . "3bf9a3b1af37174a004798b7195826af0123fa6a") diff --git a/.signature b/.signature index 7d0dbe0..85fc1a4 100644 --- a/.signature +++ b/.signature @@ -1,4 +1,4 @@ Amin Bandali -Free Software Activist | GNU Maintainer & Webmaster +Free Software activist | GNU maintainer & webmaster GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 https://bndl.org -- 2.20.1 From 8cee0db424b28ad91b2a12c4aed7009f7e4ed235 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sat, 4 Jan 2020 19:04:03 -0500 Subject: [PATCH 06/16] emacs: add binding for debbugs-gnu-bugs to jump to a bug given its # --- .emacs.d/init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 30ed59d..da48b9d 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2006,6 +2006,7 @@ This function is intended for use with `ivy-ignore-buffers'." :files (:defaults "Debbugs.wsdl")) :bind (("C-c D d" . debbugs-gnu) + ("C-c D b" . debbugs-gnu-bugs) ("C-c D e" . (lambda () (interactive) -- 2.20.1 From ad61316bbda9c2d049907f3769c48d727fc62877 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 5 Jan 2020 00:06:00 -0500 Subject: [PATCH 07/16] =?utf8?q?emacs:=20display-time-mode:=20show=20gnus?= =?utf8?q?=E2=80=99s=20icon=20instead=20of=20"Mail"?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .emacs.d/init.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index da48b9d..4e5e8f2 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -419,7 +419,9 @@ For disabling the behaviour for certain buffers and/or modes." (display-time-mode) :custom (display-time-default-load-average nil) - (display-time-format "%a %b %-e, %-l:%M%P")) + (display-time-format "%a %b %-e, %-l:%M%P") + (display-time-mail-icon '(image :type xpm :file "gnus/gnus-pointer.xpm" :ascent center)) + (display-time-use-mail-icon t)) (use-feature battery :if b/exwm-p -- 2.20.1 From 5a0a67b46aa756f8adc2a856a63f59d62930dcce Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 5 Jan 2020 22:56:12 -0500 Subject: [PATCH 08/16] emacs: typo: disable for git-commit-mode --- .emacs.d/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 4e5e8f2..055e664 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1869,7 +1869,7 @@ This function is intended for use with `ivy-ignore-buffers'." :defer 0.5 :config :hook (((text-mode erc-mode web-mode) . typo-mode) - (tex-mode . (lambda ()(typo-mode -1))))) + ((tex-mode git-commit-mode) . (lambda ()(typo-mode -1))))) (use-feature electric :disabled -- 2.20.1 From 5fde47fe68860bf9f1c018db9336faa76a109d9f Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 5 Jan 2020 22:56:35 -0500 Subject: [PATCH 09/16] guix: reinstall chaman, from scratch --- .config/guix/system/chaman.scm | 141 +++++++++++++-------------------- 1 file changed, 54 insertions(+), 87 deletions(-) diff --git a/.config/guix/system/chaman.scm b/.config/guix/system/chaman.scm index 53ec86d..e40a11c 100644 --- a/.config/guix/system/chaman.scm +++ b/.config/guix/system/chaman.scm @@ -1,89 +1,56 @@ -(use-modules (gnu) - (gnu packages linux) - (srfi srfi-1)) ;for 'remove' -(use-service-modules admin desktop mail networking pm ssh xorg) +(use-modules (gnu)) +(use-service-modules desktop networking ssh xorg) (operating-system - (host-name "chaman") - (locale "en_CA.utf8") - (timezone "America/Toronto") - (keyboard-layout - (keyboard-layout "us" "basic")) - (bootloader - (bootloader-configuration - (bootloader grub-bootloader) - (target "/dev/sda") - (keyboard-layout keyboard-layout))) - (mapped-devices - (list (mapped-device - (source - (uuid "3d9d579d-3626-4fb2-9c16-beae804f1cf9")) - (target "groot") - (type luks-device-mapping)))) - (file-systems - (cons* (file-system - (mount-point "/") - (device "/dev/mapper/groot") - (type "ext4") - (dependencies mapped-devices)) - %base-file-systems)) - (users (cons* (user-account - (name "bandali") - (group "users") - (home-directory "/home/bandali") - (supplementary-groups - '("wheel" "netdev" "audio" "video"))) - %base-user-accounts)) - (packages - (append - (list (specification->package "nss-certs")) - %base-packages)) - (services - (cons* - (service xfce-desktop-service-type) - (service openssh-service-type) - (set-xorg-configuration - (xorg-configuration - (keyboard-layout keyboard-layout))) - (dovecot-service #:config - (dovecot-configuration - ;; (log-path "/dev/stderr") - (protocols (list (protocol-configuration - (name "imap")))) - (ssl? "no") - (listen '("127.0.0.1")) - (disable-plaintext-auth? #f) - (auth-mechanisms '("plain")) - (postmaster-address "bandali@gnu.local") - (mail-location "maildir:/home/bandali/mail/%d/%n/mail") - (userdbs (list (userdb-configuration - (driver "static") - (args (list "uid=bandali" "gid=users" "home=/home/bandali/mail/%d/%n"))))) - (passdbs (list (passdb-configuration - (driver "passwd-file") - (args (list "/home/bandali/.config/dovecot/passwd"))))))) - (service rottlog-service-type - (rottlog-configuration)) - (service thermald-service-type) - (service tlp-service-type - (tlp-configuration - (cpu-boost-on-ac? #t) - (sound-power-save-on-bat 0) - (sound-power-save-controller? #f) - ;; (usb-blacklist "0e8f:00a8") ;for some reason doesn't seem to work - (usb-autosuspend? #f))) - (simple-service 'my-powertop-auto-tune activation-service-type - #~(zero? (system* #$(file-append powertop "/sbin/powertop") - "--auto-tune"))) - ;; (service slim-service-type - ;; (slim-configuration - ;; (display ":0") - ;; (vt "vt7"))) - ;; (service slim-service-type - ;; (slim-configuration - ;; (display ":1") - ;; (vt "vt8"))) - ;; (remove (lambda (service) - ;; (eq? (service-kind service) gdm-service-type)) - ;; %desktop-services) - %desktop-services))) + (host-name "chaman") + (locale "en_CA.utf8") + (timezone "Canada/Eastern") + (keyboard-layout + (keyboard-layout "us" "basic")) + (bootloader + (bootloader-configuration + (bootloader grub-bootloader) + (target "/dev/sda") + (keyboard-layout keyboard-layout))) + (mapped-devices + (list (mapped-device + (source + (uuid "9a96bc64-ab47-49f9-aae0-d7ddeabc4011")) + (target "groot") + (type luks-device-mapping)) + (mapped-device + (source + (uuid "8cb5bde9-fe13-4490-87a1-caf3e1a2ee52")) + (target "data") + (type luks-device-mapping)))) + (file-systems + (cons* (file-system + (mount-point "/") + (device "/dev/mapper/groot") + (type "ext4") + (dependencies mapped-devices)) + (file-system + (mount-point "/data") + (device "/dev/mapper/data") + (type "ext4") + (dependencies mapped-devices)) + %base-file-systems)) + (users + (cons* (user-account + (name "bandali") + (group "users") + (home-directory "/home/bandali") + (supplementary-groups + '("wheel" "netdev" "audio" "video"))) + %base-user-accounts)) + (packages + (append + (list (specification->package "nss-certs")) + %base-packages)) + (services + (append + (list (service xfce-desktop-service-type) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)))) + %desktop-services))) -- 2.20.1 From 47904cb736a67cadb9531a3862954ce8550c7cef Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 8 Jan 2020 00:44:47 -0500 Subject: [PATCH 10/16] emacs,guix: port init.el over to guix TODO: consider writing guix package definitions for these: - alloy-mode - george-mode - org-pdftools - oddmuse-curl - znc.el (my fork) --- .config/guix/channels.scm | 7 + .config/guix/manifest/chaman.scm | 27 +- .emacs.d/init.el | 429 ++++++++++++------------------- 3 files changed, 190 insertions(+), 273 deletions(-) create mode 100644 .config/guix/channels.scm diff --git a/.config/guix/channels.scm b/.config/guix/channels.scm new file mode 100644 index 0000000..61a3d36 --- /dev/null +++ b/.config/guix/channels.scm @@ -0,0 +1,7 @@ +(list (channel + (name 'guix) + ;; (url "file:///home/bandali/src/git/guix") + (url "https://git.savannah.gnu.org/git/guix.git")) + (channel + (name 'guix-bandali) + (url "file:///home/bandali/src/git/guix-bandali"))) diff --git a/.config/guix/manifest/chaman.scm b/.config/guix/manifest/chaman.scm index 1e2dff2..5a41334 100644 --- a/.config/guix/manifest/chaman.scm +++ b/.config/guix/manifest/chaman.scm @@ -5,18 +5,18 @@ "emacs" "emacs-alert" "emacs-async" + "emacs-biblio-git" "emacs-boxquote" "emacs-company" "emacs-company-ebdb" "emacs-crux" "emacs-dash" "emacs-debbugs" - "emacs-delight" "emacs-diff-hl" - ;; "emacs-doom-themes" + "emacs-doom-themes" "emacs-ebdb" "emacs-emmet-mode" - "emacs-emojify" + ;; "emacs-emojify" "emacs-erc-hl-nicks" "emacs-erc-scrolltoplace" "emacs-eshell-up" @@ -25,16 +25,17 @@ "emacs-flycheck" "emacs-geiser" ;; "emacs-gnus-harvest" - "emacs-go-mode" "emacs-guix" "emacs-helpful" "emacs-hl-todo" "emacs-ivy" "emacs-magit" "emacs-message-x" - "emacs-multi-term" + "emacs-minions" + ;; "emacs-multi-term" "emacs-multiple-cursors" "emacs-mwim" + "emacs-no-littering" "emacs-org" "emacs-org-contrib" "emacs-org-ref" @@ -43,7 +44,7 @@ "emacs-pass" "emacs-pinentry" "emacs-projectile" - "emacs-shrink-path" + "emacs-shrink-path-git" "emacs-smart-mode-line" "emacs-smex" "emacs-typo" @@ -59,7 +60,7 @@ "font-linuxlibertine" "font-sil-gentium" "font-tex-gyre" - "font-ubuntu" + ;; "font-ubuntu" "getmail" "gettext" "gimp" @@ -72,26 +73,28 @@ "hunspell" "hunspell-dict-en-ca" "hunspell-dict-en-us" - "icecat" + ;; "icecat" "inkscape" "isync" "mpv" "msmtp" "ncdu" "notmuch" + "openssh" "openssl" "password-store" "pinentry-emacs" - "poppler" ;for 'pdffonts' + "poppler" ; for 'pdffonts' "rsync" "rtv" "screen" "setxkbmap" - "texlive" - ;"texlive-base" + ;; "texlive" + ;; "texlive-base" "thinkfan" + "wget" "xdg-user-dirs" - ;"xkbcomp" + ;; "xkbcomp" "xmodmap" "xrdb" "youtube-dl")) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 055e664..a043652 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1,6 +1,6 @@ ;;; init.el --- bandali's emacs configuration -*- lexical-binding: t -*- -;; Copyright (C) 2018-2019 Amin Bandali +;; Copyright (C) 2018-2020 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 @@ -18,8 +18,10 @@ ;;; Commentary: ;; Emacs configuration of Amin Bandali, computer scientist, free -;; software activist, GNU maintainer & webmaster. Uses straight.el -;; for purely functional and fully reproducible package management. +;; software activist, GNU maintainer & webmaster. Packages are +;; installed from GNU Guix, for purely functional and fully +;; reproducible package management. Before switching to GNU Guix, +;; I used straight.el for package management, and before that, Borg. ;; Over the years, I've taken inspiration from configurations of many ;; great people. Some that I can remember off the top of my head are: @@ -94,80 +96,16 @@ ;;; Package management -;; No package.el (for emacs 26 and before, uncomment the following) -;; Not necessary when using straight.el -;; (C-h v straight-package-neutering-mode RET) - -(when (and - (not (featurep 'straight)) - (version< emacs-version "27")) +;; No package.el (for emacs 26 and before) +(when (version< emacs-version "27") (setq package-enable-at-startup nil) ;; (package-initialize) ) - ;; for emacs 27 and later, we use early-init.el. see ;; https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=24acb31c04b4048b85311d794e600ecd7ce60d3b -;; straight.el - -;; Main engine start... - -(setq straight-repository-branch "develop" - straight-check-for-modifications '(check-on-save find-when-checking)) - -(defun b/bootstrap-straight () - (defvar bootstrap-version) - (let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage))) - -;; Solid rocket booster ignition... - -(b/bootstrap-straight) - -;; We have lift off! - -(setq straight-use-package-by-default t) - -(defmacro use-feature (name &rest args) - "Like `use-package', but with `straight-use-package-by-default' disabled." - (declare (indent 1)) - `(use-package ,name - :straight nil - ,@args)) - -(with-eval-after-load 'use-package-core - (let ((upflk (car use-package-font-lock-keywords))) - (font-lock-add-keywords - 'emacs-lisp-mode - `((,(replace-regexp-in-string - "use-package" "use-feature" - (car upflk)) - ,@(cdr upflk)))))) - -(with-eval-after-load 'recentf - (add-to-list 'recentf-exclude - (expand-file-name "~/.emacs.d/straight/build/"))) - -(defun b/reload-init () - "Reload `user-init-file'." - (interactive) - (setq b/before-user-init-time (current-time) - b/file-name-handler-alist file-name-handler-alist) - (load user-init-file nil 'nomessage) - (b/post-init)) ;; use-package -(straight-use-package 'use-package) - (if nil ; set to t when need to debug init (progn (setq use-package-verbose t @@ -195,7 +133,7 @@ (defalias 'b/var 'no-littering-expand-var-file-name)) ;; separate custom file (don't want it mixing with init.el) -(use-feature custom +(use-package custom :no-require :config (setq custom-file (b/etc "custom.el")) @@ -228,7 +166,7 @@ ;; start up emacs server. see ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html#Emacs-Server -(use-feature server +(use-package server :defer 0.4 :config (or (server-running-p) (server-mode))) @@ -357,7 +295,7 @@ For disabling the behaviour for certain buffers and/or modes." ;;;; Elisp-level customizations -(use-feature startup +(use-package startup :no-require :demand :config @@ -376,7 +314,7 @@ For disabling the behaviour for certain buffers and/or modes." (inhibit-startup-screen t) (inhibit-startup-echo-area-message user-login-name)) -(use-feature files +(use-package files :no-require :demand :custom @@ -403,7 +341,7 @@ For disabling the behaviour for certain buffers and/or modes." (defalias 'yes-or-no-p #'y-or-n-p) ;; enable automatic reloading of changed buffers and files -(use-feature autorevert +(use-package autorevert :demand :config (global-auto-revert-mode 1) @@ -412,7 +350,7 @@ For disabling the behaviour for certain buffers and/or modes." (global-auto-revert-non-file-buffers nil)) ;; time and battery in mode-line -(use-feature time +(use-package time :if b/exwm-p :demand :config @@ -423,7 +361,7 @@ For disabling the behaviour for certain buffers and/or modes." (display-time-mail-icon '(image :type xpm :file "gnus/gnus-pointer.xpm" :ascent center)) (display-time-use-mail-icon t)) -(use-feature battery +(use-package battery :if b/exwm-p :demand :config @@ -431,20 +369,20 @@ For disabling the behaviour for certain buffers and/or modes." :custom (battery-mode-line-format " %p%% %t")) -(use-feature fringe +(use-package fringe :demand :config ;; smaller fringe ;; (fringe-mode '(3 . 1)) (fringe-mode nil)) -(use-feature winner +(use-package winner :demand :config ;; enable winner-mode (C-h f winner-mode RET) (winner-mode 1)) -(use-feature compile +(use-package compile :config ;; don't display *compilation* buffer on success. based on ;; https://stackoverflow.com/a/17788551, with changes to use `cl-letf' @@ -467,7 +405,7 @@ For disabling the behaviour for certain buffers and/or modes." ad-do-it)) (ad-activate 'compilation-start)) -(use-feature isearch +(use-package isearch :custom ;; allow scrolling in Isearch (isearch-allow-scroll t) @@ -479,44 +417,47 @@ For disabling the behaviour for certain buffers and/or modes." ;; uncomment to extend the above behaviour to query-replace (comment - (use-feature replace + (use-package replace :custom (replace-char-fold t))) -(use-feature vc +(use-package vc :bind ("C-x v C-=" . vc-ediff)) -(use-feature vc-git +(use-package vc-git :after vc :custom (vc-git-print-log-follow t)) -(use-feature ediff +(use-package ediff :config (add-hook 'ediff-after-quit-hook-internal 'winner-undo) :custom ((ediff-window-setup-function 'ediff-setup-windows-plain) (ediff-split-window-function 'split-window-horizontally))) -(use-feature face-remap +(use-package face-remap :custom ;; gentler font resizing (text-scale-mode-step 1.05)) -(use-feature mwheel +(use-package mwheel :defer 0.4 :config (setq mouse-wheel-scroll-amount '(1 ((shift) . 1)) ; one line at a time mouse-wheel-progressive-speed nil ; don't accelerate scrolling mouse-wheel-follow-mouse t)) ; scroll window under mouse -(use-feature pixel-scroll +(use-package pixel-scroll :defer 0.4 :config (pixel-scroll-mode 1)) -(use-feature epg-config +(use-package epg-config :custom - ((epg-gpg-program (executable-find "gpg")))) + (epg-gpg-program (executable-find "gpg"))) -(use-feature auth-source +(use-package epg + :after epg-config) + +(use-package auth-source :custom (auth-sources '("~/.authinfo.gpg")) (authinfo-hidden (regexp-opt '("password" "client-secret" "token")))) @@ -565,32 +506,6 @@ For disabling the behaviour for certain buffers and/or modes." ;; ("" . switch-to-buffer) ) -(bind-keys - :prefix-map b/straight-prefix-map - :prefix "C-c p s" - ("u" . straight-use-package) - ("f" . straight-freeze-versions) - ("t" . straight-thaw-versions) - ("P" . straight-prune-build) - ("g" . straight-get-recipe) - ("r" . b/reload-init) - ;; M-x ^straight-.*-all$ - ("a c" . straight-check-all) - ("a f" . straight-fetch-all) - ("a m" . straight-merge-all) - ("a n" . straight-normalize-all) - ("a F" . straight-pull-all) - ("a P" . straight-push-all) - ("a r" . straight-rebuild-all) - ;; M-x ^straight-.*-package$ - ("p c" . straight-check-package) - ("p f" . straight-fetch-package) - ("p m" . straight-merge-package) - ("p n" . straight-normalize-package) - ("p F" . straight-pull-package) - ("p P" . straight-push-package) - ("p r" . straight-rebuild-package)) - ;;; Essential packages @@ -610,12 +525,12 @@ For disabling the behaviour for certain buffers and/or modes." :hook ((exwm-update-class . b/exwm-rename-buffer) (exwm-update-title . b/exwm-rename-buffer))) -(use-feature exwm-config +(use-package exwm-config :demand :after exwm :hook (exwm-init . exwm-config--fix/ido-buffer-window-other-frame)) -(use-feature exwm-input +(use-package exwm-input :demand :after exwm :config @@ -765,7 +680,7 @@ around if needed." ([?\s-s] . [?\C-s]) ([?\C-g] . [escape])))) -(use-feature exwm-manage +(use-package exwm-manage :demand :after exwm :hook @@ -785,7 +700,7 @@ around if needed." '(([?\C-p] . [C-up]) ([?\C-n] . [C-down]))))))))) -(use-feature exwm-randr +(use-package exwm-randr :demand :after exwm :config @@ -793,13 +708,13 @@ around if needed." :custom (exwm-randr-workspace-monitor-plist '(1 "VGA-1"))) -(use-feature exwm-systemtray +(use-package exwm-systemtray :demand :after exwm :config (exwm-systemtray-enable)) -(use-feature exwm-workspace) +(use-package exwm-workspace) (use-package exwm-edit :demand @@ -808,7 +723,7 @@ around if needed." ;; use the org-plus-contrib package to get the whole deal (use-package org-plus-contrib) -(use-feature org +(use-package org :defer 0.5 :config (setq org-src-tab-acts-natively t @@ -847,7 +762,7 @@ around if needed." '(org-block ((t (:background "#1d1f21")))) '(org-latex-and-related ((t (:foreground "#b294bb"))))) -(use-feature ox-latex +(use-package ox-latex :after ox :config (setq org-latex-listings 'listings @@ -863,7 +778,7 @@ around if needed." t) (require 'ox-beamer)) -(use-feature ox-extra +(use-package ox-extra :config (ox-extras-activate '(latex-header-blocks ignore-headlines))) @@ -933,7 +848,7 @@ around if needed." :custom-face (magit-diff-file-heading ((t (:weight normal))))) ;; recently opened files -(use-feature recentf +(use-package recentf :defer 0.2 ;; :config ;; (add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:") @@ -952,7 +867,7 @@ around if needed." ("C-c x" . execute-extended-command)) (comment - (use-feature ido + (use-package ido :demand :bind (:map ido-common-completion-map @@ -995,7 +910,7 @@ around if needed." :config (crm-custom-mode 1)) - (use-feature icomplete + (use-package icomplete :defer 0.3 :config (icomplete-mode 1))) @@ -1074,7 +989,7 @@ This function is intended for use with `ivy-ignore-buffers'." ("C-z" . helm-select-action)) ; List actions :config (helm-mode 1))) -(use-feature eshell +(use-package eshell :defer 0.5 :commands eshell :bind ("C-c a s e" . eshell) @@ -1109,7 +1024,7 @@ This function is intended for use with `ivy-ignore-buffers'." (eshell-hist-ignoredups t) (eshell-input-filter 'eshell-input-filter-initial-space)) -(use-feature ibuffer +(use-package ibuffer :bind (("C-x C-b" . ibuffer) :map ibuffer-mode-map @@ -1159,7 +1074,7 @@ This function is intended for use with `ivy-ignore-buffers'." (mode . scheme-mode) (mode . haskell-mode) (mode . lean-mode) - (mode . go-mode) + ;; (mode . go-mode) (mode . alloy-mode))) ("tex" (or @@ -1184,7 +1099,7 @@ This function is intended for use with `ivy-ignore-buffers'." " " filename))) :hook (ibuffer . (lambda () (ibuffer-switch-to-saved-filter-groups "default")))) -(use-feature outline +(use-package outline :disabled :hook (prog-mode . outline-minor-mode) :bind @@ -1202,10 +1117,10 @@ This function is intended for use with `ivy-ignore-buffers'." ("h" . outline-hide-subtree) ("s" . outline-show-subtree))) -(use-feature ls-lisp +(use-package ls-lisp :custom (ls-lisp-dirs-first t)) -(use-feature dired +(use-package dired :config (setq dired-dwim-target t dired-listing-switches "-alh" @@ -1255,12 +1170,12 @@ This function is intended for use with `ivy-ignore-buffers'." (b/dired-start-process "zathura")))) :hook (dired-mode . dired-hide-details-mode)) -(use-feature help +(use-package help :config (temp-buffer-resize-mode) (setq help-window-select t)) -(use-feature tramp +(use-package tramp :config (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:")) (add-to-list 'tramp-default-proxies-alist '("localhost" nil nil)) @@ -1270,7 +1185,7 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package dash :config (dash-enable-font-lock)) -(use-feature doc-view +(use-package doc-view :bind (:map doc-view-mode-map ("M-RET" . image-previous-line))) @@ -1286,20 +1201,20 @@ This function is intended for use with `ivy-ignore-buffers'." :hook (magit-post-refresh . diff-hl-magit-post-refresh)) ;; display Lisp objects at point in the echo area -(use-feature eldoc +(use-package eldoc :when (version< "25" emacs-version) :config (global-eldoc-mode)) ;; highlight matching parens -(use-feature paren +(use-package paren :demand :config (show-paren-mode)) -(use-feature elec-pair +(use-package elec-pair :demand :config (electric-pair-mode)) -(use-feature simple +(use-package simple :config (column-number-mode) :custom ;; Save what I copy into clipboard from other applications into Emacs' @@ -1309,32 +1224,32 @@ This function is intended for use with `ivy-ignore-buffers'." (save-interprogram-paste-before-kill t)) ;; save minibuffer history -(use-feature savehist +(use-package savehist :demand :config (savehist-mode) (add-to-list 'savehist-additional-variables 'kill-ring)) ;; automatically save place in files -(use-feature saveplace +(use-package saveplace :when (version< "25" emacs-version) :config (save-place-mode)) -(use-feature prog-mode +(use-package prog-mode :config (global-prettify-symbols-mode) (defun indicate-buffer-boundaries-left () (setq indicate-buffer-boundaries 'left)) (add-hook 'prog-mode-hook #'indicate-buffer-boundaries-left)) -(use-feature text-mode +(use-package text-mode :bind (:map text-mode-map ("C-*" . b/insert-asterism)) :hook ((text-mode . indicate-buffer-boundaries-left) (text-mode . flyspell-mode))) -(use-feature conf-mode +(use-package conf-mode :mode "\\.*rc$") -(use-feature sh-mode +(use-package sh-mode :mode "\\.bashrc$") (use-package company @@ -1369,10 +1284,10 @@ This function is intended for use with `ivy-ignore-buffers'." (setq flycheck-check-syntax-automatically '(mode-enabled save)) :custom (flycheck-mode-line-prefix "flyc")) -(use-feature flyspell) +(use-package flyspell) ;; http://endlessparentheses.com/ispell-and-apostrophes.html -(use-feature ispell +(use-package ispell :defer 0.6 :config ;; ’ can be part of a word @@ -1398,42 +1313,42 @@ This function is intended for use with `ivy-ignore-buffers'." (advice-add #'ispell-parse-output :filter-args #'endless/replace-quote)) -(use-feature abbrev +(use-package abbrev :hook (text-mode . abbrev-mode)) ;;; Programming modes -(use-feature lisp-mode +(use-package lisp-mode :config (defun indent-spaces-mode () (setq indent-tabs-mode nil)) (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) -(use-feature reveal +(use-package reveal :hook (emacs-lisp-mode . reveal-mode)) -(use-feature elisp-mode) - -(use-package alloy-mode - :straight (:host github :repo "dwwmmn/alloy-mode") - :mode "\\.\\(als\\|dsh\\)\\'" - :config - (setq alloy-basic-offset 2) - ;; (defun b/alloy-simple-indent (start end) - ;; (interactive "r") - ;; ;; (if (region-active-p) - ;; ;; (indent-rigidly start end alloy-basic-offset) - ;; ;; (if (bolp) - ;; ;; (indent-rigidly (line-beginning-position) - ;; ;; (line-end-position) - ;; ;; alloy-basic-offset))) - ;; (indent-to (+ (current-column) alloy-basic-offset))) - :bind (:map alloy-mode-map - ("RET" . electric-newline-and-maybe-indent) - ;; ("TAB" . b/alloy-simple-indent) - ("TAB" . indent-for-tab-command)) - :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) +(use-package elisp-mode) + +;; (use-package alloy-mode +;; :straight (:host github :repo "dwwmmn/alloy-mode") +;; :mode "\\.\\(als\\|dsh\\)\\'" +;; :config +;; (setq alloy-basic-offset 2) +;; ;; (defun b/alloy-simple-indent (start end) +;; ;; (interactive "r") +;; ;; ;; (if (region-active-p) +;; ;; ;; (indent-rigidly start end alloy-basic-offset) +;; ;; ;; (if (bolp) +;; ;; ;; (indent-rigidly (line-beginning-position) +;; ;; ;; (line-end-position) +;; ;; ;; alloy-basic-offset))) +;; ;; (indent-to (+ (current-column) alloy-basic-offset))) +;; :bind (:map alloy-mode-map +;; ("RET" . electric-newline-and-maybe-indent) +;; ;; ("TAB" . b/alloy-simple-indent) +;; ("TAB" . indent-for-tab-command)) +;; :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) (eval-when-compile (defvar lean-mode-map)) (use-package lean-mode @@ -1477,11 +1392,11 @@ This function is intended for use with `ivy-ignore-buffers'." ;; alternative: hs-lint https://github.com/ndmitchell/hlint/blob/20e116a043f2073c57b17b24ae6364b5e433ba7e/data/hs-lint.el ) -(use-feature sgml-mode +(use-package sgml-mode :config (setq sgml-basic-offset 2)) -(use-feature css-mode +(use-package css-mode :config (setq css-indent-offset 2)) @@ -1578,7 +1493,7 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package geiser) -(use-feature geiser-guile +(use-package geiser-guile :config (setq geiser-guile-load-path "~/src/git/guix")) @@ -1589,13 +1504,14 @@ This function is intended for use with `ivy-ignore-buffers'." :custom (font-latex-fontify-sectioning 'color))) -(use-package go-mode) +(use-package go-mode + :disabled) (use-package po-mode :hook (po-mode . (lambda () (run-with-timer 0.1 nil 'View-exit)))) -(use-feature tex-mode +(use-package tex-mode :config (cl-delete-if (lambda (p) (string-match "^---?" (car p))) @@ -1603,9 +1519,9 @@ This function is intended for use with `ivy-ignore-buffers'." :hook ((tex-mode . auto-fill-mode) (tex-mode . flyspell-mode))) -(use-package george-mode - :straight (:host nil :repo "https://git.shemshak.org/amin/george-mode") - :mode "\\.grg\\'") +;; (use-package george-mode +;; :straight (:host nil :repo "https://git.shemshak.org/amin/george-mode") +;; :mode "\\.grg\\'") ;;; Theme @@ -1707,10 +1623,6 @@ This function is intended for use with `ivy-ignore-buffers'." ;; prefixes for global prefixes and minor modes "C-c @" "outline" "C-c !" "flycheck" - ;; "C-c 8" "typo" - ;; "C-c 8 -" "typo/dashes" - ;; "C-c 8 <" "typo/left-brackets" - ;; "C-c 8 >" "typo/right-brackets" "C-x RET" "coding system" "C-x 8" "unicode" "C-x @" "event modifiers" @@ -1735,14 +1647,10 @@ This function is intended for use with `ivy-ignore-buffers'." "C-c g" "magit" "C-S-h" "help(ful)" "C-c m" "multiple-cursors" - "C-c P" "projectile" - "C-c P s" "projectile/search" - "C-c P x" "projectile/execute" - "C-c P 4" "projectile/other-window" - "C-c p" "package management" - "C-c ps" "straight" - "C-c psa" "all" - "C-c psp" "package" + "C-c p" "projectile" + "C-c p s" "projectile/search" + "C-c p x" "projectile/execute" + "C-c p 4" "projectile/other-window" "C-c q" "boxquote" "C-c t" "themes" ;; "s-O" "outline" @@ -1783,7 +1691,7 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package projectile :defer 0.5 - :bind-keymap ("C-c P" . projectile-command-map) + :bind-keymap ("C-c p" . projectile-command-map) :config (projectile-mode) @@ -1871,7 +1779,7 @@ This function is intended for use with `ivy-ignore-buffers'." :hook (((text-mode erc-mode web-mode) . typo-mode) ((tex-mode git-commit-mode) . (lambda ()(typo-mode -1))))) -(use-feature electric +(use-package electric :disabled :demand :config @@ -1978,6 +1886,7 @@ This function is intended for use with `ivy-ignore-buffers'." ("a" . mc/mark-all-like-this)))) (use-package forge + :disabled :demand :after magit) @@ -2002,10 +1911,6 @@ This function is intended for use with `ivy-ignore-buffers'." (yas-global-mode)) (use-package debbugs - :straight (debbugs - :host github - :repo "emacs-straight/debbugs" - :files (:defaults "Debbugs.wsdl")) :bind (("C-c D d" . debbugs-gnu) ("C-c D b" . debbugs-gnu-bugs) @@ -2044,7 +1949,7 @@ This function is intended for use with `ivy-ignore-buffers'." :disabled :hook (erc-mode . emojify-mode)) -(use-feature window +(use-package window :bind (("C-c w e" . (lambda () (interactive) @@ -2063,7 +1968,7 @@ This function is intended for use with `ivy-ignore-buffers'." :custom (split-width-threshold 150)) -(use-feature windmove +(use-package windmove :defer 0.6 :bind (("C-c w h" . windmove-left) @@ -2096,6 +2001,7 @@ This function is intended for use with `ivy-ignore-buffers'." :custom (pdf-view-resize-factor 1.05)) (use-package org-pdftools + :disabled :straight (:host github :repo "fuxialexander/org-pdftools") :demand :after org @@ -2105,10 +2011,10 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package biblio) -(use-feature reftex +(use-package reftex :hook (latex-mode . reftex-mode)) -(use-feature reftex-cite +(use-package reftex-cite :after reftex :disabled ; enable to disable ; reftex-cite's default choice @@ -2155,17 +2061,17 @@ This function is intended for use with `ivy-ignore-buffers'." :files ("*.el" ("kotl" "kotl/*.el") "DEMO" "man/*.info" "man/*.texi"))) -(use-package oddmuse-curl - :straight (:host github :repo "kensanata/oddmuse-curl") - :config - (setq - oddmuse-wikis - (append - '(("EmacsConf" "https://emacsconf.org" utf-8 "question" nil) - ("EmacsConf 2019" "https://emacsconf.org/2019" utf-8 "question" nil)) - oddmuse-wikis)) - :custom - (oddmuse-username "bandali")) +;; (use-package oddmuse-curl +;; :straight (:host github :repo "kensanata/oddmuse-curl") +;; :config +;; (setq +;; oddmuse-wikis +;; (append +;; '(("EmacsConf" "https://emacsconf.org" utf-8 "question" nil) +;; ("EmacsConf 2019" "https://emacsconf.org/2019" utf-8 "question" nil)) +;; oddmuse-wikis)) +;; :custom +;; (oddmuse-username "bandali")) (use-package debpaste :custom @@ -2189,7 +2095,7 @@ This function is intended for use with `ivy-ignore-buffers'." mail-user-agent 'gnus-user-agent read-mail-command 'gnus) -(use-feature gnus +(use-package gnus :bind (("s-m" . gnus) ("s-M" . gnus-unplugged) ("C-c a m" . gnus) @@ -2408,17 +2314,18 @@ This function is intended for use with `ivy-ignore-buffers'." gnus-gcc-mark-as-read t) :config (when (version< emacs-version "27") - (add-to-list - 'nnmail-split-abbrev-alist - '(list . "list-id\\|list-post\\|x-mailing-list\\|x-beenthere\\|x-loop") - t)) + (with-eval-after-load 'nnmail + (add-to-list + 'nnmail-split-abbrev-alist + '(list . "list-id\\|list-post\\|x-mailing-list\\|x-beenthere\\|x-loop") + t))) ;; (gnus-registry-initialize) (with-eval-after-load 'recentf (add-to-list 'recentf-exclude gnus-home-directory))) -(use-feature gnus-art +(use-package gnus-art :config (setq gnus-buttonized-mime-types '("multipart/\\(signed\\|encrypted\\)") @@ -2467,7 +2374,7 @@ This function is intended for use with `ivy-ignore-buffers'." :map gnus-article-mode-map ("M-L" . org-store-link))) -(use-feature gnus-sum +(use-package gnus-sum :bind (:map gnus-summary-mode-map :prefix-map b/gnus-summary-prefix-map :prefix "v" @@ -2484,7 +2391,7 @@ This function is intended for use with `ivy-ignore-buffers'." gnus-thread-sort-by-subject gnus-thread-sort-by-date))) -(use-feature gnus-msg +(use-package gnus-msg :config (defvar b/shemshak-signature "Amin Bandali https://shemshak.org/~amin") @@ -2526,56 +2433,56 @@ https://csclub.uwaterloo.ca/~abandali") (unless (mml-secure-is-encrypted-p) (mml-secure-message-sign))))) -(use-feature gnus-topic +(use-package gnus-topic :hook (gnus-group-mode . gnus-topic-mode) :config (setq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n")) -(use-feature gnus-agent +(use-package gnus-agent :config (setq gnus-agent-synchronize-flags 'ask) :hook (gnus-group-mode . gnus-agent-mode)) -(use-feature gnus-group +(use-package gnus-group :config (setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)")) (comment ;; problematic with ebdb's popup, *EBDB-Gnus* - (use-feature gnus-win + (use-package gnus-win :config (setq gnus-use-full-window nil))) -(use-feature gnus-dired +(use-package gnus-dired :commands gnus-dired-mode :init (add-hook 'dired-mode-hook 'gnus-dired-mode)) (comment - (use-feature gnus-utils + (use-package gnus-utils :custom (gnus-completing-read-function 'gnus-ido-completing-read))) -(use-feature mm-decode +(use-package mm-decode :config (setq mm-discouraged-alternatives '("text/html" "text/richtext") mm-decrypt-option 'known mm-verify-option 'known)) -(use-feature mm-uu +(use-package mm-uu :config (set-face-attribute 'mm-uu-extract nil :extend t) :custom (mm-uu-diff-groups-regexp "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)")) -(use-feature sendmail +(use-package sendmail :config (setq sendmail-program (executable-find "msmtp") ;; message-sendmail-extra-arguments '("-v" "-d") mail-specify-envelope-from t mail-envelope-from 'header)) -(use-feature message +(use-package message :bind (:map message-mode-map ("" . b/insert-asterism)) :config ;; redefine for a simplified In-Reply-To header @@ -2624,14 +2531,14 @@ https://csclub.uwaterloo.ca/~abandali") :custom (message-elide-ellipsis "[...]\n")) -(use-feature mml) +(use-package mml) -(use-feature mml-sec +(use-package mml-sec :custom (mml-secure-openpgp-encrypt-to-self t) (mml-secure-openpgp-sign-with-sender t)) -(use-feature footnote +(use-package footnote :after message ;; :config ;; (setq footnote-start-tag "" @@ -2669,16 +2576,16 @@ https://csclub.uwaterloo.ca/~abandali") (with-eval-after-load 'swiper (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t))) -(use-feature ebdb-com +(use-package ebdb-com :after ebdb) -(use-feature ebdb-complete +(use-package ebdb-complete :after ebdb :config ;; (setq ebdb-complete-mail 'capf) (ebdb-complete-enable)) -(use-feature ebdb-message +(use-package ebdb-message :demand :after ebdb) @@ -2686,12 +2593,12 @@ https://csclub.uwaterloo.ca/~abandali") ;; :config ;; (defun company-ebdb--post-complete (_) nil)) -(use-feature ebdb-gnus +(use-package ebdb-gnus :after ebdb :custom (ebdb-gnus-window-size 0.3)) -(use-feature ebdb-mua +(use-package ebdb-mua :demand :after ebdb :custom (ebdb-mua-pop-up t)) @@ -2725,7 +2632,7 @@ https://csclub.uwaterloo.ca/~abandali") (gnus-harvest-install 'message-x) (gnus-harvest-install)))) -(use-feature gnus-article-treat-patch +(use-package gnus-article-treat-patch :disabled :demand :load-path "lisp/" @@ -2738,7 +2645,7 @@ https://csclub.uwaterloo.ca/~abandali") ;;; IRC (with ERC and ZNC) -(use-feature erc +(use-package erc :bind (("C-c b b" . erc-switch-to-buffer) :map erc-mode-map ("M-a" . erc-track-switch-buffer)) @@ -2766,19 +2673,19 @@ https://csclub.uwaterloo.ca/~abandali") (add-to-list 'erc-modules 'scrolltoplace) (erc-update-modules)) -(use-feature erc-fill +(use-package erc-fill :after erc :custom (erc-fill-column 77) (erc-fill-function 'erc-fill-static) (erc-fill-static-center 18)) -(use-feature erc-pcomplete +(use-package erc-pcomplete :after erc :custom (erc-pcomplete-nick-postfix ", ")) -(use-feature erc-track +(use-package erc-track :after erc :bind (("C-c a e t d" . erc-track-disable) ("C-c a e t e" . erc-track-enable)) @@ -2796,22 +2703,22 @@ https://csclub.uwaterloo.ca/~abandali") (use-package erc-scrolltoplace :after erc) -(use-package znc - :straight (:host nil :repo "https://git.shemshak.org/amin/znc.el") - :bind (("C-c a e e" . znc-erc) - ("C-c a e a" . znc-all)) - :config - (let ((pwd (let ((auth (auth-source-search :host "znca"))) - (cond - ((null auth) (error "Couldn't find znca's authinfo")) - (t (funcall (plist-get (car auth) :secret))))))) - (setq znc-servers - `(("znc.shemshak.org" 1337 t - ((freenode "amin/freenode" ,pwd))) - ("znc.shemshak.org" 1337 t - ((moznet "amin/moznet" ,pwd))) - ("znc.shemshak.org" 1337 t - ((oftc "amin/oftc" ,pwd))))))) +;; (use-package znc +;; :straight (:host nil :repo "https://git.shemshak.org/amin/znc.el") +;; :bind (("C-c a e e" . znc-erc) +;; ("C-c a e a" . znc-all)) +;; :config +;; (let ((pwd (let ((auth (auth-source-search :host "znca"))) +;; (cond +;; ((null auth) (error "Couldn't find znca's authinfo")) +;; (t (funcall (plist-get (car auth) :secret))))))) +;; (setq znc-servers +;; `(("znc.shemshak.org" 1337 t +;; ((freenode "amin/freenode" ,pwd))) +;; ("znc.shemshak.org" 1337 t +;; ((moznet "amin/moznet" ,pwd))) +;; ("znc.shemshak.org" 1337 t +;; ((oftc "amin/oftc" ,pwd))))))) ;;; Post initialization -- 2.20.1 From a89c8bd86f292f36af628f0b5306c0a3dfdaa744 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 8 Jan 2020 01:05:54 -0500 Subject: [PATCH 11/16] emacs,gnupg: use emacs for pinentry again --- .emacs.d/init.el | 14 ++++++++++++++ .gnupg/gpg-agent.conf | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index a043652..d2afd0f 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -451,12 +451,26 @@ For disabling the behaviour for certain buffers and/or modes." :config (pixel-scroll-mode 1)) (use-package epg-config + :config + ;; ask for GPG passphrase in minibuffer + ;; this will fail if gpg>=2.1 is not available + (if (version< "27" emacs-version) + (setq epg-pinentry-mode 'loopback) + (setq epa-pinentry-mode 'loopback)) :custom (epg-gpg-program (executable-find "gpg"))) (use-package epg :after epg-config) +(use-package pinentry + :demand + :after (epa epg server) + :config + ;; workaround for systemd-based distros: + ;; (setq pinentry--socket-dir server-socket-dir) + (pinentry-start)) + (use-package auth-source :custom (auth-sources '("~/.authinfo.gpg")) diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf index 1b59d64..ba418db 100644 --- a/.gnupg/gpg-agent.conf +++ b/.gnupg/gpg-agent.conf @@ -4,4 +4,6 @@ max-cache-ttl 86400 default-cache-ttl-ssh 43200 max-cache-ttl-ssh 86400 -pinentry-program /home/bandali/.guix-profile/bin/pinentry +pinentry-program /home/bandali/.guix-profile/bin/pinentry-emacs +allow-emacs-pinentry +allow-loopback-pinentry -- 2.20.1 From 760875d065a8409ef4ae30e1a68b57321bc1c764 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Wed, 8 Jan 2020 01:06:06 -0500 Subject: [PATCH 12/16] bash,guix: "fix" completion --- .bashrc | 14 ++++++++++++++ .config/guix/manifest/chaman.scm | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.bashrc b/.bashrc index b38f7ea..a48c605 100644 --- a/.bashrc +++ b/.bashrc @@ -106,3 +106,17 @@ if ! shopt -oq posix; then . /etc/bash_completion fi fi + +# source Guix shell config dirs, for vte.sh and bash completions +GUIX_PROFILES=("${HOME}/.desktop-profile" + "${HOME}/.guix-profile" + "${HOME}/.config/guix/current") +for profile in "${GUIX_PROFILES[@]}"; do + for dir in "${profile}/etc/bash_completion.d" "${profile}/etc/profile.d"; do + if [ -d "${dir}" ]; then + for f in "${dir}"/*; do + . $f + done + fi + done +done diff --git a/.config/guix/manifest/chaman.scm b/.config/guix/manifest/chaman.scm index 5a41334..596d1cd 100644 --- a/.config/guix/manifest/chaman.scm +++ b/.config/guix/manifest/chaman.scm @@ -1,6 +1,6 @@ (specifications->manifest '("audacity" - ;"bash-completion" + "bash-completion" "cvs" "emacs" "emacs-alert" -- 2.20.1 From 5b740018e3c014ecfbfd7be839ef18ade5042226 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 21 Jan 2020 21:17:00 -0500 Subject: [PATCH 13/16] update url --- .emacs.d/init.el | 2 +- .signature | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index d2afd0f..8f5c9ce 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2412,7 +2412,7 @@ https://shemshak.org/~amin") (defvar b/uw-signature "Amin Bandali, MMath Student Cheriton School of Computer Science University of Waterloo -https://bndl.org") +https://bandali.eu.org") (defvar b/csc-signature "Amin Bandali Systems Committee Computer Science Club, University of Waterloo diff --git a/.signature b/.signature index 85fc1a4..fbee112 100644 --- a/.signature +++ b/.signature @@ -1,4 +1,4 @@ Amin Bandali Free Software activist | GNU maintainer & webmaster GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 -https://bndl.org +https://bandali.eu.org -- 2.20.1 From 6283c91e671e97691583f312e10f23048c70e13e Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 21 Jan 2020 21:18:02 -0500 Subject: [PATCH 14/16] update gnu address --- .config/getmail/getmailrc | 4 ++-- .config/git/config | 2 +- .config/git/mailmap | 10 +++++----- .config/msmtp/config | 8 ++++---- .emacs.d/init.el | 12 ++++++------ 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.config/getmail/getmailrc b/.config/getmail/getmailrc index 5c1890b..8f14bea 100644 --- a/.config/getmail/getmailrc +++ b/.config/getmail/getmailrc @@ -1,14 +1,14 @@ [retriever] type = SimplePOP3SSLRetriever server = fencepost.gnu.org -username = bandali +username = mab password_command = ("gpg", "--no-tty", "-q", "-d", "/home/bandali/.passwd/gnu.gpg") port = 995 use_apop = True [destination] type = Maildir -path = ~/mail/gnu.local/bandali/mail/ +path = ~/mail/gnu.local/mab/mail/ # [destination] # type = MDA_external diff --git a/.config/git/config b/.config/git/config index ce89917..b519ef9 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,6 +1,6 @@ [user] name = Amin Bandali - email = bandali@gnu.org + email = mab@gnu.org signingkey = BE6273738E616D6D1B3A08E8A21A020248816103 [commit] diff --git a/.config/git/mailmap b/.config/git/mailmap index 2c03291..f58db53 100644 --- a/.config/git/mailmap +++ b/.config/git/mailmap @@ -1,5 +1,5 @@ - - - - - + + + + + diff --git a/.config/msmtp/config b/.config/msmtp/config index cd2c364..fad37e0 100644 --- a/.config/msmtp/config +++ b/.config/msmtp/config @@ -27,16 +27,16 @@ host fencepost.gnu.org # use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint tls_fingerprint 12:86:E0:3E:30:F7:AD:9B:05:CA:59:C8:CD:F2:20:11:44:14:B7:F2:09:EE:10:42:E6:BF:CB:25:AE:2D:4D:0E tls_starttls on -from bandali@gnu.org -user bandali +from mab@gnu.org +user mab passwordeval gpg --no-tty -q -d ~/.passwd/gnu.gpg +account gnu-bandali : gnu +from bandali@gnu.org account gnu-aminb : gnu from aminb@gnu.org account gnu-amin : gnu from amin@gnu.org -account gnu-mab : gnu -from mab@gnu.org account uwaterloo host connect.uwaterloo.ca diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 8f5c9ce..8b0df02 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1,6 +1,6 @@ -;;; init.el --- bandali's emacs configuration -*- lexical-binding: t -*- +;;; init.el --- mab's emacs configuration -*- lexical-binding: t -*- -;; Copyright (C) 2018-2020 Amin Bandali +;; Copyright (C) 2018-2019 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 @@ -82,7 +82,7 @@ ;;; whoami (setq user-full-name "Amin Bandali" - user-mail-address "bandali@gnu.org") + user-mail-address "mab@gnu.org") ;;; comment macro @@ -2129,7 +2129,7 @@ This function is intended for use with `ivy-ignore-buffers'." (nnimap-address "127.0.0.1") (nnimap-server-port 143) (nnimap-authenticator plain) - (nnimap-user "bandali@gnu.local") + (nnimap-user "mab@gnu.local") (nnimap-inbox "INBOX") (nnimap-split-methods 'nnimap-split-fancy) (nnimap-split-fancy (| @@ -2420,7 +2420,7 @@ https://csclub.uwaterloo.ca/~abandali") (setq gnus-message-replysign t gnus-posting-styles '((".*" - (address "bandali@gnu.org")) + (address "mab@gnu.org")) ("nnimap\\+gnu:l\\..*" (signature nil)) ((header "subject" "ThankCRM") @@ -2529,7 +2529,7 @@ https://csclub.uwaterloo.ca/~abandali") message-subscribed-address-functions '(gnus-find-subscribed-addresses) message-dont-reply-to-names - "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)") + "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(mab\\|bandali\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)") ;; (require 'company-ebdb) :hook (;; (message-setup . mml-secure-message-sign-pgpmime) (message-mode . flyspell-mode) -- 2.20.1 From 466bb3e0062cf7cc938f5a88e89fa3e71e098d06 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 21 Jan 2020 21:18:44 -0500 Subject: [PATCH 15/16] emacs: gnus: add Organization: GNU when sending from gnu address --- .emacs.d/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 8b0df02..6e24e52 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2423,6 +2423,8 @@ https://csclub.uwaterloo.ca/~abandali") (address "mab@gnu.org")) ("nnimap\\+gnu:l\\..*" (signature nil)) + ("nnimap\\+gnu:.*" + (organization "GNU")) ((header "subject" "ThankCRM") (to "webmasters-comment@gnu.org") (body "") -- 2.20.1 From b7d4b4b37922a757b3e587ee5779fc03f4c688dd Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 21 Jan 2020 21:19:50 -0500 Subject: [PATCH 16/16] emacs: erc: enable smiley module --- .emacs.d/init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 6e24e52..46dd998 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2685,6 +2685,7 @@ https://csclub.uwaterloo.ca/~abandali") (erc-cmd-DEOP (format "%s" (erc-current-nick)))) (add-to-list 'erc-modules 'keep-place) (add-to-list 'erc-modules 'notifications) + (add-to-list 'erc-modules 'smiley) (add-to-list 'erc-modules 'spelling) (add-to-list 'erc-modules 'scrolltoplace) (erc-update-modules)) -- 2.20.1