X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/d7b88f06c1a9623caf5d01774c4f2b12e460fe58..95ec8c25beabd6aa290c321854977711898c7853:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 93dd563..7c89bcd 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -394,6 +394,7 @@ For disabling the behaviour for certain buffers and/or modes." ;; time and battery in mode-line (use-feature time + :disabled :demand :config (display-time-mode) @@ -402,6 +403,7 @@ For disabling the behaviour for certain buffers and/or modes." (display-time-format "%a %b %-e, %-l:%M%P")) (use-feature battery + :disabled :demand :config (display-battery-mode) @@ -561,6 +563,7 @@ For disabling the behaviour for certain buffers and/or modes." ;;; Essential packages (use-package exwm + :disabled :demand :config ;; make class name the buffer name, truncating beyond 60 characters @@ -582,7 +585,7 @@ For disabling the behaviour for certain buffers and/or modes." (use-feature exwm-input :demand - :after exwm-workspace + :after exwm :config (defun b/exwm-ws-prev-index () "Return the index for the previous EXWM workspace, wrapping @@ -602,14 +605,16 @@ around if needed." ;; shorten 'C-c C-q' to 'C-q' (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) - (setq exwm-input-global-keys + (setq exwm-workspace-number 4 + exwm-input-global-keys `(([?\s-R] . exwm-reset) ([?\s-\\] . exwm-workspace-switch) - ([?\s-\s] . (lambda (command) - (interactive - (list (read-shell-command "➜ "))) - (start-process-shell-command - command nil command))) + ([?\s-\s] . dmenu) + ([?\S-\s-\s] . (lambda (command) + (interactive + (list (read-shell-command "➜ "))) + (start-process-shell-command + command nil command))) ([s-return] . (lambda () (interactive) (start-process "" nil "urxvt"))) @@ -654,10 +659,10 @@ around if needed." (number-sequence 0 (1- exwm-workspace-number))) ([?\s-t] . exwm-floating-toggle-floating) ([?\s-f] . exwm-layout-toggle-fullscreen) - ([?\s-w] . (lambda () + ([?\s-W] . (lambda () (interactive) (kill-buffer (current-buffer)))) - ([?\s-q] . (lambda () + ([?\s-Q] . (lambda () (interactive) (exwm-manage--kill-client))) ([?\s-\'] . (lambda () @@ -693,7 +698,9 @@ around if needed." ([XF86ScreenSaver] . (lambda () (interactive) - (start-process "" nil "dm-tool" "lock"))))) + (start-process "" nil "dm-tool" "lock"))) + ([\s-XF86Back] . previous-buffer) + ([\s-XF86Forward] . next-buffer))) ;; Line-editing shortcuts (setq exwm-input-simulation-keys @@ -718,9 +725,12 @@ around if needed." ([?\C-y] . [?\C-v]) ([?\M-d] . [C-S-right ?\C-x]) ([?\M-\d] . [C-S-left ?\C-x]) - ;; search + ;; window + ([?\s-w] . [?\C-w]) + ([?\s-q] . [?\C-q]) + ;; misc ([?\C-s] . [?\C-f]) - ;; escape + ([?\s-s] . [?\C-s]) ([?\C-g] . [escape])))) (use-feature exwm-manage @@ -733,9 +743,7 @@ around if needed." ((string= exwm-class-name "Abrowser") (exwm-input-set-local-simulation-keys `(,@exwm-input-simulation-keys - ([?\C-\S-d] . [?\C-d]) - ([?\C-q] . [?\C-w]) - ([?\s-q] . [?\C-q])))) + ([?\C-\S-d] . [?\C-d])))) ((string= exwm-class-name "URxvt") (exwm-input-set-local-simulation-keys '(([?\C-c ?\C-c] . [?\C-c]) @@ -749,7 +757,20 @@ around if needed." :demand :after exwm :config - (exwm-randr-enable)) + (exwm-randr-enable) + :custom + (exwm-randr-workspace-monitor-plist '(1 "VGA-1")) + :hook + (exwm-randr-screen-change . (lambda () + (let ((xrandr + (string-join + '("xrandr" + "--output VGA-1" + "--same-as LVDS-1" + "--auto") + " "))) + (start-process-shell-command + "xrandr" nil xrandr))))) (use-feature exwm-systemtray :demand @@ -757,11 +778,7 @@ around if needed." :config (exwm-systemtray-enable)) -(use-feature exwm-workspace - :demand - :after exwm - :custom - (exwm-workspace-number 4)) +(use-feature exwm-workspace) (use-package exwm-edit :demand @@ -1316,8 +1333,6 @@ This function is intended for use with `ivy-ignore-buffers'." (eval-when-compile (defvar lean-mode-map)) (use-package lean-mode - :straight (:host github :repo "leanprover/lean-mode" - :fork (:repo "notbandali/lean-mode" :branch "remove-cl")) :defer 0.4 :bind (:map lean-mode-map ("S-SPC" . company-complete)) @@ -1482,6 +1497,10 @@ 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\\'") + ;;; Theme @@ -1505,54 +1524,51 @@ This function is intended for use with `ivy-ignore-buffers'." :custom (doom-modeline-buffer-file-name-style 'relative-to-project)) -(use-package doom-themes - :disabled) +(use-package doom-themes) (use-package solarized-theme + :disabled + :config + (load-theme 'solarized-light t)) + +(use-package moody :demand :config - (load-theme 'solarized-light t) + (setq x-underline-at-descent-line t) (let ((line (face-attribute 'mode-line :underline))) (set-face-attribute 'mode-line nil :overline line) (set-face-attribute 'mode-line-inactive nil :overline line) (set-face-attribute 'mode-line-inactive nil :underline line) (set-face-attribute 'mode-line nil :box nil) (set-face-attribute 'mode-line-inactive nil :box nil) - (set-face-attribute 'mode-line-inactive nil :background "#f9f2d9"))) - -(use-package moody - :demand - :config - (setq x-underline-at-descent-line t) + (set-face-attribute 'mode-line-inactive nil :background "#e1e1e1")) ; d3d7cf (moody-replace-mode-line-buffer-identification) (moody-replace-vc-mode)) (defvar b/org-mode-font-lock-keywords - "For use with the `doom-tomorrow-night' theme." '(("[ \t]*\\(#\\+\\(BEGIN\\|END\\|begin\\|end\\)_\\(\\S-+\\)\\)[ \t]*\\([^\n:]*\\)" (1 '(:foreground "#5a5b5a" :background "#292b2b") t) ; directive (3 '(:foreground "#81a2be" :background "#292b2b") t) ; kind - (4 '(:foreground "#c5c8c6") t)))) ; title + (4 '(:foreground "#c5c8c6") t))) ; title + "For use with the `doom-tomorrow-night' theme.") (defun b/lights-on () "Enable my favourite light theme." (interactive) (mapc #'disable-theme custom-enabled-themes) - (load-theme 'solarized-light t) + (load-theme 'tangomod t) ;; (sml/apply-theme 'automatic) - ;; (font-lock-remove-keywords - ;; 'org-mode b/org-mode-font-lock-keywords) - (run-with-timer 0.01 nil 'exwm-systemtray--refresh)) + (font-lock-remove-keywords + 'org-mode b/org-mode-font-lock-keywords)) (defun b/lights-off () "Go dark." (interactive) (mapc #'disable-theme custom-enabled-themes) - (load-theme 'solarized-dark t) + (load-theme 'doom-one t) ;; (sml/apply-theme 'automatic) - ;; (font-lock-add-keywords - ;; 'org-mode b/org-mode-font-lock-keywords t) - (run-with-timer 0.01 nil 'exwm-systemtray--refresh)) + (font-lock-add-keywords + 'org-mode b/org-mode-font-lock-keywords t)) (bind-keys ("C-c t d" . b/lights-off) @@ -1869,6 +1885,7 @@ This function is intended for use with `ivy-ignore-buffers'." ;; (use-package fill-column-indicator) (use-package emojify + :disabled :hook (erc-mode . emojify-mode)) (use-feature window @@ -1911,6 +1928,14 @@ This function is intended for use with `ivy-ignore-buffers'." :config (pdf-tools-install nil t) :custom (pdf-view-resize-factor 1.05)) +(use-package org-pdftools + :straight (:host github :repo "fuxialexander/org-pdftools") + :demand + :after org + :config + (with-eval-after-load 'org + (require 'org-pdftools))) + (use-package biblio) (use-feature reftex @@ -1935,9 +1960,7 @@ This function is intended for use with `ivy-ignore-buffers'." :config (minions-mode)) (use-package dmenu - :disabled :custom - (dmenu-history-size 0) (dmenu-prompt-string "run: ") (dmenu-save-file (b/var "dmenu-items"))) @@ -1991,9 +2014,9 @@ This function is intended for use with `ivy-ignore-buffers'." ;; (: gnus-group-split-fancy "INBOX" t "INBOX") ;; gnu (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1") - ;; *@lists.sr.ht, omitting one dot if present - ;; add more \\.?\\([^.@]*\\) if needed - (list ".*<~\\(.*\\)/\\([^.@]*\\)\\.?\\([^.@]*\\)@lists.sr.ht>.*" "l.~\\1.\\2\\3") + ;; *.lists.sr.ht, omitting one dot if present + ;; add more \\.?\\([^.]*\\) if needed + (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists.sr.ht>.*" "l.~\\1.\\2\\3") ;; webmasters (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters") ;; other @@ -2029,7 +2052,7 @@ This function is intended for use with `ivy-ignore-buffers'." (nnimap-server-port 143) (nnimap-authenticator plain) (nnimap-user "abandali@csc.uw.local"))) - gnus-message-archive-group "nnimap+shemshak:Sent" + gnus-message-archive-group "nnimap+gnu:INBOX" gnus-parameters '(("l\\.atreus" (to-address . "atreus@freelists.org") @@ -2250,25 +2273,26 @@ Computer Science Club, University of Waterloo https://csclub.uwaterloo.ca/~abandali") (setq gnus-posting-styles '((".*" + (address "bandali@gnu.org") + (signature b/gnu-signature) + (eval (set (make-local-variable 'message-user-fqdn) "fencepost.gnu.org"))) + ("nnimap\\+shemshak:.*" (address "amin@shemshak.org") (body "\nBest,\n") (signature b/signature) + (gcc "nnimap+shemshak:Sent") (eval (setq b/message-cite-say-hi t))) - ("nnimap\\+gnu:.*" - (address "bandali@gnu.org") - (signature b/gnu-signature) - (eval (set (make-local-variable 'message-user-fqdn) "fencepost.gnu.org"))) ((header "subject" "ThankCRM") (to "webmasters-comment@gnu.org") (body "") (eval (setq b/message-cite-say-hi nil))) ("nnimap\\+uw:.*" - (address "abandali@uwaterloo.ca") + (address "bandali@uwaterloo.ca") (signature b/uw-signature)) ("nnimap\\+uw:INBOX" (gcc "\"nnimap+uw:Sent Items\"")) ("nnimap\\+csc:.*" - (address "abandali@csclub.uwaterloo.ca") + (address "bandali@csclub.uwaterloo.ca") (signature b/csc-signature) (gcc "nnimap+csc:Sent"))))) @@ -2346,7 +2370,7 @@ https://csclub.uwaterloo.ca/~abandali") message-subscribed-address-functions '(gnus-find-subscribed-addresses) message-dont-reply-to-names - "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(amin@bndl\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a\\(min\\.\\)?bandali@uwaterloo\\.ca\\)\\|\\(abandali@csclub\\.uwaterloo\\.ca\\)\\)") + "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)") (require 'company-ebdb) :hook (;; (message-setup . mml-secure-message-sign-pgpmime) (message-mode . flyspell-mode) @@ -2417,7 +2441,7 @@ https://csclub.uwaterloo.ca/~abandali") (use-feature ebdb-mua :demand :after ebdb - :custom (ebdb-mua-pop-up nil)) + :custom (ebdb-mua-pop-up t)) ;; (use-package ebdb-message ;; :after ebdb)