Compare commits

...

7 Commits

Author SHA1 Message Date
Inhji a14af6a4ef elfeed, org-path-find-file, bikeshedding 2024-03-12 11:48:29 +05:45
Inhji 6b85231fde doom: migrate to use-package! 2024-03-11 15:52:35 +05:45
Inhji bf9c306103 fish: comment 2024-03-11 15:52:25 +05:45
Inhji f6344904d8 enable elfeed 2024-03-11 15:52:15 +05:45
Inhji af7c558f24 config 2024-03-11 11:06:39 +05:45
Inhji e1f0a08b7c beets: change music dir 2024-03-11 11:05:18 +05:45
Inhji fed8dc5469 fish: replace z with zoxide 2024-03-11 11:05:07 +05:45
8 changed files with 1032 additions and 494 deletions

View File

@ -1,4 +1,4 @@
directory: ~/Musik/Import
directory: ~/Musik
library: ~/.config/beets/library.db
import:

View File

@ -1,64 +1,9 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
(map! :n "<f12>" #'org-agenda-list)
(map! :n "<f7>" #'org-drill)
(map! "C-M-+" #'doom/increase-font-size)
(map! "C-#" #'comment-line)
(evil-define-key 'normal dired-mode-map
(kbd "DEL") 'dired-up-directory)
;; 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"))
;; 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))
;; Display Line numbers
(setq display-line-numbers-type t)
(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)))
(setq +user-org-path "~/Notes/Org")
(defun org-path (filename) (expand-file-name filename +user-org-path))
(after! org
(map! :map org-mode-map :localleader "g s" #'org-habit-stats-view-habit-at-point)
(setq org-directory +user-org-path
org-src-tab-acts-natively t)
org-todo-sets '(("TODO" "PROJ" "LOOP" "STRT" "WAIT" "HOLD" "IDEA" "DONE" "KILL")
("[ ]" "[-]" "[?]" "[X]")
("THIS" "EXAMPLE")))
(add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1))))
(add-hook! 'org-after-todo-state-change-hook '(org-habit-stats-update-properties))
(add-to-list 'org-modules 'org-habit)
(after! org (;; TOC Links will lead to errors when attempting
;; to export to HTML
setq org-export-exclude-tags '("toc")))
(defun org-path-find-file ()
"Open org-path in find file"
(interactive)
(doom-project-find-file +user-org-path))
(defun my-org-inline-css-hook (exporter)
"Insert custom inline css"
@ -77,21 +22,118 @@
"/*]]>*/-->\n"
"</style>\n")))))
;; Org Export
(add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook)
(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)))
(after! org (setq +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")))
(map! :n "<f12>" #'org-agenda-list)
(map! :n "<f7>" #'org-drill)
(map! "C-M-+" #'doom/increase-font-size)
(after! org (setq org-capture-templates
'(("t" "Personal Todo" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n" :prepend t)
;; NOTE: Does not work in org-mode src blocks
(map! "C-#" #'comment-line)
("r" "Recipe" entry
(map! :leader
:map doom-leader-file-map
:desc "Find org files"
"f o" #'org-path-find-file)
;; 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)
;; 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
(use-package! org
:config
(progn (defun org-path (filename)
"Expand filename relative to the default org-path"
(expand-file-name filename +user-org-path)))
(progn )
(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 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"))
;; 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 +org-capture-todo-file)
"* TODO %?\n" :prepend t)
("r" "Recipe" entry
(file+headline +org-capture-cooking-file "Unsorted")
"* NEVERMADE %?
:PROPERTIES:
@ -113,50 +155,72 @@
1. First Step")
("n" "Nepali")
("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)
("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))))
("j" "Daily Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n" :prepend t)))
(after! org (setq
org-agenda-show-all-dates nil
org-agenda-span 4
org-agenda-start-day "+0d"
org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
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)))
(add-hook 'org-mode-hook #'hl-todo-mode)
: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))
(after! hl-todo (setq hl-todo-keyword-faces '(("TODO" warning bold)
("FIXME" error 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))))
(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)
(use-package! drag-stuff
:init (drag-stuff-global-mode t))
(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 (("<f6>" . heaven-and-hell-toggle-theme)))
(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))
(use-package! nov
:mode ("\\.epub\\'" . nov-mode)
:config
(setq nov-text-width 60))
(setq nov-text-width 70))
(add-hook! 'nov-mode-hook '(olivetti-mode))
(after! olivetti (setq olivetti-body-width 60))
(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))))
(use-package! org-auto-tangle
:defer t
@ -166,23 +230,91 @@
(after! org-drill
(setq org-drill-scope 'agenda))
(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)
(after! evil-snipe (setq evil-snipe-scope 'whole-visible))
(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 '()))
(after! org-roam
(setq org-roam-directory "~/Notes/Org/Roam")
(setq org-roam-dailies-directory "Daily"))
(use-package! org-roam
:config (setq org-roam-directory "~/Notes/Org/Roam"
org-roam-dailies-directory "Daily"))
(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX")))
;; (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"
)))

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2024-02-27 Di 13:59 -->
<!-- 2024-03-11 Mo 13:42 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Emacs Config</title>
@ -210,36 +210,56 @@ body {
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="#org3e4acbe">1. Keybindings</a></li>
<li><a href="#org5cb07a1">2. Base Config</a>
<li><a href="#org204f073">1. Header</a></li>
<li><a href="#org7391319">2. Keybindings</a></li>
<li><a href="#org57eb3de">3. Base Config</a></li>
<li><a href="#org25314e4">4. Appearance</a></li>
<li><a href="#org2005268">5. Org Mode</a>
<ul>
<li><a href="#org7b1406d">2.1. Hooks</a></li>
<li><a href="#org1df4542">5.1. General Settings</a></li>
<li><a href="#org05f6b4c">5.2. Org Export</a></li>
<li><a href="#org8d51933">5.3. Org Capture</a></li>
</ul>
</li>
<li><a href="#orgf2aed3b">3. Themes</a></li>
<li><a href="#orgf1767f4">4. Org Mode</a>
<li><a href="#org9bf68b3">6. Packages</a>
<ul>
<li><a href="#org7edeaf3">4.1. General Settings</a></li>
<li><a href="#org86c81c0">4.2. Org Export</a></li>
<li><a href="#orgeacff10">4.3. Org Agenda</a></li>
</ul>
</li>
<li><a href="#orge7a3973">5. Packages</a>
<ul>
<li><a href="#org10ca8a9">5.1. hl-todo</a></li>
<li><a href="#orgb292dd1">5.2. org-auto-tangle</a></li>
<li><a href="#org931b602">5.3. org-drill</a></li>
<li><a href="#org173df8d">5.4. doom-modeline</a></li>
<li><a href="#orgf3784d6">5.5. evil-snipe</a></li>
<li><a href="#org2332759">6.1. doom-modeline</a></li>
<li><a href="#org5e7b531">6.2. evil-snipe</a></li>
<li><a href="#orgfbb3b9d">6.3. hl-todo</a></li>
<li><a href="#org99ad413">6.4. notmuch</a></li>
<li><a href="#orga8884d1">6.5. nov.el</a></li>
<li><a href="#org7b2aa40">6.6. olivetti</a></li>
<li><a href="#org347e270">6.7. org-auto-tangle</a></li>
<li><a href="#org4b9c602">6.8. org-drill</a></li>
<li><a href="#org9f83d55">6.9. org-noter</a></li>
<li><a href="#org20a879b">6.10. org-roam</a></li>
<li><a href="#org16a2f8f">6.11. drag-stuff</a></li>
</ul>
</li>
<li><a href="#orgf60ee49">7. Functions</a></li>
</ul>
</div>
</div>
<div id="outline-container-org3e4acbe" class="outline-2">
<h2 id="org3e4acbe"><span class="section-number-2">1.</span> Keybindings</h2>
<p>
This config file is built on doom-emacs <code>3.0.0-pre</code> and emacs <code>29.2</code>.
</p>
<div id="outline-container-org204f073" class="outline-2">
<h2 id="org204f073"><span class="section-number-2">1.</span> Header</h2>
<div class="outline-text-2" id="text-1">
<p>
This header will be the first codeblock in the config file.
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #a89984;">;;; </span><span style="color: #a89984;">$DOOMDIR/config.el -*- lexical-binding: t; -*-</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org7391319" class="outline-2">
<h2 id="org7391319"><span class="section-number-2">2.</span> Keybindings</h2>
<div class="outline-text-2" id="text-2">
<p>
These keybindings extend the default doom bindings, either because the defaults were confusing to me or because the binding did not yet exist.
</p>
@ -296,218 +316,429 @@ These keybindings extend the default doom bindings, either because the defaults
<td class="org-left">Start Org-Drill</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">SPC m g s</td>
<td class="org-left">Go to habit stats</td>
<td class="org-left">Org</td>
</tr>
<tr>
<td class="org-left">M-UP</td>
<td class="org-left">Move line up</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">M-DOWN</td>
<td class="org-left">Move line down</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">M-LEFT</td>
<td class="org-left">Move region left</td>
<td class="org-left">&#xa0;</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org5cb07a1" class="outline-2">
<h2 id="org5cb07a1"><span class="section-number-2">2.</span> Base Config</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #928374;">;;; </span><span style="color: #928374;">$DOOMDIR/config.el -*- lexical-binding: t; -*-</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Basic User Settings</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">user-full-name</span> <span style="color: #b8bb26;">"Jonathan Jenne"</span>
<span style="color: #83a598;">user-mail-address</span> <span style="color: #b8bb26;">"johnnie@posteo.de"</span><span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Default Shell</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Useful if default system shell is not bash</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">shell-file-name</span> <span style="color: #cc241d;">(</span><span style="color: #b8bb26;">executable-find</span> <span style="color: #b8bb26;">"bash"</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Display Line numbers</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">display-line-numbers-type</span> t<span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">General Keybindings</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">map!</span> <span style="color: #fe8019;">:n</span> <span style="color: #b8bb26;">"&lt;f12&gt;"</span> <span style="color: #ebdbb2;">#'</span><span style="color: #689d6a;">org-agenda-list</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">map!</span> <span style="color: #fe8019;">:n</span> <span style="color: #b8bb26;">"&lt;f7&gt;"</span> <span style="color: #ebdbb2;">#'</span><span style="color: #689d6a;">org-drill</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">map!</span> <span style="color: #b8bb26;">"C-M-+"</span> <span style="color: #ebdbb2;">#'</span><span style="color: #689d6a;">doom/increase-font-size</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">map!</span> <span style="color: #b8bb26;">"C-#"</span> <span style="color: #ebdbb2;">#'</span><span style="color: #689d6a;">comment-line</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">evil-define-key</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">normal</span> <span style="color: #83a598;">dired-mode-map</span>
<span style="color: #cc241d;">(</span><span style="color: #b8bb26;">kbd</span> <span style="color: #b8bb26;">"DEL"</span><span style="color: #cc241d;">)</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">dired-up-directory</span><span style="color: #fe8019;">)</span>
</pre>
</div>
</div>
<div id="outline-container-org7b1406d" class="outline-3">
<h3 id="org7b1406d"><span class="section-number-3">2.1.</span> Hooks</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #928374;">;; </span><span style="color: #928374;">Org Mode</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">org-mode-hook</span> <span style="color: #ebdbb2;">#'</span><span style="color: #83a598;">org-modern-mode</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">org-mode-hook</span> <span style="color: #ebdbb2;">#'</span><span style="color: #83a598;">hl-todo-mode</span><span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Org Agenda</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">org-agenda-finalize-hook</span> <span style="color: #ebdbb2;">#'</span><span style="color: #689d6a;">org-modern-agenda</span><span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Modeline</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">doom-after-init-hook</span> <span style="color: #ebdbb2;">#'</span><span style="color: #83a598;">display-battery-mode</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">doom-after-init-hook</span> <span style="color: #ebdbb2;">#'</span><span style="color: #83a598;">display-time-mode</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">map!</span> <span style="color: #af3a03;">:n</span> <span style="color: #79740e;">"&lt;f12&gt;"</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">org-agenda-list</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">map!</span> <span style="color: #af3a03;">:n</span> <span style="color: #79740e;">"&lt;f7&gt;"</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">org-drill</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">map!</span> <span style="color: #79740e;">"C-M-+"</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">doom/increase-font-size</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">map!</span> <span style="color: #79740e;">"C-#"</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">comment-line</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">map!</span> <span style="color: #af3a03;">:n</span> <span style="color: #79740e;">"&lt;f8&gt;"</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">emms-playlist-mode-go</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">evil-define-key</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">normal</span> <span style="color: #076678;">dired-mode-map</span>
<span style="color: #b16286;">(</span><span style="color: #b57614;">kbd</span> <span style="color: #79740e;">"DEL"</span><span style="color: #b16286;">)</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">dired-up-directory</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf2aed3b" class="outline-2">
<h2 id="orgf2aed3b"><span class="section-number-2">3.</span> Themes</h2>
<div id="outline-container-org57eb3de" class="outline-2">
<h2 id="org57eb3de"><span class="section-number-2">3.</span> Base Config</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">use-package!</span> heaven-and-hell
<span style="color: #fe8019;">:ensure</span> t
<span style="color: #fe8019;">:config</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">heaven-and-hell-theme-type</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">dark</span><span style="color: #cc241d;">)</span> <span style="color: #928374;">;; </span><span style="color: #928374;">Omit to use light by default</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">heaven-and-hell-themes</span>
<span style="color: #ebdbb2;">'</span><span style="color: #b8bb26;">(</span><span style="color: #83a598;">(</span>light . doom-gruvbox-light<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span>dark . doom-gruvbox<span style="color: #83a598;">)</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span> <span style="color: #928374;">;; </span><span style="color: #928374;">Themes can be the list: (dark . (tsdh-dark wombat))</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Optionall, load themes without asking for confirmation.</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">heaven-and-hell-load-theme-no-confirm</span> t<span style="color: #cc241d;">)</span>
<span style="color: #fe8019;">:hook</span> <span style="color: #cc241d;">(</span>after-init . heaven-and-hell-init-hook<span style="color: #cc241d;">)</span>
<span style="color: #fe8019;">:bind</span> <span style="color: #cc241d;">(</span><span style="color: #b8bb26;">(</span><span style="color: #b8bb26;">"&lt;f6&gt;"</span> . heaven-and-hell-toggle-theme<span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf1767f4" class="outline-2">
<h2 id="orgf1767f4"><span class="section-number-2">4.</span> Org Mode</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org7edeaf3" class="outline-3">
<h3 id="org7edeaf3"><span class="section-number-3">4.1.</span> General Settings</h3>
<div class="outline-text-3" id="text-4-1">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">setq</span> +user-org-path <span style="color: #b8bb26;">"~/Notes/Org"</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">defun</span> <span style="color: #b8bb26;">org-path</span> <span style="color: #cc241d;">(</span>filename<span style="color: #cc241d;">)</span> <span style="color: #cc241d;">(</span><span style="color: #d3869b;">expand-file-name</span> filename +user-org-path<span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> org <span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">org-directory</span> +user-org-path
<span style="color: #83a598;">org-src-tab-acts-natively</span> t<span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-to-list</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">org-modules</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">org-habit</span><span style="color: #fe8019;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org86c81c0" class="outline-3">
<h3 id="org86c81c0"><span class="section-number-3">4.2.</span> Org Export</h3>
<div class="outline-text-3" id="text-4-2">
<div class="org-src-container">
<pre class="src src-emacs-lisp">
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Basic User Settings</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">user-full-name</span> <span style="color: #79740e;">"Jonathan Jenne"</span>
<span style="color: #076678;">user-mail-address</span> <span style="color: #79740e;">"johnnie@posteo.de"</span><span style="color: #076678;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> org <span style="color: #cc241d;">(</span><span style="color: #928374;">;; </span><span style="color: #928374;">TOC Links will lead to errors when attempting</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">to export to HTML</span>
setq <span style="color: #83a598;">org-export-exclude-tags</span> <span style="color: #ebdbb2;">'</span><span style="color: #b8bb26;">(</span><span style="color: #b8bb26;">"toc"</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span><span style="color: #fb4934;">defun</span> <span style="color: #b8bb26;">my-org-inline-css-hook</span> <span style="color: #cc241d;">(</span>exporter<span style="color: #cc241d;">)</span>
<span style="color: #dfd2b8;">"Insert custom inline css"</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">when</span> <span style="color: #b8bb26;">(</span><span style="color: #d3869b;">eq</span> exporter <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">html</span><span style="color: #b8bb26;">)</span>
<span style="color: #b8bb26;">(</span><span style="color: #fb4934;">let*</span> <span style="color: #83a598;">(</span><span style="color: #fe8019;">(</span>dir <span style="color: #cc241d;">(</span><span style="color: #fb4934;">ignore-errors</span> <span style="color: #b8bb26;">(</span><span style="color: #d3869b;">file-name-directory</span> <span style="color: #83a598;">(</span><span style="color: #83a598;">buffer-file-name</span><span style="color: #83a598;">)</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span>path <span style="color: #cc241d;">(</span><span style="color: #d3869b;">concat</span> dir <span style="color: #b8bb26;">"style.css"</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span>fallback-style <span style="color: #cc241d;">(</span><span style="color: #fb4934;">or</span> <span style="color: #b8bb26;">(</span><span style="color: #d3869b;">null</span> dir<span style="color: #b8bb26;">)</span> <span style="color: #b8bb26;">(</span><span style="color: #d3869b;">null</span> <span style="color: #83a598;">(</span><span style="color: #d3869b;">file-exists-p</span> path<span style="color: #83a598;">)</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #fe8019;">(</span>final <span style="color: #cc241d;">(</span><span style="color: #fb4934;">if</span> fallback-style <span style="color: #b8bb26;">"~/.config/doom/style.css"</span> path<span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span><span style="color: #83a598;">)</span> <span style="color: #928374;">;; </span><span style="color: #928374;">&lt;- set your own style file path</span>
<span style="color: #83a598;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">org-html-head-include-default-style</span> t<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">org-html-head</span> <span style="color: #fe8019;">(</span><span style="color: #d3869b;">concat</span>
<span style="color: #b8bb26;">"&lt;style type=\"text/css\"&gt;\n"</span>
<span style="color: #b8bb26;">"&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/\n"</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">with-temp-buffer</span>
<span style="color: #b8bb26;">(</span><span style="color: #d3869b;">insert-file-contents</span> final<span style="color: #b8bb26;">)</span>
<span style="color: #b8bb26;">(</span><span style="color: #d3869b;">buffer-string</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span>
<span style="color: #b8bb26;">"/*]]&gt;*/--&gt;\n"</span>
<span style="color: #b8bb26;">"&lt;/style&gt;\n"</span><span style="color: #fe8019;">)</span><span style="color: #83a598;">)</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<span style="color: #928374;">;; </span><span style="color: #928374;">Org Export</span>
<span style="color: #fe8019;">(</span><span style="color: #b8bb26;">add-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #83a598;">org-export-before-processing-hook</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">my-org-inline-css-hook</span><span style="color: #fe8019;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Default Shell</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Useful if default system shell is not bash</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">shell-file-name</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">executable-find</span> <span style="color: #79740e;">"bash"</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Display Line numbers</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">display-line-numbers-type</span> t<span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgeacff10" class="outline-3">
<h3 id="orgeacff10"><span class="section-number-3">4.3.</span> Org Agenda</h3>
<div class="outline-text-3" id="text-4-3">
<div id="outline-container-org25314e4" class="outline-2">
<h2 id="org25314e4"><span class="section-number-2">4.</span> Appearance</h2>
<div class="outline-text-2" id="text-4">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> org <span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span>
<span style="color: #83a598;">org-agenda-show-all-dates</span> nil
<span style="color: #83a598;">org-agenda-span</span> <span style="color: #d3869b; font-weight: bold;">4</span>
<span style="color: #83a598;">org-agenda-start-day</span> <span style="color: #b8bb26;">"+0d"</span>
org-agenda-spillover-skip-function <span style="color: #ebdbb2;">'</span><span style="color: #b8bb26;">(</span>org-agenda-skip-entry-if <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">todo</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">done</span><span style="color: #b8bb26;">)</span>
<span style="color: #83a598;">org-agenda-time-grid</span>
<span style="color: #ebdbb2;">'</span><span style="color: #b8bb26;">(</span><span style="color: #83a598;">(</span>daily today require-timed<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #d3869b; font-weight: bold;">800</span> <span style="color: #d3869b; font-weight: bold;">1000</span> <span style="color: #d3869b; font-weight: bold;">1200</span> <span style="color: #d3869b; font-weight: bold;">1400</span> <span style="color: #d3869b; font-weight: bold;">1600</span> <span style="color: #d3869b; font-weight: bold;">1800</span> <span style="color: #d3869b; font-weight: bold;">2000</span><span style="color: #83a598;">)</span>
<span style="color: #b8bb26;">" &#9476;&#9476;&#9476;&#9476;&#9476; "</span> <span style="color: #b8bb26;">"&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;"</span><span style="color: #b8bb26;">)</span>
<span style="color: #83a598;">org-agenda-current-time-string</span>
<span style="color: #b8bb26;">"&#9664;&#9472;&#9472; now &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472; \\o/"</span>
<span style="color: #83a598;">org-agenda-block-separator</span> ?&#9472;
<span style="color: #928374;">;; </span><span style="color: #928374;">Consider all org files part of the org-agenda</span>
<span style="color: #83a598;">org-agenda-files</span> <span style="color: #b8bb26;">(</span><span style="color: #d3869b;">list</span> +user-org-path<span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp"><span style="color: #a89984;">;; </span><span style="color: #a89984;">Fonts</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">doom-font</span>
<span style="color: #b16286;">(</span><span style="color: #8f3f71;">font-spec</span> <span style="color: #af3a03;">:family</span> <span style="color: #79740e;">"IBM Plex Mono"</span> <span style="color: #af3a03;">:size</span> <span style="color: #8f3f71; font-weight: bold;">18</span> <span style="color: #af3a03;">:weight</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">medium</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">doom-variable-pitch-font</span>
<span style="color: #b16286;">(</span><span style="color: #8f3f71;">font-spec</span> <span style="color: #af3a03;">:family</span> <span style="color: #79740e;">"IBM Plex Serif"</span> <span style="color: #af3a03;">:size</span> <span style="color: #8f3f71; font-weight: bold;">18</span> <span style="color: #af3a03;">:weight</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">medium</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> variable-pitch
<span style="color: #b16286;">(</span><span style="color: #8f3f71;">font-spec</span> <span style="color: #af3a03;">:family</span> <span style="color: #79740e;">"IBM Plex Serif"</span> <span style="color: #af3a03;">:size</span> <span style="color: #8f3f71; font-weight: bold;">18</span> <span style="color: #af3a03;">:weight</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">medium</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Dashboard</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">defun</span> <span style="color: #b57614;">my-weebery-is-always-greater</span> <span style="color: #b16286;">()</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">let*</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>banner <span style="color: #076678;">'</span><span style="color: #076678;">(</span><span style="color: #79740e;">"EMACS "</span>
<span style="color: #79740e;">"&#9608;&#9608;&#9608;&#9604; &#9604;&#9608;&#9608;&#9608;&#9619; &#9618;&#9608;&#9608;&#9608;&#9608;&#9608; &#9618;&#9608;&#9608;&#9608;&#9608;&#9608; &#9619;&#9608;&#9608;&#9608;&#9608;&#9608;&#9604; "</span>
<span style="color: #79740e;">"&#9619;&#9608;&#9608;&#9618;&#9600;&#9608;&#9600; &#9608;&#9608;&#9618;&#9618;&#9608;&#9608;&#9618; &#9608;&#9608;&#9618;&#9618;&#9608;&#9608;&#9618; &#9608;&#9608;&#9618;&#9618;&#9608;&#9608;&#9600; &#9608;&#9608;&#9612;"</span>
<span style="color: #79740e;">"&#9619;&#9608;&#9608; &#9619;&#9608;&#9608;&#9617;&#9618;&#9608;&#9608;&#9617; &#9608;&#9608;&#9618;&#9618;&#9608;&#9608;&#9617; &#9608;&#9608;&#9618;&#9617;&#9608;&#9608; &#9608;&#9612;"</span>
<span style="color: #79740e;">"&#9618;&#9608;&#9608; &#9618;&#9608;&#9608; &#9618;&#9608;&#9608; &#9608;&#9608;&#9617;&#9618;&#9608;&#9608; &#9608;&#9608;&#9617;&#9617;&#9619;&#9608;&#9604; &#9612;"</span>
<span style="color: #79740e;">"&#9618;&#9608;&#9608;&#9618; &#9617;&#9608;&#9608;&#9618;&#9617; &#9608;&#9608;&#9608;&#9608;&#9619;&#9618;&#9617;&#9617; &#9608;&#9608;&#9608;&#9608;&#9619;&#9618;&#9617;&#9617;&#9618;&#9608;&#9608;&#9608;&#9608;&#9619; "</span>
<span style="color: #79740e;">"&#9617; &#9618;&#9617; &#9617; &#9617;&#9617; &#9618;&#9617;&#9618;&#9617;&#9618;&#9617; &#9617; &#9618;&#9617;&#9618;&#9617;&#9618;&#9617; &#9618;&#9618;&#9619; &#9618; "</span>
<span style="color: #79740e;">"&#9617; &#9617; &#9617; &#9617; &#9618; &#9618;&#9617; &#9617; &#9618; &#9618;&#9617; &#9617; &#9618; &#9618; "</span>
<span style="color: #79740e;">"&#9617; &#9617; &#9617; &#9617; &#9617; &#9618; &#9617; &#9617; &#9617; &#9618; &#9617; &#9617; &#9617; "</span>
<span style="color: #79740e;">" &#9617; &#9617; &#9617; &#9617; &#9617; &#9617; "</span>
<span style="color: #79740e;">" &#9617; "</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>longest-line <span style="color: #076678;">(</span><span style="color: #8f3f71;">apply</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">max</span> <span style="color: #b16286;">(</span><span style="color: #8f3f71;">mapcar</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">length</span> banner<span style="color: #b16286;">)</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">put-text-property</span>
<span style="color: #d65d0e;">(</span><span style="color: #8f3f71;">point</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #9d0006;">dolist</span> <span style="color: #076678;">(</span>line banner <span style="color: #b16286;">(</span><span style="color: #8f3f71;">point</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #8f3f71;">insert</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">+doom-dashboard--center</span>
<span style="color: #076678;">+doom-dashboard--width</span>
<span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">concat</span> line <span style="color: #d65d0e;">(</span><span style="color: #8f3f71;">make-string</span> <span style="color: #076678;">(</span><span style="color: #8f3f71;">max</span> <span style="color: #8f3f71; font-weight: bold;">0</span> <span style="color: #b16286;">(</span><span style="color: #8f3f71;">-</span> longest-line <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">length</span> line<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span> <span style="color: #8f3f71; font-weight: bold;">32</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #79740e;">"\n"</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #076678;">'</span><span style="color: #8f3f71;">face</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">doom-dashboard-banner</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">+doom-dashboard-ascii-banner-fn</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">my-weebery-is-always-greater</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #b57614;">remove-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">+doom-dashboard-functions</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">doom-dashboard-widget-shortmenu</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #b57614;">remove-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">+doom-dashboard-functions</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">doom-dashboard-widget-footer</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #b57614;">remove-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">+doom-dashboard-functions</span> <span style="color: #076678;">#'</span><span style="color: #8f3f71;">doom-dashboard-widget-loaded</span><span style="color: #076678;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Themes</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">use-package!</span> heaven-and-hell
<span style="color: #af3a03;">:ensure</span> t
<span style="color: #af3a03;">:config</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">heaven-and-hell-theme-type</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">dark</span><span style="color: #b16286;">)</span> <span style="color: #a89984;">;; </span><span style="color: #a89984;">Omit to use light by default</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">heaven-and-hell-themes</span>
<span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>light . doom-gruvbox-light<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>dark . doom-gruvbox<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span> <span style="color: #a89984;">;; </span><span style="color: #a89984;">Themes can be the list: (dark . (tsdh-dark wombat))</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Optionall, load themes without asking for confirmation.</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">heaven-and-hell-load-theme-no-confirm</span> t<span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:hook</span> <span style="color: #b16286;">(</span>after-init . heaven-and-hell-init-hook<span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:bind</span> <span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span><span style="color: #79740e;">"&lt;f6&gt;"</span> . heaven-and-hell-toggle-theme<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orge7a3973" class="outline-2">
<h2 id="orge7a3973"><span class="section-number-2">5.</span> Packages</h2>
<div id="outline-container-org2005268" class="outline-2">
<h2 id="org2005268"><span class="section-number-2">5.</span> Org Mode</h2>
<div class="outline-text-2" id="text-5">
</div>
<div id="outline-container-org10ca8a9" class="outline-3">
<h3 id="org10ca8a9"><span class="section-number-3">5.1.</span> hl-todo</h3>
<div id="outline-container-org1df4542" class="outline-3">
<h3 id="org1df4542"><span class="section-number-3">5.1.</span> General Settings</h3>
<div class="outline-text-3" id="text-5-1">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> hl-todo <span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">hl-todo-keyword-faces</span> <span style="color: #ebdbb2;">'</span><span style="color: #b8bb26;">(</span><span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #fabd2f; font-weight: bold;">TODO</span><span style="color: #b8bb26;">"</span> warning bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #fb4934; font-weight: bold;">FIXME</span><span style="color: #b8bb26;">"</span> error bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #fb4934; font-weight: bold;">EXAMPLE</span><span style="color: #b8bb26;">"</span> <span style="color: #83a598;">font-lock-keyword-face</span> bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #d3869b; font-weight: bold;">HACK</span><span style="color: #b8bb26;">"</span> <span style="color: #83a598;">font-lock-constant-face</span> bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #dfd2b8; font-weight: bold;">DEPRECATED</span><span style="color: #b8bb26;">"</span> <span style="color: #83a598;">font-lock-doc-face</span> bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #b8bb26; font-weight: bold;">NOTE</span><span style="color: #b8bb26;">"</span> success bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #fb4934; font-weight: bold;">BUG</span><span style="color: #b8bb26;">"</span> error bold<span style="color: #83a598;">)</span>
<span style="color: #83a598;">(</span><span style="color: #b8bb26;">"</span><span style="color: #d3869b; font-weight: bold;">XXX</span><span style="color: #b8bb26;">"</span> <span style="color: #83a598;">font-lock-constant-face</span> bold<span style="color: #83a598;">)</span><span style="color: #b8bb26;">)</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> +user-org-path <span style="color: #79740e;">"~/Notes/Org"</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">defun</span> <span style="color: #b57614;">org-path</span> <span style="color: #b16286;">(</span>filename<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span><span style="color: #8f3f71;">expand-file-name</span> filename +user-org-path<span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">use-package!</span> org
<span style="color: #af3a03;">:config</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #a89984;">;; </span><span style="color: #a89984;">General</span>
<span style="color: #076678;">org-directory</span> +user-org-path
<span style="color: #076678;">org-src-tab-acts-natively</span> t
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Org Export</span>
<span style="color: #076678;">org-export-exclude-tags</span> <span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #79740e;">"toc"</span><span style="color: #8ec07c;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Org Capture</span>
<span style="color: #076678;">+org-capture-notes-file</span> <span style="color: #8ec07c;">(</span><span style="color: #b57614;">org-path</span> <span style="color: #79740e;">"Notes.org"</span><span style="color: #8ec07c;">)</span>
<span style="color: #076678;">+org-capture-todo-file</span> <span style="color: #8ec07c;">(</span><span style="color: #b57614;">org-path</span> <span style="color: #79740e;">"Todo.org"</span><span style="color: #8ec07c;">)</span>
<span style="color: #076678;">+org-capture-journal-file</span> <span style="color: #8ec07c;">(</span><span style="color: #b57614;">org-path</span> <span style="color: #79740e;">"Journal.org"</span><span style="color: #8ec07c;">)</span>
+org-capture-cooking-file <span style="color: #8ec07c;">(</span><span style="color: #b57614;">org-path</span> <span style="color: #79740e;">"Cooking.org"</span><span style="color: #8ec07c;">)</span>
+org-capture-nepali-file <span style="color: #8ec07c;">(</span><span style="color: #b57614;">org-path</span> <span style="color: #79740e;">"Nepali.org"</span><span style="color: #8ec07c;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Org Agenda</span>
<span style="color: #076678;">org-agenda-show-all-dates</span> t
<span style="color: #076678;">org-agenda-span</span> <span style="color: #8f3f71; font-weight: bold;">4</span>
<span style="color: #076678;">org-agenda-start-day</span> <span style="color: #79740e;">"+0d"</span>
<span style="color: #076678;">org-agenda-tag-filter-preset</span> <span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #79740e;">"-drill"</span><span style="color: #8ec07c;">)</span>
<span style="color: #076678;">org-agenda-time-grid</span>
<span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>daily today require-timed<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #8f3f71; font-weight: bold;">800</span> <span style="color: #8f3f71; font-weight: bold;">1000</span> <span style="color: #8f3f71; font-weight: bold;">1200</span> <span style="color: #8f3f71; font-weight: bold;">1400</span> <span style="color: #8f3f71; font-weight: bold;">1600</span> <span style="color: #8f3f71; font-weight: bold;">1800</span> <span style="color: #8f3f71; font-weight: bold;">2000</span><span style="color: #d65d0e;">)</span>
<span style="color: #79740e;">" &#9476;&#9476;&#9476;&#9476;&#9476; "</span> <span style="color: #79740e;">"&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;&#9476;"</span><span style="color: #8ec07c;">)</span>
<span style="color: #076678;">org-agenda-current-time-string</span>
<span style="color: #79740e;">"&#9664;&#9472;&#9472; now &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472; \\o/"</span>
<span style="color: #076678;">org-agenda-block-separator</span> ?&#9472;
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Consider all org files part of the org-agenda</span>
<span style="color: #076678;">org-agenda-files</span> <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">list</span> +user-org-path<span style="color: #8ec07c;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Org Todo</span>
<span style="color: #076678;">org-todo-keywords</span>
<span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>sequence <span style="color: #79740e;">"</span><span style="color: #af3a03; font-weight: bold;">TODO</span><span style="color: #79740e;">(t)"</span> <span style="color: #79740e;">"|"</span> <span style="color: #79740e;">"DONE(d)"</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>sequence <span style="color: #79740e;">"</span><span style="color: #8f3f71; font-weight: bold;">THIS</span><span style="color: #79740e;">(T)"</span> <span style="color: #79740e;">"</span><span style="color: #9d0006; font-weight: bold;">EXAMPLE</span><span style="color: #79740e;">"</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:bind</span> <span style="color: #b16286;">(</span><span style="color: #af3a03;">:map</span> <span style="color: #076678;">org-mode-map</span> <span style="color: #8ec07c;">(</span><span style="color: #79740e;">"&lt;localleader&gt; g s"</span> . <span style="color: #076678;">#'</span><span style="color: #8f3f71;">org-habit-stats-view-habit-at-point</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:hook</span> <span style="color: #b16286;">(</span>org-after-todo-state-change . org-habit-stats-update-properties<span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:init</span>
<span style="color: #b16286;">(</span><span style="color: #b57614;">add-to-list</span> <span style="color: #076678;">'</span><span style="color: #076678;">org-modules</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">org-habit</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #b57614;">add-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">org-export-before-processing-functions</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">my-org-inline-css-hook</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb292dd1" class="outline-3">
<h3 id="orgb292dd1"><span class="section-number-3">5.2.</span> org-auto-tangle</h3>
<div id="outline-container-org05f6b4c" class="outline-3">
<h3 id="org05f6b4c"><span class="section-number-3">5.2.</span> Org Export</h3>
<div class="outline-text-3" id="text-5-2">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">use-package!</span> org-auto-tangle
<span style="color: #fe8019;">:defer</span> t
<span style="color: #fe8019;">:config</span> <span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">org-auto-tangle-default</span> nil<span style="color: #cc241d;">)</span>
<span style="color: #fe8019;">:hook</span> <span style="color: #cc241d;">(</span><span style="color: #b8bb26;">org-mode</span> . <span style="color: #83a598;">org-auto-tangle-mode</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp">
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Org Export</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org931b602" class="outline-3">
<h3 id="org931b602"><span class="section-number-3">5.3.</span> org-drill</h3>
<div id="outline-container-org8d51933" class="outline-3">
<h3 id="org8d51933"><span class="section-number-3">5.3.</span> Org Capture</h3>
<div class="outline-text-3" id="text-5-3">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> org-drill
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> org-drill-scope <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">agenda</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp">
<span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> org <span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">org-capture-templates</span>
<span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span><span style="color: #79740e;">"t"</span> <span style="color: #79740e;">"Personal Todo"</span> entry
<span style="color: #076678;">(</span>file <span style="color: #076678;">+org-capture-todo-file</span><span style="color: #076678;">)</span>
<span style="color: #79740e;">"* </span><span style="color: #af3a03; font-weight: bold;">TODO</span><span style="color: #79740e;"> %?\n"</span> <span style="color: #af3a03;">:prepend</span> t<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"r"</span> <span style="color: #79740e;">"Recipe"</span> entry
<span style="color: #076678;">(</span>file+headline +org-capture-cooking-file <span style="color: #79740e;">"Unsorted"</span><span style="color: #076678;">)</span>
<span style="color: #79740e;">"* NEVERMADE %?</span>
<span style="color: #79740e;">:PROPERTIES:</span>
<span style="color: #79740e;">:Author:</span>
<span style="color: #79740e;">:Source:</span>
<span style="color: #79740e;">:Sent_by:</span>
<span style="color: #79740e;">:Yield:</span>
<span style="color: #79740e;">:Prep_Time:</span>
<span style="color: #79740e;">:Cook_Time:</span>
<span style="color: #79740e;">:Total_Time:</span>
<span style="color: #79740e;">:Cost:</span>
<span style="color: #79740e;">:Description:</span>
<span style="color: #79740e;">:URL:</span>
<span style="color: #79740e;">:Added: %u</span>
<span style="color: #79740e;">:END:</span>
<span style="color: #79740e;">- [ ] Ingredient 1</span>
<span style="color: #79740e;">1. First Step"</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"n"</span> <span style="color: #79740e;">"Nepali"</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"nw"</span> <span style="color: #79740e;">"Nepali Word"</span> entry
<span style="color: #076678;">(</span>file+headline +org-capture-nepali-file <span style="color: #79740e;">"Nepali Words"</span><span style="color: #076678;">)</span>
<span style="color: #79740e;">"* %^{Nepali Word} :drill:\n%\\1\n** Answer\n%^{Translation}"</span> <span style="color: #af3a03;">:prepend</span> t <span style="color: #af3a03;">:immediate-finish</span> t<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"j"</span> <span style="color: #79740e;">"Daily Journal"</span> entry
<span style="color: #076678;">(</span>file+olp+datetree <span style="color: #076678;">+org-capture-journal-file</span><span style="color: #076678;">)</span>
<span style="color: #79740e;">"* %U %?\n"</span> <span style="color: #af3a03;">:prepend</span> t<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org173df8d" class="outline-3">
<h3 id="org173df8d"><span class="section-number-3">5.4.</span> doom-modeline</h3>
<div class="outline-text-3" id="text-5-4">
</div>
<div id="outline-container-org9bf68b3" class="outline-2">
<h2 id="org9bf68b3"><span class="section-number-2">6.</span> Packages</h2>
<div class="outline-text-2" id="text-6">
</div>
<div id="outline-container-org2332759" class="outline-3">
<h3 id="org2332759"><span class="section-number-3">6.1.</span> doom-modeline</h3>
<div class="outline-text-3" id="text-6-1">
<p>
The doom modeline can be configured to show different information like time and date, battery info and more.
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> doom-modeline
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">doom-modeline-battery</span> t<span style="color: #cc241d;">)</span>
<span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">doom-modeline-major-mode-icon</span> t<span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> doom-modeline
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">doom-modeline-battery</span> t<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">doom-modeline-major-mode-icon</span> t<span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #b57614;">add-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">doom-after-init-hook</span> <span style="color: #076678;">#'</span><span style="color: #076678;">display-battery-mode</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #b57614;">add-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">doom-after-init-hook</span> <span style="color: #076678;">#'</span><span style="color: #076678;">display-time-mode</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf3784d6" class="outline-3">
<h3 id="orgf3784d6"><span class="section-number-3">5.5.</span> evil-snipe</h3>
<div class="outline-text-3" id="text-5-5">
<div id="outline-container-org5e7b531" class="outline-3">
<h3 id="org5e7b531"><span class="section-number-3">6.2.</span> evil-snipe</h3>
<div class="outline-text-3" id="text-6-2">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #fe8019;">(</span><span style="color: #fb4934;">after!</span> evil-snipe <span style="color: #cc241d;">(</span><span style="color: #fb4934;">setq</span> <span style="color: #83a598;">evil-snipe-scope</span> <span style="color: #ebdbb2;">'</span><span style="color: #689d6a;">whole-visible</span><span style="color: #cc241d;">)</span><span style="color: #fe8019;">)</span>
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> evil-snipe <span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">evil-snipe-scope</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">whole-visible</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgfbb3b9d" class="outline-3">
<h3 id="orgfbb3b9d"><span class="section-number-3">6.3.</span> hl-todo</h3>
<div class="outline-text-3" id="text-6-3">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #b57614;">add-hook</span> <span style="color: #076678;">'</span><span style="color: #076678;">org-mode-hook</span> <span style="color: #076678;">#'</span><span style="color: #076678;">hl-todo-mode</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> hl-todo
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">hl-todo-keyword-faces</span>
<span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #af3a03; font-weight: bold;">TODO</span><span style="color: #79740e;">"</span> warning bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #9d0006; font-weight: bold;">EXAMPLE</span><span style="color: #79740e;">"</span> <span style="color: #076678;">font-lock-keyword-face</span> bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #8f3f71; font-weight: bold;">HACK</span><span style="color: #79740e;">"</span> <span style="color: #076678;">font-lock-constant-face</span> bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #79740e; font-weight: bold; font-style: italic;">DEPRECATED</span><span style="color: #79740e;">"</span> <span style="color: #076678;">font-lock-doc-face</span> bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #79740e; font-weight: bold;">NOTE</span><span style="color: #79740e;">"</span> success bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #9d0006; font-weight: bold;">BUG</span><span style="color: #79740e;">"</span> error bold<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #79740e;">"</span><span style="color: #8f3f71; font-weight: bold;">THIS</span><span style="color: #79740e;">"</span> <span style="color: #076678;">font-lock-constant-face</span> bold<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org99ad413" class="outline-3">
<h3 id="org99ad413"><span class="section-number-3">6.4.</span> notmuch</h3>
<div class="outline-text-3" id="text-6-4">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> +notmuch-home-function <span style="color: #b16286;">(</span><span style="color: #9d0006;">lambda</span> <span style="color: #8ec07c;">()</span> <span style="color: #8ec07c;">(</span>notmuch-search <span style="color: #79740e;">"folder:INBOX"</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">setq</span> +notmuch-sync-backend <span style="color: #076678;">'</span><span style="color: #8f3f71;">offlineimap</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orga8884d1" class="outline-3">
<h3 id="orga8884d1"><span class="section-number-3">6.5.</span> nov.el</h3>
<div class="outline-text-3" id="text-6-5">
<div class="org-src-container">
<pre class="src src-emacs-lisp">
<span style="color: #076678;">(</span><span style="color: #9d0006;">use-package!</span> nov
<span style="color: #af3a03;">:mode</span> <span style="color: #b16286;">(</span><span style="color: #79740e;">"\\.epub\\'"</span> . nov-mode<span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:config</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> nov-text-width <span style="color: #8f3f71; font-weight: bold;">70</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span><span style="color: #9d0006;">add-hook!</span> <span style="color: #076678;">'</span><span style="color: #8f3f71;">nov-mode-hook</span> <span style="color: #076678;">'</span><span style="color: #b16286;">(</span><span style="color: #076678;">olivetti-mode</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org7b2aa40" class="outline-3">
<h3 id="org7b2aa40"><span class="section-number-3">6.6.</span> olivetti</h3>
<div class="outline-text-3" id="text-6-6">
<p>
Centers the text. This is used for reading books in
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">use-package!</span> olivetti
<span style="color: #af3a03;">:defer</span> t
<span style="color: #af3a03;">:config</span> <span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">olivetti-body-width</span> <span style="color: #8f3f71; font-weight: bold;">70</span><span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:init</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">add-hook!</span> <span style="color: #076678;">'</span><span style="color: #076678;">org-mode-hook</span> <span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #076678;">olivetti-mode</span> <span style="color: #d65d0e;">(</span><span style="color: #9d0006;">lambda</span> <span style="color: #076678;">()</span> <span style="color: #076678;">(</span><span style="color: #076678;">display-line-numbers-mode</span> <span style="color: #8f3f71; font-weight: bold;">-1</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org347e270" class="outline-3">
<h3 id="org347e270"><span class="section-number-3">6.7.</span> org-auto-tangle</h3>
<div class="outline-text-3" id="text-6-7">
<p>
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.
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">use-package!</span> org-auto-tangle
<span style="color: #af3a03;">:defer</span> t
<span style="color: #af3a03;">:config</span> <span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">org-auto-tangle-default</span> nil<span style="color: #b16286;">)</span>
<span style="color: #af3a03;">:hook</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">org-mode</span> . <span style="color: #076678;">org-auto-tangle-mode</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org4b9c602" class="outline-3">
<h3 id="org4b9c602"><span class="section-number-3">6.8.</span> org-drill</h3>
<div class="outline-text-3" id="text-6-8">
<p>
A package for learning and memorizing using <b>spaced repetition</b>, inspired by applications like Anki.
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> org-drill
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-drill-scope <span style="color: #076678;">'</span><span style="color: #8f3f71;">agenda</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org9f83d55" class="outline-3">
<h3 id="org9f83d55"><span class="section-number-3">6.9.</span> org-noter</h3>
<div class="outline-text-3" id="text-6-9">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> org-noter
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-noter-notes-search-path <span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #79740e;">"~/Notes/Org"</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-noter-always-create-frame nil<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-noter-doc-split-fraction <span style="color: #076678;">'</span><span style="color: #8ec07c;">(</span><span style="color: #8f3f71; font-weight: bold;">0.75</span> . <span style="color: #8f3f71; font-weight: bold;">0.75</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-noter-default-notes-file-names <span style="color: #076678;">'</span><span style="color: #8ec07c;">()</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org20a879b" class="outline-3">
<h3 id="org20a879b"><span class="section-number-3">6.10.</span> org-roam</h3>
<div class="outline-text-3" id="text-6-10">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">after!</span> org-roam
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">org-roam-directory</span> <span style="color: #79740e;">"~/Notes/Org/Roam"</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">setq</span> org-roam-dailies-directory <span style="color: #79740e;">"Daily"</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org16a2f8f" class="outline-3">
<h3 id="org16a2f8f"><span class="section-number-3">6.11.</span> drag-stuff</h3>
<div class="outline-text-3" id="text-6-11">
<p>
With drag stuff you can use <code>M-UP</code> and <code>M-DOWN</code> to move lines. You can also mark a region and use <code>M-LEFT</code> and <code>M-RIGHT</code> to move it left and right.
</p>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #076678;">drag-stuff-global-mode</span> t<span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf60ee49" class="outline-2">
<h2 id="orgf60ee49"><span class="section-number-2">7.</span> Functions</h2>
<div class="outline-text-2" id="text-7">
<div class="org-src-container">
<pre class="src src-emacs-lisp"><span style="color: #076678;">(</span><span style="color: #9d0006;">defun</span> <span style="color: #b57614;">my-org-inline-css-hook</span> <span style="color: #b16286;">(</span>exporter<span style="color: #b16286;">)</span>
<span style="color: #79740e; font-style: italic;">"Insert custom inline css"</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">when</span> <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">eq</span> exporter <span style="color: #076678;">'</span><span style="color: #8f3f71;">html</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">let*</span> <span style="color: #d65d0e;">(</span><span style="color: #076678;">(</span>dir <span style="color: #b16286;">(</span><span style="color: #9d0006;">ignore-errors</span> <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">file-name-directory</span> <span style="color: #d65d0e;">(</span><span style="color: #076678;">buffer-file-name</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span>path <span style="color: #b16286;">(</span><span style="color: #8f3f71;">concat</span> dir <span style="color: #79740e;">"style.css"</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span>fallback-style <span style="color: #b16286;">(</span><span style="color: #9d0006;">or</span> <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">null</span> dir<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">null</span> <span style="color: #d65d0e;">(</span><span style="color: #8f3f71;">file-exists-p</span> path<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
<span style="color: #076678;">(</span>final <span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> fallback-style <span style="color: #79740e;">"~/.config/doom/style.css"</span> path<span style="color: #b16286;">)</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span> <span style="color: #a89984;">;; </span><span style="color: #a89984;">&lt;- set your own style file path</span>
<span style="color: #d65d0e;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">org-html-head-include-default-style</span> t<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span><span style="color: #9d0006;">setq</span> <span style="color: #076678;">org-html-head</span> <span style="color: #076678;">(</span><span style="color: #8f3f71;">concat</span>
<span style="color: #79740e;">"&lt;style type=\"text/css\"&gt;\n"</span>
<span style="color: #79740e;">"&lt;!--/*--&gt;&lt;![CDATA[/*&gt;&lt;!--*/\n"</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">with-temp-buffer</span>
<span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">insert-file-contents</span> final<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #8f3f71;">buffer-string</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #79740e;">"/*]]&gt;*/--&gt;\n"</span>
<span style="color: #79740e;">"&lt;/style&gt;\n"</span><span style="color: #076678;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #076678;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Jonathan Jenne / Inhji</p>
<p class="date">Created: 2024-02-27 Di 13:59</p>
<p class="date">Created: 2024-03-11 Mo 13:42</p>
</div>
</body>
</html>

View File

@ -4,129 +4,46 @@
#+auto_tangle: t
#+STARTUP: overview
This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~.
* Table of Contents :toc:
:PROPERTIES:
:VISIBILITY: all
:END:
- [[#header][Header]]
- [[#functions][Functions]]
- [[#keybindings][Keybindings]]
- [[#base-config][Base Config]]
- [[#themes][Themes]]
- [[#appearance][Appearance]]
- [[#org-mode][Org Mode]]
- [[#general-settings][General Settings]]
- [[#org-export][Org Export]]
- [[#org-capture][Org Capture]]
- [[#org-agenda][Org Agenda]]
- [[#packages][Packages]]
- [[#doom-modeline][doom-modeline]]
- [[#drag-stuff][drag-stuff]]
- [[#heaven-and-hell][heaven-and-hell]]
- [[#hl-todo][hl-todo]]
- [[#novel][nov.el]]
- [[#olivetti][olivetti]]
- [[#org-auto-tangle][org-auto-tangle]]
- [[#org-drill][org-drill]]
- [[#doom-modeline][doom-modeline]]
- [[#evil-snipe][evil-snipe]]
- [[#org-noter][org-noter]]
- [[#org-roam][org-roam]]
- [[#notmuch][notmuch]]
- [[#elfeed][elfeed]]
* Header
This header will be the first codeblock in the config file.
#+begin_src emacs-lisp
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
#+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 |
|------------+-------------------------+-------|
| F12 | Show Org-Agenda | N |
| Ctrl-Alt-+ | Increase Font Size | |
| Ctrl-# | Toggle Line Comment | |
| DEL | Up Directory | Dired |
| F6 | Toggle Light/Dark Theme | |
| F7 | Start Org-Drill | |
| SPC m g s | Go to habit stats | Org |
#+begin_src emacs-lisp
(map! :n "<f12>" #'org-agenda-list)
(map! :n "<f7>" #'org-drill)
(map! "C-M-+" #'doom/increase-font-size)
(map! "C-#" #'comment-line)
(evil-define-key 'normal dired-mode-map
(kbd "DEL") 'dired-up-directory)
#+end_src
* Base Config
* Functions
#+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"))
;; 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))
;; Display Line numbers
(setq display-line-numbers-type t)
#+end_src
* Themes
#+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
(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)))
#+end_src
* Org Mode
** General Settings
#+begin_src emacs-lisp
(setq +user-org-path "~/Notes/Org")
(defun org-path (filename) (expand-file-name filename +user-org-path))
(after! org
(map! :map org-mode-map :localleader "g s" #'org-habit-stats-view-habit-at-point)
(setq org-directory +user-org-path
org-src-tab-acts-natively t)
org-todo-sets '(("TODO" "PROJ" "LOOP" "STRT" "WAIT" "HOLD" "IDEA" "DONE" "KILL")
("[ ]" "[-]" "[?]" "[X]")
("THIS" "EXAMPLE")))
(add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1))))
(add-hook! 'org-after-todo-state-change-hook '(org-habit-stats-update-properties))
(add-to-list 'org-modules 'org-habit)
#+end_src
** Org Export
#+begin_src emacs-lisp
(after! org (;; TOC Links will lead to errors when attempting
;; to export to HTML
setq org-export-exclude-tags '("toc")))
(defun org-path-find-file ()
"Open org-path in find file"
(interactive)
(doom-project-find-file +user-org-path))
(defun my-org-inline-css-hook (exporter)
"Insert custom inline css"
@ -145,25 +62,162 @@ These keybindings extend the default doom bindings, either because the defaults
"/*]]>*/-->\n"
"</style>\n")))))
;; Org Export
(add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook)
(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
** Org Capture
* 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 |
|------------+-------------------------+-------|
| F12 | Show Org-Agenda | N |
| Ctrl-Alt-+ | Increase Font Size | |
| Ctrl-# | Toggle Line Comment | |
| DEL | Up Directory | Dired |
| F6 | Toggle Light/Dark Theme | |
| F7 | Start Org-Drill | |
| SPC m g s | Go to habit stats | Org |
| M-UP | Move line up | |
| M-DOWN | Move line down | |
| M-LEFT | Move region left | |
#+begin_src emacs-lisp
(after! org (setq +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")))
(map! :n "<f12>" #'org-agenda-list)
(map! :n "<f7>" #'org-drill)
(map! "C-M-+" #'doom/increase-font-size)
(after! org (setq org-capture-templates
'(("t" "Personal Todo" entry
(file+headline +org-capture-todo-file "Inbox")
"* TODO %?\n" :prepend t)
;; NOTE: Does not work in org-mode src blocks
(map! "C-#" #'comment-line)
("r" "Recipe" entry
(map! :leader
:map doom-leader-file-map
:desc "Find org files"
"f o" #'org-path-find-file)
#+end_src
* 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
(progn (defun org-path (filename)
"Expand filename relative to the default org-path"
(expand-file-name filename +user-org-path)))
(progn )
(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 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"))
;; 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 +org-capture-todo-file)
"* TODO %?\n" :prepend t)
("r" "Recipe" entry
(file+headline +org-capture-cooking-file "Unsorted")
"* NEVERMADE %?
:PROPERTIES:
@ -185,82 +239,30 @@ These keybindings extend the default doom bindings, either because the defaults
1. First Step")
("n" "Nepali")
("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)
("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))))
("j" "Daily Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n" :prepend t)))
: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))
#+end_src
** Org Agenda
#+begin_src emacs-lisp
(after! org (setq
org-agenda-show-all-dates nil
org-agenda-span 4
org-agenda-start-day "+0d"
org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
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)))
#+end_src
* Packages
** hl-todo
#+begin_src emacs-lisp
(add-hook 'org-mode-hook #'hl-todo-mode)
(after! hl-todo (setq hl-todo-keyword-faces '(("TODO" warning bold)
("FIXME" error 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))))
#+end_src
** nov.el
#+begin_src emacs-lisp
(use-package! nov
:mode ("\\.epub\\'" . nov-mode)
:config
(setq nov-text-width 60))
(add-hook! 'nov-mode-hook '(olivetti-mode))
#+end_src
** olivetti
#+begin_src emacs-lisp
(after! olivetti (setq olivetti-body-width 60))
#+end_src
** org-auto-tangle
#+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
#+begin_src emacs-lisp
(after! org-drill
(setq org-drill-scope 'agenda))
#+end_src
** 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)
@ -269,11 +271,102 @@ These keybindings extend the default doom bindings, either because the defaults
(add-hook 'doom-after-init-hook #'display-battery-mode)
(add-hook 'doom-after-init-hook #'display-time-mode)
#+end_src
** evil-snipe
** 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
(after! evil-snipe (setq evil-snipe-scope 'whole-visible))
(use-package! drag-stuff
: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 (("<f6>" . 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"))
@ -284,13 +377,90 @@ These keybindings extend the default doom bindings, either because the defaults
#+end_src
** org-roam
#+begin_src emacs-lisp
(after! org-roam
(setq org-roam-directory "~/Notes/Org/Roam")
(setq org-roam-dailies-directory "Daily"))
(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
** notmuch
** elfeed
#+begin_src emacs-lisp
(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX")))
(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"
)))
#+end_src

View File

@ -43,7 +43,7 @@
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
@ -64,7 +64,7 @@
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
@ -141,7 +141,7 @@
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
;;json ; At least it ain't XML
json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
@ -150,12 +150,12 @@
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +roam2) ; organize your plain life in plain text
;; php ; perl's insecure younger brother
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
;;python ; beautiful is better than ugly
@ -179,15 +179,15 @@
:email
;;(mu4e +org +gmail)
notmuch
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
emms
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config

View File

@ -10,13 +10,16 @@
;; To disable an installed package:
;; (package! some-package :disable t)
(package! org-auto-tangle)
(package! org-habit-stats)
(package! org-drill)
(package! org-noter)
(package! catppuccin-theme)
(package! drag-stuff)
(package! heaven-and-hell)
(package! nov)
(package! olivetti)
(package! org-auto-tangle)
(package! org-drill)
(package! org-habit-stats)
(package! org-noter)
(package! org-super-agenda)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:

View File

@ -41,6 +41,9 @@ if type -q (which lsd &> /dev/null)
alias ll="lsd -l"
end
# Initialize zoxide
zoxide init fish | source
# Docker Compose
alias dcu="docker compose up -d --build"
alias dcd="docker compose down --remove-orphans"

View File

@ -1,4 +1,3 @@
jorgebucaran/fisher
jethrokuan/z
danhper/fish-ssh-agent
pure-fish/pure