From d788b38b9edffbb73140d8e4b16b048bfce43748 Mon Sep 17 00:00:00 2001 From: Inhji Date: Wed, 20 Mar 2024 14:51:39 +0100 Subject: [PATCH] fuck literate configs lol --- config/dot_config/doom/config.el | 231 ++++++--- config/dot_config/doom/config.html | 744 ----------------------------- config/dot_config/doom/config.org | 538 --------------------- 3 files changed, 158 insertions(+), 1355 deletions(-) delete mode 100644 config/dot_config/doom/config.html delete mode 100644 config/dot_config/doom/config.org diff --git a/config/dot_config/doom/config.el b/config/dot_config/doom/config.el index 651d6b9..2b480ed 100644 --- a/config/dot_config/doom/config.el +++ b/config/dot_config/doom/config.el @@ -114,6 +114,13 @@ org-agenda-span 2 org-agenda-start-day "+0d" org-agenda-tag-filter-preset '("-drill") + + ;; Disable timegrid since it causes errors on current org-mode 9.7 + ;; when org-super-agenda is also used + ;; See: https://github.com/alphapapa/org-super-agenda/issues/247 + ;; See: https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=fac55324accbcab08dfebbde8295b2f1b4b9f45e + org-agenda-use-time-grid nil + org-agenda-time-grid '((daily today require-timed) (800 1000 1200 1400 1600 1800 2000) @@ -127,7 +134,7 @@ ;; Org Todo org-todo-keywords - '((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)") + '((sequence "TODO(t)" "DOING(g)" "WAIT(w)" "|" "DONE(d)" "CANCEL(c)") (sequence "THIS(T)" "EXAMPLE")) ;; Org Capture @@ -189,80 +196,147 @@ :init (drag-stuff-global-mode t)) (use-package! elfeed - :config + :init (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.giessen.de/media/rss/Presse.xml" news local) + ("https://adactio.com/journal/rss" tech) + ("https://andregarzia.com/feeds/all.atom.xml" tech) + ("https://ar.al/index.xml" tech activism) + ("https://archlinux.org/feeds/news/" tech linux) + ("https://ashfurrow.com/feed.xml" health) + ("https://bachrauf.org/feed/" activism) + ("https://beko.famkos.net/feed/" tech) + ("https://blog.elementary.io/feed.xml" tech release) + ("https://blog.gls.de/feed/" finances) + ("https://dasklima.podigee.io/feed/mp3" podcast) + ("https://forgefriends.org/index.xml" tech) + ("https://forgejo.org/rss.xml" release tech) + ("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" food) + ("https://jlelse.blog/.rss" tech) + ("https://katapult-magazin.de/feed/rss" activism) + ("https://katja-diehl.de/feed/" activism) + ("https://kevquirk.com/feed" tech) + ("https://maudb.gitlab.io/dok/rss.xml" food autonomy) + ("https://miniflux.app/feed.xml" tech release) + ("https://mntre.com/reform_md.atom" tech) + ("https://nesslabs.com/feed" productivity) + ("https://newsfeed.zeit.de/serie/die-kaenguru-comics" comics) + ("https://nicolevanderhoeven.com/index.xml" tech) + ("https://noyb.eu/en/rss" activism) + ("https://nullprogram.com/feed/" tech) + ("https://obsidian.md/feed.xml" tech release) + ("https://ohhelloana.blog/feed.xml" tech) + ("https://pluralistic.net/feed/" tech activism) + ("https://shkspr.mobi/blog/feed/" tech) + ("https://smallstar.space/feed/" religion) + ("https://snikket.org/blog/index.xml" tech release) + ("https://social.prepedia.org/@FediNINA_Giessen.rss" alerts) + ("https://solar.lowtechmagazine.com/posts/index.xml" tech sustainability) + ("https://tarnkappe.info/feed" tech piracy) + ("https://theoatmeal.com/feed/rss" comics) + ("https://victoria.dev/atom.xml" tech) + ("https://warandpeas.com/feed/" comis) + ("https://warnung.bund.de/api31/mowas/rss/065310000000.rss" alerts) + ("https://webcomicname.com/rss" comis) + ("https://webdevlaw.uk/feed/" tech activism) + ("https://www.commitstrip.com/en/feed/" comics) + ("https://www.drugsandwires.fail/feed/" ) + ("https://www.kuketz-blog.de/category/artikel/feed/" tech) + ("https://www.kuketz-blog.de/category/microblog/feed/" tech) + ("https://www.mein-nepal.de/feed/" nepal) + ("https://www.oglaf.com/feeds/rss/" comics nsfw) + ("https://www.schoenescheisse.de/feed/" comics) + ("https://www.smbc-comics.com/comic/rss" comics) + ("https://www.tomorrow.one/de-DE/feed.xml" sustainability finances) + ("https://www.volksverpetzer.de/feed/" activism) + ("https://www.wetell.de/feed/" service sustainability) ("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" - ))) + ("https://zerforschung.org/index.xml" activism)))) + +;; (use-package! elfeed +;; :config +;; (setq elfeed-feeds +;; '(("https://www.giessen.de/media/rss/Presse.xml" '(news local)) +;; ("https://adactio.com/journal/rss" '(tech)) +;; ("https://andregarzia.com/feeds/all.atom.xml" '(tech)) +;; ("https://ar.al/index.xml" '(tech activism)) +;; ("https://archlinux.org/feeds/news/" '(tech linux)) +;; ("https://ashfurrow.com/feed.xml" '(health)) +;; ("https://bachrauf.org/feed/" '(activism)) +;; ("https://beko.famkos.net/feed/" '(tech)) +;; ("https://blog.elementary.io/feed.xml" '(tech release)) +;; ("https://blog.gls.de/feed/" '(finances)) +;; ("https://dasklima.podigee.io/feed/mp3" '(podcast)) +;; ("https://forgefriends.org/index.xml" '(tech)) +;; ("https://forgejo.org/rss.xml" '(release tech)) +;; ("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" '(food)) +;; ("https://jlelse.blog/.rss" '(tech)) +;; ("https://katapult-magazin.de/feed/rss" '(activism)) +;; ("https://katja-diehl.de/feed/" '(activism)) +;; ("https://kevquirk.com/feed" '(tech)) +;; ("https://maudb.gitlab.io/dok/rss.xml" '(food autonomy)) +;; ("https://miniflux.app/feed.xml" '(tech release)) +;; ("https://mntre.com/reform_md.atom" '(tech)) +;; ("https://nesslabs.com/feed" '(productivity)) +;; ("https://newsfeed.zeit.de/serie/die-kaenguru-comics" '(comics)) +;; ("https://nicolevanderhoeven.com/index.xml" '(tech)) +;; ("https://noyb.eu/en/rss" '(activism)) +;; ("https://nullprogram.com/feed/" '(tech)) +;; ("https://obsidian.md/feed.xml" '(tech release)) +;; ("https://ohhelloana.blog/feed.xml" '(tech)) +;; ("https://pluralistic.net/feed/" '(tech activism)) +;; ("https://shkspr.mobi/blog/feed/" '(tech)) +;; ("https://smallstar.space/feed/" '(religion)) +;; ("https://snikket.org/blog/index.xml" '(tech release)) +;; ("https://social.prepedia.org/@FediNINA_Giessen.rss" '(alerts)) +;; ("https://solar.lowtechmagazine.com/posts/index.xml" '(tech sustainability)) +;; ("https://tarnkappe.info/feed" '(tech piracy)) +;; ("https://theoatmeal.com/feed/rss" '(comics)) +;; ("https://victoria.dev/atom.xml" '(tech)) +;; ("https://warandpeas.com/feed/" '(comis)) +;; ("https://warnung.bund.de/api31/mowas/rss/065310000000.rss" '(alerts)) +;; ("https://webcomicname.com/rss" '(comis)) +;; ("https://webdevlaw.uk/feed/" '(tech activism)) +;; ("https://www.commitstrip.com/en/feed/" '(comics)) +;; ("https://www.drugsandwires.fail/feed/" '()) +;; ("https://www.kuketz-blog.de/category/artikel/feed/" '(tech)) +;; ("https://www.kuketz-blog.de/category/microblog/feed/" '(tech)) +;; ("https://www.mein-nepal.de/feed/" '(nepal)) +;; ("https://www.oglaf.com/feeds/rss/" '(comics nsfw)) +;; ("https://www.schoenescheisse.de/feed/" '(comics)) +;; ("https://www.smbc-comics.com/comic/rss" '(comics)) +;; ("https://www.tomorrow.one/de-DE/feed.xml" '(sustainability finances)) +;; ("https://www.volksverpetzer.de/feed/" '(activism)) +;; ("https://www.wetell.de/feed/" '(service sustainability)) +;; ("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" '(activism))))) + (use-package! heaven-and-hell :ensure t @@ -309,20 +383,28 @@ :config (setq org-auto-tangle-default nil) :hook (org-mode . org-auto-tangle-mode)) +(use-package! org-caldav + :config + (setq org-caldav-url "https://posteo.de:8443/calendars/johnnie" + org-caldav-calendar-id "default" + org-caldav-inbox (org-path "Calendar.org") + org-caldav-files nil + org-icalendar-timezone "Europe/Berlin")) + ;; URL of the caldav server -(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de") +;; (setq org-caldav-url "https://posteo.de:8443/calendars/johnnie/default") ;; calendar ID on server -(setq org-caldav-calendar-id "persnlich") +;; (setq org-caldav-calendar-id "default") ;; Org filename where new entries from calendar stored -(setq org-caldav-inbox (org-path "Calendar.org")) +;; (setq org-caldav-inbox (org-path "Calendar.org")) ;; Additional Org files to check for calendar events -(setq org-caldav-files nil) +;; (setq org-caldav-files nil) ;; Usually a good idea to set the timezone manually -(setq org-icalendar-timezone "Europe/Berlin") +;; (setq org-icalendar-timezone "Europe/Berlin") (after! org-drill (setq org-drill-scope 'agenda)) @@ -355,6 +437,9 @@ (:name "Appointments" :file-path "Calendar\.org") + (:name "Inbox" + :file-path "Inbox\.org") + (:name "Shopping" :tag "shopping") ;; Set order of multiple groups at once diff --git a/config/dot_config/doom/config.html b/config/dot_config/doom/config.html deleted file mode 100644 index d8310c4..0000000 --- a/config/dot_config/doom/config.html +++ /dev/null @@ -1,744 +0,0 @@ - - - - - - - -Emacs Config - - - - - - -
-

Emacs Config

- -

-This config file is built on doom-emacs 3.0.0-pre and emacs 29.2. -

-
-

1. Header

-
-

-This header will be the first codeblock in the config file. -

- -
-
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
-
-
-
-
-
-

2. Keybindings

-
-

-These keybindings extend the default doom bindings, either because the defaults were confusing to me or because the binding did not yet exist. -

- - - - --- -- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescriptionState
F12Show Org-AgendaN
Ctrl-Alt-+Increase Font Size 
Ctrl-#Toggle Line Comment 
DELUp DirectoryDired
F6Toggle Light/Dark Theme 
F7Start Org-Drill 
SPC m g sGo to habit statsOrg
M-UPMove line up 
M-DOWNMove line down 
M-LEFTMove region left 
- -
-
(map! :n "<f12>" #'org-agenda-list)
-(map! :n "<f7>" #'org-drill)
-(map! "C-M-+" #'doom/increase-font-size)
-(map! "C-#" #'comment-line)
-(map! :n "<f8>" #'emms-playlist-mode-go)
-(evil-define-key 'normal dired-mode-map
-  (kbd "DEL") 'dired-up-directory)
-
-
-
-
-
-

3. Base Config

-
-
-
-;; Basic User Settings
-(setq user-full-name "Jonathan Jenne"
-      user-mail-address "johnnie@posteo.de")
-
-;; Default Shell
-;; Useful if default system shell is not bash
-(setq shell-file-name (executable-find "bash"))
-
-;; Display Line numbers
-(setq display-line-numbers-type t)
-
-
-
-
-
-

4. Appearance

-
-
-
;; Fonts
-(setq doom-font
-      (font-spec :family "IBM Plex Mono" :size 18 :weight 'medium))
-(setq doom-variable-pitch-font
-      (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
-(setq variable-pitch
-      (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
-
-;; Dashboard
-(defun my-weebery-is-always-greater ()
-  (let* ((banner '("EMACS                                "
-                   "███▄ ▄███▓ ▒█████   ▒█████  ▓█████▄  "
-                   "▓██▒▀█▀ ██▒▒██▒  ██▒▒██▒  ██▒▒██▀ ██▌"
-                   "▓██    ▓██░▒██░  ██▒▒██░  ██▒░██   █▌"
-                   "▒██    ▒██ ▒██   ██░▒██   ██░░▓█▄   ▌"
-                   "▒██▒   ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ "
-                   "░ ▒░   ░  ░░ ▒░▒░▒░ ░ ▒░▒░▒░  ▒▒▓  ▒ "
-                   "░  ░      ░  ░ ▒ ▒░   ░ ▒ ▒░  ░ ▒  ▒ "
-                   "░      ░   ░ ░ ░ ▒  ░ ░ ░ ▒   ░ ░  ░ "
-                   "       ░       ░ ░      ░ ░     ░    "
-                   "                              ░      "))
-                  (longest-line (apply #'max (mapcar #'length banner))))
-    (put-text-property
-     (point)
-     (dolist (line banner (point))
-       (insert (+doom-dashboard--center
-                +doom-dashboard--width
-                (concat line (make-string (max 0 (- longest-line (length line))) 32)))
-               "\n"))
-     'face 'doom-dashboard-banner)))
-(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater)
-
-(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu)
-(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer)
-(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-loaded)
-
-;; Themes
-(use-package! heaven-and-hell
-  :ensure t
-  :config
-  (setq heaven-and-hell-theme-type 'dark) ;; Omit to use light by default
-  (setq heaven-and-hell-themes
-        '((light . doom-gruvbox-light)
-          (dark . doom-gruvbox))) ;; Themes can be the list: (dark . (tsdh-dark wombat))
-  ;; Optionall, load themes without asking for confirmation.
-  (setq heaven-and-hell-load-theme-no-confirm t)
-  :hook (after-init . heaven-and-hell-init-hook)
-  :bind (("<f6>" . heaven-and-hell-toggle-theme)))
-
-
-
-
-
-

5. Org Mode

-
-
-
-

5.1. General Settings

-
-
-
(setq +user-org-path "~/Notes/Org")
-(defun org-path (filename) (expand-file-name filename +user-org-path))
-
-(use-package! org
-  :config
-  (setq ;; General
-   org-directory +user-org-path
-   org-src-tab-acts-natively t
-
-   ;; Org Export
-   org-export-exclude-tags '("toc")
-
-   ;; Org Capture
-   +org-capture-notes-file (org-path "Notes.org")
-   +org-capture-todo-file (org-path "Todo.org")
-   +org-capture-journal-file (org-path "Journal.org")
-   +org-capture-cooking-file (org-path "Cooking.org")
-   +org-capture-nepali-file (org-path "Nepali.org")
-
-   ;; Org Agenda
-   org-agenda-show-all-dates t
-   org-agenda-span 4
-   org-agenda-start-day "+0d"
-   org-agenda-tag-filter-preset '("-drill")
-   org-agenda-time-grid
-   '((daily today require-timed)
-     (800 1000 1200 1400 1600 1800 2000)
-     " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
-   org-agenda-current-time-string
-   "◀── now ──────────────────────────────────────────────── \\o/"
-   org-agenda-block-separator ?─
-   ;; Consider all org files part of the org-agenda
-   org-agenda-files (list +user-org-path)
-   ;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
-
-   ;; Org Todo
-   org-todo-keywords
-   '((sequence "TODO(t)" "|" "DONE(d)")
-     (sequence "THIS(T)" "EXAMPLE")))
-
-  :bind (:map org-mode-map ("<localleader> 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)
-  (add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook))
-
-
-
-
-
-
-

5.2. Org Export

-
-
-
-;; Org Export
-
-
-
-
-
-
-

5.3. Org Capture

-
-
-
-(after! org (setq org-capture-templates
-                  '(("t" "Personal Todo" entry
-                     (file +org-capture-todo-file)
-                     "* TODO %?\n" :prepend t)
-
-                    ("r" "Recipe" entry
-      (file+headline +org-capture-cooking-file "Unsorted")
-      "* NEVERMADE %?
-:PROPERTIES:
-:Author:
-:Source:
-:Sent_by:
-:Yield:
-:Prep_Time:
-:Cook_Time:
-:Total_Time:
-:Cost:
-:Description:
-:URL:
-:Added: %u
-:END:
-
-- [ ] Ingredient 1
-
-
-1. First Step")
-
-                    ("n" "Nepali")
-
-                    ("nw" "Nepali Word" entry
-                     (file+headline +org-capture-nepali-file "Nepali Words")
-                     "* %^{Nepali Word} :drill:\n%\\1\n** Answer\n%^{Translation}" :prepend t :immediate-finish t)
-
-                    ("j" "Daily Journal" entry
-                     (file+olp+datetree +org-capture-journal-file)
-                     "* %U %?\n" :prepend t))))
-
-
-
-
-
-
-
-

6. Packages

-
-
-
-

6.1. doom-modeline

-
-

-The doom modeline can be configured to show different information like time and date, battery info and more. -

- -
-
(after! doom-modeline
-  (setq doom-modeline-battery t)
-  (setq doom-modeline-major-mode-icon t))
-
-(add-hook 'doom-after-init-hook #'display-battery-mode)
-(add-hook 'doom-after-init-hook #'display-time-mode)
-
-
-
-
-
-

6.2. evil-snipe

-
-
-
(after! evil-snipe (setq evil-snipe-scope 'whole-visible))
-
-
-
-
-
-

6.3. hl-todo

-
-
-
(add-hook 'org-mode-hook #'hl-todo-mode)
-
-(after! hl-todo
-  (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))))
-
-
-
-
-
-

6.4. notmuch

-
-
-
(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX")))
-(setq +notmuch-sync-backend 'offlineimap)
-
-
-
-
-
-

6.5. nov.el

-
-
-
-(use-package! nov
-  :mode ("\\.epub\\'" . nov-mode)
-  :config
-  (setq nov-text-width 70))
-
-(add-hook! 'nov-mode-hook '(olivetti-mode))
-
-
-
-
-
-
-

6.6. olivetti

-
-

-Centers the text. This is used for reading books in -

- -
-
(use-package! olivetti
-  :defer t
-  :config (setq olivetti-body-width 70)
-  :init
-  (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1)))))
-
-
-
-
-
-

6.7. 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. -

- -
-
(use-package! org-auto-tangle
-  :defer t
-  :config (setq org-auto-tangle-default nil)
-  :hook (org-mode . org-auto-tangle-mode))
-
-
-
-
-
-

6.8. org-drill

-
-

-A package for learning and memorizing using spaced repetition, inspired by applications like Anki. -

- -
-
(after! org-drill
-  (setq org-drill-scope 'agenda))
-
-
-
-
-
-

6.9. org-noter

-
-
-
(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 '()))
-
-
-
-
-
-
-

6.10. org-roam

-
-
-
(after! org-roam
-  (setq org-roam-directory "~/Notes/Org/Roam")
-  (setq org-roam-dailies-directory "Daily"))
-
-
-
-
-
-
-

6.11. drag-stuff

-
-

-With drag stuff you can use M-UP and M-DOWN to move lines. You can also mark a region and use M-LEFT and M-RIGHT to move it left and right. -

- -
-
(drag-stuff-global-mode t)
-
-
-
-
-
-
-

7. Functions

-
-
-
(defun my-org-inline-css-hook (exporter)
-  "Insert custom inline css"
-  (when (eq exporter 'html)
-    (let* ((dir (ignore-errors (file-name-directory (buffer-file-name))))
-           (path (concat dir "style.css"))
-           (fallback-style (or (null dir) (null (file-exists-p path))))
-           (final (if fallback-style "~/.config/doom/style.css" path))) ;; <- set your own style file path
-      (setq org-html-head-include-default-style t)
-      (setq org-html-head (concat
-                           "<style type=\"text/css\">\n"
-                           "<!--/*--><![CDATA[/*><!--*/\n"
-                           (with-temp-buffer
-                             (insert-file-contents final)
-                             (buffer-string))
-                           "/*]]>*/-->\n"
-                           "</style>\n")))))
-
-
-
-
-
-
-
-
-

Author: Jonathan Jenne / Inhji

-

Created: 2024-03-11 Mo 13:42

-
- - diff --git a/config/dot_config/doom/config.org b/config/dot_config/doom/config.org deleted file mode 100644 index e1c162d..0000000 --- a/config/dot_config/doom/config.org +++ /dev/null @@ -1,538 +0,0 @@ -#+TITLE: Emacs Config -#+AUTHOR: Jonathan Jenne / Inhji -#+PROPERTY: header-args :tangle config.el -#+auto_tangle: t -#+STARTUP: overview - -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: -:VISIBILITY: all -:END: -- [[#header][Header]] -- [[#functions][Functions]] -- [[#keybindings][Keybindings]] -- [[#base-config][Base Config]] -- [[#appearance][Appearance]] -- [[#org-mode][Org Mode]] -- [[#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]] - - [[#olivetti][olivetti]] - - [[#org-auto-tangle][org-auto-tangle]] - - [[#org-caldav][org-caldav]] - - [[#org-drill][org-drill]] - - [[#org-noter][org-noter]] - - [[#org-roam][org-roam]] - - [[#org-super-agenda][org-super-agenda]] - -* Header -This header will be the first codeblock in the config file. - -#+begin_src emacs-lisp -;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- -#+end_src - -* Functions - -#+begin_src emacs-lisp - -(defun org-path-find-file () - "Open org-path in find file" - (interactive) - (doom-project-find-file +user-org-path)) - -(defun org-path (filename) - "Expand filename relative to the default org-path" - (expand-file-name filename +user-org-path)) - - - -(defun my-org-inline-css-hook (exporter) - "Insert custom inline css" - (when (eq exporter 'html) - (let* ((dir (ignore-errors (file-name-directory (buffer-file-name)))) - (path (concat dir "style.css")) - (fallback-style (or (null dir) (null (file-exists-p path)))) - (final (if fallback-style "~/.config/doom/style.css" path))) ;; <- set your own style file path - (setq org-html-head-include-default-style t) - (setq org-html-head (concat - "\n"))))) - -(defun my-weebery-is-always-greater () - (let* ((banner '("EMACS " - "███▄ ▄███▓ ▒█████ ▒█████ ▓█████▄ " - "▓██▒▀█▀ ██▒▒██▒ ██▒▒██▒ ██▒▒██▀ ██▌" - "▓██ ▓██░▒██░ ██▒▒██░ ██▒░██ █▌" - "▒██ ▒██ ▒██ ██░▒██ ██░░▓█▄ ▌" - "▒██▒ ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ " - "░ ▒░ ░ ░░ ▒░▒░▒░ ░ ▒░▒░▒░ ▒▒▓ ▒ " - "░ ░ ░ ░ ▒ ▒░ ░ ▒ ▒░ ░ ▒ ▒ " - "░ ░ ░ ░ ░ ▒ ░ ░ ░ ▒ ░ ░ ░ " - " ░ ░ ░ ░ ░ ░ " - " ░ ")) - (longest-line (apply #'max (mapcar #'length banner)))) - (put-text-property - (point) - (dolist (line banner (point)) - (insert (+doom-dashboard--center - +doom-dashboard--width - (concat line (make-string (max 0 (- longest-line (length line))) 32))) - "\n")) - 'face 'doom-dashboard-banner))) - -#+end_src - -* Keybindings - -These keybindings extend the default doom bindings, either because the defaults were confusing to me or because the binding did not yet exist. - -| Key | Description | State | -|------------+-------------------------+-------| -| C-M-+ | Increase Font Size | | -| C-# | Toggle Line Comment | | -| F6 | Toggle Light/Dark Theme | | -| 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! "C-M-+" #'doom/increase-font-size) - -;; NOTE: Does not work in org-mode src blocks -(map! "C-#" #'comment-line) - -(map! :leader - :map doom-leader-file-map - :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 - -;; Basic User Settings -(setq user-full-name "Jonathan Jenne" - user-mail-address "johnnie@posteo.de") - -;; Default Shell -;; Useful if default system shell is not bash -(setq shell-file-name (executable-find "bash")) - -;; This is where all org files are sourced from -(setq +user-org-path "~/Notes/Org") - -;; Display Line numbers -(setq display-line-numbers-type t) -#+end_src - -* Appearance - - -#+begin_src emacs-lisp -;; Fonts -(setq doom-font - (font-spec :family "IBM Plex Mono" :size 18 :weight 'medium)) -(setq doom-variable-pitch-font - (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium)) -(setq variable-pitch - (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium)) - -;; Dashboard -(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater) -(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu) -(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer) -(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-loaded) - -;; Themes -#+end_src - -* Org Mode - -Org Mode is a tool for note taking, habit tracking, writing, outlining and much much more. You might have heard of it already. - -There are a few things to point out here: - -- org-drill items are excluded from the agenda -- toc headings are excluded from exports - -#+begin_src emacs-lisp - -(use-package! org - :config - (setq ;; General - org-directory +user-org-path - org-log-into-drawer "LOGBOOK" - org-src-tab-acts-natively t - - ;; Org Export - org-export-exclude-tags '("toc") - - ;; Org Agenda - org-agenda-show-all-dates t - org-agenda-span 2 - org-agenda-start-day "+0d" - org-agenda-tag-filter-preset '("-drill") - org-agenda-time-grid - '((daily today require-timed) - (800 1000 1200 1400 1600 1800 2000) - " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄") - org-agenda-current-time-string - "◀── now ──────────────────────────────────────────────── \\o/" - org-agenda-block-separator ?─ - ;; Consider all org files part of the org-agenda - org-agenda-files (list +user-org-path) - ;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done) - - ;; Org Todo - org-todo-keywords - '((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)") - (sequence "THIS(T)" "EXAMPLE")) - - ;; Org Capture - +org-capture-notes-file (org-path "Notes.org") - +org-capture-todo-file (org-path "Todo.org") - +org-capture-journal-file (org-path "Journal.org") - +org-capture-cooking-file (org-path "Cooking.org") - +org-capture-nepali-file (org-path "Nepali.org") - org-capture-templates - '(("t" "Personal Todo" entry - (file+headline +org-capture-todo-file "Todo") - "* TODO %?\n" :prepend t) - - ("r" "Recipe" entry - (file+headline +org-capture-cooking-file "Unsorted") - "* NEVERMADE %? -:PROPERTIES: -:Author: -:Source: -:Sent_by: -:Yield: -:Prep_Time: -:Cook_Time: -:Total_Time: -:Cost: -:Description: -:URL: -:Added: %u -:END: - -- [ ] Ingredient 1 - - -1. First Step") - - ("n" "Nepali") - - ("nw" "Nepali Word" entry - (file+headline +org-capture-nepali-file "Nepali Words") - "* %^{Nepali Word} :drill:\n%\\1\n** Answer\n%^{Translation}" :prepend t :immediate-finish t) - - ("j" "Daily Journal" entry - (file+olp+datetree +org-capture-journal-file) - "* %U %?\n" :prepend t))) - - :hook (org-after-todo-state-change . org-habit-stats-update-properties) - :init - (add-to-list 'org-modules 'org-habit) - (add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook)) - -#+end_src - -* Packages -** doom-modeline - -The doom modeline can be configured to show different information like time and date, battery info and more. - -#+begin_src emacs-lisp -(after! doom-modeline - (setq doom-modeline-battery t) - (setq doom-modeline-major-mode-icon t)) - -(add-hook 'doom-after-init-hook #'display-battery-mode) -(add-hook 'doom-after-init-hook #'display-time-mode) -#+end_src - -** drag-stuff - -With drag stuff you can use ~M-UP~ and ~M-DOWN~ to move lines. You can also mark a region and use ~M-LEFT~ and ~M-RIGHT~ to move it left and right. - -#+begin_src emacs-lisp -(use-package! drag-stuff - :init (drag-stuff-global-mode t)) -#+end_src - -** elfeed - -#+begin_src emacs-lisp -(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" - ))) -#+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-caldav - -#+begin_src emacs-lisp - -;; URL of the caldav server -(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de") - -;; calendar ID on server -(setq org-caldav-calendar-id "persnlich") - -;; Org filename where new entries from calendar stored -(setq org-caldav-inbox (org-path "Calendar.org")) - -;; Additional Org files to check for calendar events -(setq org-caldav-files nil) - -;; Usually a good idea to set the timezone manually -(setq org-icalendar-timezone "Europe/Berlin") - -#+end_src - -#+RESULTS: - -** 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 -** org-super-agenda - -#+begin_src emacs-lisp -(use-package! org-super-agenda - :config - (setq org-super-agenda-groups - '(;; Each group has an implicit boolean OR operator between its selectors. - (:name "Important" - ;; Single arguments given alone - ;;:tag "bills" - :priority "A") - (:name "Habits" - :habit t) - - (:name "Appointments" - :file-path "Calendar\.org") - - (:name "Shopping" - :tag "shopping") - ;; Set order of multiple groups at once - (:priority<= "B" - ;; Show this section after "Today" and "Important", because - ;; their order is unspecified, defaulting to 0. Sections - ;; are displayed lowest-number-first. - :order 1) - ;; After the last group, the agenda will display items that didn't - ;; match any of these groups, with the default order position of 99 - )) - :init - (org-super-agenda-mode t)) -#+end_src