diff --git a/config/dot_config/doom/config.el b/config/dot_config/doom/config.el index bc6e9b4..f5593b6 100644 --- a/config/dot_config/doom/config.el +++ b/config/dot_config/doom/config.el @@ -15,6 +15,9 @@ ;; Useful if default system shell is not bash (setq shell-file-name (executable-find "bash")) +;; Display Line numbers +(setq display-line-numbers-type t) + ;; Fonts (setq doom-font (font-spec :family "IBM Plex Mono" :size 18 :weight 'medium)) @@ -23,9 +26,35 @@ (setq variable-pitch (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium)) -;; Display Line numbers -(setq display-line-numbers-type t) +;; Dashboard +(defun my-weebery-is-always-greater () + (let* ((banner '("EMACS " + "███▄ ▄███▓ ▒█████ ▒█████ ▓█████▄ " + "▓██▒▀█▀ ██▒▒██▒ ██▒▒██▒ ██▒▒██▀ ██▌" + "▓██ ▓██░▒██░ ██▒▒██░ ██▒░██ █▌" + "▒██ ▒██ ▒██ ██░▒██ ██░░▓█▄ ▌" + "▒██▒ ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ " + "░ ▒░ ░ ░░ ▒░▒░▒░ ░ ▒░▒░▒░ ▒▒▓ ▒ " + "░ ░ ░ ░ ▒ ▒░ ░ ▒ ▒░ ░ ▒ ▒ " + "░ ░ ░ ░ ░ ▒ ░ ░ ░ ▒ ░ ░ ░ " + " ░ ░ ░ ░ ░ ░ " + " ░ ")) + (longest-line (apply #'max (mapcar #'length banner)))) + (put-text-property + (point) + (dolist (line banner (point)) + (insert (+doom-dashboard--center + +doom-dashboard--width + (concat line (make-string (max 0 (- longest-line (length line))) 32))) + "\n")) + 'face 'doom-dashboard-banner))) +(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater) +(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu) +(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer) +(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-loaded) + +;; Themes (use-package! heaven-and-hell :ensure t :config @@ -44,10 +73,9 @@ (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"))) + org-src-tab-acts-natively t + org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") + (sequence "THIS(T)" "EXAMPLE")))) (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1)))) @@ -88,7 +116,7 @@ (after! org (setq org-capture-templates '(("t" "Personal Todo" entry - (file+headline +org-capture-todo-file "Inbox") + (file +org-capture-todo-file) "* TODO %?\n" :prepend t) ("r" "Recipe" entry @@ -124,10 +152,11 @@ "* %U %?\n" :prepend t)))) (after! org (setq - org-agenda-show-all-dates nil + ;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done) + org-agenda-show-all-dates t org-agenda-span 4 org-agenda-start-day "+0d" - org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done) + org-agenda-tag-filter-preset '("-drill") org-agenda-time-grid '((daily today require-timed) (800 1000 1200 1400 1600 1800 2000) @@ -138,34 +167,6 @@ ;; Consider all org files part of the org-agenda org-agenda-files (list +user-org-path))) -(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)))) - -(use-package! nov - :mode ("\\.epub\\'" . nov-mode) - :config - (setq nov-text-width 60)) - -(add-hook! 'nov-mode-hook '(olivetti-mode)) - -(after! olivetti (setq olivetti-body-width 60)) - -(use-package! org-auto-tangle - :defer t - :config (setq org-auto-tangle-default nil) - :hook (org-mode . org-auto-tangle-mode)) - -(after! org-drill - (setq org-drill-scope 'agenda)) - (after! doom-modeline (setq doom-modeline-battery t) (setq doom-modeline-major-mode-icon t)) @@ -175,6 +176,38 @@ (after! evil-snipe (setq evil-snipe-scope 'whole-visible)) +(add-hook 'org-mode-hook #'hl-todo-mode) + +(after! hl-todo + (setq hl-todo-keyword-faces + '(("TODO" warning bold) + ("EXAMPLE" font-lock-keyword-face bold) + ("HACK" font-lock-constant-face bold) + ("DEPRECATED" font-lock-doc-face bold) + ("NOTE" success bold) + ("BUG" error bold) + ("THIS" font-lock-constant-face bold)))) + +(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX"))) +(setq +notmuch-sync-backend 'offlineimap) + +(use-package! nov + :mode ("\\.epub\\'" . nov-mode) + :config + (setq nov-text-width 70)) + +(add-hook! 'nov-mode-hook '(olivetti-mode)) + +(after! olivetti (setq olivetti-body-width 70)) + +(use-package! org-auto-tangle + :defer t + :config (setq org-auto-tangle-default nil) + :hook (org-mode . org-auto-tangle-mode)) + +(after! org-drill + (setq org-drill-scope 'agenda)) + (after! org-noter (setq org-noter-notes-search-path '("~/Notes/Org")) (setq org-noter-always-create-frame nil) @@ -185,4 +218,4 @@ (setq org-roam-directory "~/Notes/Org/Roam") (setq org-roam-dailies-directory "Daily")) -(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX"))) +(drag-stuff-global-mode t) diff --git a/config/dot_config/doom/config.html b/config/dot_config/doom/config.html index b1f4fe3..a2ffa1b 100644 --- a/config/dot_config/doom/config.html +++ b/config/dot_config/doom/config.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Emacs Config @@ -210,36 +210,56 @@ body {

Table of Contents

-
-

1. Keybindings

+

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

+
+

1. Header

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

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

2. Keybindings

+
+

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

@@ -296,16 +316,50 @@ These keybindings extend the default doom bindings, either because the defaults 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 +  + -
-
-
-

2. Base Config

-
-
-
;;; $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)
+(map! :n "<f8>" #'emms-playlist-mode-go)
+(evil-define-key 'normal dired-mode-map
+  (kbd "DEL") 'dired-up-directory)
+
+
+
+
+
+

3. Base Config

+
+
+
 ;; Basic User Settings
 (setq user-full-name "Jonathan Jenne"
       user-mail-address "johnnie@posteo.de")
@@ -316,41 +370,52 @@ These keybindings extend the default doom bindings, either because the defaults
 
 ;; Display Line numbers
 (setq display-line-numbers-type t)
-
-;; General Keybindings
-(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)
-
-
-
-
-

2.1. Hooks

-
-
-
;; Org Mode
-(add-hook 'org-mode-hook #'org-modern-mode)
-(add-hook 'org-mode-hook #'hl-todo-mode)
-
-;; Org Agenda
-(add-hook 'org-agenda-finalize-hook #'org-modern-agenda)
-
-;; Modeline
-(add-hook 'doom-after-init-hook #'display-battery-mode)
-(add-hook 'doom-after-init-hook #'display-time-mode)
 
-
-
-

3. Themes

-
+
+

4. Appearance

+
-
(use-package! heaven-and-hell
+
;; Fonts
+(setq doom-font
+      (font-spec :family "IBM Plex Mono" :size 18 :weight 'medium))
+(setq doom-variable-pitch-font
+      (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
+(setq variable-pitch
+      (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium))
+
+;; Dashboard
+(defun my-weebery-is-always-greater ()
+  (let* ((banner '("EMACS                                "
+                   "███▄ ▄███▓ ▒█████   ▒█████  ▓█████▄  "
+                   "▓██▒▀█▀ ██▒▒██▒  ██▒▒██▒  ██▒▒██▀ ██▌"
+                   "▓██    ▓██░▒██░  ██▒▒██░  ██▒░██   █▌"
+                   "▒██    ▒██ ▒██   ██░▒██   ██░░▓█▄   ▌"
+                   "▒██▒   ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ "
+                   "░ ▒░   ░  ░░ ▒░▒░▒░ ░ ▒░▒░▒░  ▒▒▓  ▒ "
+                   "░  ░      ░  ░ ▒ ▒░   ░ ▒ ▒░  ░ ▒  ▒ "
+                   "░      ░   ░ ░ ░ ▒  ░ ░ ░ ▒   ░ ░  ░ "
+                   "       ░       ░ ░      ░ ░     ░    "
+                   "                              ░      "))
+                  (longest-line (apply #'max (mapcar #'length banner))))
+    (put-text-property
+     (point)
+     (dolist (line banner (point))
+       (insert (+doom-dashboard--center
+                +doom-dashboard--width
+                (concat line (make-string (max 0 (- longest-line (length line))) 32)))
+               "\n"))
+     'face 'doom-dashboard-banner)))
+(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater)
+
+(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu)
+(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer)
+(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-loaded)
+
+;; Themes
+(use-package! heaven-and-hell
   :ensure t
   :config
   (setq heaven-and-hell-theme-type 'dark) ;; Omit to use light by default
@@ -365,28 +430,38 @@ These keybindings extend the default doom bindings, either because the defaults
 
-
-

4. Org Mode

-
+
+

5. Org Mode

+
-
-

4.1. General Settings

-
+
+

5.1. General Settings

+
(setq +user-org-path "~/Notes/Org")
 (defun org-path (filename) (expand-file-name filename +user-org-path))
 
-(after! org (setq org-directory +user-org-path
-                  org-src-tab-acts-natively t))
+(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)
 
-
-

4.2. Org Export

-
+
+

5.2. Org Export

+
 
@@ -412,21 +487,73 @@ These keybindings extend the default doom bindings, either because the defaults
                            "</style>\n")))))
 
 ;; Org Export
-(add-hook 'org-export-before-processing-hook 'my-org-inline-css-hook)
+(add-hook 'org-export-before-processing-functions 'my-org-inline-css-hook)
 
 
-
-

4.3. Org Agenda

-
+
+

5.3. Org Capture

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

5.4. Org Agenda

+
(after! org (setq
-             org-agenda-show-all-dates nil
+             ;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
+             org-agenda-show-all-dates t
              org-agenda-span 4
              org-agenda-start-day "+0d"
-             org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done)
+             org-agenda-tag-filter-preset '("-drill")
              org-agenda-time-grid
              '((daily today require-timed)
                (800 1000 1200 1400 1600 1800 2000)
@@ -441,29 +568,101 @@ These keybindings extend the default doom bindings, either because the defaults
 
-
-

5. Packages

-
+
+

6. Packages

+
-
-

5.1. hl-todo

-
+
+

6.1. doom-modeline

+
+

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

+
-
(after! hl-todo (setq hl-todo-keyword-faces '(("TODO" warning 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)
+
+
+
+
+
+

6.2. evil-snipe

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

6.3. hl-todo

+
+
+
(add-hook 'org-mode-hook #'hl-todo-mode)
+
+(after! hl-todo (setq hl-todo-keyword-faces '(("TODO" warning bold)
                                               ("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)
-                                              ("XXX" font-lock-constant-face bold))))
+                                              ("THIS" font-lock-constant-face bold))))
 
-
-

5.2. org-auto-tangle

-
+
+

6.4. notmuch

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

6.5. nov.el

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

6.6. olivetti

+
+

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

+ +
+
(after! olivetti (setq olivetti-body-width 70))
+
+
+
+
+
+

6.7. org-auto-tangle

+
+

+This package automatically tangles all sourceblocks in an org file whenever that file is saved. It is very handy to not have to call the tangle command everytime you save. +

+
(use-package! org-auto-tangle
   :defer t
@@ -473,9 +672,13 @@ These keybindings extend the default doom bindings, either because the defaults
 
-
-

5.3. org-drill

-
+
+

6.8. org-drill

+
+

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

+
(after! org-drill
   (setq org-drill-scope 'agenda))
@@ -483,22 +686,41 @@ These keybindings extend the default doom bindings, either because the defaults
 
-
-

5.4. doom-modeline

-
+
+

6.9. org-noter

+
-
(after! doom-modeline
-  (setq doom-modeline-battery t)
-  (setq doom-modeline-major-mode-icon t))
+
(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 '()))
+
 
-
-

5.5. evil-snipe

-
+
+

6.10. org-roam

+
-
(after! evil-snipe (setq evil-snipe-scope 'whole-visible))
+
(after! org-roam
+  (setq org-roam-directory "~/Notes/Org/Roam")
+  (setq org-roam-dailies-directory "Daily"))
+
+
+
+
+
+
+

6.11. drag-stuff

+
+

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

+ +
+
(drag-stuff-global-mode t)
 
@@ -507,7 +729,7 @@ These keybindings extend the default doom bindings, either because the defaults

Author: Jonathan Jenne / Inhji

-

Created: 2024-02-27 Di 13:59

+

Created: 2024-03-10 So 13:06

diff --git a/config/dot_config/doom/config.org b/config/dot_config/doom/config.org index 2ad4416..f33f3e6 100644 --- a/config/dot_config/doom/config.org +++ b/config/dot_config/doom/config.org @@ -4,6 +4,8 @@ #+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 @@ -11,25 +13,28 @@ - [[#header][Header]] - [[#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]] + - [[#evil-snipe][evil-snipe]] - [[#hl-todo][hl-todo]] + - [[#notmuch][notmuch]] - [[#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]] + - [[#drag-stuff][drag-stuff]] * Header +This header will be the first codeblock in the config file. + #+begin_src emacs-lisp ;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- #+end_src @@ -47,12 +52,16 @@ These keybindings extend the default doom bindings, either because the defaults | 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 (map! :n "" #'org-agenda-list) (map! :n "" #'org-drill) (map! "C-M-+" #'doom/increase-font-size) (map! "C-#" #'comment-line) +(map! :n "" #'emms-playlist-mode-go) (evil-define-key 'normal dired-mode-map (kbd "DEL") 'dired-up-directory) #+end_src @@ -69,6 +78,15 @@ These keybindings extend the default doom bindings, either because the defaults ;; Useful if default system shell is not bash (setq shell-file-name (executable-find "bash")) +;; 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)) @@ -77,13 +95,35 @@ These keybindings extend the default doom bindings, either because the defaults (setq variable-pitch (font-spec :family "IBM Plex Serif" :size 18 :weight 'medium)) -;; Display Line numbers -(setq display-line-numbers-type t) -#+end_src +;; Dashboard +(defun my-weebery-is-always-greater () + (let* ((banner '("EMACS " + "███▄ ▄███▓ ▒█████ ▒█████ ▓█████▄ " + "▓██▒▀█▀ ██▒▒██▒ ██▒▒██▒ ██▒▒██▀ ██▌" + "▓██ ▓██░▒██░ ██▒▒██░ ██▒░██ █▌" + "▒██ ▒██ ▒██ ██░▒██ ██░░▓█▄ ▌" + "▒██▒ ░██▒░ ████▓▒░░ ████▓▒░░▒████▓ " + "░ ▒░ ░ ░░ ▒░▒░▒░ ░ ▒░▒░▒░ ▒▒▓ ▒ " + "░ ░ ░ ░ ▒ ▒░ ░ ▒ ▒░ ░ ▒ ▒ " + "░ ░ ░ ░ ░ ▒ ░ ░ ░ ▒ ░ ░ ░ " + " ░ ░ ░ ░ ░ ░ " + " ░ ")) + (longest-line (apply #'max (mapcar #'length banner)))) + (put-text-property + (point) + (dolist (line banner (point)) + (insert (+doom-dashboard--center + +doom-dashboard--width + (concat line (make-string (max 0 (- longest-line (length line))) 32))) + "\n")) + 'face 'doom-dashboard-banner))) +(setq +doom-dashboard-ascii-banner-fn #'my-weebery-is-always-greater) -* Themes +(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) -#+begin_src emacs-lisp +;; Themes (use-package! heaven-and-hell :ensure t :config @@ -106,10 +146,9 @@ These keybindings extend the default doom bindings, either because the defaults (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"))) + org-src-tab-acts-natively t + org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") + (sequence "THIS(T)" "EXAMPLE")))) (add-hook! 'org-mode-hook '(olivetti-mode (lambda () (display-line-numbers-mode -1)))) @@ -160,7 +199,7 @@ These keybindings extend the default doom bindings, either because the defaults (after! org (setq org-capture-templates '(("t" "Personal Todo" entry - (file+headline +org-capture-todo-file "Inbox") + (file +org-capture-todo-file) "* TODO %?\n" :prepend t) ("r" "Recipe" entry @@ -199,10 +238,11 @@ These keybindings extend the default doom bindings, either because the defaults ** Org Agenda #+begin_src emacs-lisp (after! org (setq - org-agenda-show-all-dates nil + ;; org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done) + org-agenda-show-all-dates t org-agenda-span 4 org-agenda-start-day "+0d" - org-agenda-spillover-skip-function '(org-agenda-skip-entry-if 'todo 'done) + org-agenda-tag-filter-preset '("-drill") org-agenda-time-grid '((daily today require-timed) (800 1000 1200 1400 1600 1800 2000) @@ -215,52 +255,10 @@ These keybindings extend the default doom bindings, either because the defaults #+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 +267,75 @@ 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 #+begin_src emacs-lisp (after! evil-snipe (setq evil-snipe-scope 'whole-visible)) #+end_src +** 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) + ("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 + +** notmuch + +#+begin_src emacs-lisp +(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX"))) +(setq +notmuch-sync-backend 'offlineimap) +#+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 + +#+begin_src emacs-lisp +(after! olivetti (setq olivetti-body-width 70)) +#+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 + + #+begin_src emacs-lisp (after! org-noter (setq org-noter-notes-search-path '("~/Notes/Org")) @@ -289,8 +351,10 @@ These keybindings extend the default doom bindings, either because the defaults (setq org-roam-dailies-directory "Daily")) #+end_src -** notmuch +** 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 -(setq +notmuch-home-function (lambda () (notmuch-search "folder:INBOX"))) +(drag-stuff-global-mode t) #+end_src diff --git a/config/dot_config/doom/init.el b/config/dot_config/doom/init.el index ba8b5d9..20db758 100644 --- a/config/dot_config/doom/init.el +++ b/config/dot_config/doom/init.el @@ -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,12 +179,12 @@ :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 diff --git a/config/dot_config/doom/packages.el b/config/dot_config/doom/packages.el index 4c52d38..480c264 100644 --- a/config/dot_config/doom/packages.el +++ b/config/dot_config/doom/packages.el @@ -12,11 +12,13 @@ (package! org-auto-tangle) (package! org-habit-stats) +(package! org-super-agenda) (package! org-drill) (package! org-noter) (package! heaven-and-hell) (package! nov) (package! olivetti) +(package! drag-stuff) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: