X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/9f120b4f64519184aa763042042e06010cdc380d..197330785f9a001d49ad6afb33e2e69761fa3169:/init.org diff --git a/init.org b/init.org index 7a75546..9acbd33 100644 --- a/init.org +++ b/init.org @@ -296,6 +296,8 @@ and without compromising on performance. debug-on-error t) (setq use-package-verbose nil use-package-expand-minimally t)) + +(setq use-package-always-defer t) #+end_src *** COMMENT Epkg @@ -727,6 +729,7 @@ for this. ** Bindings #+begin_src emacs-lisp +(require 'bind-key) (bind-keys ("C-c a i" . ielm) @@ -969,6 +972,18 @@ Recently opened files. (setq recentf-max-saved-items 40)) #+end_src +*** smex + +#+begin_quote +A smart M-x enhancement for Emacs. +#+end_quote + +Mostly because =counsel= needs it to remember history. + +#+begin_src emacs-lisp +(use-package smex) +#+end_src + *** [[https://github.com/abo-abo/swiper][Ivy]] (and friends) #+begin_quote @@ -1067,7 +1082,6 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-feature ibuffer - :defer t :bind (("C-x C-b" . ibuffer-other-window) :map ibuffer-mode-map @@ -1138,7 +1152,6 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-feature outline - :defer t :hook (prog-mode . outline-minor-mode) :bind (:map @@ -1163,7 +1176,6 @@ There's no way I could top that, so I won't attempt to. :custom (ls-lisp-dirs-first t)) (use-feature dired - :defer t :config (setq dired-listing-switches "-alh" ls-lisp-use-insert-directory-program nil) @@ -1172,6 +1184,7 @@ There's no way I could top that, so I won't attempt to. ;; https://oremacs.com/2017/03/18/dired-ediff/ (defun dired-ediff-files () (interactive) + (require 'dired-aux) (defvar ediff-after-quit-hook-internal) (let ((files (dired-get-marked-files)) (wnd (current-window-configuration))) @@ -1191,6 +1204,7 @@ There's no way I could top that, so I won't attempt to. (set-window-configuration wnd)))) (error "no more than 2 files should be marked")))) :bind (:map dired-mode-map + ("b" . dired-up-directory) ("e" . dired-ediff-files) ("E" . dired-toggle-read-only) ("\\" . dired-hide-details-mode) @@ -1204,7 +1218,6 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-feature help - :defer t :config (temp-buffer-resize-mode) (setq help-window-select t)) @@ -1214,7 +1227,6 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-feature tramp - :defer t :config (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:")) (add-to-list 'tramp-default-proxies-alist '("localhost" nil nil)) @@ -1226,7 +1238,6 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package dash - :defer t :config (dash-enable-font-lock)) #+end_src @@ -1303,19 +1314,7 @@ Automatically save place in each file. (text-mode . abbrev-mode))) #+end_src -** =lisp-mode= - -#+begin_src emacs-lisp -(use-feature lisp-mode - :config - (add-hook 'emacs-lisp-mode-hook 'outline-minor-mode) - (add-hook 'emacs-lisp-mode-hook 'reveal-mode) - (defun indent-spaces-mode () - (setq indent-tabs-mode nil)) - (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) -#+end_src - -** COMMENT Company +** Company #+begin_src emacs-lisp (use-package company @@ -1334,10 +1333,7 @@ Automatically save place in each file. (global-company-mode t)) #+end_src -* COMMENT Syntax and spell checking -:PROPERTIES: -:CUSTOM_ID: syntax-spell-checking -:END: +** Flycheck #+begin_src emacs-lisp (use-package flycheck @@ -1381,25 +1377,35 @@ Automatically save place in each file. #'endless/replace-quote)) #+end_src -* COMMENT Programming modes +* Programming modes :PROPERTIES: :CUSTOM_ID: programming-modes :END: +** Lisp + +#+begin_src emacs-lisp +(use-feature lisp-mode + :config + (add-hook 'emacs-lisp-mode-hook 'outline-minor-mode) + (add-hook 'emacs-lisp-mode-hook 'reveal-mode) + (defun indent-spaces-mode () + (setq indent-tabs-mode nil)) + (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) +#+end_src + ** [[http://alloytools.org][Alloy]] (with [[https://github.com/dwwmmn/alloy-mode][alloy-mode]]) #+begin_src emacs-lisp (use-package alloy-mode - :defer t + :straight (:host github :repo "dwwmmn/alloy-mode") :config (setq alloy-basic-offset 2)) #+end_src ** [[https://coq.inria.fr][Coq]] (with [[https://github.com/ProofGeneral/PG][Proof General]]) #+begin_src emacs-lisp -(use-package proof-site ; Proof General - :defer t - :load-path "lib/proof-site/generic/") +(use-package proof-general) #+end_src ** [[https://leanprover.github.io][Lean]] (with [[https://github.com/leanprover/lean-mode][lean-mode]]) @@ -1426,7 +1432,6 @@ Automatically save place in each file. #+begin_src emacs-lisp (use-package haskell-mode - :defer t :config (setq haskell-indentation-layout-offset 4 haskell-indentation-left-offset 4 @@ -1609,13 +1614,12 @@ instead. ("C-c l l" . hs-lint))) #+end_src -** Web dev +** Web *** SGML and HTML #+begin_src emacs-lisp (use-package sgml-mode - :defer t :config (setq sgml-basic-offset 2)) #+end_src @@ -1624,7 +1628,6 @@ instead. #+begin_src emacs-lisp (use-package css-mode - :defer t :config (setq css-indent-offset 2)) #+end_src @@ -1633,7 +1636,6 @@ instead. #+begin_src emacs-lisp (use-package web-mode - :defer t :mode "\\.html\\'" :config (a/setq-every 2 @@ -1736,24 +1738,23 @@ treemacs :after (treemacs)) #+end_src -** geiser +** COMMENT geiser #+begin_src emacs-lisp (use-package geiser) -(use-package geiser-guile +(use-feature geiser-guile :config (setq geiser-guile-load-path "~/src/git/guix")) #+end_src -** guix +** COMMENT guix #+begin_src emacs-lisp -(use-package guix - :load-path "lib/guix/elisp") +(use-package guix) #+end_src -* COMMENT Emacs enhancements +* Emacs enhancements :PROPERTIES: :CUSTOM_ID: emacs-enhancements :END: @@ -1762,7 +1763,6 @@ treemacs #+begin_src emacs-lisp (use-feature man - :defer t :config (setq Man-width 80)) #+end_src @@ -1868,7 +1868,7 @@ Emacs package that displays available keybindings in popup ** [[https://github.com/bbatsov/crux][crux]] #+begin_src emacs-lisp -(use-package crux +(use-package crux ; results in Waiting for git... [2 times] :defer 1 :bind (("C-c b k" . crux-kill-other-buffers) ("C-c d" . crux-duplicate-current-line-or-region) @@ -1894,7 +1894,6 @@ Emacs package that displays available keybindings in popup #+begin_src emacs-lisp (use-package projectile - :defer t :bind-keymap ("C-c p" . projectile-command-map) :config (projectile-mode) @@ -2106,7 +2105,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. ("a" . mc/mark-all-like-this)))) #+end_src -* COMMENT Email +* Email :PROPERTIES: :CUSTOM_ID: email :END: @@ -2125,7 +2124,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. mail-user-agent 'gnus-user-agent read-mail-command 'gnus) -(use-package gnus +(use-feature gnus :bind (("s-m" . gnus) ("s-M" . gnus-unplugged)) :init @@ -2158,7 +2157,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. gnus-interactive-exit nil gnus-gcc-mark-as-read t)) -(use-package gnus-art +(use-feature gnus-art :config (setq gnus-visible-headers @@ -2187,7 +2186,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. ("R" . gnus-article-wide-reply-with-original) ("M-L" . org-store-link))) -(use-package gnus-sum +(use-feature gnus-sum :bind (:map gnus-summary-mode-map :prefix-map a/gnus-summary-prefix-map :prefix "v" @@ -2202,7 +2201,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. ("M-L" . org-store-link)) :hook (gnus-summary-mode . a/no-mouse-autoselect-window)) -(use-package gnus-msg +(use-feature gnus-msg :config (setq gnus-posting-styles '((".*" @@ -2219,19 +2218,19 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. (address "abandali@uwaterloo.ca") (gcc "\"nnimap+uwaterloo:Sent Items\""))))) -(use-package gnus-topic +(use-feature gnus-topic :hook (gnus-group-mode . gnus-topic-mode)) -(use-package gnus-agent +(use-feature gnus-agent :config (setq gnus-agent-synchronize-flags 'ask) :hook (gnus-group-mode . gnus-agent-mode)) -(use-package gnus-group +(use-feature gnus-group :config (setq gnus-permanently-visible-groups "\\((INBOX\\|gnu$\\)")) -(use-package mm-decode +(use-feature mm-decode :config (setq mm-discouraged-alternatives '("text/html" "text/richtext"))) #+end_src @@ -2239,7 +2238,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. ** sendmail #+begin_src emacs-lisp -(use-package sendmail +(use-feature sendmail :config (setq sendmail-program "/usr/bin/msmtp" ;; message-sendmail-extra-arguments '("-v" "-d") @@ -2250,7 +2249,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. ** message #+begin_src emacs-lisp -(use-package message +(use-feature message :config (defconst a/message-cite-style-format "On %Y-%m-%d %l:%M %p, %N wrote:") (defconst message-cite-style-bandali @@ -2295,7 +2294,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. Convenient footnotes in =message-mode=. #+begin_src emacs-lisp -(use-package footnote +(use-feature footnote :after message :bind (:map message-mode-map @@ -2318,14 +2317,14 @@ Convenient footnotes in =message-mode=. #+begin_src emacs-lisp (use-package ebdb - :defer 1 + :after gnus :bind (:map gnus-group-mode-map ("e" . ebdb)) :config (setq ebdb-sources (no-littering-expand-var-file-name "ebdb")) (with-eval-after-load 'swiper (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t))) -(use-package ebdb-com +(use-feature ebdb-com :after ebdb) ;; (use-package ebdb-complete @@ -2342,7 +2341,7 @@ Convenient footnotes in =message-mode=. (add-to-list (make-local-variable 'company-backends) 'company-ebdb)))) -(use-package ebdb-gnus +(use-feature ebdb-gnus :after ebdb :custom (ebdb-gnus-window-configuration @@ -2353,7 +2352,7 @@ Convenient footnotes in =message-mode=. (article 1.0) (ebdb-gnus 0.3)))))) -(use-package ebdb-mua +(use-feature ebdb-mua :after ebdb ;; :custom (ebdb-mua-pop-up nil) ) @@ -2393,7 +2392,7 @@ Convenient footnotes in =message-mode=. (gnus-harvest-install))) #+end_src -* COMMENT Blogging +* Blogging :PROPERTIES: :CUSTOM_ID: blogging :END: @@ -2404,8 +2403,8 @@ Convenient footnotes in =message-mode=. (use-package ox-hugo :after ox) -(use-package ox-hugo-auto-export - :load-path "lib/ox-hugo") +(use-feature ox-hugo-auto-export + :after ox-hugo) #+end_src * Post initialization