diff options
| author | Zofia Szweda <sophies@disroot.org> | 2026-09-17 20:06:07 +0200 |
|---|---|---|
| committer | Zofia Szweda <sophies@disroot.org> | 2026-09-17 20:07:35 +0200 |
| commit | c4b4263eb74b86c68244e372cdacea181f95ac0e (patch) | |
| tree | c693398d51b735cec75b599a6678e303f3008ce7 /doom/.config | |
| parent | aa7ccdf129ee635d7c800fe07ba44d0cfdf2f18a (diff) | |
emacs: modularize emacs config
Diffstat (limited to 'doom/.config')
| -rw-r--r-- | doom/.config/doom/+colemak.el | 81 | ||||
| -rw-r--r-- | doom/.config/doom/+email.el | 34 | ||||
| -rw-r--r-- | doom/.config/doom/+emms.el | 18 | ||||
| -rw-r--r-- | doom/.config/doom/+jabber.el | 16 | ||||
| -rw-r--r-- | doom/.config/doom/+lang.el | 19 | ||||
| -rw-r--r-- | doom/.config/doom/+term.el | 3 | ||||
| -rw-r--r-- | doom/.config/doom/+ui.el | 13 | ||||
| -rw-r--r-- | doom/.config/doom/+zk.el | 19 | ||||
| -rw-r--r-- | doom/.config/doom/config.el | 261 |
9 files changed, 212 insertions, 252 deletions
diff --git a/doom/.config/doom/+colemak.el b/doom/.config/doom/+colemak.el new file mode 100644 index 0000000..31df83d --- /dev/null +++ b/doom/.config/doom/+colemak.el @@ -0,0 +1,81 @@ +;;; $DOOMDIR/+colemak.el -*- lexical-binding: t; -*- + +(remove-hook 'doom-first-input-hook #'evil-snipe-mode) + +(evil-define-key '(normal visual operator) 'global + "n" 'evil-backward-char + "e" 'evil-next-line + "i" 'evil-previous-line + "o" 'evil-forward-char) + +(evil-define-key '(normal visual operator) 'global + "l" 'evil-backward-word-begin + "L" 'evil-backward-WORD-begin + "u" 'evil-forward-word-end + "U" 'evil-forward-WORD-end + "y" 'evil-forward-word-begin + "Y" 'evil-forward-word-begin) + +(with-eval-after-load 'evil-ex + (define-key evil-ex-completion-map (kbd "C-l") 'left-word) + (define-key evil-ex-completion-map (kbd "C-y") 'right-word)) + +(evil-define-key 'normal 'global + "s" 'evil-insert + "S" 'evil-insert-line + "t" 'evil-append + "T" 'evil-append-line + "h" 'evil-open-below + "H" 'evil-open-above) + +(evil-define-key '(normal visual) 'global + "w" 'evil-change + "W" 'evil-change-line) + +(evil-define-key 'normal 'global + "x" 'evil-delete-char + "c" 'evil-yank + "v" 'evil-paste-after + "X" 'evil-delete-line + "C" 'evil-yank-line + "V" 'evil-paste-before) + +(evil-define-key 'visual 'global + "x" 'evil-delete + "c" 'evil-yank + "v" 'evil-paste-after) + +(evil-define-key 'normal 'global + "z" 'evil-undo + "Z" 'evil-redo) + +(evil-define-key 'normal 'global + "a" 'evil-visual-char + "A" 'evil-visual-line + "ga" 'evil-visual-restore) + +(evil-define-key '(normal visual operator) 'global + "p" 'evil-find-char-to + "P" 'evil-find-char-to-backward + "b" 'evil-repeat-find-char + "B" 'evil-repeat-find-char-reverse + "k" 'evil-search-next + "K" 'evil-search-previous) + +(with-eval-after-load 'evil + (evil-define-key '(operator visual) 'global "r" evil-inner-text-objects-map)) + +(define-prefix-command 'my-colemak-fold-map) +(evil-define-key '(normal visual) 'global "j" 'my-colemak-fold-map) + +(define-key my-colemak-fold-map "j" 'evil-scroll-line-to-center) +(define-key my-colemak-fold-map "n" 'evil-scroll-line-to-top) +(define-key my-colemak-fold-map "e" 'evil-scroll-line-to-bottom) + +(evil-define-key 'normal 'global + "gK" 'evil-lookup) + +(map! :n "SPC w n" #'evil-window-left + :n "SPC w e" #'evil-window-down + :n "SPC w i" #'evil-window-up + :n "SPC w o" #'evil-window-right) diff --git a/doom/.config/doom/+email.el b/doom/.config/doom/+email.el new file mode 100644 index 0000000..ade568c --- /dev/null +++ b/doom/.config/doom/+email.el @@ -0,0 +1,34 @@ +;;; $DOOMDIR/+email.el -*- lexical-binding: t; -*- +(setq auth-sources '("~/.authinfo.gpg") + auth-source-cache-expiry nil) + +(setq gnus-select-method + '(nnimap "disroot" + (nnimap-address "disroot.org") + (nnimap-server-port 993) + (nnimap-stream ssl))) + +(setq smtpmail-smtp-server "disroot.org" + smtpmail-smtp-service 587 + smtpmail-stream-type 'starttls + message-send-mail-function #'smtpmail-send-it) + +(setq user-mail-address "roughlynamed@disroot.org" + user-full-name "Magdalena Szweda") + +(setq gnus-message-archive-method '(nnimap "disroot") + gnus-message-archive-group "Sent") + +(setq gnus-large-newsgroup nil + gnus-fetch-old-headers t + nnmail-expiry-target "Trash") + +(setq mml-secure-openpgp-signers + '("3258B28C124AB0891D6C9E929B72909EEF00CBD0") + mml-secure-openpgp-sign-with-sender t) + +(add-hook 'message-setup-hook #'message-insert-signature) +(add-hook 'message-send-hook #'mml-secure-message-sign-pgpmime) + +(setq message-signature + "\n--\nMagdalena Szweda\nhttps://roughlynamed.net\nPGP: 3258 B28C 124A B089 1D6C 9E92 9B72 909E EF00 CBD0") diff --git a/doom/.config/doom/+emms.el b/doom/.config/doom/+emms.el new file mode 100644 index 0000000..945982c --- /dev/null +++ b/doom/.config/doom/+emms.el @@ -0,0 +1,18 @@ +;;; $DOOMDIR/+emms.el -*- lexical-binding: t; -*- +(use-package! emms + :config + (require 'emms-setup) + (require 'emms-player-mpd) + (emms-all) + (emms-default-players) + (emms-mpris-enable) + (setq emms-source-file-default-directory "~/Music/") + (setq emms-player-list + '(emms-player-mpd))) + +(map! + :leader + :prefix "e" + :desc "Browser" "b" #'emms-browser + :desc "Emms" "e" #'emms + :desc "Play playlist" "a" #'emms-play-playlist) diff --git a/doom/.config/doom/+jabber.el b/doom/.config/doom/+jabber.el new file mode 100644 index 0000000..76b8ca8 --- /dev/null +++ b/doom/.config/doom/+jabber.el @@ -0,0 +1,16 @@ +;;; $DOOMDIR/+jabber.el -*- lexical-binding: t; -*- +(use-package! jabber + :config + (setq jabber-account-list + '(("roughlynamed@yax.im"))) + (jabber-modeline-mode 1) + :hook (kill-emacs . jabber-disconnect)) + +(map! :leader + :prefix "j" + :desc "Jabber connect" "c" #'jabber-connect-all + :desc "Jabber disconnect" "q" #'jabber-disconnect + :desc "Jabber roster" "r" #'jabber-switch-to-roster-buffer + :desc "Jabber new chat" "n" #'jabber-chat-with + :desc "Jabber groupchat" "g" #'jabber-groupchat-join + :desc "Jabber set status" "s" #'jabber-send-presence) diff --git a/doom/.config/doom/+lang.el b/doom/.config/doom/+lang.el new file mode 100644 index 0000000..1cbfe38 --- /dev/null +++ b/doom/.config/doom/+lang.el @@ -0,0 +1,19 @@ +;;; $DOOMDIR/+lang.el -*- lexical-binding: t; -*- +(after! eglot + (cl-defmethod eglot-register-capability + (server (method (eql workspace/didChangeWatchedFiles)) id &key watchers) + nil)) +(setq eglot-sync-connect nil + eglot-connect-timeout 60) + +(defun my/hs-eval () + (interactive) + (let* ((src (buffer-file-name)) + (out (file-name-sans-extension src))) + (when (zerop (call-process-shell-command + (format "runghc %s" src) nil "*runghc-output*")) + (let ((buf (make-comint "hs-run" out))) + (display-buffer buf))))) +(add-hook 'haskell-mode-hook + (lambda () + (local-set-key (kbd "<f5>") #'my/hs-eval))) diff --git a/doom/.config/doom/+term.el b/doom/.config/doom/+term.el new file mode 100644 index 0000000..1d8f2b9 --- /dev/null +++ b/doom/.config/doom/+term.el @@ -0,0 +1,3 @@ +;;; $DOOMDIR/+term.el -*- lexical-binding: t; -*- +(setq-default vterm-shell "/usr/bin/fish") +(setq-default explicit-shell-file-name "/usr/bin/fish") diff --git a/doom/.config/doom/+ui.el b/doom/.config/doom/+ui.el new file mode 100644 index 0000000..baa26f5 --- /dev/null +++ b/doom/.config/doom/+ui.el @@ -0,0 +1,13 @@ +;;; $DOOMDIR/+ui.el -*- lexical-binding: t; -*- +(add-to-list 'custom-theme-load-path + "~/.config/doom/extra-themes/") +(setq doom-font (font-spec :family "Berkeley Mono" :size 12.0)) +(setq doom-theme 'doom-badger) +(setq display-line-numbers-type t) +(setq org-directory "~/notes/") + +(use-package mood-line + :config + (mood-line-mode) + :custom + (mood-line-glyph-alist mood-line-glyphs-fira-code)) diff --git a/doom/.config/doom/+zk.el b/doom/.config/doom/+zk.el new file mode 100644 index 0000000..29bdbd7 --- /dev/null +++ b/doom/.config/doom/+zk.el @@ -0,0 +1,19 @@ +;;; $DOOMDIR/+zk.el -*- lexical-binding: t; -*- +(use-package! zk4e + :commands (zk4e-list zk4e-edit zk4e-new zk4e-tag-list zk4e-index zk4e-select-notebook + zk4e-goto-error) + :custom + (zk4e-notebook-directories '(("notes" . "~/notes/"))) + :config + (zk4e-select-notebook "notes") + (add-hook 'zk4e-edit-hook #'zk4e-maybe-name-buffer)) + +(map! :leader + (:prefix ("n z" . "zk") + :desc "Edit note" "e" #'zk4e-edit + :desc "New note" "n" #'zk4e-new + :desc "List notes" "l" #'zk4e-list + :desc "Index" "i" #'zk4e-index + :desc "Tags" "t" #'zk4e-tag-list + :desc "Switch notebook" "s" #'zk4e-select-notebook + :desc "Error log" "!" #'zk4e-goto-error)) diff --git a/doom/.config/doom/config.el b/doom/.config/doom/config.el index 44121ed..b151f6f 100644 --- a/doom/.config/doom/config.el +++ b/doom/.config/doom/config.el @@ -1,253 +1,10 @@ ;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- -(add-to-list 'custom-theme-load-path - "~/.config/doom/extra-themes/") -(remove-hook 'doom-first-input-hook #'evil-snipe-mode) -;; eglot stuff (filed bug #60570) -(after! eglot - (cl-defmethod eglot-register-capability - (server (method (eql workspace/didChangeWatchedFiles)) id &key watchers) - "see eglot#1258" - nil)) -(setq eglot-sync-connect nil - eglot-connect-timeout 60) - -;;themes and stuff -(setq doom-font (font-spec :family "Berkeley Mono" :size 12.0)) -;; (setq doom-theme 'doom-flatwhite) -;; (setq doom-theme 'fortune-gold) -(setq doom-theme 'doom-badger) -(setq display-line-numbers-type t) -(setq org-directory "~/notes/") - -;; emms (unused for now) -(use-package! emms - :config - (require 'emms-setup) - (require 'emms-player-mpd) - (emms-all) - (emms-default-players) - (emms-mpris-enable) - (setq emms-source-file-default-directory "~/Music/") - (setq emms-player-list - '(emms-player-mpd))) -(map! - :leader - :prefix "e" - :desc "Browser" "b" #'emms-browser - :desc "Emms" "e" #'emms - :desc "Play playlist" "a" #'emms-play-playlist) - -;; mood-line -(use-package mood-line - :config - (mood-line-mode) - :custom - (mood-line-glyph-alist mood-line-glyphs-fira-code)) - -;; xmpp(jabber) -(use-package! jabber - :config - (setq jabber-account-list - '(("roughlynamed@yax.im"))) - (jabber-modeline-mode 1) - :hook (kill-emacs . jabber-disconnect)) -(map! :leader - :prefix "j" - :desc "Jabber connect" "c" #'jabber-connect-all - :desc "Jabber disconnect" "q" #'jabber-disconnect - :desc "Jabber roster" "r" #'jabber-switch-to-roster-buffer - :desc "Jabber new chat" "n" #'jabber-chat-with - :desc "Jabber groupchat" "g" #'jabber-groupchat-join - :desc "Jabber set status" "s" #'jabber-send-presence) - -;; zk4e -(use-package! zk4e - :commands (zk4e-list zk4e-edit zk4e-new zk4e-tag-list zk4e-index zk4e-select-notebook - zk4e-goto-error) - :custom - (zk4e-notebook-directories '(("notes" . "~/notes/"))) - :config - (zk4e-select-notebook "notes") - (add-hook 'zk4e-edit-hook #'zk4e-maybe-name-buffer)) - -;; Gnus -;; Authentication -(setq auth-sources '("~/.authinfo.gpg") - auth-source-cache-expiry nil) - -;; Gnus / IMAP -(setq gnus-select-method - '(nnimap "disroot" - (nnimap-address "disroot.org") - (nnimap-server-port 993) - (nnimap-stream ssl))) - -;; SMTP -(setq smtpmail-smtp-server "disroot.org" - smtpmail-smtp-service 587 - smtpmail-stream-type 'starttls - message-send-mail-function #'smtpmail-send-it) - -;; Identity -(setq user-mail-address "roughlynamed@disroot.org" - user-full-name "Magdalena Szweda") - -;; Sent mail -(setq gnus-message-archive-method '(nnimap "disroot") - gnus-message-archive-group "Sent") - -;; Mail behavior -(setq gnus-large-newsgroup nil - gnus-fetch-old-headers t - nnmail-expiry-target "Trash") - -;; PGP -(setq mml-secure-openpgp-signers - '("3258B28C124AB0891D6C9E929B72909EEF00CBD0") - mml-secure-openpgp-sign-with-sender t) - -(add-hook 'message-setup-hook #'message-insert-signature) -(add-hook 'message-send-hook #'mml-secure-message-sign-pgpmime) - -(setq message-signature - "\n--\nMagdalena Szweda\nhttps://roughlynamed.net\nPGP: 3258 B28C 124A B089 1D6C 9E92 9B72 909E EF00 CBD0") - -;; vterm (just in case) -(setq-default vterm-shell "/usr/bin/fish") -(setq-default explicit-shell-file-name "/usr/bin/fish") - -(setq-default vterm-shell "/usr/bin/fish") -(setq-default explicit-shell-file-name "/usr/bin/fish") - - -(map! :leader - (:prefix ("n z" . "zk") - :desc "Edit note" "e" #'zk4e-edit - :desc "New note" "n" #'zk4e-new - :desc "List notes" "l" #'zk4e-list - :desc "Index" "i" #'zk4e-index - :desc "Tags" "t" #'zk4e-tag-list - :desc "Switch notebook" "s" #'zk4e-select-notebook - :desc "Error log" "!" #'zk4e-goto-error)) - - -;; lotta eVIl stuff -(evil-define-key '(normal visual operator) 'global - "n" 'evil-backward-char - "e" 'evil-next-line - "i" 'evil-previous-line - "o" 'evil-forward-char) - -(evil-define-key '(normal visual operator) 'global - "l" 'evil-backward-word-begin - "L" 'evil-backward-WORD-begin - "u" 'evil-forward-word-end - "U" 'evil-forward-WORD-end - "y" 'evil-forward-word-begin - "Y" 'evil-forward-word-begin) - -(with-eval-after-load 'evil-ex - (define-key evil-ex-completion-map (kbd "C-l") 'left-word) - (define-key evil-ex-completion-map (kbd "C-y") 'right-word)) - -(evil-define-key 'normal 'global - "s" 'evil-insert - "S" 'evil-insert-line - "t" 'evil-append - "T" 'evil-append-line - "h" 'evil-open-below - "H" 'evil-open-above) - -(evil-define-key '(normal visual) 'global - "w" 'evil-change - "W" 'evil-change-line) - -(evil-define-key 'normal 'global - "x" 'evil-delete-char - "c" 'evil-yank - "v" 'evil-paste-after - "X" 'evil-delete-line - "C" 'evil-yank-line - "V" 'evil-paste-before) - -(evil-define-key 'visual 'global - "x" 'evil-delete - "c" 'evil-yank - "v" 'evil-paste-after) - -(evil-define-key 'normal 'global - "z" 'evil-undo - "Z" 'evil-redo) - -(evil-define-key 'normal 'global - "a" 'evil-visual-char - "A" 'evil-visual-line - "ga" 'evil-visual-restore) - -(evil-define-key '(normal visual operator) 'global - "p" 'evil-find-char-to - "P" 'evil-find-char-to-backward - "b" 'evil-repeat-find-char - "B" 'evil-repeat-find-char-reverse - "k" 'evil-search-next - "K" 'evil-search-previous) - -(with-eval-after-load 'evil - (evil-define-key '(operator visual) 'global "r" evil-inner-text-objects-map)) -(define-prefix-command 'my-colemak-fold-map) -(evil-define-key '(normal visual) 'global "j" 'my-colemak-fold-map) - -(define-key my-colemak-fold-map "j" 'evil-scroll-line-to-center) -(define-key my-colemak-fold-map "n" 'evil-scroll-line-to-top) -(define-key my-colemak-fold-map "e" 'evil-scroll-line-to-bottom) - -(evil-define-key 'normal 'global - "gK" 'evil-lookup) - -(evil-define-key 'normal 'global - (kbd "C-w n") 'evil-window-left - (kbd "C-w e") 'evil-window-down - (kbd "C-w i") 'evil-window-up - (kbd "C-w o") 'evil-window-right) - -(defun my/hs-eval () - (interactive) - (let* ((src (buffer-file-name)) - (out (file-name-sans-extension src))) - (when (zerop (call-process-shell-command - (format "runghc %s" src) nil "*runghc-output*")) - (let ((buf (make-comint "hs-run" out))) - (display-buffer buf))))) -(add-hook 'haskell-mode-hook - (lambda () - (local-set-key (kbd "<f5>") #'my/hs-eval))) -;; Whenever you reconfigure a package, make sure to wrap your config in an -;; `with-eval-after-load' block, otherwise Doom's defaults may override your -;; settings. E.g. -;; -;; (with-eval-after-load 'PACKAGE -;; (setq x y)) -;; -;; The exceptions to this rule: -;; -;; - Setting file/directory variables (like `org-directory') -;; - Setting variables which explicitly tell you to set them before their -;; package is loaded (see 'C-h v VARIABLE' to look them up). -;; - Setting doom variables (which start with 'doom-' or '+'). -;; -;; Here are some additional functions/macros that will help you configure Doom. -;; -;; - `load!' for loading external *.el files relative to this one -;; - `add-load-path!' for adding directories to the `load-path', relative to -;; this file. Emacs searches the `load-path' when you load packages with -;; `require' or `use-package'. -;; - `map!' for binding new keys -;; -;; To get information about any of these functions/macros, move the cursor over -;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). -;; This will open documentation for it, including demos of how they are used. -;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, -;; etc). -;; -;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how -;; they are implemented. +(load! "+ui") +(load! "+colemak") +(load! "+lang") +(load! "+mail") +(load! "+jabber") +(load! "+emms") +(load! "+zk") +(load! "+term") +(load! "+exwm") |
