;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- (remove-hook 'doom-first-input-hook #'evil-snipe-mode) (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! 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 ;; Enable mood-line :config (mood-line-mode) ;; Use pretty Fira Code-compatible glyphs :custom (mood-line-glyph-alist mood-line-glyphs-fira-code)) (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" "C" #'jabber-chat-with :desc "Jabber groupchat" "g" #'jabber-groupchat-join :desc "Jabber set status" "s" #'jabber-send-presence) ;; zk4e setup (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)) ;; 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") (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") (remove-hook 'doom-first-input-hook #'evil-snipe-mode) (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)) (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) ;; 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.