diff --git a/emacs/.config/doom/config.org b/emacs/.config/doom/config.org index 5ef552b..d5f0f88 100644 --- a/emacs/.config/doom/config.org +++ b/emacs/.config/doom/config.org @@ -27,7 +27,7 @@ to fonts and performance suffers, so we have Fira Mono to fall back on. #+BEGIN_SRC emacs-lisp (setq doom-font (font-spec :family "FuraCode Nerd Font Mono" :size 12) doom-big-font (font-spec :family "FuraCode Nerd Font Mono" :size 17) - doom-variable-pitch-font (font-spec :family "Noto Serif" :size 12) + doom-variable-pitch-font (font-spec :family "Noto Serif" :size 14) doom-serif-font (font-spec :family "FuraCode Nerd Font Mono") doom-theme 'srcery) #+END_SRC @@ -52,6 +52,13 @@ I need to figure out what this does, hence the task below. (after! dash (dash-enable-font-lock)) #+END_SRC *** TODO Figure out what dash highlighting is all about +** Fringe +#+BEGIN_SRC emacs-lisp +(nyan-mode) ;; progress in the form of a rainbow cat. +(beacon-mode) ;; show me the cursor! +(add-hook 'after-init-hook #'global-emojify-mode) ;; emojis?! +(add-hook 'prog-mode-hook #'goto-address-mode) ;; linify links! +#+END_SRC * Keybindings #+BEGIN_SRC emacs-lisp (map! ;; Easier window movement @@ -68,10 +75,7 @@ I need to figure out what this does, hence the task below. (:prefix "f" :desc "Find file in dotfiles" "t" #'+hlissner/find-in-dotfiles :desc "Browse dotfiles" "T" #'+hlissner/browse-dotfiles) - (:prefix "t" - :desc "Switch themes" "t" #'load-theme) (:prefix "o" - :desc "Elfeed feed reader" "f" #'elfeed :desc "Hckrnews" "h" #'hackernews :desc "Lobste.rs" "l" #'ivy-lobsters) (:prefix "b" @@ -79,7 +83,6 @@ I need to figure out what this does, hence the task below. :desc "isort buffer" "I" #'py-isort-buffer :desc "Links in buffer" "l" #'ace-link-org) (:prefix "s" - :desc "Search project TODOs" "t" #'+ivy/tasks :desc "Search the web" "w" #'web-search :desc "Goto URL in eww" "u" #'eww-browse-url :desc "Search in eww" "3" #'eww-search-words @@ -113,10 +116,7 @@ Eglot versus LSP? Until 27 lands stable, Eglot wins. I can actually read all it's source. #+BEGIN_SRC emacs-lisp -;; app/eglot -;; Back to eglot ... -(add-hook 'foo-mode-hook 'eglot-ensure) - +(add-hook 'foo-mode-hook 'eglot-ensure) ;; back to eglot #+END_SRC * Music Right now, just make sure I can connect to my local Mopidy server via MPDel. @@ -166,10 +166,8 @@ Right now, just make sure I can connect to my local Mopidy server via MPDel. :desc "Open Elfeed" "o" #'elfeed :desc "Update Elfeed" "u" #'elfeed-update)) #+END_SRC -* Niceties +* Formatting #+BEGIN_SRC emacs-lisp -(add-hook 'prog-mode-hook #'goto-address-mode) ;; Linkify links! - ;;; It is the opposite of fill-paragraph (defun unfill-paragraph () "Takes a multi-line paragraph and makes it into a single line of text." @@ -181,23 +179,15 @@ Right now, just make sure I can connect to my local Mopidy server via MPDel. (define-key global-map "\M-z" 'unfill-paragraph) #+END_SRC -Helpful modes to make working less painful. +PlantUML is pretty fantastic. This enables a mode for editing plantUML files in +Emacs. #+BEGIN_SRC emacs-lisp -;; A rainbow cat, why not? -(nyan-mode) - -;; Show the cursor when we make jumps, I'm too old for this shit. -(beacon-mode) - -#+END_SRC - -#+BEGIN_SRC emacs-lisp -;; Emojis, fuck me. -(add-hook 'after-init-hook #'global-emojify-mode) - ;; PlantUML is awesome for quick diagrams (add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode)) +#+END_SRC +Handy clock to look up what timezone my co-workers are in! +#+BEGIN_SRC emacs-lisp ;; Timezone location strings at http://worldtime.io (setq display-time-world-list '(("America/Los_Angeles" "San Francisco") ("America/Tegucigalpa" "Tegucigalpa") @@ -209,9 +199,9 @@ Helpful modes to make working less painful. #+END_SRC #+BEGIN_SRC emacs-lisp -(setq +workspaces-switch-project-function #'ignore - +format-on-save-enabled-modes '(python-mode) - +pretty-code-enabled-modes '(emacs-lisp-mode org-mode)) +;(setq +workspaces-switch-project-function #'ignore +; +format-on-save-enabled-modes '(python-mode) +; +pretty-code-enabled-modes '(emacs-lisp-mode org-mode)) #+END_SRC * Org-mode ** Basic configuration @@ -380,22 +370,42 @@ Reading novels in Emacs, how novel! (add-hook 'nov-post-html-render-hook 'my-nov-post-html-render-hook) (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) -(defun my-nov-font-setup () - (face-remap-add-relative 'variable-pitch :family "Noto Serif" - :size 20 - :height 1.0)) -(add-hook 'nov-mode-hook 'my-nov-font-setup) +(add-hook 'nov-mode-hook 'variable-pitch-mode) #+END_SRC * Mail +** Basics I use notmuch to read and write email from within Emacs. - #+BEGIN_SRC emacs-lisp -(load! "+mail") ;; Mail stuff +;(load! "+mail") ;; Mail stuff -;; Use word wrap in text emails, because most people suck -(remove-hook 'text-mode-hook #'auto-fill-mode) -(add-hook 'message-mode-hook #'word-wrap-mode) +; Use w3m to parse HTML email +(setq mm-text-html-renderer 'w3m) +(setq w3m-fill-column 72) + +; Kill email message buffers when you close them +(setq message-kill-buffer-on-exit t) +(setq message-auto-save-directory "~/Mail/colin@unbl.ink/Drafts/") +(setq message-directory "~/Mail/colin@unbl.ink/") + +;;; Setup sending email with msmtp +(setq send-mail-function 'sendmail-send-it + sendmail-program "/usr/local/bin/msmtp" + smtpmail-queue-mail t + mail-specify-envelope-from t + message-sendmail-f-is-evil t + message-sendmail-envelope-from 'header + message-sendmail-extra-arguments '("--read-envelope-from") + mail-envelope-from 'header) +#+END_SRC +** Keybindings +#+BEGIN_SRC emacs-lisp +(map! :leader + (:prefix "e" + :desc "(s)end queued mail" "s" #'smtpmail-send-queued-mail + :desc "Open (i)nbox" "i" #'=notmuch + :desc "Open (n)otmuch" "n" #'notmuch + :desc "(C)ompose mail" "c" #'notmuch-mua-new-mail)) #+END_SRC * Eshell @@ -407,10 +417,11 @@ Handful of fun aliases to make working in Eshell almost like a /real/ shell :smi "f" "(other-window 1) && find-file $1" "l" "ls -lh" "d" "dired $1" - "dc" "docker-compose $*" - "fftest" "cd ~/src/ff/fifteen5 && docker-compose exec app django-admin test -k $*" - "ffsh" "cd ~/src/ff/fifteen5/ && docker-compose exec app django-admin shell_plus" - "ffdj" "cd ~/src/ff/fifteen5/ && docker-compose exec app django-admin $*" + "ff" "cd ~/src/ff/fifteen5" + "djtest" "cd ~/src/ff/fifteen5 & django-admin test -k $*" + "djsh" "cd ~/src/ff/fifteen5/ & django-admin shell_plus" + "djrun" "cd ~/src/ff/fifteen5/ & django-admin runserver_plus" + "dj" "cd ~/src/ff/fifteen5/ & django-admin $*" "gl" "(call-interactively 'magit-log-current)" "gs" "magit-status" "gc" "magit-commit"))