diff options
| -rw-r--r-- | config.el | 60 | ||||
| -rw-r--r-- | config.org | 76 | ||||
| -rw-r--r-- | init.el | 5 |
3 files changed, 130 insertions, 11 deletions
@@ -149,8 +149,6 @@ (setq gnus-permanently-visible-groups ".") -(evil-set-initial-state 'gnus-browse-mode 'emacs) - (setq user-mail-address "hi@roughlynamed.net" ; my email user-full-name "Magdalena Szweda") ; my name @@ -160,6 +158,8 @@ (setq message-signature-file "~/.signature") ; note no trailing slash +(evil-set-initial-state 'gnus-browse-mode 'emacs) + (setq gnus-select-method '(nnimap "migadu" (nnimap-address "imap.migadu.com") @@ -734,7 +734,7 @@ org-html-postamble nil)) (start-process-shell-command c nil c)) (my/run-once "~/.cargo/bin/mprisence"))) - (if (fboundp 'exwm-systemtray-mode) (exwm-systemtray-mode 1) (exwm-systemtray-enable)) + (if (fboundp 'exwm-systemtray-mode) (exwm-systemtray-mode 1) (exwm-systetray-enable)) (if (fboundp 'exwm-wm-mode) (exwm-wm-mode 1) (exwm-enable))) ; 0.34+ vs 0.33 (use-package! exwm-edit @@ -843,3 +843,57 @@ org-html-postamble nil)) :n "SPC w e" #'evil-window-down :n "SPC w i" #'evil-window-up :n "SPC w o" #'evil-window-right) + +(defun my/meow-insert-bol () ; evil I + (interactive) (meow-cancel-selection) (back-to-indentation) (meow-insert)) +(defun my/meow-append-eol () ; evil A + (interactive) (meow-cancel-selection) (end-of-line) (meow-insert)) +(defun my/meow-change-eol () ; evil C + (interactive) (meow-cancel-selection) (kill-line) (meow-insert)) +(defun my/meow-yank-line () ; evil Y (whole line) + (interactive) + (kill-ring-save (line-beginning-position) (line-beginning-position 2))) + + +(define-key key-translation-map (kbd "q") (kbd "C-")) +(defun my/meow-till-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-till))) +(defun my/meow-find-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-find))) +(defun my/meow-search-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-search))) + +(defvar my/meow-scroll-map (make-sparse-keymap)) +(define-key my/meow-scroll-map "j" (lambda () (interactive) (recenter))) +(define-key my/meow-scroll-map "n" (lambda () (interactive) (recenter 0))) +(define-key my/meow-scroll-map "e" (lambda () (interactive) (recenter -1))) + +(defun my/meow-neio-setup () + (meow-motion-overwrite-define-key + '("e" . meow-next) '("i" . meow-prev)) + (meow-normal-define-key + '("n" . meow-left) '("N" . meow-left-expand) + '("e" . meow-next) '("E" . meow-next-expand) + '("i" . meow-prev) '("I" . meow-prev-expand) + '("o" . meow-right) '("O" . meow-right-expand) + '("l" . meow-back-word) '("L" . meow-back-symbol) + '("y" . meow-next-word) '("Y" . meow-next-symbol) + '("u" . meow-next-word) '("U" . meow-next-symbol) + '("s" . meow-insert) '("S" . my/meow-insert-bol) + '("t" . meow-append) '("T" . my/meow-append-eol) + '("h" . meow-open-below) '("H" . meow-open-above) + '("w" . meow-change) '("W" . my/meow-change-eol) + '("x" . meow-delete) '("X" . kill-line) + '("c" . meow-save) '("C" . my/meow-yank-line) + '("v" . meow-yank) '("V" . meow-yank-pop) + '("z" . meow-undo) '("Z" . undo-redo) + '("a" . meow-block) '("A" . meow-line) + '("p" . meow-till) '("P" . my/meow-till-back) '("F" . my/meow-find-back) + '("k" . meow-search) '("K" . my/meow-search-back) + '("J" . meow-join)) + (define-key meow-normal-state-keymap "j" my/meow-scroll-map)) + +(after! meow (my/meow-neio-setup)) +(advice-add '+meow--setup-colemak :after #'my/meow-neio-setup) + +(map! :leader + (:prefix ("w" . "window") + "n" #'windmove-left "e" #'windmove-down + "i" #'windmove-up "o" #'windmove-right)) @@ -357,11 +357,6 @@ This makes it so that all subscribed groups are visible, no matter if theres no (setq gnus-permanently-visible-groups ".") #+end_src -When browsing gnus, make the mode in evil standard emacs. -#+begin_src emacs-lisp -(evil-set-initial-state 'gnus-browse-mode 'emacs) -#+end_src - Now we configure our user of gnus. #+begin_src emacs-lisp (setq user-mail-address "hi@roughlynamed.net" ; my email @@ -380,6 +375,11 @@ We can also set up the signature via the ~.signature~ file instead of encoding i (setq message-signature-file "~/.signature") ; note no trailing slash #+end_src +When browsing gnus, make the mode in evil standard emacs. +#+begin_src emacs-lisp +(evil-set-initial-state 'gnus-browse-mode 'emacs) +#+end_src + Now we can set up the actual mail part. I use migadu for my email hosting, provided to me by ~@bas.sh~ Here we set up IMAP for receiving mail. @@ -1570,7 +1570,7 @@ EXWM is the Emacs X Window Manager. (start-process-shell-command c nil c)) (my/run-once "~/.cargo/bin/mprisence"))) - (if (fboundp 'exwm-systemtray-mode) (exwm-systemtray-mode 1) (exwm-systemtray-enable)) + (if (fboundp 'exwm-systemtray-mode) (exwm-systemtray-mode 1) (exwm-systetray-enable)) (if (fboundp 'exwm-wm-mode) (exwm-wm-mode 1) (exwm-enable))) ; 0.34+ vs 0.33 (use-package! exwm-edit @@ -1745,6 +1745,70 @@ Doesnt work in org files #+end_src +* Meow +#+begin_quote +Mrrp Nya Nya Mrrp Mraoow +#+end_quote + +Meow provides an object-then-verb modal editing layer to Emacs, similar to Helix or Kakoune + +This requires ~(meow +colemak)~ enabled in DOOM's init.el +The meow module is not available by default, and must be first git cloned +#+begin_src emacs-lisp +(defun my/meow-insert-bol () ; evil I + (interactive) (meow-cancel-selection) (back-to-indentation) (meow-insert)) +(defun my/meow-append-eol () ; evil A + (interactive) (meow-cancel-selection) (end-of-line) (meow-insert)) +(defun my/meow-change-eol () ; evil C + (interactive) (meow-cancel-selection) (kill-line) (meow-insert)) +(defun my/meow-yank-line () ; evil Y (whole line) + (interactive) + (kill-ring-save (line-beginning-position) (line-beginning-position 2))) + + +(define-key key-translation-map (kbd "q") (kbd "C-")) +(defun my/meow-till-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-till))) +(defun my/meow-find-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-find))) +(defun my/meow-search-back () (interactive) (let ((current-prefix-arg -1)) (call-interactively #'meow-search))) + +(defvar my/meow-scroll-map (make-sparse-keymap)) +(define-key my/meow-scroll-map "j" (lambda () (interactive) (recenter))) +(define-key my/meow-scroll-map "n" (lambda () (interactive) (recenter 0))) +(define-key my/meow-scroll-map "e" (lambda () (interactive) (recenter -1))) + +(defun my/meow-neio-setup () + (meow-motion-overwrite-define-key + '("e" . meow-next) '("i" . meow-prev)) + (meow-normal-define-key + '("n" . meow-left) '("N" . meow-left-expand) + '("e" . meow-next) '("E" . meow-next-expand) + '("i" . meow-prev) '("I" . meow-prev-expand) + '("o" . meow-right) '("O" . meow-right-expand) + '("l" . meow-back-word) '("L" . meow-back-symbol) + '("y" . meow-next-word) '("Y" . meow-next-symbol) + '("u" . meow-next-word) '("U" . meow-next-symbol) + '("s" . meow-insert) '("S" . my/meow-insert-bol) + '("t" . meow-append) '("T" . my/meow-append-eol) + '("h" . meow-open-below) '("H" . meow-open-above) + '("w" . meow-change) '("W" . my/meow-change-eol) + '("x" . meow-delete) '("X" . kill-line) + '("c" . meow-save) '("C" . my/meow-yank-line) + '("v" . meow-yank) '("V" . meow-yank-pop) + '("z" . meow-undo) '("Z" . undo-redo) + '("a" . meow-block) '("A" . meow-line) + '("p" . meow-till) '("P" . my/meow-till-back) '("F" . my/meow-find-back) + '("k" . meow-search) '("K" . my/meow-search-back) + '("J" . meow-join)) + (define-key meow-normal-state-keymap "j" my/meow-scroll-map)) + +(after! meow (my/meow-neio-setup)) +(advice-add '+meow--setup-colemak :after #'my/meow-neio-setup) + +(map! :leader + (:prefix ("w" . "window") + "n" #'windmove-left "e" #'windmove-down + "i" #'windmove-up "o" #'windmove-right)) +#+end_src * Footnotes [fn:1] @@ -11,7 +11,7 @@ (corfu +orderless +icons - +dabbrev) ; complete with cap(f), cape and a flying feather! + +dabbrev) ; complete with cap(f), cape and a flying feather! ;; (helm ;; +fuzzy ;; +icons @@ -20,7 +20,7 @@ ;;ivy ; a search engine for love and life (vertico +icons - +childframe) ; the search engine of the future + +childframe) ; the search engine of the future :ui ;;deft ; notational velocity for Emacs @@ -49,6 +49,7 @@ :editor (evil +everywhere) ; come to the dark side, we have cookies + ;;(meow +colemak) file-templates ; auto-snippets for empty files fold ; (nigh) universal code folding (format +onsave) ; automated prettiness |
