X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/f2a5794494de4bf1b018c6c540365bad40b0dafb..9678e6da76fac31f79a639b987be22322474c416:/init.org diff --git a/init.org b/init.org index 3ae9946..91d70f0 100644 --- a/init.org +++ b/init.org @@ -54,6 +54,13 @@ make build - [[#header][Header]] - [[#initial-setup][Initial setup]] - [[#core][Core]] +- [[#borg-essentials][Borg's =layer/essentials=]] +- [[#editing][Editing]] +- [[#syntax-spell-checking][Syntax and spell checking]] +- [[#programming-modes][Programming modes]] +- [[#emacs-enhancements][Emacs enhancements]] +- [[#email][Email]] +- [[#blogging][Blogging]] - [[#post-initialization][Post initialization]] - [[#footer][Footer]] @@ -939,6 +946,7 @@ There's no way I could top that, so I won't attempt to. (use-package eshell :defer 1 :commands eshell + :bind ("C-c a s e" . eshell) :config (eval-when-compile (defvar eshell-prompt-regexp)) (defun amin/eshell-quit-or-delete-char (arg) @@ -1062,6 +1070,9 @@ There's no way I could top that, so I won't attempt to. #+end_src * Borg's =layer/essentials= +:PROPERTIES: +:CUSTOM_ID: borg-essentials +:END: TODO: break this giant source block down into individual org sections. @@ -1144,6 +1155,9 @@ TODO: break this giant source block down into individual org sections. #+end_src * Editing +:PROPERTIES: +:CUSTOM_ID: editing +:END: ** Company @@ -1165,6 +1179,9 @@ TODO: break this giant source block down into individual org sections. #+end_src * Syntax and spell checking +:PROPERTIES: +:CUSTOM_ID: syntax-spell-checking +:END: #+begin_src emacs-lisp (use-package flycheck @@ -1207,7 +1224,11 @@ TODO: break this giant source block down into individual org sections. (advice-add #'ispell-parse-output :filter-args #'endless/replace-quote)) #+end_src + * Programming modes +:PROPERTIES: +:CUSTOM_ID: programming-modes +:END: ** [[http://alloytools.org][Alloy]] (with [[https://github.com/dwwmmn/alloy-mode][alloy-mode]]) @@ -1576,7 +1597,10 @@ treemacs :load-path "lib/guix/elisp") #+end_src -* Emacs Enhancements +* Emacs enhancements +:PROPERTIES: +:CUSTOM_ID: emacs-enhancements +:END: ** [[https://github.com/justbur/emacs-which-key][which-key]] @@ -1692,53 +1716,6 @@ Emacs package that displays available keybindings in popup ("C-S-h p" . helpful-at-point))) #+end_src -** [[https://github.com/knu/shell-toggle.el][shell-toggle]] - -#+begin_src emacs-lisp -(use-package shell-toggle - :after eshell - :bind ("C-c a s e" . amin/shell-toggle) - :config - (defun amin/shell-toggle (make-cd) - "Toggle between the shell buffer and whatever buffer you are editing. -With a prefix argument MAKE-CD also insert a \"cd DIR\" command -into the shell, where DIR is the directory of the current buffer. - -When called in the shell buffer returns you to the buffer you were editing -before calling this the first time. - -Options: `shell-toggle-goto-eob'" - (interactive "P") - ;; Try to decide on one of three possibilities: - ;; If not in shell-buffer, switch to it. - ;; If in shell-buffer, return to state before going to the shell-buffer - (if (eq (current-buffer) shell-toggle-shell-buffer) - (shell-toggle-buffer-return-from-shell) - (progn - (shell-toggle-buffer-goto-shell make-cd) - (if shell-toggle-full-screen-window-only (delete-other-windows))))) - - ;; override to split horizontally instead - (defun shell-toggle-buffer-switch-to-other-window () - "Switch to other window. -If the current window is the only window in the current frame, -create a new window and switch to it. - -\(This is less intrusive to the current window configuration than -`switch-buffer-other-window')" - (let ((this-window (selected-window))) - (other-window 1) - ;; If we did not switch window then we only have one window and need to - ;; create a new one. - (if (eq this-window (selected-window)) - (progn - (split-window-horizontally) - (other-window 1))))) - - :custom - (shell-toggle-launch-shell 'shell-toggle-eshell)) -#+end_src - ** [[https://github.com/EricCrosson/unkillable-scratch][unkillable-scratch]] Make =*scratch*= and =*Messages*= unkillable. @@ -1808,25 +1785,6 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. (set-face-foreground 'highlight-indent-guides-top-character-face "grey40")) ; grey13 is nice too #+end_src -** pdf-tools - -#+begin_src emacs-lisp -(use-package pdf-tools - :defer t - :magic ("%PDF" . pdf-view-mode) - :config - (setq pdf-view-resize-factor 1.05) - (pdf-tools-install) - :bind - (:map pdf-view-mode-map - ("C-s" . isearch-forward) - ("C-r" . isearch-backward) - ("j" . pdf-view-next-line-or-next-page) - ("k" . pdf-view-previous-line-or-previous-page) - ("h" . image-backward-hscroll) - ("l" . image-forward-hscroll))) -#+end_src - ** typo.el #+begin_src emacs-lisp @@ -1954,9 +1912,12 @@ Hopefully temporary. #+begin_src emacs-lisp (use-package multi-term :defer 1 - :bind (("C-c C-j" . term-line-mode) - ("C-c a s m m" . multi-term) - ("C-c a s m p" . multi-term-dedicated-toggle)) + :bind (("C-c a s m m" . multi-term) + ("C-c a s m p" . multi-term-dedicated-toggle) + :map term-mode-map + ("C-c C-j" . term-char-mode) + :map term-raw-map + ("C-c C-j" . term-line-mode)) :config (setq multi-term-program "/bin/screen" ;; TODO: add separate bindings for connecting to existing @@ -1998,6 +1959,9 @@ Hopefully temporary. #+end_src * Email +:PROPERTIES: +:CUSTOM_ID: email +:END: #+begin_src emacs-lisp (defvar amin-maildir (expand-file-name "~/mail/")) @@ -2204,7 +2168,59 @@ Convenient footnotes in =message-mode=. footnote-style 'unicode)) #+end_src -** bbdb +** ebdb + +#+begin_src emacs-lisp +(use-package ebdb + :defer 1 + :bind (:map gnus-group-mode-map ("e" . ebdb)) + :config + (setq ebdb-sources (no-littering-expand-var-file-name "ebdb")) + (after! swiper + (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t))) + +(use-package ebdb-com + :after ebdb) + +;; (use-package ebdb-complete +;; :after ebdb +;; :config +;; (ebdb-complete-enable)) + +(use-package company-ebdb + :after (:all company message) + :config + (defun company-ebdb--post-complete (_) nil) + :hook + (message-mode . (lambda () + (add-to-list (make-local-variable 'company-backends) + 'company-ebdb)))) + +(use-package ebdb-gnus + :after ebdb + :custom + (ebdb-gnus-window-configuration + '(article + (vertical 1.0 + (summary 0.25 point) + (horizontal 1.0 + (article 1.0) + (ebdb-gnus 0.3)))))) + +(use-package ebdb-mua + :after ebdb + ;; :custom (ebdb-mua-pop-up nil) + ) + +;; (use-package ebdb-message +;; :after ebdb) + + +;; (use-package ebdb-vcard +;; :after ebdb) +#+end_src + +** COMMENT bbdb Manually install bbdb (=lisp/bbdb= copied from an ELPA-based setup), because installing it from source on Emacs 27 using the following @@ -2265,6 +2281,9 @@ I tried using =borg-elpa= instead of doing it like this, but it added #+end_src * Blogging +:PROPERTIES: +:CUSTOM_ID: blogging +:END: ** [[https://ox-hugo.scripter.co][ox-hugo]]