From 591c56508791ac00307807b2f7f098cc552ffde2 Mon Sep 17 00:00:00 2001 From: J S Date: Mon, 8 Apr 2024 12:01:27 -0400 Subject: [PATCH] feat[all] Added and removed many things I changed the theme to doom-homage. I removed funny stuff to slim down a bit. I changed the org-capture keybinds and added a category for school. I added org-super-agenda and corrected agenda keybinds. I added lilypond editing. I removed calfw calendar view. I removed extraneous weblorg settings. I removed org-roam-ui settings that were unecessary. I added vterm and multipe-cursors. --- config.org | 198 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 116 insertions(+), 82 deletions(-) diff --git a/config.org b/config.org index 4e1d925..74b7496 100644 --- a/config.org +++ b/config.org @@ -38,7 +38,7 @@ Set the theme. +I also prefer relative line numbers because of *evil* mode+ Relative line numbers don't seem to work, because of folding in Org-mode. #+begin_src emacs-lisp -(setq doom-theme 'doom-homage-black) +(setq doom-theme 'doom-oksolar-dark) (condition-case nil (setq doom-font (font-spec :family "Hack Nerd Font Mono" :size 16 :weight 'medium)) (error (set-face-attribute 'default nil :height 130))) @@ -46,6 +46,8 @@ Relative line numbers don't seem to work, because of folding in Org-mode. (setq auto-save-default nil) ;I don't like autosaving. Let me do it myself. #+end_src +#+RESULTS: + ** Doom splash screen I really don't like the widgets, and I think it takes longer to load so I get rid of them #+begin_src emacs-lisp @@ -265,17 +267,18 @@ And then we want to call this before building the agenda: (add-hook 'org-agenda-mode-hook 'set-org-agenda-files-ripgrep) #+end_src *** Filtering the agenda -I don't want the agenda to show more than one day be default. +I don't want scheduled items to duplicate if the deadline is up. #+begin_src emacs-lisp (after! org -(setq org-agenda-start-day "-8d") -(setq org-agenda-span 9)) + (setq org-agenda-skip-scheduled-if-deadline-is-shown t)) +;(setq org-agenda-start-day "-8d") +;(setq org-agenda-span 9) +;(setq org-agenda-todo-ignore-deadlines 'far) +;(setq org-agenda-tags-todo-honor-ignore-options t)) #+end_src #+RESULTS: -: 9 - - +: t ** Basic settings #+begin_src emacs-lisp (setq org-log-done 'time) @@ -286,6 +289,19 @@ I don't want the agenda to show more than one day be default. (setq org-directory "~/org/") (setq org-roam-directory org-directory) #+end_src +*** Keymap +#+begin_src emacs-lisp +(map! + :map org-agenda-keymap + "j" #'evil-next-line + "k" #'evil-previous-line) +(map! + :map org-super-agenda-header-map + "j" #'evil-next-line + "k" #'evil-previous-line) +#+end_src + +#+RESULTS: ** Appearances *** Images Preferences @@ -296,26 +312,75 @@ We want to show images when loading a file, and also after evaluating code block ;; Show images after evaluating code blocks. (add-hook 'org-babel-after-execute-hook 'org-display-inline-images) #+end_src -*** Org-agenda deadlines -I don't like agenda nagging me about upcoming events. -It causes a lot of duplication! -#+begin_comment -#+begin_src emacs-lisp -(setq org-deadline-warning-days 0) -#+end_src -#+end_comment -Turn it off with this snippet. -** ob-lilypond -*** package +*** Org-super-agenda +Super-agenda allows many nice configurations to the agenda buffer. #+begin_src emacs-lisp :tangle "packages.el" -(package! ob-lilypond - :recipe (:host github :type git :repo "mjago/ob-lilypond")) +(package! org-super-agenda) #+end_src -*** config + +Configure the Super Agenda to neatly organize everything. #+begin_src emacs-lisp -(use-package! ob-lilypond) -(setq ly-arrange-mode t) + +(setq org-super-agenda-groups + '(;; Each group has an implicit boolean OR operator between its selectors. + + + (:name "Calendar" + :and (:todo nil :not (:scheduled (before "2024-03-17")) :not (:deadline (before "2024-03-17"))) + :order 10) + + + + (:name "Today" ; Optionally specify section name + :time-grid t ; Items that appear on the time grid + :todo "TODAY") ; Items that have this TODO keyword + (:name "Important" + ;; Single arguments given alone + :tag "bills" + :priority<= "A") + (:name "Active Projects" + :and (:todo "PROJ" + :not (:scheduled (after "2024-03-17")) + :deadline (after "2024-03-17"))) + + + (:name "School" + :tag "school" ) + + ;; Set order of multiple groups at once + (:order-multi (2 (:name "Shopping in town" + ;; Boolean AND group matches items that match all subgroups + :and (:tag "shopping" :tag "@town")) + (:name "Food-related" + ;; Multiple args given in list with implicit OR + :tag ("food" "dinner")) + (:name "Habits" + :habit t + :tag "personal") + (:name "Space-related (non-moon-or-planet-related)" + ;; Regexps match case-insensitively on the entire entry + :and (:regexp ("space" "NASA") + ;; Boolean NOT also has implicit OR between selectors + :not (:regexp "moon" :tag "planet"))))) + ;; Groups supply their own section names when none are given + (:todo "WAITING" :order 8) ; Set order of this section + (:todo ("SOMEDAY" "TO-READ" "CHECK" "TO-WATCH" "WATCHING") + ;; Show this group at the end of the agenda (since it has the + ;; highest number). If you specified this group last, items + ;; with these todo keywords that e.g. have priority A would be + ;; displayed in that group instead, because items are grouped + ;; out in the order the groups are listed. + :order 9) + (: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 + )) #+end_src + ** org-edna #+begin_src emacs-lisp :tangle "packages.el" (package! org-edna) @@ -370,11 +435,12 @@ This is okay, but I'd rather find something that isn't already used. #+RESULTS: : _ -** calfw Calendar View +** calfw Calendar View :ARCHIVE: #+begin_src emacs-lisp :tangle "packages.el" (package! calfw :recipe (:host github :type git :repo "haji-ali/emacs-calfw")) #+end_src + * Programming Items ** Editorconfig I need to make sure some different files work with @@ -404,15 +470,6 @@ In order for editorconfig to do its thing, indentation by the lsp must be disabl (setq org-hugo-base-dir (concat org-directory (file-name-as-directory "website"))) (setq org-hugo-default-section-directory "posts") #+end_src -** Weblorg Alternative -#+begin_src emacs-lisp :tangle "packages.el" -(package! weblorg) -#+end_src - -#+begin_src emacs-lisp -(use-package! weblorg) -#+end_src - * Crafting a Writing Environment For writing I like to automate as much as possible. This means creating an environment that does citations and such /for/ me. @@ -541,7 +598,7 @@ $x + 1 = 3$ #+RESULTS: | mcdowellcv | \documentclass[]{mcdowellcv} | -*** Fixing dvipng image handling +*** COMMENT Fixing dvipng image handling #+begin_src emacs-lisp (defun +org-refresh-latex-images-previews-h () @@ -765,13 +822,17 @@ I also have a capture template form my [[Website]] :target (file+head "%<%Y%m%d-%H%M%S>.org" "#+TITLE: ${title}\n") :unnarrowed t) + ("s" "school" plain "%?" + :target (file+head "liberty/${title}.org" + "#+TITLE: ${title}\n") + :unnarrowed t) - ("c" "encrypted" plain "%?" + ("e" "encrypted" plain "%?" :target (file+head "%<%Y%m%d-%H%M%S>.sec.org.age" "#+TITLE: ${title}\n#+FILETAGS: :secure:noexport:\n\n* No Export Below This Line") :unnarrowed t) - ("m" "Markdown" plain "" + ("c" "CCDC Wiki" plain "" :target (file+head "training-resources/content/${title}.md" "---\ntitle: ${title}\nid: %<%Y-%m-%dT%H%M%S>\ncategory: \n---\n") @@ -857,25 +918,10 @@ I use =r= for this purpose. It is close and goes well with *roam*. )))) #+END_SRC -**** COMMENT Function to pull up org-roam ui -#+begin_src emacs-lisp -(defun open-org-roam-ui () - (interactive) - (org-roam-ui-mode) - (async-shell-command "surf http://localhost:35901/")) -#+end_src *** Default Browser for Export #+begin_src emacs-lisp (setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "surf") - - '(org-file-apps - (quote - ((auto-mode . emacs) - ("\\.mm\\'" . default) - ("\\.x?html?\\'" . "surf %s") - ("\\.pdf\\'" . default)))) - #+end_src ** Journal Environment with org-roam @@ -1038,37 +1084,11 @@ We need to bring in the correct SSH agent values, so that Emacs is aware of wher (setq md-roam-use-org-extract-ref nil) (org-roam-db-autosync-mode 1)) #+end_src -* Funny Stuff -** Spray -#+begin_src emacs-lisp -(use-package! spray - :commands spray-mode) -#+end_src -** Snow -#+begin_src emacs-lisp :tangle "packages.el" -(package! snow) -(package! fireplace) -#+end_src - -#+begin_src emacs-lisp -(use-package! snow) -(use-package! fireplace) -#+end_src - +* Misc. #+begin_src emacs-lisp (add-to-list 'org-tags-exclude-from-inheritance "hastodos") (add-to-list 'org-tags-exclude-from-inheritance "ignore") #+end_src -** Cookies -#+begin_src emacs-lisp -(setq fortune-file "/home/user/.config/doom/cookies.txt") -(setq cookie-file "/home/user/.config/doom/cookies.txt") -#+end_src - -#+RESULTS: -: /home/user/.config/doom/cookies.txt - - * Graphics in org-mode ** Org Plot[fn:1] Org-plot can be enabled by a flag in the init file. @@ -1153,9 +1173,9 @@ set palette defined ( 0 '%s',\ (doom-color 'bg) (car +org-plot-term-size) (cdr +org-plot-term-size))) (setq org-plot/gnuplot-script-preamble #'+org-plot-generate-theme) (setq org-plot/gnuplot-term-extra #'+org-plot-gnuplot-term-properties)) - #+end_src + ** Mermaid.js Mermaid.js requires the mmcli executable from npm. Mermaid is a tool that allows you to graph many kinds of entities: @@ -1261,7 +1281,7 @@ I like to have all my config in one place. (format ) ; automated prettiness ;;god ; run Emacs commands without modifier keys ;;lispy ; vim for lisp, for people who don't like vim - ;;multiple-cursors ; editing in many places at once + multiple-cursors ; editing in many places at once ;;objed ; text object editing for the innocent ;;parinfer ; turn lisp into python, sort of ;;rotate-text ; cycle region at point between text candidates @@ -1279,7 +1299,7 @@ I like to have all my config in one place. ;;eshell ; the elisp shell that works everywhere ;;shell ; simple shell REPL for Emacs term ; basic terminal emulator for Emacs - ;;vterm ; the best terminal emulation in Emacs + vterm ; the best terminal emulation in Emacs :checkers (syntax +flymake ) ; tasing you for every semicolon you forget @@ -1384,7 +1404,7 @@ I like to have all my config in one place. ;;(wanderlust +gmail) :app - calendar + ;;calendar ;;emmgs ;;everywhere ; *leave* Emacs!? You must be joking ;;irc ; how neckbeards socialize @@ -1400,3 +1420,17 @@ I like to have all my config in one place. * Footnotes [fn:1] Stolen from Tecosaur's [[https://git.tecosaur.net/tec/emacs-config][config]] +* Other Editing +** Lillypond + +*** ob-lilypond +**** package +#+begin_src emacs-lisp :tangle "packages.el" +(package! ob-lilypond + :recipe (:host github :type git :repo "mjago/ob-lilypond")) +#+end_src +**** config +#+begin_src emacs-lisp +(use-package! ob-lilypond) +(setq ly-arrange-mode t) +#+end_src