From 6e8ea06b43f4ec56e04d81c8a027af2e5bb5dc06 Mon Sep 17 00:00:00 2001 From: Inhji Date: Mon, 18 Mar 2024 10:03:13 +0100 Subject: [PATCH] doom: config bikeshedding --- config/dot_config/doom/config.el | 170 ++++++++++--------- config/dot_config/doom/config.org | 269 ++++++++++++++++-------------- 2 files changed, 230 insertions(+), 209 deletions(-) diff --git a/config/dot_config/doom/config.el b/config/dot_config/doom/config.el index fb86f8d..f981946 100644 --- a/config/dot_config/doom/config.el +++ b/config/dot_config/doom/config.el @@ -44,8 +44,6 @@ "\n")) 'face 'doom-dashboard-banner))) -(map! :n "" #'org-agenda-list) -(map! :n "" #'org-drill) (map! "C-M-+" #'doom/increase-font-size) ;; NOTE: Does not work in org-mode src blocks @@ -53,8 +51,17 @@ (map! :leader :map doom-leader-file-map - :desc "Find org files" - "f o" #'org-path-find-file) + :desc "Find org files" "f o" #'org-path-find-file) + +(map! :leader + :map doom-leader-open-map + :desc "Open elfeed" "o e" #'elfeed + :desc "Open org drill" "o r" #'org-drill) + +(map! :localleader + :after org + :map org-mode-map + :desc "View habit stats" "g s" #'org-habit-stats-view-habit-at-point) ;; Basic User Settings (setq user-full-name "Jonathan Jenne" @@ -130,7 +137,7 @@ +org-capture-nepali-file (org-path "Nepali.org") org-capture-templates '(("t" "Personal Todo" entry - (file +org-capture-todo-file) + (file+headline +org-capture-todo-file "Todo") "* TODO %?\n" :prepend t) ("r" "Recipe" entry @@ -165,8 +172,6 @@ (file+olp+datetree +org-capture-journal-file) "* %U %?\n" :prepend t))) - - :bind (:map org-mode-map(" g s" . #'org-habit-stats-view-habit-at-point)) :hook (org-after-todo-state-change . org-habit-stats-update-properties) :init (add-to-list 'org-modules 'org-habit) @@ -182,6 +187,82 @@ (use-package! drag-stuff :init (drag-stuff-global-mode t)) +(use-package! elfeed + :config + (setq elfeed-feeds + '("https://www.giessen.de/media/rss/Presse.xml" + "https://adactio.com/journal/rss" + "https://andregarzia.com/feeds/all.atom.xml" + "https://ar.al/index.xml" + "https://archlinux.org/feeds/news/" + "https://ashfurrow.com//feed.xml" + "https://bachrauf.org/feed/" + "https://beko.famkos.net/feed/" + "https://blog.elementary.io/feed.xml" + "https://blog.gls.de/feed/" + "https://dasklima.podigee.io/feed/mp3" + "https://fed.brid.gy/web/inhji.de/feed?format=rss" + "https://forgefriends.org/index.xml" + "https://forgejo.org/rss.xml" + "https://giessen-direkt.de/giessen/de/flexPrjList/54365/feed" + ("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" '(github release)) + ("https://github.com/actualbudget/actual/releases.atom" '(github release)) + ("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" '(github release)) + ("https://github.com/dani-garcia/vaultwarden/releases.atom" '(github release)) + ("https://github.com/extrawurst/gitui/releases.atom" '(github release)) + ("https://github.com/microg/GmsCore/releases.atom" '(github release)) + ("https://github.com/noatpad/obsidian-banners/releases.atom" '(github release)) + ("https://github.com/superseriousbusiness/gotosocial/releases.atom" '(github release)) + "https://grimgrains.com/links/rss.xml" + "https://jlelse.blog/.rss" + "https://katapult-magazin.de/feed/rss" + "https://katja-diehl.de/feed/" + "https://kevquirk.com/feed" + "https://liamcooke.com/feed.xml" + "https://maudb.gitlab.io/dok/rss.xml" + "https://miniflux.app/feed.xml" + "https://mntre.com/reform_md.atom" + "https://nesslabs.com/feed" + "https://newsfeed.zeit.de/serie/die-kaenguru-comics" + "https://nicolevanderhoeven.com/index.xml" + "https://noyb.eu/en/rss" + "https://nullprogram.com/feed/" + "https://obsidian.md/feed.xml" + "https://ohhelloana.blog/feed.xml" + "https://pluralistic.net/feed/" + "https://shkspr.mobi/blog/feed/" + "https://smallstar.space/feed/" + "https://snikket.org/blog/index.xml" + "https://social.prepedia.org/@FediNINA_Giessen.rss" + "https://solar.lowtechmagazine.com/posts/index.xml" + "https://tarnkappe.info/feed" + "https://theoatmeal.com/feed/rss" + "https://victoria.dev/atom.xml" + "https://warandpeas.com/feed/" + "https://warnung.bund.de/api31/mowas/rss/065310000000.rss" + "https://webcomicname.com/rss" + "https://webdevlaw.uk/feed/" + "https://www.commitstrip.com/en/feed/" + "https://www.drugsandwires.fail/feed/" + "https://www.kuketz-blog.de/category/artikel/feed/" + "https://www.kuketz-blog.de/category/microblog/feed/" + "https://www.mein-nepal.de/feed/" + "https://www.oglaf.com/feeds/rss/" + "https://www.piratenpartei-hessen.de/feed/" + "https://www.schoenescheisse.de/feed/" + "https://www.smbc-comics.com/comic/rss" + "https://www.tomorrow.one/de-DE/feed.xml" + "https://www.volksverpetzer.de/feed/" + "https://www.wetell.de/feed/" + ("https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q" youtube) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCCJ-NJtqLQRxuaxHZA9q6zg" youtube) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UClZbO3wehSIsPUKLx_X5caw" youtube) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCtUbO6rBht0daVIOGML3c8w" youtube) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ" youtube) + ("https://www.youtube.com/feeds/videos.xml?channel_id=UCzg5UMJ62uoKHTkq5bgkp5g" youtube) + "https://zerforschung.org/index.xml" + ))) + (use-package! heaven-and-hell :ensure t :config @@ -243,78 +324,3 @@ ;; (after! org-roam ;; (setq org-roam-directory "~/Notes/Org/Roam") ;; (setq org-roam-dailies-directory "Daily")) - -(use-package! elfeed - :config - (setq elfeed-feeds - '("https://www.giessen.de/media/rss/Presse.xml" - "https://adactio.com/journal/rss" - "https://andregarzia.com/feeds/all.atom.xml" - "https://ar.al/index.xml" - "https://archlinux.org/feeds/news/" - "https://ashfurrow.com//feed.xml" - "https://bachrauf.org/feed/" - "https://beko.famkos.net/feed/" - "https://blog.elementary.io/feed.xml" - "https://blog.gls.de/feed/" - "https://dasklima.podigee.io/feed/mp3" - "https://fed.brid.gy/web/inhji.de/feed?format=rss" - "https://forgefriends.org/index.xml" - "https://forgejo.org/rss.xml" - "https://giessen-direkt.de/giessen/de/flexPrjList/54365/feed" - "https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" - "https://github.com/actualbudget/actual/releases.atom" - "https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" - "https://github.com/dani-garcia/vaultwarden/releases.atom" - "https://github.com/extrawurst/gitui/releases.atom" - "https://github.com/microg/GmsCore/releases.atom" - "https://github.com/noatpad/obsidian-banners/releases.atom" - "https://github.com/superseriousbusiness/gotosocial/releases.atom" - "https://grimgrains.com/links/rss.xml" - "https://jlelse.blog/.rss" - "https://katapult-magazin.de/feed/rss" - "https://katja-diehl.de/feed/" - "https://kevquirk.com/feed" - "https://liamcooke.com/feed.xml" - "https://maudb.gitlab.io/dok/rss.xml" - "https://miniflux.app/feed.xml" - "https://mntre.com/reform_md.atom" - "https://nesslabs.com/feed" - "https://newsfeed.zeit.de/serie/die-kaenguru-comics" - "https://nicolevanderhoeven.com/index.xml" - "https://noyb.eu/en/rss" - "https://obsidian.md/feed.xml" - "https://ohhelloana.blog/feed.xml" - "https://pluralistic.net/feed/" - "https://shkspr.mobi/blog/feed/" - "https://smallstar.space/feed/" - "https://snikket.org/blog/index.xml" - "https://social.prepedia.org/@FediNINA_Giessen.rss" - "https://solar.lowtechmagazine.com/posts/index.xml" - "https://tarnkappe.info/feed" - "https://theoatmeal.com/feed/rss" - "https://victoria.dev/atom.xml" - "https://warandpeas.com/feed/" - "https://warnung.bund.de/api31/mowas/rss/065310000000.rss" - "https://webcomicname.com/rss" - "https://webdevlaw.uk/feed/" - "https://www.commitstrip.com/en/feed/" - "https://www.drugsandwires.fail/feed/" - "https://www.kuketz-blog.de/category/artikel/feed/" - "https://www.kuketz-blog.de/category/microblog/feed/" - "https://www.mein-nepal.de/feed/" - "https://www.oglaf.com/feeds/rss/" - "https://www.piratenpartei-hessen.de/feed/" - "https://www.schoenescheisse.de/feed/" - "https://www.smbc-comics.com/comic/rss" - "https://www.tomorrow.one/de-DE/feed.xml" - "https://www.volksverpetzer.de/feed/" - "https://www.wetell.de/feed/" - ("https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q" youtube) - ("https://www.youtube.com/feeds/videos.xml?channel_id=UCCJ-NJtqLQRxuaxHZA9q6zg" youtube) - ("https://www.youtube.com/feeds/videos.xml?channel_id=UClZbO3wehSIsPUKLx_X5caw" youtube) - ("https://www.youtube.com/feeds/videos.xml?channel_id=UCtUbO6rBht0daVIOGML3c8w" youtube) - ("https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ" youtube) - ("https://www.youtube.com/feeds/videos.xml?channel_id=UCzg5UMJ62uoKHTkq5bgkp5g" youtube) - "https://zerforschung.org/index.xml" - ))) diff --git a/config/dot_config/doom/config.org b/config/dot_config/doom/config.org index 9508d81..c0dfc1b 100644 --- a/config/dot_config/doom/config.org +++ b/config/dot_config/doom/config.org @@ -4,7 +4,7 @@ #+auto_tangle: t #+STARTUP: overview -This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. +This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. It is heavily configured towards org mode, since editing org files is the primary goal of this setup. * Table of Contents :toc: :PROPERTIES: @@ -19,6 +19,7 @@ This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. - [[#packages][Packages]] - [[#doom-modeline][doom-modeline]] - [[#drag-stuff][drag-stuff]] + - [[#elfeed][elfeed]] - [[#heaven-and-hell][heaven-and-hell]] - [[#hl-todo][hl-todo]] - [[#novel][nov.el]] @@ -27,7 +28,6 @@ This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. - [[#org-drill][org-drill]] - [[#org-noter][org-noter]] - [[#org-roam][org-roam]] - - [[#elfeed][elfeed]] * Header This header will be the first codeblock in the config file. @@ -92,20 +92,18 @@ These keybindings extend the default doom bindings, either because the defaults | Key | Description | State | |------------+-------------------------+-------| -| F12 | Show Org-Agenda | N | -| Ctrl-Alt-+ | Increase Font Size | | -| Ctrl-# | Toggle Line Comment | | -| DEL | Up Directory | Dired | +| C-M-+ | Increase Font Size | | +| C-# | Toggle Line Comment | | | F6 | Toggle Light/Dark Theme | | -| F7 | Start Org-Drill | | +| SPC o r | Open Org-Drill | | +| SPC o e | Open elfeed | | | SPC m g s | Go to habit stats | Org | | M-UP | Move line up | | | M-DOWN | Move line down | | | M-LEFT | Move region left | | +| M-RIGHT | Move region right | | #+begin_src emacs-lisp -(map! :n "" #'org-agenda-list) -(map! :n "" #'org-drill) (map! "C-M-+" #'doom/increase-font-size) ;; NOTE: Does not work in org-mode src blocks @@ -113,12 +111,22 @@ These keybindings extend the default doom bindings, either because the defaults (map! :leader :map doom-leader-file-map - :desc "Find org files" - "f o" #'org-path-find-file) + :desc "Find org files" "f o" #'org-path-find-file) +(map! :leader + :map doom-leader-open-map + :desc "Open elfeed" "o e" #'elfeed + :desc "Open org drill" "o r" #'org-drill) + +(map! :localleader + :after org + :map org-mode-map + :desc "View habit stats" "g s" #'org-habit-stats-view-habit-at-point) #+end_src +#+RESULTS: + * Base Config #+begin_src emacs-lisp @@ -214,7 +222,7 @@ There are a few things to point out here: +org-capture-nepali-file (org-path "Nepali.org") org-capture-templates '(("t" "Personal Todo" entry - (file +org-capture-todo-file) + (file+headline +org-capture-todo-file "Todo") "* TODO %?\n" :prepend t) ("r" "Recipe" entry @@ -249,8 +257,6 @@ There are a few things to point out here: (file+olp+datetree +org-capture-journal-file) "* %U %?\n" :prepend t))) - - :bind (:map org-mode-map(" g s" . #'org-habit-stats-view-habit-at-point)) :hook (org-after-todo-state-change . org-habit-stats-update-properties) :init (add-to-list 'org-modules 'org-habit) @@ -281,111 +287,6 @@ With drag stuff you can use ~M-UP~ and ~M-DOWN~ to move lines. You can also mark :init (drag-stuff-global-mode t)) #+end_src -** heaven-and-hell - -Heaven and hell is a theme switcher, which allows you to select a dark and light theme and toggle between them using a key. - -#+begin_src emacs-lisp -(use-package! heaven-and-hell - :ensure t - :config - (setq heaven-and-hell-theme-type 'dark ;; Omit to use light by default - heaven-and-hell-themes - '((light . doom-nord-light) - (dark . doom-nord)) ;; Themes can be the list: (dark . (tsdh-dark wombat)) - heaven-and-hell-load-theme-no-confirm t) - :hook (after-init . heaven-and-hell-init-hook) - :bind (("" . heaven-and-hell-toggle-theme))) - -#+end_src -** hl-todo - -#+begin_src emacs-lisp -(use-package! hl-todo - :config - (setq hl-todo-keyword-faces - '(("TODO" warning bold) - ("EXAMPLE" font-lock-keyword-face bold) - ("HACK" font-lock-constant-face bold) - ("DEPRECATED" font-lock-doc-face bold) - ("NOTE" success bold) - ("BUG" error bold) - ("THIS" font-lock-constant-face bold))) - :hook (org-mode . hl-todo-mode)) -#+end_src - -** nov.el -#+begin_src emacs-lisp - -(use-package! nov - :mode ("\\.epub\\'" . nov-mode) - :config - (setq nov-text-width 70)) - -(add-hook! 'nov-mode-hook '(olivetti-mode)) - -#+end_src - -** olivetti - -Centers the text. This is used for reading books in emacs. - -#+begin_src emacs-lisp - -(use-package! olivetti - :init - (add-hook! 'nov-mode-hook 'olivetti-mode) - (add-hook! 'org-mode-hook - '(olivetti-mode - (lambda () (display-line-numbers-mode -1))))) - -;; (after! olivetti (setq olivetti-body-width 70)) -;; (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1)))) -#+end_src - -** org-auto-tangle - -This package automatically tangles all sourceblocks in an org file whenever that file is saved. It is very handy to not have to call the tangle command everytime you save. - -#+begin_src emacs-lisp -(use-package! org-auto-tangle - :defer t - :config (setq org-auto-tangle-default nil) - :hook (org-mode . org-auto-tangle-mode)) -#+end_src - -** org-drill - -A package for learning and memorizing using *spaced repetition*, inspired by applications like Anki. - -#+begin_src emacs-lisp -(after! org-drill - (setq org-drill-scope 'agenda)) -#+end_src - -** org-noter - -A annotation tool for org-mode - -#+begin_src emacs-lisp -(after! org-noter - (setq org-noter-notes-search-path '("~/Notes/Org")) - (setq org-noter-always-create-frame nil) - (setq org-noter-doc-split-fraction '(0.75 . 0.75)) - (setq org-noter-default-notes-file-names '())) - -#+end_src -** org-roam -#+begin_src emacs-lisp -(use-package! org-roam - :config (setq org-roam-directory "~/Notes/Org/Roam" - org-roam-dailies-directory "Daily")) - -;; (after! org-roam -;; (setq org-roam-directory "~/Notes/Org/Roam") -;; (setq org-roam-dailies-directory "Daily")) - -#+end_src ** elfeed #+begin_src emacs-lisp @@ -407,14 +308,14 @@ A annotation tool for org-mode "https://forgefriends.org/index.xml" "https://forgejo.org/rss.xml" "https://giessen-direkt.de/giessen/de/flexPrjList/54365/feed" - "https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" - "https://github.com/actualbudget/actual/releases.atom" - "https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" - "https://github.com/dani-garcia/vaultwarden/releases.atom" - "https://github.com/extrawurst/gitui/releases.atom" - "https://github.com/microg/GmsCore/releases.atom" - "https://github.com/noatpad/obsidian-banners/releases.atom" - "https://github.com/superseriousbusiness/gotosocial/releases.atom" + ("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" '(github release)) + ("https://github.com/actualbudget/actual/releases.atom" '(github release)) + ("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" '(github release)) + ("https://github.com/dani-garcia/vaultwarden/releases.atom" '(github release)) + ("https://github.com/extrawurst/gitui/releases.atom" '(github release)) + ("https://github.com/microg/GmsCore/releases.atom" '(github release)) + ("https://github.com/noatpad/obsidian-banners/releases.atom" '(github release)) + ("https://github.com/superseriousbusiness/gotosocial/releases.atom" '(github release)) "https://grimgrains.com/links/rss.xml" "https://jlelse.blog/.rss" "https://katapult-magazin.de/feed/rss" @@ -428,6 +329,7 @@ A annotation tool for org-mode "https://newsfeed.zeit.de/serie/die-kaenguru-comics" "https://nicolevanderhoeven.com/index.xml" "https://noyb.eu/en/rss" + "https://nullprogram.com/feed/" "https://obsidian.md/feed.xml" "https://ohhelloana.blog/feed.xml" "https://pluralistic.net/feed/" @@ -464,3 +366,116 @@ A annotation tool for org-mode "https://zerforschung.org/index.xml" ))) #+end_src +** heaven-and-hell + +Heaven and hell is a theme switcher, which allows you to select a dark and light theme and toggle between them using a key. + +#+begin_src emacs-lisp +(use-package! heaven-and-hell + :ensure t + :config + (setq heaven-and-hell-theme-type 'dark ;; Omit to use light by default + heaven-and-hell-themes + '((light . doom-nord-light) + (dark . doom-nord)) ;; Themes can be the list: (dark . (tsdh-dark wombat)) + heaven-and-hell-load-theme-no-confirm t) + :hook (after-init . heaven-and-hell-init-hook) + :bind (("" . heaven-and-hell-toggle-theme))) + +#+end_src +** hl-todo + +Highlights keywords like TODO in code. Also enabled in org mode. + +#+begin_src emacs-lisp +(use-package! hl-todo + :config + (setq hl-todo-keyword-faces + '(("TODO" warning bold) + ("EXAMPLE" font-lock-keyword-face bold) + ("HACK" font-lock-constant-face bold) + ("DEPRECATED" font-lock-doc-face bold) + ("NOTE" success bold) + ("BUG" error bold) + ("THIS" font-lock-constant-face bold))) + :hook (org-mode . hl-todo-mode)) +#+end_src + +** nov.el + +epub reader. Olivetti mode is used to make it look nicer. + +#+begin_src emacs-lisp + +(use-package! nov + :mode ("\\.epub\\'" . nov-mode) + :config + (setq nov-text-width 70)) + +(add-hook! 'nov-mode-hook '(olivetti-mode)) + +#+end_src + +** olivetti + +Centers the text. This is used for reading books and org mode in emacs. + +#+begin_src emacs-lisp + +(use-package! olivetti + :init + (add-hook! 'nov-mode-hook 'olivetti-mode) + (add-hook! 'org-mode-hook + '(olivetti-mode + (lambda () (display-line-numbers-mode -1))))) + +;; (after! olivetti (setq olivetti-body-width 70)) +;; (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1)))) +#+end_src + +** org-auto-tangle + +This package automatically tangles all sourceblocks in an org file whenever that file is saved. It is very handy to not have to call the tangle command everytime you save. + +#+begin_src emacs-lisp +(use-package! org-auto-tangle + :defer t + :config (setq org-auto-tangle-default nil) + :hook (org-mode . org-auto-tangle-mode)) +#+end_src + +** org-drill + +A package for learning and memorizing using *spaced repetition*, inspired by applications like Anki. + +#+begin_src emacs-lisp +(after! org-drill + (setq org-drill-scope 'agenda)) +#+end_src + +** org-noter + +A annotation tool for org-mode. + +#+begin_src emacs-lisp +(after! org-noter + (setq org-noter-notes-search-path '("~/Notes/Org")) + (setq org-noter-always-create-frame nil) + (setq org-noter-doc-split-fraction '(0.75 . 0.75)) + (setq org-noter-default-notes-file-names '())) + +#+end_src +** org-roam + +Zettelkasten in org-mode. + +#+begin_src emacs-lisp +(use-package! org-roam + :config (setq org-roam-directory "~/Notes/Org/Roam" + org-roam-dailies-directory "Daily")) + +;; (after! org-roam +;; (setq org-roam-directory "~/Notes/Org/Roam") +;; (setq org-roam-dailies-directory "Daily")) + +#+end_src