|
@@ -4,13 +4,15 @@ This configuration of Emacs is highly opinionated.
|
|
|
|
|
|
* Basics
|
|
|
My identity. Used in a handful of places in Emacs to pre-populate authorship and such.
|
|
|
+
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
(setq user-full-name "Colin Powell"
|
|
|
user-mail-address "colin@unbl.ink")
|
|
|
#+END_SRC
|
|
|
+
|
|
|
From a friend at [[https://discord.com/channels/406534637242810369/695450585758957609/715126265715097600][Discord]]
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
-(setq ivy-read-action-function #'ivy-hydra-read-action)
|
|
|
+;;(setq ivy-read-action-function #'ivy-hydra-read-action)
|
|
|
#+END_SRC
|
|
|
* User interface
|
|
|
** Fonts and themes
|
|
@@ -18,7 +20,7 @@ I change my default theme almost as often as the weather. I tend to revert back
|
|
|
to Doom One most of the time, but I like the Kaolin themes, as well as Nimbus
|
|
|
for it's retro charm. Nimbus just doesn't look great when I'm tired though.
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
-(setq doom-theme 'doom-gruvbox
|
|
|
+(setq doom-theme 'doom-one
|
|
|
doom-font (font-spec :family "FuraCode Nerd Font Mono" :size 12 :weight 'regular)
|
|
|
doom-big-font (font-spec :family "JetBrains Mono" :size 16 :weight 'regular)
|
|
|
doom-variable-pitch-font (font-spec :family "Overpass" :size 12))
|
|
@@ -76,20 +78,6 @@ border.
|
|
|
:desc "Search in eww" "3" #'eww-search-words
|
|
|
:desc "Search all the things" "g" #'deadgrep))
|
|
|
#+END_SRC
|
|
|
-* Weather
|
|
|
-Wttrin is a pretty funny way to check weather. I like that you can copy and
|
|
|
-paste fun a ASCII representations of the day's weather. It's not terribly
|
|
|
-accurate though.
|
|
|
-
|
|
|
-#+BEGIN_SRC emacs-lisp
|
|
|
-(setq wttrin-default-cities '("Castine, ME" "San Francisco" "Thessaloniki"))
|
|
|
-(setq wttrin-default-accept-language '("Accept-Language" . "en-US"))
|
|
|
-
|
|
|
-(map!
|
|
|
- (:leader
|
|
|
- (:prefix "o"
|
|
|
- :desc "(W)eather" "W" #'wttrin)))
|
|
|
-#+END_SRC
|
|
|
* Music
|
|
|
Right now, just make sure I can connect to my local Mopidy server via MPDel.
|
|
|
|
|
@@ -167,23 +155,6 @@ Here we define the opposite function to fill-paragraph and then map it to Meta-z
|
|
|
(define-key global-map "\M-z" 'unfill-paragraph)
|
|
|
#+END_SRC
|
|
|
|
|
|
-PlantUML is pretty fantastic. This enables a mode for editing plantuml files in Emacs.
|
|
|
-#+BEGIN_SRC emacs-lisp
|
|
|
-;; 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")
|
|
|
- ("America/New_York" "New York")
|
|
|
- ("Europe/London" "London")
|
|
|
- ("Europe/Warsaw" "Warsaw")
|
|
|
- ("Europe/Kiev" "Lviv")))
|
|
|
-#+END_SRC
|
|
|
-
|
|
|
Vale linter, a more up to date proselint!
|
|
|
|
|
|
How I went about [[file:/usr/home/powellc/var/org/20200916134500-vale_prose_linter.org::*Installing Vale][installing Vale]]
|
|
@@ -199,14 +170,18 @@ How I went about [[file:/usr/home/powellc/var/org/20200916134500-vale_prose_lint
|
|
|
)
|
|
|
(add-to-list 'flycheck-checkers 'vale 'append)
|
|
|
#+END_SRC
|
|
|
+
|
|
|
+We love auto-formatting, but not everything should be auto-formatted
|
|
|
#+begin_src emacs-lisp
|
|
|
(setq +format-on-save-enabled-modes
|
|
|
'(not emacs-lisp-mode ; elisp's mechanisms are good enough
|
|
|
sql-mode ; sqlformat is currently broken
|
|
|
tex-mode ; latexindent is broken
|
|
|
org-mode
|
|
|
+ html-mode
|
|
|
latex-mode))
|
|
|
#+end_src
|
|
|
+
|
|
|
* Org-mode
|
|
|
** Basic configuration
|
|
|
A handful of mods here clean up org mode. Line numbers don’t mean much when
|
|
@@ -216,26 +191,13 @@ a serif font when I’m writing a lot of words.
|
|
|
(add-hook 'org-mode-hook #'doom-disable-line-numbers-h)
|
|
|
|
|
|
(after! org
|
|
|
- (run-with-idle-timer 300 t (lambda () ((save-window-excursion org-agenda) nil "a")) )
|
|
|
(setq org-directory (expand-file-name "~/var/org/")
|
|
|
org-agenda-files (file-expand-wildcards "~/var/org/2022-*")
|
|
|
- org-pretty-entities t
|
|
|
- org-agenda-dim-blocked-tasks nil
|
|
|
- org-log-done 'time
|
|
|
- org-hide-emphasis-markers t
|
|
|
- org-fontify-whole-heading-line t
|
|
|
- org-fontify-done-headline t
|
|
|
- org-fontify-quote-and-verse-blocks t
|
|
|
org-ellipsis "…"
|
|
|
org-image-actual-width '(600)
|
|
|
- org-protocol-default-template-key "l"
|
|
|
- org-capture-templates
|
|
|
- '(("i" "Send to inbox" entry (file "~/var/org/index.org")
|
|
|
- "* TODO %?\n")
|
|
|
- ("l" "Link" entry (file "~/var/org/index.org")
|
|
|
- "* TODO %a\n %?\n %i"))
|
|
|
- org-todo-keywords
|
|
|
- '((sequence "TODO(t)" "NEXT(n)" "WAITING(w)" "|" "DONE(d)"))
|
|
|
+ org-fontify-quote-and-verse-blocks t
|
|
|
+ org-agenda-dim-blocked-tasks nil
|
|
|
+ org-pretty-entities t
|
|
|
org-fancy-priorities-list '("🅰" "🅱" "🅲" "🅳" "🅴")
|
|
|
org-modules '(ol-eshell
|
|
|
ol-notmuch
|
|
@@ -244,18 +206,16 @@ a serif font when I’m writing a lot of words.
|
|
|
ob-http
|
|
|
org-id)))
|
|
|
|
|
|
-;; Don’t display git gutter in org mode
|
|
|
-;; With tree folding, it's pretty much useless
|
|
|
-(after! git-gutter
|
|
|
- (setq git-gutter:disabled-modes '(org-mode image-mode)))
|
|
|
-
|
|
|
;; Refiling
|
|
|
-(setq org-refile-targets '(("~/var/org/index.org" :maxlevel . 9)))
|
|
|
-(setq org-outline-path-complete-in-steps nil) ; Refile in a single go
|
|
|
-(setq org-refile-use-outline-path t) ; Show full paths for refiling
|
|
|
+(setq org-refile-targets '(("~/var/org/index.org" :maxlevel . 9))
|
|
|
+ org-outline-path-complete-in-steps nil ; Refile in a single go
|
|
|
+ org-refile-use-outline-path t) ; Show full paths for refiling
|
|
|
#+END_SRC
|
|
|
+
|
|
|
** Key bindings
|
|
|
-I add only two custom mappings to the default org mode maps, a shortcut to my Inbox file and a quick way to save all open org mode files.
|
|
|
+I add only two custom mappings to the default org mode maps, a shortcut to my
|
|
|
+Inbox file and a quick way to save all open org mode files.
|
|
|
+
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
(setq +inbox-file "~/var/org/index.org")
|
|
|
(defun +open-inbox-file ()
|
|
@@ -267,24 +227,12 @@ I add only two custom mappings to the default org mode maps, a shortcut to my In
|
|
|
:leader
|
|
|
:desc "Open inbox" "I" #'+open-inbox-file
|
|
|
:desc "Save all org buffers" "A" #'org-save-all-org-buffers)
|
|
|
-#+END_SRC
|
|
|
-** Agenda configuration
|
|
|
-#+BEGIN_SRC emacs-lisp
|
|
|
-(setq org-agenda-span 3
|
|
|
- org-agenda-start-day "1d")
|
|
|
-;(defun +show-agenda ()
|
|
|
-; (interactive)
|
|
|
-; (delete-other-windows)
|
|
|
-; (with-popup-rules! nil
|
|
|
-; (org-agenda-list)
|
|
|
-; (calendar))
|
|
|
-; (other-window 1)
|
|
|
-; (split-window-vertically)
|
|
|
-; (other-window 1)
|
|
|
-; (find-file +todo-file))
|
|
|
+
|
|
|
#+END_SRC
|
|
|
** Org-roam
|
|
|
-I am absolutely in love with [[https://org-roam.readthedocs.io/en/develop/][Org-roam]]. Everything about it makes taking notes easier. I just need to level up with Zettels and web publishing of my notes.
|
|
|
+I am absolutely in love with [[https://org-roam.readthedocs.io/en/develop/][Org-roam]]. Everything about it makes taking notes
|
|
|
+easier. I just need to level up with Zettels and web publishing of my notes.
|
|
|
+
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
(setq org-roam-directory "~/var/org/")
|
|
|
(setq org-roam-dailies-directory "")
|
|
@@ -297,16 +245,6 @@ I am absolutely in love with [[https://org-roam.readthedocs.io/en/develop/][Org-
|
|
|
:head "#+title: %<%Y-%m-%d>\n\n")))
|
|
|
#+END_SRC
|
|
|
|
|
|
-#+RESULTS:
|
|
|
-: /
|
|
|
-
|
|
|
-** Org-fc
|
|
|
-Trying a new space-repetition framework.
|
|
|
-#+BEGIN_SRC emacs-lisp
|
|
|
-(setq org-fc-directories "~/var/org/")
|
|
|
-;(require 'org-fc-hydra)
|
|
|
-#+END_SRC
|
|
|
-
|
|
|
* Novel
|
|
|
Reading novels in Emacs, how novel!
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
@@ -362,6 +300,7 @@ somehow installed on your machine.
|
|
|
|
|
|
A few nice to haves for messages. First we kill email message buffers when they
|
|
|
are closed. Then we set our auto save directory and generic message directory.
|
|
|
+
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
(setq message-kill-buffer-on-exit t)
|
|
|
(setq message-auto-save-directory "~/Mail/colin@unbl.ink/Drafts/")
|
|
@@ -423,8 +362,10 @@ Handful of fun aliases to make working in Eshell almost like a /real/ shell :smi
|
|
|
"gc" "magit-commit"))
|
|
|
#+END_SRC
|
|
|
* Coding
|
|
|
+
|
|
|
LSP doesn't like big projects and I can't blame it. This forces it to index huge
|
|
|
projects without warning us everytime.
|
|
|
+
|
|
|
#+begin_src emacs-lisp
|
|
|
(setq lsp-lens-enable 1
|
|
|
lsp-ui-sideline-enable 1
|
|
@@ -437,16 +378,17 @@ projects without warning us everytime.
|
|
|
)
|
|
|
|
|
|
#+END_SRC
|
|
|
+
|
|
|
#+begin_src emacs-lisp
|
|
|
(use-package lsp-mode
|
|
|
:commands lsp
|
|
|
- :ensure t
|
|
|
:diminish lsp-mode
|
|
|
:hook
|
|
|
(elixir-mode . lsp)
|
|
|
:init
|
|
|
(add-to-list 'exec-path "~/.emacs.d/var/elixir-ls"))
|
|
|
#+end_src
|
|
|
+
|
|
|
* Mastodon
|
|
|
There's gotta be a way to get the token out of password-store for this.
|
|
|
#+BEGIN_SRC emacs-lisp
|