[emacs] Fixing doom emacs for real
This commit is contained in:
@ -1,34 +0,0 @@
|
|||||||
;;; private/hlissner/autoload.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +hlissner/find-in-dotfiles ()
|
|
||||||
"Open a file somewhere in ~/.dotfiles via a fuzzy filename search."
|
|
||||||
(interactive)
|
|
||||||
(doom-project-find-file (expand-file-name "~/.dotfiles")))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +hlissner/browse-dotfiles ()
|
|
||||||
"Browse the files in ~/.dotfiles."
|
|
||||||
(interactive)
|
|
||||||
(doom-project-browse (expand-file-name "~/.dotfiles")))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +hlissner/find-notes-for-major-mode (&optional arg)
|
|
||||||
"TODO"
|
|
||||||
(interactive "P")
|
|
||||||
(let ((default-directory (expand-file-name "code/" +org-dir)))
|
|
||||||
(if arg
|
|
||||||
(call-interactively #'find-file)
|
|
||||||
(find-file
|
|
||||||
(expand-file-name (concat (string-remove-suffix "-mode" (symbol-name major-mode)) ".org"))))))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +hlissner/find-notes-for-project (&optional arg)
|
|
||||||
"TODO"
|
|
||||||
(interactive "P")
|
|
||||||
(let ((project-root (doom-project-name 'nocache))
|
|
||||||
(default-directory (expand-file-name "projects/" +org-dir)))
|
|
||||||
(if arg
|
|
||||||
(call-interactively #'find-file)
|
|
||||||
(find-file
|
|
||||||
(expand-file-name (concat project-root ".org"))))))
|
|
||||||
@ -3,28 +3,28 @@
|
|||||||
(setq user-full-name "Colin Powell"
|
(setq user-full-name "Colin Powell"
|
||||||
user-mail-address "colin@unbl.ink")
|
user-mail-address "colin@unbl.ink")
|
||||||
|
|
||||||
(pixel-scroll-precision-mode t)
|
(nyan-mode)
|
||||||
(nyan-mode) ;; progress in the form of a rainbow cat.
|
|
||||||
|
|
||||||
(setq doom-theme 'doom-one
|
(setq doom-theme 'doom-one
|
||||||
doom-font (font-spec :family "Iosevka" :size 14 :weight 'regular)
|
doom-font (font-spec :family "Iosevka" :size 14 :weight 'regular)
|
||||||
doom-big-font (font-spec :family "Iosevka" :size 18 :weight 'regular)
|
doom-big-font (font-spec :family "Iosevka" :size 18 :weight 'regular)
|
||||||
doom-variable-pitch-font (font-spec :family "Overpass" :size 12))
|
doom-variable-pitch-font (font-spec :family "Overpass" :size 12))
|
||||||
|
|
||||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
|
||||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
|
||||||
(setq display-line-numbers-type t)
|
(setq display-line-numbers-type t)
|
||||||
|
|
||||||
(add-hook 'after-init-hook #'global-emojify-mode) ;; emojis?!
|
|
||||||
(add-hook 'prog-mode-hook #'goto-address-mode) ;; linify links!
|
|
||||||
|
|
||||||
(setq shell-file-name (executable-find "bash"))
|
|
||||||
(setq-default vterm-shell (executable-find "fish"))
|
|
||||||
(setq-default explicit-shell-file-name (executable-find "fish"))
|
|
||||||
|
|
||||||
;; change `org-directory'. It must be set before org loads!
|
;; change `org-directory'. It must be set before org loads!
|
||||||
(setq org-directory "~/var/org/")
|
(setq org-directory "~/var/org/")
|
||||||
|
|
||||||
|
(load! "+agenda-fix")
|
||||||
|
(defun vulpea-agenda-files-update (&rest _)
|
||||||
|
(setq org-agenda-files vulpea-project-files))
|
||||||
|
|
||||||
|
(setq org-roam-directory "~/var/org/"
|
||||||
|
org-roam-dailies-directory "dailies")
|
||||||
|
|
||||||
|
(advice-add 'org-agenda :before #'vulpea-agenda-files-update)
|
||||||
|
(advice-add 'org-todo-list :before #'vulpea-agenda-files-update)
|
||||||
|
|
||||||
(map! ;; Easier window movement
|
(map! ;; Easier window movement
|
||||||
:n "C-h" 'evil-window-left
|
:n "C-h" 'evil-window-left
|
||||||
:n "C-j" 'evil-window-down
|
:n "C-j" 'evil-window-down
|
||||||
@ -35,7 +35,6 @@
|
|||||||
"C-h" 'evil-window-left
|
"C-h" 'evil-window-left
|
||||||
"C-l" 'evil-window-right))
|
"C-l" 'evil-window-right))
|
||||||
|
|
||||||
|
|
||||||
(defun unfill-paragraph ()
|
(defun unfill-paragraph ()
|
||||||
"Takes a multi-line paragraph and makes it into a single line of text."
|
"Takes a multi-line paragraph and makes it into a single line of text."
|
||||||
(interactive)
|
(interactive)
|
||||||
@ -66,35 +65,9 @@
|
|||||||
(unless (string= "-" project-name)
|
(unless (string= "-" project-name)
|
||||||
(format (if (buffer-modified-p) " ◉ %s" " ● %s") project-name))))))
|
(format (if (buffer-modified-p) " ◉ %s" " ● %s") project-name))))))
|
||||||
|
|
||||||
(load! "+agenda-fix")
|
|
||||||
(defun vulpea-agenda-files-update (&rest _)
|
|
||||||
(setq org-agenda-files vulpea-project-files))
|
|
||||||
|
|
||||||
(setq org-roam-directory "~/var/org/"
|
|
||||||
org-roam-dailies-directory "dailies")
|
|
||||||
|
|
||||||
(advice-add 'org-agenda :before #'vulpea-agenda-files-update)
|
|
||||||
(advice-add 'org-todo-list :before #'vulpea-agenda-files-update)
|
|
||||||
|
|
||||||
(setq display-line-numbers-type 'normal)
|
|
||||||
(remove-hook! '(org-mode-hook) #'display-line-numbers-mode)
|
|
||||||
|
|
||||||
(setq mm-text-html-renderer 'w3m)
|
(setq mm-text-html-renderer 'w3m)
|
||||||
(setq w3m-fill-column 88)
|
(setq w3m-fill-column 88)
|
||||||
|
|
||||||
(after! eshell
|
|
||||||
(set-eshell-alias!
|
|
||||||
"djsh" "~/src/github.com/sureapp/surepreme/make shell"
|
|
||||||
"djpytest" "DJANGO_SETTINGS_MODULE=ff.settings.ci pytest --reuse-db --black --flake8 --isort --durations=3 $*"
|
|
||||||
"surep" "cd ~/src/github.com/sureapp/surepreme/"
|
|
||||||
"ffdev" "ssh dev-ff.local "
|
|
||||||
"f" "(other-window 1) && find-file $1"
|
|
||||||
"l" "ls -lh"
|
|
||||||
"d" "dired $1"
|
|
||||||
"gl" "(call-interactively 'magit-log-current)"
|
|
||||||
"gs" "magit-status"
|
|
||||||
"gc" "magit-commit"))
|
|
||||||
|
|
||||||
(setq lsp-lens-enable 1
|
(setq lsp-lens-enable 1
|
||||||
lsp-ui-sideline-enable 1
|
lsp-ui-sideline-enable 1
|
||||||
lsp-enable-links 1
|
lsp-enable-links 1
|
||||||
|
|||||||
@ -1,348 +0,0 @@
|
|||||||
(setq user-full-name "Colin Powell"
|
|
||||||
user-mail-address "colin@unbl.ink")
|
|
||||||
|
|
||||||
;;(setq ivy-read-action-function #'ivy-hydra-read-action)
|
|
||||||
|
|
||||||
(defun file-notify-rm-all-watches ()
|
|
||||||
"Remove all existing file notification watches from Emacs."
|
|
||||||
(interactive)
|
|
||||||
(maphash
|
|
||||||
(lambda (key _value)
|
|
||||||
(file-notify-rm-watch key))
|
|
||||||
file-notify-descriptors))
|
|
||||||
|
|
||||||
(setq doom-theme 'moe-dark
|
|
||||||
doom-font (font-spec :family "IBM Plex Mono" :size 13 :weight 'regular)
|
|
||||||
doom-big-font (font-spec :family "IBM Plex Mono" :size 17 :weight 'regular)
|
|
||||||
doom-variable-pitch-font (font-spec :family "Overpass" :size 12))
|
|
||||||
|
|
||||||
;; Applies to current frame
|
|
||||||
;(set-frame-parameter nil 'internal-border-width 10) ; applies to the current frame
|
|
||||||
;; If we create new frames (via emacsclient) this will do the trick
|
|
||||||
;(add-to-list 'default-frame-alist '(internal-border-width . 10))
|
|
||||||
|
|
||||||
(nyan-mode) ;; progress in the form of a rainbow cat.
|
|
||||||
(add-hook 'after-init-hook #'global-emojify-mode) ;; emojis?!
|
|
||||||
(add-hook 'prog-mode-hook #'goto-address-mode) ;; linify links!
|
|
||||||
|
|
||||||
(setq eww-search-prefix "https://search.unbl.ink/?q=")
|
|
||||||
|
|
||||||
(map! ;; Easier window movement
|
|
||||||
:n "C-h" 'evil-window-left
|
|
||||||
:n "C-j" 'evil-window-down
|
|
||||||
:n "C-k" 'evil-window-up
|
|
||||||
:n "C-l" 'evil-window-right
|
|
||||||
|
|
||||||
(:map evil-treemacs-state-map
|
|
||||||
"C-h" 'evil-window-left
|
|
||||||
"C-l" 'evil-window-right)
|
|
||||||
|
|
||||||
:leader
|
|
||||||
(:prefix "f"
|
|
||||||
:desc "Find file in dotfiles" "t" #'+hlissner/find-in-dotfiles
|
|
||||||
:desc "Browse dotfiles" "T" #'+hlissner/browse-dotfiles)
|
|
||||||
(:prefix "o"
|
|
||||||
:desc "(H)ckrnews" "H" #'hackernews
|
|
||||||
:desc "(R)SS" "R" #'=rss
|
|
||||||
:desc "(M)ail" "M" #'=notmuch
|
|
||||||
:desc "(L)obste.rs" "L" #'ivy-lobsters)
|
|
||||||
(:prefix "b"
|
|
||||||
:desc "Black format buffer" "f" #'blacken-buffer
|
|
||||||
:desc "isort buffer" "I" #'py-isort-buffer
|
|
||||||
:desc "Links in buffer" "l" #'ace-link-org)
|
|
||||||
(:prefix "s"
|
|
||||||
:desc "Copy link hints" "c" #'link-hint-copy-link
|
|
||||||
:desc "Search the web" "w" #'web-search
|
|
||||||
:desc "Goto URL in eww" "u" #'eww-browse-url
|
|
||||||
:desc "Search in eww" "3" #'eww-search-words
|
|
||||||
:desc "Search all the things" "g" #'deadgrep))
|
|
||||||
|
|
||||||
(setq libmpdel-hostname "mpd.play.unbl.ink")
|
|
||||||
|
|
||||||
(defun mpdel-playlist-play ()
|
|
||||||
"Start playing the song at point."
|
|
||||||
(interactive)
|
|
||||||
(if (derived-mode-p 'mpdel-playlist-current-playlist-mode)
|
|
||||||
(libmpdel-play-song (navigel-entity-at-point))
|
|
||||||
(mpdel-core-insert-current-playlist)))
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "-"
|
|
||||||
:desc "MPD Open playlist" "-" #'mpdel-playlist-open
|
|
||||||
:desc "MPD Remove at point" "d" #'mpdel-playlist-delete
|
|
||||||
:desc "MPD Start at point" "s" #'mpdel-playlist-play
|
|
||||||
:desc "MPD Next track" "n" #'libmpdel-playback-next
|
|
||||||
:desc "MPD Previous track" "p" #'libmpdel-playback-previous))
|
|
||||||
|
|
||||||
(setq elfeed-protocol-fever-maxsize 100)
|
|
||||||
(setq elfeed-feeds '(("fever+https://secstate@rss.unbl.ink"
|
|
||||||
:api-url "https://rss.unbl.ink/fever/"
|
|
||||||
:password "delegator flaxseed request washer"
|
|
||||||
:autotags '(("rss.unbl.ink")))))
|
|
||||||
|
|
||||||
;(setq elfeed-protocol-log-trace t)
|
|
||||||
(setq elfeed-protocol-fever-maxsize 50)
|
|
||||||
;(setq elfeed-log-level 'debug)
|
|
||||||
(elfeed-protocol-enable)
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "r"
|
|
||||||
:desc "Open Elfeed" "r" #'elfeed
|
|
||||||
:desc "Update Elfeed" "u" #'elfeed-update))
|
|
||||||
|
|
||||||
;; Schedule feed update for every 15 minutes
|
|
||||||
(run-at-time 300 300
|
|
||||||
(lambda () (when (= elfeed-curl-queue-active 0)
|
|
||||||
(elfeed-update))))
|
|
||||||
;;;;; Database auto-save
|
|
||||||
|
|
||||||
;; Save elfeed db automatically, because if Emacs crashes or is killed (which happens to me
|
|
||||||
;; occasionally, especially since I develop packages in a single instance), we'd lose the db
|
|
||||||
;; updates not saved.
|
|
||||||
(unless (cl-loop for timer in timer-idle-list
|
|
||||||
thereis (equal (aref timer 5) #'elfeed-db-save))
|
|
||||||
(run-with-idle-timer 400 'repeat #'elfeed-db-save))
|
|
||||||
|
|
||||||
(setq elfeed-search-filter "@2-days-ago +unread")
|
|
||||||
(defun elfeed-search-format-date (date)
|
|
||||||
(format-time-string "%Y-%m-%d %H:%M" (seconds-to-time date)))
|
|
||||||
|
|
||||||
; Serif font in Elfeed
|
|
||||||
(add-hook! 'elfeed-mode-hook 'variable-pitch-mode)
|
|
||||||
(add-hook! 'elfeed-show-mode-hook (text-scale-set 1.2))
|
|
||||||
|
|
||||||
(defun unfill-paragraph ()
|
|
||||||
"Takes a multi-line paragraph and makes it into a single line of text."
|
|
||||||
(interactive)
|
|
||||||
(let ((fill-column (point-max)))
|
|
||||||
(fill-paragraph nil)))
|
|
||||||
|
|
||||||
(define-key global-map "\M-z" 'unfill-paragraph)
|
|
||||||
|
|
||||||
(flycheck-define-checker vale
|
|
||||||
"A checker for prose"
|
|
||||||
:command ("vale" "--output" "line"
|
|
||||||
source)
|
|
||||||
:standard-input nil
|
|
||||||
:error-patterns
|
|
||||||
((error line-start (file-name) ":" line ":" column ":" (id (one-or-more (not (any ":")))) ":" (message) line-end))
|
|
||||||
:modes (markdown-mode org-mode text-mode)
|
|
||||||
)
|
|
||||||
(add-to-list 'flycheck-checkers 'vale 'append)
|
|
||||||
|
|
||||||
(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))
|
|
||||||
|
|
||||||
(load! "+agenda-fix")
|
|
||||||
(defun vulpea-agenda-files-update (&rest _)
|
|
||||||
(setq org-agenda-files vulpea-project-files))
|
|
||||||
|
|
||||||
(advice-add 'org-agenda :before #'vulpea-agenda-files-update)
|
|
||||||
(advice-add 'org-todo-list :before #'vulpea-agenda-files-update)
|
|
||||||
|
|
||||||
(add-hook 'org-mode-hook #'doom-disable-line-numbers-h)
|
|
||||||
|
|
||||||
(after! org
|
|
||||||
(setq org-directory (expand-file-name "~/var/org/")
|
|
||||||
org-ellipsis "…"
|
|
||||||
org-image-actual-width '(600)
|
|
||||||
org-log-done 'time
|
|
||||||
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
|
|
||||||
ob-eval
|
|
||||||
ob-exp
|
|
||||||
ob-http
|
|
||||||
org-id)))
|
|
||||||
|
|
||||||
;; Refiling
|
|
||||||
(setq org-refile-targets '((vulpea-project-files :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 +inbox-file "~/var/org/index.org")
|
|
||||||
(defun +open-inbox-file ()
|
|
||||||
(interactive)
|
|
||||||
"Opens the inbox file"
|
|
||||||
(find-file +inbox-file))
|
|
||||||
|
|
||||||
(map!
|
|
||||||
:leader
|
|
||||||
:desc "Open inbox" "I" #'+open-inbox-file
|
|
||||||
:desc "Open today" "d" #'org-roam-dailies-goto-today
|
|
||||||
:desc "Save all org buffers" "A" #'org-save-all-org-buffers)
|
|
||||||
|
|
||||||
(setq org-roam-directory "~/var/org/")
|
|
||||||
(setq org-roam-dailies-directory "dailies")
|
|
||||||
|
|
||||||
(require 'justify-kp)
|
|
||||||
;(setq nov-text-width t)
|
|
||||||
(setq nov-text-width 100)
|
|
||||||
|
|
||||||
(defun my-nov-window-configuration-change-hook ()
|
|
||||||
(my-nov-post-html-render-hook)
|
|
||||||
(remove-hook 'window-configuration-change-hook
|
|
||||||
'my-nov-window-configuration-change-hook
|
|
||||||
t))
|
|
||||||
|
|
||||||
(defun my-nov-post-html-render-hook ()
|
|
||||||
(if (get-buffer-window)
|
|
||||||
(let ((max-width (pj-line-width))
|
|
||||||
buffer-read-only)
|
|
||||||
(save-excursion
|
|
||||||
(goto-char (point-min))
|
|
||||||
(while (not (eobp))
|
|
||||||
(when (not (looking-at "^[[:space:]]*$"))
|
|
||||||
(goto-char (line-end-position))
|
|
||||||
(when (> (shr-pixel-column) max-width)
|
|
||||||
(goto-char (line-beginning-position))
|
|
||||||
(pj-justify)))
|
|
||||||
(forward-line 1))))
|
|
||||||
(add-hook 'window-configuration-change-hook
|
|
||||||
'my-nov-window-configuration-change-hook
|
|
||||||
nil t)))
|
|
||||||
(add-hook 'nov-post-html-render-hook 'my-nov-post-html-render-hook)
|
|
||||||
|
|
||||||
(defun my-nov-font-setup ()
|
|
||||||
(face-remap-add-relative 'variable-pitch :family "Noto Serif Regular"
|
|
||||||
:height 1.0
|
|
||||||
:size 16))
|
|
||||||
(add-hook 'nov-mode-hook 'my-nov-font-setup)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
|
|
||||||
|
|
||||||
;(add-hook 'nov-mode-hook 'variable-pitch-mode)
|
|
||||||
|
|
||||||
(setq mm-text-html-renderer 'w3m)
|
|
||||||
(setq w3m-fill-column 88)
|
|
||||||
|
|
||||||
(setq message-kill-buffer-on-exit t)
|
|
||||||
(setq message-auto-save-directory "~/Mail/colin@unbl.ink/Drafts/")
|
|
||||||
(setq message-directory "~/Mail/colin@unbl.ink/")
|
|
||||||
|
|
||||||
;; sendmail-program "/usr/local/bin/msmtpq" <--- this doesn't work as advertised right now
|
|
||||||
(setq send-mail-function 'sendmail-send-it
|
|
||||||
sendmail-program "/usr/local/bin/msmtp"
|
|
||||||
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)
|
|
||||||
|
|
||||||
(setq notmuch-saved-searches '((:name "inbox" :query "tag:inbox" :key "i")
|
|
||||||
(:name "unread" :query "tag:inbox and tag:unread" :key "u")
|
|
||||||
(:name "jira" :query "tag:jira and date:yesterday..today" :key "j")
|
|
||||||
(:name "github" :query "tag:github and date:yesterday..today" :key "g")))
|
|
||||||
|
|
||||||
(after! notmuch
|
|
||||||
(set-popup-rule! "^\\*notmuch*" :ignore t)
|
|
||||||
)
|
|
||||||
|
|
||||||
(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))
|
|
||||||
|
|
||||||
(after! eshell
|
|
||||||
(set-eshell-alias!
|
|
||||||
"djtest" "DJANGO_SETTINGS_MODULE=ff.settings.ci python manage.py test $*"
|
|
||||||
"djpytest" "DJANGO_SETTINGS_MODULE=ff.settings.ci pytest --reuse-db --black --flake8 --isort --durations=3 $*"
|
|
||||||
"ffsh" "python ~/src/github.com/15five/fifteen5/manage.py shell_plus"
|
|
||||||
"ffdev" "ssh dev-ff.local "
|
|
||||||
"f" "(other-window 1) && find-file $1"
|
|
||||||
"l" "ls -lh"
|
|
||||||
"d" "dired $1"
|
|
||||||
"gl" "(call-interactively 'magit-log-current)"
|
|
||||||
"gs" "magit-status"
|
|
||||||
"gc" "magit-commit"))
|
|
||||||
|
|
||||||
(setq lsp-lens-enable 1
|
|
||||||
lsp-ui-sideline-enable 1
|
|
||||||
lsp-enable-links 1
|
|
||||||
lsp-headerline-breadcrumb-enable 1
|
|
||||||
lsp-modeline-code-actions-enable 1
|
|
||||||
lsp-modeline-diagnostics-enable 1
|
|
||||||
lsp-completion-show-detail 1
|
|
||||||
lsp-file-watch-threshold nil
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package lsp-mode
|
|
||||||
:commands lsp
|
|
||||||
:diminish lsp-mode
|
|
||||||
:hook
|
|
||||||
(elixir-mode . lsp)
|
|
||||||
:init
|
|
||||||
(add-to-list 'exec-path "~/.emacs.d/var/elixir-ls"))
|
|
||||||
|
|
||||||
(setq mastodon-instance-url "https://fosstodon.org"
|
|
||||||
mastodon-active-user "colin@unbl.ink")
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "="
|
|
||||||
:desc "Open mastodon" "=" #'mastodon
|
|
||||||
:desc "Update Mastodon timeline" "u" #'mastodon-tl--update
|
|
||||||
:desc "More Mastodon timeline" "m" #'mastodon-tl--more
|
|
||||||
:desc "Toot to Mastodon" "t" #'mastodon-toot))
|
|
||||||
|
|
||||||
(load! "beancount")
|
|
||||||
(require 'beancount)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.beancount\\'" . beancount-mode))
|
|
||||||
|
|
||||||
(define-derived-mode
|
|
||||||
pandoc-view-mode
|
|
||||||
markdown-mode
|
|
||||||
"pandoc-view-mode"
|
|
||||||
"View pandoc processing of docx file using markdown mode."
|
|
||||||
(erase-buffer)
|
|
||||||
(let* ((pandoc (executable-find "pandoc")))
|
|
||||||
(insert (shell-command-to-string
|
|
||||||
(concat pandoc " --wrap=none " (shell-quote-argument (buffer-file-name)) " -t markdown"))))
|
|
||||||
(not-modified)
|
|
||||||
(read-only-mode t))
|
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.docx\\'" . pandoc-view-mode))
|
|
||||||
|
|
||||||
(after! magit
|
|
||||||
(magit-wip-after-save-mode t)
|
|
||||||
(magit-wip-after-apply-mode t)
|
|
||||||
|
|
||||||
(setq magit-save-repository-buffers 'dontask
|
|
||||||
magit-repository-directories '(("~/src/" . 3)
|
|
||||||
("~/.dotfiles/" . 0))
|
|
||||||
magit-popup-display-buffer-action nil ;; Not sure why this is here, wonder what it does
|
|
||||||
magit-display-file-buffer-function #'switch-to-buffer-other-window
|
|
||||||
magithub-clone-default-directory "~/src" ;; I want my stuff to clone to ~/projects
|
|
||||||
magithub-preferred-remote-method 'ssh_url)) ;; HTTPS cloning is awful, i authenticate with ssh keys.
|
|
||||||
|
|
||||||
; Show gravatars in magit
|
|
||||||
(setq magit-revision-show-gravatars '("^Author: " . "^Commit: "))
|
|
||||||
|
|
||||||
(when (require 'openwith nil 'noerror)
|
|
||||||
(setq openwith-associations
|
|
||||||
(list
|
|
||||||
(list (openwith-make-extension-regexp
|
|
||||||
'("mpg" "mpeg" "mp3" "mp4"
|
|
||||||
"avi" "wmv" "wav" "mov" "flv"
|
|
||||||
"ogm" "ogg" "mkv"))
|
|
||||||
"vlc"
|
|
||||||
'(file))
|
|
||||||
(list (openwith-make-extension-regexp
|
|
||||||
'("pdf" "ps" "ps.gz" "dvi"))
|
|
||||||
"zathura"
|
|
||||||
'(file))
|
|
||||||
))
|
|
||||||
(openwith-mode 1))
|
|
||||||
|
|
||||||
(setq org-reveal-root "file:///path-to-reveal.js")
|
|
||||||
(setq org-reveal-title-slide nil)
|
|
||||||
|
|
||||||
;(require 'chatgpt-shell)
|
|
||||||
@ -1,16 +1,10 @@
|
|||||||
;;; custom.el --- -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;; Copyright (C) 2021 Colin Powell
|
|
||||||
|
|
||||||
;; Author: Colin Powell <colin@unbl.ink>
|
|
||||||
;; Keywords:
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
;; Your init file should contain only one such instance.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'")
|
'(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'")
|
||||||
'(package-selected-packages '(vulpea org-appear olivetti))
|
'(package-selected-packages '(w3m vulpea ef-themes))
|
||||||
'(safe-local-variable-values '((pytest-global-name . "docker-compose run --rm test --"))))
|
'(safe-local-variable-values '((pytest-global-name . "docker-compose run --rm test --"))))
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
;; custom-set-faces was added by Custom.
|
;; custom-set-faces was added by Custom.
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
;;; ../../.dotfiles/emacs/.config/doom/init.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;;; init.el -*- lexical-binding: t; -*-
|
;;; init.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;; This file controls what Doom modules are enabled and what order they load
|
;; This file controls what Doom modules are enabled and what order they load
|
||||||
@ -27,7 +25,7 @@
|
|||||||
;;helm ; the *other* search engine for love and life
|
;;helm ; the *other* search engine for love and life
|
||||||
;;ido ; the other *other* search engine...
|
;;ido ; the other *other* search engine...
|
||||||
;;ivy ; a search engine for love and life
|
;;ivy ; a search engine for love and life
|
||||||
(vertico +icons) ; the search engine of the future
|
vertico ; the search engine of the future
|
||||||
|
|
||||||
:ui
|
:ui
|
||||||
;;deft ; notational velocity for Emacs
|
;;deft ; notational velocity for Emacs
|
||||||
@ -41,7 +39,7 @@
|
|||||||
ligatures ; ligatures and symbols to make your code pretty again
|
ligatures ; ligatures and symbols to make your code pretty again
|
||||||
;;minimap ; show a map of the code on the side
|
;;minimap ; show a map of the code on the side
|
||||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||||
;;nav-flash ; blink cursor line after big motions
|
nav-flash ; blink cursor line after big motions
|
||||||
;;neotree ; a project drawer, like NERDTree for vim
|
;;neotree ; a project drawer, like NERDTree for vim
|
||||||
ophints ; highlight the region an operation acts on
|
ophints ; highlight the region an operation acts on
|
||||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||||
@ -96,7 +94,7 @@
|
|||||||
editorconfig ; let someone else argue about tabs vs spaces
|
editorconfig ; let someone else argue about tabs vs spaces
|
||||||
ein ; tame Jupyter notebooks with emacs
|
ein ; tame Jupyter notebooks with emacs
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
;;gist ; interacting with github gists
|
gist ; interacting with github gists
|
||||||
lookup ; navigate your code and its documentation
|
lookup ; navigate your code and its documentation
|
||||||
lsp ; M-x vscode
|
lsp ; M-x vscode
|
||||||
magit ; a git porcelain for Emacs
|
magit ; a git porcelain for Emacs
|
||||||
@ -113,11 +111,11 @@
|
|||||||
|
|
||||||
:os
|
:os
|
||||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||||
tty ; improve the terminal Emacs experience
|
;;tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
:lang
|
:lang
|
||||||
;;agda ; types of types of types of types...
|
;;agda ; types of types of types of types...
|
||||||
beancount ; mind the GAAP
|
;;beancount ; mind the GAAP
|
||||||
;;(cc +lsp) ; C > C++ == 1
|
;;(cc +lsp) ; C > C++ == 1
|
||||||
;;clojure ; java with a lisp
|
;;clojure ; java with a lisp
|
||||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||||
@ -139,13 +137,13 @@
|
|||||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
;;gdscript ; the language you waited for
|
;;gdscript ; the language you waited for
|
||||||
;;(go +lsp) ; the hipster dialect
|
;;(go +lsp) ; the hipster dialect
|
||||||
;;(graphql +lsp) ; Give queries a REST
|
(graphql +lsp) ; Give queries a REST
|
||||||
;;(haskell +lsp) ; a language that's lazier than I am
|
;;(haskell +lsp) ; a language that's lazier than I am
|
||||||
;;hy ; readability of scheme w/ speed of python
|
;;hy ; readability of scheme w/ speed of python
|
||||||
;;idris ; a language you can depend on
|
;;idris ; a language you can depend on
|
||||||
json ; At least it ain't XML
|
json ; At least it ain't XML
|
||||||
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
;;(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||||
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
|
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
;;julia ; a better, faster MATLAB
|
;;julia ; a better, faster MATLAB
|
||||||
;;kotlin ; a better, slicker Java(Script)
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
;;latex ; writing papers in Emacs has never been so fun
|
;;latex ; writing papers in Emacs has never been so fun
|
||||||
@ -158,19 +156,16 @@
|
|||||||
;;ocaml ; an objective camel
|
;;ocaml ; an objective camel
|
||||||
(org ; organize your plain life in plain text
|
(org ; organize your plain life in plain text
|
||||||
+hugo
|
+hugo
|
||||||
+dragndrop
|
|
||||||
+gnuplot
|
+gnuplot
|
||||||
+ipython ; ipython support for babel
|
+ipython ; ipython support for babel
|
||||||
+journal
|
+journal
|
||||||
+pretty
|
+pretty
|
||||||
+roam2
|
+roam2
|
||||||
+pandoc ; pandoc integration into org's exporter
|
+pandoc) ; pandoc integration into org's exporter
|
||||||
+pomodoro
|
|
||||||
+present) ; using Emacs for presentations
|
|
||||||
;;php ; perl's insecure younger brother
|
;;php ; perl's insecure younger brother
|
||||||
;;plantuml ; diagrams for confusing people more
|
;;plantuml ; diagrams for confusing people more
|
||||||
;;purescript ; javascript, but functional
|
;;purescript ; javascript, but functional
|
||||||
(python +lsp) ; beautiful is better than ugly
|
(python +lsp +pyright) ; beautiful is better than ugly
|
||||||
;;qt ; the 'cutest' gui framework ever
|
;;qt ; the 'cutest' gui framework ever
|
||||||
;;racket ; a DSL for DSLs
|
;;racket ; a DSL for DSLs
|
||||||
;;raku ; the artist formerly known as perl6
|
;;raku ; the artist formerly known as perl6
|
||||||
@ -185,7 +180,7 @@
|
|||||||
;;solidity ; do you need a blockchain? No.
|
;;solidity ; do you need a blockchain? No.
|
||||||
;;swift ; who asked for emoji variables?
|
;;swift ; who asked for emoji variables?
|
||||||
;;terra ; Earth and Moon in alignment for performance.
|
;;terra ; Earth and Moon in alignment for performance.
|
||||||
(web +lsp) ; the tubes
|
web ; the tubes
|
||||||
yaml ; JSON, but readable
|
yaml ; JSON, but readable
|
||||||
;;zig ; C, but simpler
|
;;zig ; C, but simpler
|
||||||
|
|
||||||
|
|||||||
@ -1,134 +0,0 @@
|
|||||||
;;; init.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;; This file controls what Doom modules are enabled and what order they load
|
|
||||||
;; in. Remember to run 'doom sync' after modifying it!
|
|
||||||
|
|
||||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
|
||||||
;; documentation. There you'll find information about all of Doom's
|
|
||||||
;; modules and what flags they support.
|
|
||||||
|
|
||||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
|
||||||
;; 'C-c g k' for non-vim users) to view its documentation. This works on
|
|
||||||
;; flags as well (those symbols that start with a plus).
|
|
||||||
;;
|
|
||||||
;; Alternatively, press 'gd' (or 'C-c g d') on a module to browse its
|
|
||||||
;; directory (for easy access to its source code).
|
|
||||||
|
|
||||||
(doom! :input
|
|
||||||
;;chinese
|
|
||||||
;;japanese
|
|
||||||
|
|
||||||
:completion
|
|
||||||
company ; the ultimate code completion backend
|
|
||||||
(vertico +icons)
|
|
||||||
|
|
||||||
:ui
|
|
||||||
doom ; what makes DOOM look the way it does
|
|
||||||
doom-dashboard ; a nifty splash screen for Emacs
|
|
||||||
(emoji +unicode) ;
|
|
||||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
|
||||||
ligatures ;
|
|
||||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
|
||||||
;;nav-flash ; blink cursor line after big motions
|
|
||||||
ophints ; highlight the region an operation acts on
|
|
||||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
|
||||||
unicode ; extended unicode support for various languages
|
|
||||||
vc-gutter ; vcs diff in the fringe
|
|
||||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
|
||||||
workspaces ; tab emulation, persistence & separate workspaces
|
|
||||||
|
|
||||||
:editor
|
|
||||||
(evil +everywhere); come to the dark side, we have cookies
|
|
||||||
file-templates ; auto-snippets for empty files
|
|
||||||
fold ; (nigh) universal code folding
|
|
||||||
(format +onsave) ; automated prettiness
|
|
||||||
multiple-cursors ; editing in many places at once
|
|
||||||
snippets ; my elves. They type so I don't have to
|
|
||||||
|
|
||||||
:emacs
|
|
||||||
(dired +icons) ; making dired pretty [functional]
|
|
||||||
electric ; smarter, keyword-based electric-indent
|
|
||||||
undo ;+tree) ; persistent, smarter undo for your inevitable mistakes
|
|
||||||
vc ; version-control and Emacs, sitting in a tree
|
|
||||||
|
|
||||||
:term
|
|
||||||
eshell ; the elisp shell that works everywhere
|
|
||||||
vterm ; the best terminal emulation in Emacs
|
|
||||||
|
|
||||||
:checkers
|
|
||||||
syntax ; tasing you for every semicolon you forget
|
|
||||||
(spell +flyspell) ; tasing you for misspelling mispelling
|
|
||||||
grammar ; tasing grammar mistake every you make
|
|
||||||
|
|
||||||
:tools
|
|
||||||
;;ansible
|
|
||||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
|
||||||
direnv
|
|
||||||
docker
|
|
||||||
editorconfig ; let someone else argue about tabs vs spaces
|
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
|
||||||
;;gist ; interacting with github gists
|
|
||||||
lookup
|
|
||||||
lsp
|
|
||||||
(magit +forge) ; a git porcelain for Emacs
|
|
||||||
make ; run make tasks from Emacs
|
|
||||||
(pass +auth) ; password manager for nerds
|
|
||||||
pdf ; pdf enhancements
|
|
||||||
|
|
||||||
:os
|
|
||||||
(:if IS-MAC macos) ; improve compatibility with macOS
|
|
||||||
;;tty ; improve the terminal Emacs experience
|
|
||||||
|
|
||||||
:lang
|
|
||||||
;;crystal ; ruby at the speed of c
|
|
||||||
data ; config/data formats
|
|
||||||
;;(dart +flutter) ; paint ui and not much else
|
|
||||||
;;(elixir +lsp) ; erlang done right
|
|
||||||
emacs-lisp ; drown in parentheses
|
|
||||||
(go +lsp) ; the hipster dialect
|
|
||||||
json ; At least it ain't XML
|
|
||||||
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
|
|
||||||
ledger ; an accounting system in Emacs
|
|
||||||
lua ; one-based indices? one-based indices
|
|
||||||
markdown ; writing docs for people to ignore
|
|
||||||
;;nim ; python + lisp at the speed of c
|
|
||||||
;;nix ; I hereby declare "nix geht mehr!"
|
|
||||||
;;ocaml ; an objective camel
|
|
||||||
(org ; organize your plain life in plain text
|
|
||||||
+hugo
|
|
||||||
+dragndrop
|
|
||||||
+gnuplot
|
|
||||||
+ipython ; ipython support for babel
|
|
||||||
+journal
|
|
||||||
+pretty
|
|
||||||
+roam2
|
|
||||||
+pandoc ; pandoc integration into org's exporter
|
|
||||||
+pomodoro
|
|
||||||
+present) ; using Emacs for presentations
|
|
||||||
;;perl ; write code no one else can comprehend
|
|
||||||
;;php ; perl's insecure younger brother
|
|
||||||
;;plantuml ; diagrams for confusing people more
|
|
||||||
;;purescript ; javascript, but functional
|
|
||||||
(graphql +lsp)
|
|
||||||
(python +lsp +pyright) ; beautiful is better than ugly
|
|
||||||
;;qt ; the 'cutest' gui framework ever
|
|
||||||
;;racket ; a DSL for DSLs
|
|
||||||
rest ; Emacs as a REST client
|
|
||||||
rst ; ReST in peace
|
|
||||||
;;(ruby +rails +lsp) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
|
||||||
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
|
||||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
|
||||||
(web +lsp) ; the tubes
|
|
||||||
yaml ; JSON, but readable
|
|
||||||
;;(zig +lsp)
|
|
||||||
|
|
||||||
:email
|
|
||||||
notmuch
|
|
||||||
|
|
||||||
:app
|
|
||||||
irc ; how neckbeards socialize
|
|
||||||
rss ; emacs as an RSS reader
|
|
||||||
|
|
||||||
:config
|
|
||||||
literate
|
|
||||||
(default +bindings +smartparens))
|
|
||||||
@ -1,40 +1,55 @@
|
|||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; $DOOMDIR/packages.el
|
;;; $DOOMDIR/packages.el
|
||||||
;;;
|
|
||||||
; For making Nov.el look nice
|
|
||||||
;(package! justify-kp
|
|
||||||
; :recipe (:host github
|
|
||||||
; :repo "Fuco1/justify-kp"))
|
|
||||||
|
|
||||||
;(package! hydra)
|
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||||
|
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||||
|
;; use 'M-x doom/reload'.
|
||||||
|
|
||||||
;; python stuffs
|
|
||||||
(package! blacken)
|
|
||||||
(package! poetry)
|
|
||||||
|
|
||||||
;; org stuffs
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
(package! ob-http)
|
(package! ef-themes)
|
||||||
(package! org-web-tools)
|
|
||||||
(package! org-fancy-priorities)
|
|
||||||
(package! vulpea)
|
(package! vulpea)
|
||||||
|
|
||||||
;; handy tools
|
|
||||||
(package! w3m)
|
|
||||||
;(package! nov)
|
|
||||||
(package! git-link)
|
|
||||||
(package! web-search)
|
|
||||||
;(package! mpdel)
|
|
||||||
(package! elfeed-protocol)
|
|
||||||
(package! deadgrep)
|
|
||||||
(package! wordgen)
|
|
||||||
(package! openwith)
|
(package! openwith)
|
||||||
(package! pdf-tools)
|
|
||||||
;; slack ... okay one more time
|
|
||||||
;(package! slack)
|
|
||||||
(package! direnv)
|
|
||||||
(package! frameshot)
|
|
||||||
(package! keycast)
|
|
||||||
|
|
||||||
;; pretty things up
|
|
||||||
(package! ef-themes)
|
(package! ef-themes)
|
||||||
(package! nyan-mode)
|
(package! nyan-mode)
|
||||||
|
(package! w3m)
|
||||||
|
|
||||||
|
;; To install a package directly from a remote git repo, you must specify a
|
||||||
|
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
|
||||||
|
;; https://github.com/radian-software/straight.el#the-recipe-format
|
||||||
|
;; (package! another-package
|
||||||
|
;; :recipe (:host github :repo "username/repo"))
|
||||||
|
|
||||||
|
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||||
|
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||||
|
;; `:files' in the `:recipe':
|
||||||
|
;; (package! this-package
|
||||||
|
;; :recipe (:host github :repo "username/repo"
|
||||||
|
;; :files ("some-file.el" "src/lisp/*.el")))
|
||||||
|
|
||||||
|
;; If you'd like to disable a package included with Doom, you can do so here
|
||||||
|
;; with the `:disable' property:
|
||||||
|
;; (package! builtin-package :disable t)
|
||||||
|
|
||||||
|
;; You can override the recipe of a built in package without having to specify
|
||||||
|
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||||
|
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||||
|
;; (package! builtin-package :recipe (:nonrecursive t))
|
||||||
|
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||||
|
|
||||||
|
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||||
|
;; This is required for some packages whose default branch isn't 'master' (which
|
||||||
|
;; our package manager can't deal with; see radian-software/straight.el#279)
|
||||||
|
;; (package! builtin-package :recipe (:branch "develop"))
|
||||||
|
|
||||||
|
;; Use `:pin' to specify a particular commit to install.
|
||||||
|
;; (package! builtin-package :pin "1a2b3c4d5e")
|
||||||
|
|
||||||
|
|
||||||
|
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||||
|
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||||
|
;; (unpin! pinned-package)
|
||||||
|
;; ...or multiple packages
|
||||||
|
;; (unpin! pinned-package another-pinned-package)
|
||||||
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
|
;; (unpin! t)
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
# -*- mode: snippet -*-
|
|
||||||
# name: jira-link
|
|
||||||
# key: ENG
|
|
||||||
# --
|
|
||||||
https://15five-dev.atlassian.net/browse/ENG-$0
|
|
||||||
Reference in New Issue
Block a user