fuck literate configs lol

This commit is contained in:
Inhji 2024-03-20 14:51:39 +01:00
parent 874f6337c6
commit d788b38b9e
3 changed files with 158 additions and 1355 deletions

View File

@ -114,6 +114,13 @@
org-agenda-span 2
org-agenda-start-day "+0d"
org-agenda-tag-filter-preset '("-drill")
;; Disable timegrid since it causes errors on current org-mode 9.7
;; when org-super-agenda is also used
;; See: https://github.com/alphapapa/org-super-agenda/issues/247
;; See: https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=fac55324accbcab08dfebbde8295b2f1b4b9f45e
org-agenda-use-time-grid nil
org-agenda-time-grid
'((daily today require-timed)
(800 1000 1200 1400 1600 1800 2000)
@ -127,7 +134,7 @@
;; Org Todo
org-todo-keywords
'((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)")
'((sequence "TODO(t)" "DOING(g)" "WAIT(w)" "|" "DONE(d)" "CANCEL(c)")
(sequence "THIS(T)" "EXAMPLE"))
;; Org Capture
@ -189,80 +196,147 @@
:init (drag-stuff-global-mode t))
(use-package! elfeed
:config
:init
(setq elfeed-feeds
'("https://www.giessen.de/media/rss/Presse.xml"
"https://adactio.com/journal/rss"
"https://andregarzia.com/feeds/all.atom.xml"
"https://ar.al/index.xml"
"https://archlinux.org/feeds/news/"
"https://ashfurrow.com//feed.xml"
"https://bachrauf.org/feed/"
"https://beko.famkos.net/feed/"
"https://blog.elementary.io/feed.xml"
"https://blog.gls.de/feed/"
"https://dasklima.podigee.io/feed/mp3"
"https://fed.brid.gy/web/inhji.de/feed?format=rss"
"https://forgefriends.org/index.xml"
"https://forgejo.org/rss.xml"
"https://giessen-direkt.de/giessen/de/flexPrjList/54365/feed"
("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" '(github release))
("https://github.com/actualbudget/actual/releases.atom" '(github release))
("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" '(github release))
("https://github.com/dani-garcia/vaultwarden/releases.atom" '(github release))
("https://github.com/extrawurst/gitui/releases.atom" '(github release))
("https://github.com/microg/GmsCore/releases.atom" '(github release))
("https://github.com/noatpad/obsidian-banners/releases.atom" '(github release))
("https://github.com/superseriousbusiness/gotosocial/releases.atom" '(github release))
"https://grimgrains.com/links/rss.xml"
"https://jlelse.blog/.rss"
"https://katapult-magazin.de/feed/rss"
"https://katja-diehl.de/feed/"
"https://kevquirk.com/feed"
"https://liamcooke.com/feed.xml"
"https://maudb.gitlab.io/dok/rss.xml"
"https://miniflux.app/feed.xml"
"https://mntre.com/reform_md.atom"
"https://nesslabs.com/feed"
"https://newsfeed.zeit.de/serie/die-kaenguru-comics"
"https://nicolevanderhoeven.com/index.xml"
"https://noyb.eu/en/rss"
"https://nullprogram.com/feed/"
"https://obsidian.md/feed.xml"
"https://ohhelloana.blog/feed.xml"
"https://pluralistic.net/feed/"
"https://shkspr.mobi/blog/feed/"
"https://smallstar.space/feed/"
"https://snikket.org/blog/index.xml"
"https://social.prepedia.org/@FediNINA_Giessen.rss"
"https://solar.lowtechmagazine.com/posts/index.xml"
"https://tarnkappe.info/feed"
"https://theoatmeal.com/feed/rss"
"https://victoria.dev/atom.xml"
"https://warandpeas.com/feed/"
"https://warnung.bund.de/api31/mowas/rss/065310000000.rss"
"https://webcomicname.com/rss"
"https://webdevlaw.uk/feed/"
"https://www.commitstrip.com/en/feed/"
"https://www.drugsandwires.fail/feed/"
"https://www.kuketz-blog.de/category/artikel/feed/"
"https://www.kuketz-blog.de/category/microblog/feed/"
"https://www.mein-nepal.de/feed/"
"https://www.oglaf.com/feeds/rss/"
"https://www.piratenpartei-hessen.de/feed/"
"https://www.schoenescheisse.de/feed/"
"https://www.smbc-comics.com/comic/rss"
"https://www.tomorrow.one/de-DE/feed.xml"
"https://www.volksverpetzer.de/feed/"
"https://www.wetell.de/feed/"
'(("https://www.giessen.de/media/rss/Presse.xml" news local)
("https://adactio.com/journal/rss" tech)
("https://andregarzia.com/feeds/all.atom.xml" tech)
("https://ar.al/index.xml" tech activism)
("https://archlinux.org/feeds/news/" tech linux)
("https://ashfurrow.com/feed.xml" health)
("https://bachrauf.org/feed/" activism)
("https://beko.famkos.net/feed/" tech)
("https://blog.elementary.io/feed.xml" tech release)
("https://blog.gls.de/feed/" finances)
("https://dasklima.podigee.io/feed/mp3" podcast)
("https://forgefriends.org/index.xml" tech)
("https://forgejo.org/rss.xml" release tech)
("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" github release)
("https://github.com/actualbudget/actual/releases.atom" github release)
("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" github release)
("https://github.com/dani-garcia/vaultwarden/releases.atom" github release)
("https://github.com/extrawurst/gitui/releases.atom" github release)
("https://github.com/microg/GmsCore/releases.atom" github release)
("https://github.com/noatpad/obsidian-banners/releases.atom" github release)
("https://github.com/superseriousbusiness/gotosocial/releases.atom" github release)
("https://grimgrains.com/links/rss.xml" food)
("https://jlelse.blog/.rss" tech)
("https://katapult-magazin.de/feed/rss" activism)
("https://katja-diehl.de/feed/" activism)
("https://kevquirk.com/feed" tech)
("https://maudb.gitlab.io/dok/rss.xml" food autonomy)
("https://miniflux.app/feed.xml" tech release)
("https://mntre.com/reform_md.atom" tech)
("https://nesslabs.com/feed" productivity)
("https://newsfeed.zeit.de/serie/die-kaenguru-comics" comics)
("https://nicolevanderhoeven.com/index.xml" tech)
("https://noyb.eu/en/rss" activism)
("https://nullprogram.com/feed/" tech)
("https://obsidian.md/feed.xml" tech release)
("https://ohhelloana.blog/feed.xml" tech)
("https://pluralistic.net/feed/" tech activism)
("https://shkspr.mobi/blog/feed/" tech)
("https://smallstar.space/feed/" religion)
("https://snikket.org/blog/index.xml" tech release)
("https://social.prepedia.org/@FediNINA_Giessen.rss" alerts)
("https://solar.lowtechmagazine.com/posts/index.xml" tech sustainability)
("https://tarnkappe.info/feed" tech piracy)
("https://theoatmeal.com/feed/rss" comics)
("https://victoria.dev/atom.xml" tech)
("https://warandpeas.com/feed/" comis)
("https://warnung.bund.de/api31/mowas/rss/065310000000.rss" alerts)
("https://webcomicname.com/rss" comis)
("https://webdevlaw.uk/feed/" tech activism)
("https://www.commitstrip.com/en/feed/" comics)
("https://www.drugsandwires.fail/feed/" )
("https://www.kuketz-blog.de/category/artikel/feed/" tech)
("https://www.kuketz-blog.de/category/microblog/feed/" tech)
("https://www.mein-nepal.de/feed/" nepal)
("https://www.oglaf.com/feeds/rss/" comics nsfw)
("https://www.schoenescheisse.de/feed/" comics)
("https://www.smbc-comics.com/comic/rss" comics)
("https://www.tomorrow.one/de-DE/feed.xml" sustainability finances)
("https://www.volksverpetzer.de/feed/" activism)
("https://www.wetell.de/feed/" service sustainability)
("https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCCJ-NJtqLQRxuaxHZA9q6zg" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UClZbO3wehSIsPUKLx_X5caw" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCtUbO6rBht0daVIOGML3c8w" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCzg5UMJ62uoKHTkq5bgkp5g" youtube)
"https://zerforschung.org/index.xml"
)))
("https://zerforschung.org/index.xml" activism))))
;; (use-package! elfeed
;; :config
;; (setq elfeed-feeds
;; '(("https://www.giessen.de/media/rss/Presse.xml" '(news local))
;; ("https://adactio.com/journal/rss" '(tech))
;; ("https://andregarzia.com/feeds/all.atom.xml" '(tech))
;; ("https://ar.al/index.xml" '(tech activism))
;; ("https://archlinux.org/feeds/news/" '(tech linux))
;; ("https://ashfurrow.com/feed.xml" '(health))
;; ("https://bachrauf.org/feed/" '(activism))
;; ("https://beko.famkos.net/feed/" '(tech))
;; ("https://blog.elementary.io/feed.xml" '(tech release))
;; ("https://blog.gls.de/feed/" '(finances))
;; ("https://dasklima.podigee.io/feed/mp3" '(podcast))
;; ("https://forgefriends.org/index.xml" '(tech))
;; ("https://forgejo.org/rss.xml" '(release tech))
;; ("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" '(github release))
;; ("https://github.com/actualbudget/actual/releases.atom" '(github release))
;; ("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" '(github release))
;; ("https://github.com/dani-garcia/vaultwarden/releases.atom" '(github release))
;; ("https://github.com/extrawurst/gitui/releases.atom" '(github release))
;; ("https://github.com/microg/GmsCore/releases.atom" '(github release))
;; ("https://github.com/noatpad/obsidian-banners/releases.atom" '(github release))
;; ("https://github.com/superseriousbusiness/gotosocial/releases.atom" '(github release))
;; ("https://grimgrains.com/links/rss.xml" '(food))
;; ("https://jlelse.blog/.rss" '(tech))
;; ("https://katapult-magazin.de/feed/rss" '(activism))
;; ("https://katja-diehl.de/feed/" '(activism))
;; ("https://kevquirk.com/feed" '(tech))
;; ("https://maudb.gitlab.io/dok/rss.xml" '(food autonomy))
;; ("https://miniflux.app/feed.xml" '(tech release))
;; ("https://mntre.com/reform_md.atom" '(tech))
;; ("https://nesslabs.com/feed" '(productivity))
;; ("https://newsfeed.zeit.de/serie/die-kaenguru-comics" '(comics))
;; ("https://nicolevanderhoeven.com/index.xml" '(tech))
;; ("https://noyb.eu/en/rss" '(activism))
;; ("https://nullprogram.com/feed/" '(tech))
;; ("https://obsidian.md/feed.xml" '(tech release))
;; ("https://ohhelloana.blog/feed.xml" '(tech))
;; ("https://pluralistic.net/feed/" '(tech activism))
;; ("https://shkspr.mobi/blog/feed/" '(tech))
;; ("https://smallstar.space/feed/" '(religion))
;; ("https://snikket.org/blog/index.xml" '(tech release))
;; ("https://social.prepedia.org/@FediNINA_Giessen.rss" '(alerts))
;; ("https://solar.lowtechmagazine.com/posts/index.xml" '(tech sustainability))
;; ("https://tarnkappe.info/feed" '(tech piracy))
;; ("https://theoatmeal.com/feed/rss" '(comics))
;; ("https://victoria.dev/atom.xml" '(tech))
;; ("https://warandpeas.com/feed/" '(comis))
;; ("https://warnung.bund.de/api31/mowas/rss/065310000000.rss" '(alerts))
;; ("https://webcomicname.com/rss" '(comis))
;; ("https://webdevlaw.uk/feed/" '(tech activism))
;; ("https://www.commitstrip.com/en/feed/" '(comics))
;; ("https://www.drugsandwires.fail/feed/" '())
;; ("https://www.kuketz-blog.de/category/artikel/feed/" '(tech))
;; ("https://www.kuketz-blog.de/category/microblog/feed/" '(tech))
;; ("https://www.mein-nepal.de/feed/" '(nepal))
;; ("https://www.oglaf.com/feeds/rss/" '(comics nsfw))
;; ("https://www.schoenescheisse.de/feed/" '(comics))
;; ("https://www.smbc-comics.com/comic/rss" '(comics))
;; ("https://www.tomorrow.one/de-DE/feed.xml" '(sustainability finances))
;; ("https://www.volksverpetzer.de/feed/" '(activism))
;; ("https://www.wetell.de/feed/" '(service sustainability))
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q" youtube)
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UCCJ-NJtqLQRxuaxHZA9q6zg" youtube)
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UClZbO3wehSIsPUKLx_X5caw" youtube)
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UCtUbO6rBht0daVIOGML3c8w" youtube)
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ" youtube)
;; ("https://www.youtube.com/feeds/videos.xml?channel_id=UCzg5UMJ62uoKHTkq5bgkp5g" youtube)
;; ("https://zerforschung.org/index.xml" '(activism)))))
(use-package! heaven-and-hell
:ensure t
@ -309,20 +383,28 @@
:config (setq org-auto-tangle-default nil)
:hook (org-mode . org-auto-tangle-mode))
(use-package! org-caldav
:config
(setq org-caldav-url "https://posteo.de:8443/calendars/johnnie"
org-caldav-calendar-id "default"
org-caldav-inbox (org-path "Calendar.org")
org-caldav-files nil
org-icalendar-timezone "Europe/Berlin"))
;; URL of the caldav server
(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de")
;; (setq org-caldav-url "https://posteo.de:8443/calendars/johnnie/default")
;; calendar ID on server
(setq org-caldav-calendar-id "persnlich")
;; (setq org-caldav-calendar-id "default")
;; Org filename where new entries from calendar stored
(setq org-caldav-inbox (org-path "Calendar.org"))
;; (setq org-caldav-inbox (org-path "Calendar.org"))
;; Additional Org files to check for calendar events
(setq org-caldav-files nil)
;; (setq org-caldav-files nil)
;; Usually a good idea to set the timezone manually
(setq org-icalendar-timezone "Europe/Berlin")
;; (setq org-icalendar-timezone "Europe/Berlin")
(after! org-drill
(setq org-drill-scope 'agenda))
@ -355,6 +437,9 @@
(:name "Appointments"
:file-path "Calendar\.org")
(:name "Inbox"
:file-path "Inbox\.org")
(:name "Shopping"
:tag "shopping")
;; Set order of multiple groups at once

View File

@ -1,744 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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-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>
<meta name="author" content="Jonathan Jenne / Inhji" />
<meta name="generator" content="Org Mode" />
<style>
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }
</style>
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
/* Fallback Org Export Styles */
body {
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif !important;
}
/*]]>*/-->
</style>
</head>
<body>
<div id="content" class="content">
<h1 class="title">Emacs Config</h1>
<div id="table-of-contents" role="doc-toc">
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<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="#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="#org9bf68b3">6. Packages</a>
<ul>
<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>
<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>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Key</th>
<th scope="col" class="org-left">Description</th>
<th scope="col" class="org-left">State</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">F12</td>
<td class="org-left">Show Org-Agenda</td>
<td class="org-left">N</td>
</tr>
<tr>
<td class="org-left">Ctrl-Alt-+</td>
<td class="org-left">Increase Font Size</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">Ctrl-#</td>
<td class="org-left">Toggle Line Comment</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">DEL</td>
<td class="org-left">Up Directory</td>
<td class="org-left">Dired</td>
</tr>
<tr>
<td class="org-left">F6</td>
<td class="org-left">Toggle Light/Dark Theme</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">F7</td>
<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 class="org-src-container">
<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 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: #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: #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-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: #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 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-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: #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-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: #a89984;">;; </span><span style="color: #a89984;">Org Export</span>
</pre>
</div>
</div>
</div>
<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: #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>
<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: #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-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: #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-03-11 Mo 13:42</p>
</div>
</body>
</html>

View File

@ -1,538 +0,0 @@
#+TITLE: Emacs Config
#+AUTHOR: Jonathan Jenne / Inhji
#+PROPERTY: header-args :tangle config.el
#+auto_tangle: t
#+STARTUP: overview
This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. It is heavily configured towards org mode, since editing org files is the primary goal of this setup.
* Table of Contents :toc:
:PROPERTIES:
:VISIBILITY: all
:END:
- [[#header][Header]]
- [[#functions][Functions]]
- [[#keybindings][Keybindings]]
- [[#base-config][Base Config]]
- [[#appearance][Appearance]]
- [[#org-mode][Org Mode]]
- [[#packages][Packages]]
- [[#doom-modeline][doom-modeline]]
- [[#drag-stuff][drag-stuff]]
- [[#elfeed][elfeed]]
- [[#heaven-and-hell][heaven-and-hell]]
- [[#hl-todo][hl-todo]]
- [[#novel][nov.el]]
- [[#olivetti][olivetti]]
- [[#org-auto-tangle][org-auto-tangle]]
- [[#org-caldav][org-caldav]]
- [[#org-drill][org-drill]]
- [[#org-noter][org-noter]]
- [[#org-roam][org-roam]]
- [[#org-super-agenda][org-super-agenda]]
* Header
This header will be the first codeblock in the config file.
#+begin_src emacs-lisp
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
#+end_src
* Functions
#+begin_src emacs-lisp
(defun org-path-find-file ()
"Open org-path in find file"
(interactive)
(doom-project-find-file +user-org-path))
(defun org-path (filename)
"Expand filename relative to the default org-path"
(expand-file-name filename +user-org-path))
(defun my-org-inline-css-hook (exporter)
"Insert custom inline css"
(when (eq exporter 'html)
(let* ((dir (ignore-errors (file-name-directory (buffer-file-name))))
(path (concat dir "style.css"))
(fallback-style (or (null dir) (null (file-exists-p path))))
(final (if fallback-style "~/.config/doom/style.css" path))) ;; <- set your own style file path
(setq org-html-head-include-default-style t)
(setq org-html-head (concat
"<style type=\"text/css\">\n"
"<!--/*--><![CDATA[/*><!--*/\n"
(with-temp-buffer
(insert-file-contents final)
(buffer-string))
"/*]]>*/-->\n"
"</style>\n")))))
(defun my-weebery-is-always-greater ()
(let* ((banner '("EMACS "
"███▄ ▄███▓ ▒█████ ▒█████ ▓█████▄ "
"▓██▒▀█▀ ██▒▒██▒ ██▒▒██▒ ██▒▒██▀ ██▌"
"▓██ ▓██░▒██░ ██▒▒██░ ██▒░██ █▌"
"▒██ ▒██ ▒██ ██░▒██ ██░░▓█▄ ▌"
"▒██▒ ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ "
"░ ▒░ ░ ░░ ▒░▒░▒░ ░ ▒░▒░▒░ ▒▒▓ ▒ "
"░ ░ ░ ░ ▒ ▒░ ░ ▒ ▒░ ░ ▒ ▒ "
"░ ░ ░ ░ ░ ▒ ░ ░ ░ ▒ ░ ░ ░ "
" ░ ░ ░ ░ ░ ░ "
" ░ "))
(longest-line (apply #'max (mapcar #'length banner))))
(put-text-property
(point)
(dolist (line banner (point))
(insert (+doom-dashboard--center
+doom-dashboard--width
(concat line (make-string (max 0 (- longest-line (length line))) 32)))
"\n"))
'face 'doom-dashboard-banner)))
#+end_src
* Keybindings
These keybindings extend the default doom bindings, either because the defaults were confusing to me or because the binding did not yet exist.
| Key | Description | State |
|------------+-------------------------+-------|
| C-M-+ | Increase Font Size | |
| C-# | Toggle Line Comment | |
| F6 | Toggle Light/Dark Theme | |
| SPC o r | Open Org-Drill | |
| SPC o e | Open elfeed | |
| SPC m g s | Go to habit stats | Org |
| M-UP | Move line up | |
| M-DOWN | Move line down | |
| M-LEFT | Move region left | |
| M-RIGHT | Move region right | |
#+begin_src emacs-lisp
(map! "C-M-+" #'doom/increase-font-size)
;; NOTE: Does not work in org-mode src blocks
(map! "C-#" #'comment-line)
(map! :leader
:map doom-leader-file-map
:desc "Find org files" "f o" #'org-path-find-file)
(map! :leader
:map doom-leader-open-map
:desc "Open elfeed" "o e" #'elfeed
:desc "Open org drill" "o r" #'org-drill)
(map! :localleader
:after org
:map org-mode-map
:desc "View habit stats" "g s" #'org-habit-stats-view-habit-at-point)
#+end_src
#+RESULTS:
* Base Config
#+begin_src emacs-lisp
;; Basic User Settings
(setq user-full-name "Jonathan Jenne"
user-mail-address "johnnie@posteo.de")
;; Default Shell
;; Useful if default system shell is not bash
(setq shell-file-name (executable-find "bash"))
;; This is where all org files are sourced from
(setq +user-org-path "~/Notes/Org")
;; Display Line numbers
(setq display-line-numbers-type t)
#+end_src
* Appearance
#+begin_src emacs-lisp
;; Fonts
(setq doom-font
(font-spec :family "IBM Plex Mono" :size 18 :weight 'medium))
(setq doom-variable-pitch-font
(font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
(setq variable-pitch
(font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
;; Dashboard
(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater)
(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu)
(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer)
(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-loaded)
;; Themes
#+end_src
* Org Mode
Org Mode is a tool for note taking, habit tracking, writing, outlining and much much more. You might have heard of it already.
There are a few things to point out here:
- org-drill items are excluded from the agenda
- toc headings are excluded from exports
#+begin_src emacs-lisp
(use-package! org
:config
(setq ;; General
org-directory +user-org-path
org-log-into-drawer "LOGBOOK"
org-src-tab-acts-natively t
;; Org Export
org-export-exclude-tags '("toc")
;; Org Agenda
org-agenda-show-all-dates t
org-agenda-span 2
org-agenda-start-day "+0d"
org-agenda-tag-filter-preset '("-drill")
org-agenda-time-grid
'((daily today require-timed)
(800 1000 1200 1400 1600 1800 2000)
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
org-agenda-current-time-string
"◀── now ──────────────────────────────────────────────── \\o/"
org-agenda-block-separator ?─
;; Consider all org files part of the org-agenda
org-agenda-files (list +user-org-path)
;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
;; Org Todo
org-todo-keywords
'((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)")
(sequence "THIS(T)" "EXAMPLE"))
;; Org Capture
+org-capture-notes-file (org-path "Notes.org")
+org-capture-todo-file (org-path "Todo.org")
+org-capture-journal-file (org-path "Journal.org")
+org-capture-cooking-file (org-path "Cooking.org")
+org-capture-nepali-file (org-path "Nepali.org")
org-capture-templates
'(("t" "Personal Todo" entry
(file+headline +org-capture-todo-file "Todo")
"* TODO %?\n" :prepend t)
("r" "Recipe" entry
(file+headline +org-capture-cooking-file "Unsorted")
"* NEVERMADE %?
:PROPERTIES:
:Author:
:Source:
:Sent_by:
:Yield:
:Prep_Time:
:Cook_Time:
:Total_Time:
:Cost:
:Description:
:URL:
:Added: %u
:END:
- [ ] Ingredient 1
1. First Step")
("n" "Nepali")
("nw" "Nepali Word" entry
(file+headline +org-capture-nepali-file "Nepali Words")
"* %^{Nepali Word} :drill:\n%\\1\n** Answer\n%^{Translation}" :prepend t :immediate-finish t)
("j" "Daily Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n" :prepend t)))
:hook (org-after-todo-state-change . org-habit-stats-update-properties)
:init
(add-to-list 'org-modules 'org-habit)
(add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook))
#+end_src
* Packages
** doom-modeline
The doom modeline can be configured to show different information like time and date, battery info and more.
#+begin_src emacs-lisp
(after! doom-modeline
(setq doom-modeline-battery t)
(setq doom-modeline-major-mode-icon t))
(add-hook 'doom-after-init-hook #'display-battery-mode)
(add-hook 'doom-after-init-hook #'display-time-mode)
#+end_src
** drag-stuff
With drag stuff you can use ~M-UP~ and ~M-DOWN~ to move lines. You can also mark a region and use ~M-LEFT~ and ~M-RIGHT~ to move it left and right.
#+begin_src emacs-lisp
(use-package! drag-stuff
:init (drag-stuff-global-mode t))
#+end_src
** elfeed
#+begin_src emacs-lisp
(use-package! elfeed
:config
(setq elfeed-feeds
'("https://www.giessen.de/media/rss/Presse.xml"
"https://adactio.com/journal/rss"
"https://andregarzia.com/feeds/all.atom.xml"
"https://ar.al/index.xml"
"https://archlinux.org/feeds/news/"
"https://ashfurrow.com//feed.xml"
"https://bachrauf.org/feed/"
"https://beko.famkos.net/feed/"
"https://blog.elementary.io/feed.xml"
"https://blog.gls.de/feed/"
"https://dasklima.podigee.io/feed/mp3"
"https://fed.brid.gy/web/inhji.de/feed?format=rss"
"https://forgefriends.org/index.xml"
"https://forgejo.org/rss.xml"
"https://giessen-direkt.de/giessen/de/flexPrjList/54365/feed"
("https://github.com/InfiniTimeOrg/InfiniTime/releases.atom" '(github release))
("https://github.com/actualbudget/actual/releases.atom" '(github release))
("https://github.com/ceciliamay/obsidianmd-theme-primary/releases.atom" '(github release))
("https://github.com/dani-garcia/vaultwarden/releases.atom" '(github release))
("https://github.com/extrawurst/gitui/releases.atom" '(github release))
("https://github.com/microg/GmsCore/releases.atom" '(github release))
("https://github.com/noatpad/obsidian-banners/releases.atom" '(github release))
("https://github.com/superseriousbusiness/gotosocial/releases.atom" '(github release))
"https://grimgrains.com/links/rss.xml"
"https://jlelse.blog/.rss"
"https://katapult-magazin.de/feed/rss"
"https://katja-diehl.de/feed/"
"https://kevquirk.com/feed"
"https://liamcooke.com/feed.xml"
"https://maudb.gitlab.io/dok/rss.xml"
"https://miniflux.app/feed.xml"
"https://mntre.com/reform_md.atom"
"https://nesslabs.com/feed"
"https://newsfeed.zeit.de/serie/die-kaenguru-comics"
"https://nicolevanderhoeven.com/index.xml"
"https://noyb.eu/en/rss"
"https://nullprogram.com/feed/"
"https://obsidian.md/feed.xml"
"https://ohhelloana.blog/feed.xml"
"https://pluralistic.net/feed/"
"https://shkspr.mobi/blog/feed/"
"https://smallstar.space/feed/"
"https://snikket.org/blog/index.xml"
"https://social.prepedia.org/@FediNINA_Giessen.rss"
"https://solar.lowtechmagazine.com/posts/index.xml"
"https://tarnkappe.info/feed"
"https://theoatmeal.com/feed/rss"
"https://victoria.dev/atom.xml"
"https://warandpeas.com/feed/"
"https://warnung.bund.de/api31/mowas/rss/065310000000.rss"
"https://webcomicname.com/rss"
"https://webdevlaw.uk/feed/"
"https://www.commitstrip.com/en/feed/"
"https://www.drugsandwires.fail/feed/"
"https://www.kuketz-blog.de/category/artikel/feed/"
"https://www.kuketz-blog.de/category/microblog/feed/"
"https://www.mein-nepal.de/feed/"
"https://www.oglaf.com/feeds/rss/"
"https://www.piratenpartei-hessen.de/feed/"
"https://www.schoenescheisse.de/feed/"
"https://www.smbc-comics.com/comic/rss"
"https://www.tomorrow.one/de-DE/feed.xml"
"https://www.volksverpetzer.de/feed/"
"https://www.wetell.de/feed/"
("https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCCJ-NJtqLQRxuaxHZA9q6zg" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UClZbO3wehSIsPUKLx_X5caw" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCtUbO6rBht0daVIOGML3c8w" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ" youtube)
("https://www.youtube.com/feeds/videos.xml?channel_id=UCzg5UMJ62uoKHTkq5bgkp5g" youtube)
"https://zerforschung.org/index.xml"
)))
#+end_src
** heaven-and-hell
Heaven and hell is a theme switcher, which allows you to select a dark and light theme and toggle between them using a key.
#+begin_src emacs-lisp
(use-package! heaven-and-hell
:ensure t
:config
(setq heaven-and-hell-theme-type 'dark ;; Omit to use light by default
heaven-and-hell-themes
'((light . doom-nord-light)
(dark . doom-nord)) ;; Themes can be the list: (dark . (tsdh-dark wombat))
heaven-and-hell-load-theme-no-confirm t)
:hook (after-init . heaven-and-hell-init-hook)
:bind (("<f6>" . heaven-and-hell-toggle-theme)))
#+end_src
** hl-todo
Highlights keywords like TODO in code. Also enabled in org mode.
#+begin_src emacs-lisp
(use-package! hl-todo
:config
(setq hl-todo-keyword-faces
'(("TODO" warning bold)
("EXAMPLE" font-lock-keyword-face bold)
("HACK" font-lock-constant-face bold)
("DEPRECATED" font-lock-doc-face bold)
("NOTE" success bold)
("BUG" error bold)
("THIS" font-lock-constant-face bold)))
:hook (org-mode . hl-todo-mode))
#+end_src
** nov.el
epub reader. Olivetti mode is used to make it look nicer.
#+begin_src emacs-lisp
(use-package! nov
:mode ("\\.epub\\'" . nov-mode)
:config
(setq nov-text-width 70))
(add-hook! 'nov-mode-hook '(olivetti-mode))
#+end_src
** olivetti
Centers the text. This is used for reading books and org mode in emacs.
#+begin_src emacs-lisp
(use-package! olivetti
:init
(add-hook! 'nov-mode-hook 'olivetti-mode)
(add-hook! 'org-mode-hook
'(olivetti-mode
(lambda () (display-line-numbers-mode -1)))))
;; (after! olivetti (setq olivetti-body-width 70))
;; (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1))))
#+end_src
** org-auto-tangle
This package automatically tangles all sourceblocks in an org file whenever that file is saved. It is very handy to not have to call the tangle command everytime you save.
#+begin_src emacs-lisp
(use-package! org-auto-tangle
:defer t
:config (setq org-auto-tangle-default nil)
:hook (org-mode . org-auto-tangle-mode))
#+end_src
** org-caldav
#+begin_src emacs-lisp
;; URL of the caldav server
(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de")
;; calendar ID on server
(setq org-caldav-calendar-id "persnlich")
;; Org filename where new entries from calendar stored
(setq org-caldav-inbox (org-path "Calendar.org"))
;; Additional Org files to check for calendar events
(setq org-caldav-files nil)
;; Usually a good idea to set the timezone manually
(setq org-icalendar-timezone "Europe/Berlin")
#+end_src
#+RESULTS:
** org-drill
A package for learning and memorizing using *spaced repetition*, inspired by applications like Anki.
#+begin_src emacs-lisp
(after! org-drill
(setq org-drill-scope 'agenda))
#+end_src
** org-noter
A annotation tool for org-mode.
#+begin_src emacs-lisp
(after! org-noter
(setq org-noter-notes-search-path '("~/Notes/Org"))
(setq org-noter-always-create-frame nil)
(setq org-noter-doc-split-fraction '(0.75 . 0.75))
(setq org-noter-default-notes-file-names '()))
#+end_src
** org-roam
Zettelkasten in org-mode.
#+begin_src emacs-lisp
(use-package! org-roam
:config (setq org-roam-directory "~/Notes/Org/Roam"
org-roam-dailies-directory "Daily"))
;; (after! org-roam
;; (setq org-roam-directory "~/Notes/Org/Roam")
;; (setq org-roam-dailies-directory "Daily"))
#+end_src
** org-super-agenda
#+begin_src emacs-lisp
(use-package! org-super-agenda
:config
(setq org-super-agenda-groups
'(;; Each group has an implicit boolean OR operator between its selectors.
(:name "Important"
;; Single arguments given alone
;;:tag "bills"
:priority "A")
(:name "Habits"
:habit t)
(:name "Appointments"
:file-path "Calendar\.org")
(:name "Shopping"
:tag "shopping")
;; Set order of multiple groups at once
(:priority<= "B"
;; Show this section after "Today" and "Important", because
;; their order is unspecified, defaulting to 0. Sections
;; are displayed lowest-number-first.
:order 1)
;; After the last group, the agenda will display items that didn't
;; match any of these groups, with the default order position of 99
))
:init
(org-super-agenda-mode t))
#+end_src