diff --git a/README.org b/README.org index 28045036..2496c3c8 100644 --- a/README.org +++ b/README.org @@ -14,6 +14,7 @@ - [[#undo-fu][Undo-Fu]] - [[#better-ui][Better UI]] - [[#completion][Completion]] + - [[#yasnippet][YASnippet]] - [[#navigation][Navigation]] - [[#window-management][Window Management]] - [[#help][Help]] @@ -33,6 +34,8 @@ - [[#transmission][Transmission]] - [[#pass][Pass]] - [[#matrix][Matrix]] + - [[#activitywatch][ActivityWatch]] + - [[#mybible][MyBible]] - [[#performance][Performance]] - [[#logging][Logging]] - [[#early-init][Early Init]] @@ -631,6 +634,15 @@ Marginalia makes for some great decoration to our minibuffer completion items. W :after company) #+end_src +** YASnippet +YASnippet is a templating system. It's powerful. +#+begin_src emacs-lisp +(use-package yasnippet + :config + (setq yas-snippet-dirs '("~/.dotemacs/yasnippets")) + (yas-global-mode 1)) +#+end_src + ** Navigation *** Avy Avy provides a lot of functions to search through the current buffer. Most of the time I use evil or consult functions to find what I'm looking for, but avy provides a lot of small movements that are more useful for visible movements. @@ -666,16 +678,23 @@ Ace link provides an avy like search for links. Upon using the keybindings prese #+begin_src emacs-lisp (setq display-buffer-alist '(("\\*e?shell\\*" - (display-buffer-pop-up-frame)) + (display-buffer-in-side-window) + (side . right) + (window-width . 0.3)) ("*helpful*" - (display-buffer-pop-up-frame)) + (display-buffer-in-side-window) + (side . right) + (window-width . 0.4)) ("\\*elfeed-entry\\*" (display-buffer-in-side-window) (side . bottom) (window-height . 0.60)) ("*Org Agenda(a)*" - (display-buffer-pop-up-frame) - (wait-for-wm . t)) + (display-buffer-pop-up-frame)) + ("*Agenda Commands*" + (display-buffer-in-side-window) + (side . right) + (window-width . 0.30)) ("\\*Bongo-Elfeed Queue\\*" (display-buffer-in-side-window) (side . bottom) @@ -711,6 +730,13 @@ Since I like to make my window manager handle a lot of the window management, I ** Languages +*** Lua +Since I use the awesome WM, It's probably good to have lua around. +#+begin_src emacs-lisp +(use-package lua-mode + :mode ("\\.lua\\'" . lua-mode)) +#+end_src + *** Fennel I use fennel to build my awesomewm config. So, we'll need that downloaded. #+begin_src emacs-lisp @@ -758,6 +784,16 @@ Fish is my preferred shell and made some scripts in it so I keep this to be able :mode ("\\.fish\\'" . fish-mode)) #+end_src +*** Markdown +It's probably smart to have markdown. +#+begin_src emacs-lisp +(use-package markdown-mode + :mode ("\\.md\\'" . markdown-mode) + :config + (setq markdown-fontify-code-blocks-natively t)) + +#+end_src + *** QML I make some apps in Qt 5 so QML is a needed language although the support in Emacs is lacking. #+begin_src emacs-lisp @@ -921,7 +957,7 @@ Part of this config includes some special capture templates for my work as a you org-agenda-sticky t org-fontify-quote-and-verse-blocks t org-src-preserve-indentation t - org-src-window-setup 'other-frame) + org-src-window-setup 'other-window) (add-hook 'org-mode-hook 'chris/org-mode-setup) @@ -1066,7 +1102,8 @@ Part of this config includes some special capture templates for my work as a you ('normal org-mode-map "RET" 'chris/org-dwim-at-point "gC" 'chris/org-columns-view - "ge" 'org-edit-src-code) + "ge" 'org-edit-src-code + "t" 'org-todo) ('normal 'org-src-mode-map "q" 'org-edit-src-abort)) #+end_src @@ -1139,15 +1176,14 @@ We also need to setup some capture templates to use some specific setups with my (use-package org-roam :after org ;; :ensure t - :commands (org-roam org-roam-find-file org-roam-insert) :hook - (org-load . org-roam-mode) + (after-init . org-roam-mode) :config (setq org-roam-directory "~/org" org-roam-buffer-width 0.25 org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*" - org-roam-db-location "~/.dotemacs/org-roam.db" - org-roam-completion-everywhere t + org-roam-db-location "~/.dotemacs/org-roam.db" + org-roam-completion-everywhere t org-roam-capture-templates '(("d" "default" plain (function org-roam--capture-get-point) "%?" @@ -1672,7 +1708,7 @@ Let's add our own eshell prompt. and set the password cache to a significantly h :keymaps 'override "oe" 'eshell) (general-def '(normal insert) eshell-mode-map - "C-d" 'chris/kill-buffer-frame)) + "C-d" 'kill-buffer-and-window)) #+end_src *** Eshell Aliases @@ -1908,6 +1944,21 @@ Matrix.el is a decent enough matrix client built in emacs. Like it. :straight (matrix-client :type git :host github :repo "alphapapa/matrix-client.el")) #+end_src +** ActivityWatch +I like to track my time with ActivityWatch so I can notice and kill bad habits. +#+begin_src emacs-lisp +(use-package activity-watch-mode + :init (global-activity-watch-mode)) +#+end_src + +** MyBible +MyBible is going to be my minor mode for creating and using a bible app within Emacs. Let's see if we can't make it work. +#+begin_src emacs-lisp :tangle no +(defun chris/find-translation-tag () + (interactive) + ) +#+end_src + ** Performance Here we have a bunch of performance tweaks #+begin_src emacs-lisp diff --git a/init.el b/init.el index 4f38e78e..7abd5c2b 100644 --- a/init.el +++ b/init.el @@ -360,6 +360,11 @@ vertically." (use-package company-dict :after company) +(use-package yasnippet + :config + (setq yas-snippet-dirs '("~/.dotemacs/yasnippets")) + (yas-global-mode 1)) + (use-package avy :after evil) @@ -381,16 +386,23 @@ vertically." (setq display-buffer-alist '(("\\*e?shell\\*" - (display-buffer-pop-up-frame)) + (display-buffer-in-side-window) + (side . right) + (window-width . 0.3)) ("*helpful*" - (display-buffer-pop-up-frame)) + (display-buffer-in-side-window) + (side . right) + (window-width . 0.4)) ("\\*elfeed-entry\\*" (display-buffer-in-side-window) (side . bottom) (window-height . 0.60)) ("*Org Agenda(a)*" - (display-buffer-pop-up-frame) - (wait-for-wm . t)) + (display-buffer-pop-up-frame)) + ("*Agenda Commands*" + (display-buffer-in-side-window) + (side . right) + (window-width . 0.30)) ("\\*Bongo-Elfeed Queue\\*" (display-buffer-in-side-window) (side . bottom) @@ -414,6 +426,9 @@ vertically." (setq format-all-formatters '("Emacs Lisp" emacs-lisp)) :defer 1) +(use-package lua-mode + :mode ("\\.lua\\'" . lua-mode)) + (use-package fennel-mode :mode ("\\.fnl\\'" . fennel-mode)) @@ -436,6 +451,11 @@ vertically." (use-package fish-mode :mode ("\\.fish\\'" . fish-mode)) +(use-package markdown-mode + :mode ("\\.md\\'" . markdown-mode) + :config + (setq markdown-fontify-code-blocks-natively t)) + (use-package qml-mode :mode ("\\.qml\\'" . qml-mode) :config @@ -555,7 +575,7 @@ vertically." org-agenda-sticky t org-fontify-quote-and-verse-blocks t org-src-preserve-indentation t - org-src-window-setup 'other-frame) + org-src-window-setup 'other-window) (add-hook 'org-mode-hook 'chris/org-mode-setup) @@ -700,7 +720,8 @@ vertically." ('normal org-mode-map "RET" 'chris/org-dwim-at-point "gC" 'chris/org-columns-view - "ge" 'org-edit-src-code) + "ge" 'org-edit-src-code + "t" 'org-todo) ('normal 'org-src-mode-map "q" 'org-edit-src-abort)) @@ -750,15 +771,14 @@ vertically." (use-package org-roam :after org ;; :ensure t - :commands (org-roam org-roam-find-file org-roam-insert) :hook - (org-load . org-roam-mode) + (after-init . org-roam-mode) :config (setq org-roam-directory "~/org" org-roam-buffer-width 0.25 org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*" - org-roam-db-location "~/.dotemacs/org-roam.db" - org-roam-completion-everywhere t + org-roam-db-location "~/.dotemacs/org-roam.db" + org-roam-completion-everywhere t org-roam-capture-templates '(("d" "default" plain (function org-roam--capture-get-point) "%?" @@ -1243,7 +1263,7 @@ If on a: :keymaps 'override "oe" 'eshell) (general-def '(normal insert) eshell-mode-map - "C-d" 'chris/kill-buffer-frame)) + "C-d" 'kill-buffer-and-window)) (setq eshell-command-aliases-list '(("ls" "exa $1") @@ -1434,6 +1454,9 @@ interfere with the default `bongo-playlist-buffer'." (chris/leader-keys "st" 'password-store-otp-token-copy)) +(use-package activity-watch-mode + :init (global-activity-watch-mode)) + ;; Reduce rendering/line scan work for Emacs by not rendering cursors or regions ;; in non-focused windows. (setq-default cursor-in-non-selected-windows nil)