X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/51db62d880a52ad85f7f1e9f0e93f7404cd96ba9..d787ff549bf4576862fe1b8109ce0d49c5754e8e:/init.org diff --git a/init.org b/init.org index 06fa7e7..9192dff 100644 --- a/init.org +++ b/init.org @@ -319,6 +319,14 @@ in my shell. (exec-path-from-shell-copy-env "SSH_AUTH_SOCK")) #+end_src +** Only one custom theme at a time + +#+begin_src emacs-lisp +(defadvice load-theme (before clear-previous-themes activate) + "Clear existing theme settings instead of layering them" + (mapc #'disable-theme custom-enabled-themes)) +#+end_src + ** Server Start server if not already running. Alternatively, can be done by @@ -574,12 +582,61 @@ customizing it. 'auto-compile-inhibit-compile-detached-git-head)) #+end_src -*** TODO [[https://github.com/Kungsgeten/ryo-modal][ryo-modal]] +*** [[https://github.com/noctuid/general.el][general]] #+begin_quote Roll your own modal mode #+end_quote +#+begin_src emacs-lisp +(use-package general + :demand t + :config + (general-evil-setup t) + + (general-override-mode) + + (general-create-definer + ab--mode-leader-keys + :keymaps 'override + :states '(emacs normal visual motion insert) + :non-normal-prefix "C-," + :prefix ",") + + (general-create-definer + ab--leader-keys + :keymaps 'override + :states '(emacs normal visual motion insert) + :non-normal-prefix "M-m" + :prefix "SPC")) +#+end_src + +*** evil + +#+begin_src emacs-lisp +(use-package evil + :demand t + :hook (view-mode . evil-motion-state) + :config (evil-mode 1)) +#+end_src + +#+begin_src emacs-lisp +(use-package evil-escape + :demand t + :init + (setq evil-escape-excluded-states '(normal visual multiedit emacs motion) + evil-escape-excluded-major-modes '(neotree-mode) + evil-escape-key-sequence "jk" + evil-escape-delay 0.25) + :general + (:states '(insert replace visual operator) + "C-g" #'evil-escape) + :config + (evil-escape-mode 1) + ;; no `evil-escape' in minibuffer + (push #'minibufferp evil-escape-inhibit-functions)) +#+end_src + *** [[https://github.com/ch11ng/exwm][EXWM]] (window manager) #+begin_src emacs-lisp :tangle no @@ -819,7 +876,11 @@ In short, my favourite way of life. #+begin_src emacs-lisp (setq org-src-tab-acts-natively t org-src-preserve-indentation nil - org-edit-src-content-indentation 0) + org-edit-src-content-indentation 0 + org-html-doctype "html5" + org-html-html5-fancy t) +(add-hook 'org-mode-hook 'org-indent-mode) +(use-package htmlize) #+end_src *** [[https://magit.vc/][Magit]] @@ -832,6 +893,7 @@ Not just how I do git, but /the/ way to do git. #+begin_src emacs-lisp (use-package magit + :general (ab--leader-keys "g s" 'magit-status) :defer t :bind (("s-g" . magit-status) ("C-x g" . magit-status) @@ -856,6 +918,7 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package ivy + :defer 1 :bind (:map ivy-minibuffer-map ([escape] . keyboard-escape-quit) @@ -873,6 +936,7 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package swiper + :general (:states 'normal "/" 'swiper) :bind (([remap isearch-forward] . swiper) ([remap isearch-backward] . swiper))) #+end_src @@ -882,6 +946,10 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package counsel :defer 1 + :general (ab--leader-keys + "f r" 'counsel-recentf + "SPC" 'counsel-M-x + "." 'counsel-find-file) :bind (([remap execute-extended-command] . counsel-M-x) ([remap find-file] . counsel-find-file) ("s-r" . counsel-recentf) @@ -992,6 +1060,17 @@ TODO: break this giant source block down into individual org sections. (global-company-mode t)) #+end_src +** Customizations + +#+begin_src emacs-lisp +(ab--leader-keys + "b s" 'save-buffer + "b b" 'ivy-switch-buffer + "," 'ivy-switch-buffer + "b k" 'kill-this-buffer + "q q" 'evil-save-and-quit) +#+end_src + * Syntax and spell checking #+begin_src emacs-lisp (use-package flycheck @@ -1005,6 +1084,12 @@ TODO: break this giant source block down into individual org sections. #+end_src * Programming modes +** Alloy + +#+begin_src emacs-lisp +(use-package alloy-mode) +#+end_src + ** [[https://github.com/leanprover/lean-mode][Lean]] #+begin_src emacs-lisp @@ -1222,6 +1307,11 @@ Emacs package that displays available keybindings in popup (delete-other-windows) (notmuch)) +;; (ab--leader-keys +;; "m" 'ab/notmuch +;; "s" 'save-buffer +;; "SPC" 'counsel-M-x) + ;; (map! ;; :leader ;; :desc "notmuch" :n "m" #'ab/notmuch @@ -1246,7 +1336,7 @@ Emacs package that displays available keybindings in popup message-send-mail-function 'message-send-mail-with-sendmail message-sendmail-envelope-from 'header message-directory "drafts" - message-user-fqdn "aminb.org") + message-user-fqdn "fencepost.gnu.org") (add-hook 'message-mode-hook (lambda () (setq fill-column 65 message-fill-column 65))) @@ -1269,6 +1359,7 @@ Emacs package that displays available keybindings in popup mml-secure-openpgp-sign-with-sender t)) (use-package notmuch + :general (ab--leader-keys "m" 'ab/notmuch) :config (setq notmuch-hello-sections '(notmuch-hello-insert-header @@ -1328,13 +1419,13 @@ Emacs package that displays available keybindings in popup ("S" . (lambda () "Mark message as spam" (interactive) - (notmuch-search-tag '("-unread" "-inbox" "+spam")) + (notmuch-search-tag '("-unread" "-inbox" "-webmasters" "+spam")) (notmuch-search-archive-thread)))) (:map notmuch-tree-mode-map ; TODO: additional bindings ("S" . (lambda () "Mark message as spam" (interactive) - (notmuch-tree-tag '("-unread" "-inbox" "+spam")) + (notmuch-tree-tag '("-unread" "-inbox" "-webmasters" "+spam")) (notmuch-tree-archive-thread)))) )