feat(org): Remove and reformat org configuration

Remove a lot of extraneous org-mode config.
Remove a lot of doom modules not using.
Add several useful doom modules (nix, direnv, etc)
Reformat configuration
This commit is contained in:
Judah Sotomayor 2024-08-29 15:19:05 -04:00
parent 941712eb6f
commit ac12d307fa
Signed by: judahsotomayor
SSH Key Fingerprint: SHA256:9Dq4ppxhfAjbX+7HLXEt+ROMiIojI6kqQgUyFUJb9lI

View File

@ -36,23 +36,13 @@ Relative line numbers don't seem to work, because of folding in Org-mode.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq doom-theme 'doom-xcode) (setq doom-theme 'doom-xcode)
(setq doom-font (font-spec :family "Hack Nerd Font Mono" :size 16 :weight 'medium)) (setq doom-font (font-spec :family "Hack Nerd Font Mono" :size 16 :weight 'medium))
(setq auto-save-default nil) ;I don't like autosaving. Let me do it myself. (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
(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu) (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-footer)
(setq fancy-splash-image (concat doom-private-dir "emacs.png"))
(add-hook 'term-mode-hook 'hide-mode-line-mode)
#+end_src #+end_src
Set a sweet splash image
#+begin_src emacs-lisp
(setq fancy-splash-image (concat doom-private-dir "emacs.png"))
#+end_src
* Evil configuration * Evil configuration
I want a non-ESC way to get back to normal mode: I want a non-ESC way to get back to normal mode:
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -62,44 +52,20 @@ I want a non-ESC way to get back to normal mode:
(map! :desc "Decrement number below or after cursor" :n "C-x" #'evil-numbers/dec-at-pt) (map! :desc "Decrement number below or after cursor" :n "C-x" #'evil-numbers/dec-at-pt)
(map! :n "g j" #'evil-next-visual-line) (map! :n "g j" #'evil-next-visual-line)
(map! :n "g k" #'evil-previous-visual-line) (map! :n "g k" #'evil-previous-visual-line)
(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 #+end_src
* Terminal setup * Terminal setup
I like to just use bash:
#+begin_src emacs-lisp
(defun bash nil
"Lauch term with /bin/bash"
(interactive)
(term "/bin/bash"))
(defun dash nil
"Lauch term with /bin/dash"
(interactive)
(term "/bin/dash"))
(defun zsh nil
"Lauch term with /bin/zsh"
(interactive)
(term "/bin/zsh"))
#+end_src
#+RESULTS:
: zsh
** Shell mappings ** Shell mappings
#+begin_src emacs-lisp #+begin_src emacs-lisp
(map! :leader (:prefix ("k" . "shell") (map! :leader (:prefix ("k" . "shell")
:desc "Start a bash shell"
:n "b" #'bash
:desc "Start a dash shell"
:n "d" #'dash
:desc "Start a zsh shell"
:n "z" #'zsh
:desc "Start an elisp repl" :desc "Start an elisp repl"
:n "e" #'+emacs-lisp/open-repl :n "e" #'+emacs-lisp/open-repl
@ -107,44 +73,13 @@ I like to just use bash:
:n "j" #'+python/open-repl)) :n "j" #'+python/open-repl))
#+end_src #+end_src
#+RESULTS:
,#+RESULTS:
I don't like the modeline in the terminal.
,#+begin_src emacs-lisp
(add-hook 'term-mode-hook 'hide-mode-line-mode)
#+end_src
* Sage-math
#+begin_src emacs-lisp
(use-package! sage-shell-mode
:defer)
;; Ob-sagemath supports only evaluating with a session.
(setq org-babel-default-header-args:sage '((:session . t)
(:results . "output")))
;; C-c c for asynchronous evaluating (only for SageMath code blocks).
(with-eval-after-load "org"
(define-key org-mode-map (kbd "C-c c") 'ob-sagemath-execute-async))
#+end_src
I like to have a shortcut for calc as well, for simpler calculations I like to have a shortcut for calc as well, for simpler calculations
#+begin_src emacs-lisp #+begin_src emacs-lisp
(map! :leader (map! :leader
:desc "The Emacs Calculator" :desc "The Emacs Calculator"
"C" #'calc) "C" #'calc)
#+end_src #+end_src
* Beancount
** FavaGTK :outdated:
I want to launch favagtk more easily. Let's do that here:
#+begin_src emacs-lisp
(defun fava ()
(interactive)
(async-shell-command "flatpak run org.gnome.gitlab.johannesjh.favagtk"))
(map! :leader
:desc "Start favagtk"
"r b" #'fava)
#+end_src
* Useful Functions * Useful Functions
** Get the date from the shell ** Get the date from the shell
I want to grab the current date and put it in the buffer. I want to grab the current date and put it in the buffer.
@ -166,9 +101,7 @@ Because I sometimes use Fish or another shell, it's good to make sure bash is ru
"m" #'insert-current-date-alt))) "m" #'insert-current-date-alt)))
#+end_src #+end_src
#+RESULTS: ** Convert regex strings to rx :COMMENT:
: insert-current-date-alt
** Convert regex strings to rx
#+begin_src elisp :tangle packages.el #+begin_src elisp :tangle packages.el
(package! xr) (package! xr)
#+end_src #+end_src
@ -176,9 +109,6 @@ Because I sometimes use Fish or another shell, it's good to make sure bash is ru
#+begin_src elisp #+begin_src elisp
(use-package! xr) (use-package! xr)
#+end_src #+end_src
* Creating Diagrams and graphs
** TODO set default values using org-babel's features for that.
* Securing Sensitive Files * Securing Sensitive Files
** Age.el ** Age.el
#+begin_src emacs-lisp :tangle "packages.el" #+begin_src emacs-lisp :tangle "packages.el"
@ -203,7 +133,7 @@ Because I sometimes use Fish or another shell, it's good to make sure bash is ru
:END: :END:
This preprocessor script allows me to use Ripgrep with Age to filter agenda files. This preprocessor script allows me to use Ripgrep with Age to filter agenda files.
You can see the configuration for that in [[#agenda-efficient][this section]]. You can see the configuration for that in [[#agenda-efficient][this section]].
#+begin_src zsh :tangle "/home/user/age-preprocessor.zsh" #+begin_src zsh :tangle "/home/judah/age-preprocessor.zsh"
#!/usr/bin/env zsh #!/usr/bin/env zsh
case "$1" in case "$1" in
@ -244,6 +174,7 @@ Emacs has better default values now, so it will ask to evaluate local variables.
(setq templates/post-capture-title "#+TITLE: ${title}\n") (setq templates/post-capture-title "#+TITLE: ${title}\n")
(setq templates/post-capture-template (concat templates/post-capture-title templates/post-capture-props)) (setq templates/post-capture-template (concat templates/post-capture-title templates/post-capture-props))
#+end_src #+end_src
* Org-mode for a great todo list * Org-mode for a great todo list
** Making the Agenda features more efficient ** Making the Agenda features more efficient
Using ripgrep we can automatically narrow org-agenda files. Using ripgrep we can automatically narrow org-agenda files.
@ -256,7 +187,7 @@ This piece of code will allow us to capture all the agenda files using the prepr
#+begin_src sh :exports code :tangle no #+begin_src sh :exports code :tangle no
rg --type-add 'aorg:*.org.age' \ rg --type-add 'aorg:*.org.age' \
-torg -taorg \ -torg -taorg \
--pre ~/age-preprocessor.zsh --pre-glob '*.age' -l TODO /home/user/org --pre ~/age-preprocessor.zsh --pre-glob '*.age' -l TODO /home/judah/10-19-personal-projects/11-zettelkasten
#+end_src #+end_src
Now, of course, this code is not useful as it is--after all, we can't tangle a ~.sh~ script into [[file:config.el]]. Now, of course, this code is not useful as it is--after all, we can't tangle a ~.sh~ script into [[file:config.el]].
@ -266,13 +197,10 @@ The rubber hits the road here.
I'll call that shell command to set the agenda files correctly. I'll call that shell command to set the agenda files correctly.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun set-org-agenda-files-ripgrep () (defun set-org-agenda-files-ripgrep ()
(setq org-agenda-files (split-string (shell-command-to-string "rg --type-add \'aorg:*.org.age\' -torg -taorg --pre ~/age-preprocessor.zsh --pre-glob \'*.age\' -l TODO /home/user/org "))) (setq org-agenda-files (split-string (shell-command-to-string "rg --type-add \'aorg:*.org.age\' -torg -taorg --pre ~/age-preprocessor.zsh --pre-glob \'*.age\' -l TODO /home/judah/10-19-personal-projects/11-zettelkasten/")))
(setq org-agenda-files (remove "/home/user/org/archive.sec.org.age" org-agenda-files))) (setq org-agenda-files (remove "/home/judah/10-19-personal-projects/11-zettelkasten/archive.sec.org.age" org-agenda-files)))
#+end_src #+end_src
#+RESULTS:
: set-org-agenda-files-ripgrep
And then we want to call this before building the agenda: And then we want to call this before building the agenda:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(add-hook 'org-agenda-mode-hook 'set-org-agenda-files-ripgrep) (add-hook 'org-agenda-mode-hook 'set-org-agenda-files-ripgrep)
@ -302,21 +230,8 @@ I don't want scheduled items to duplicate if the deadline is up.
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: ~/org/ : ~/10-19-personal-projects/11-zettelkasten/
*** 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 ** Appearances
*** Images Preferences *** Images Preferences
@ -332,7 +247,7 @@ Super-agenda allows many nice configurations to the agenda buffer.
#+begin_src emacs-lisp :tangle "packages.el" #+begin_src emacs-lisp :tangle "packages.el"
(package! org-super-agenda) (package! org-super-agenda)
#+end_src #+end_src
Is it working now? It sure seems to be, so IDK what was up with it earlier.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package! org-super-agenda (use-package! org-super-agenda
:after org-roam :after org-roam
@ -340,6 +255,9 @@ Is it working now? It sure seems to be, so IDK what was up with it earlier.
#+end_src #+end_src
#+RESULTS:
: t
Configure the Super Agenda to neatly organize everything. Configure the Super Agenda to neatly organize everything.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq org-super-agenda-groups (setq org-super-agenda-groups
@ -457,20 +375,12 @@ This is okay, but I'd rather find something that isn't already used.
#+end_src #+end_src
* Programming Items * Programming Items
** Editorconfig
I need to make sure some different files work with
#+begin_src emacs-lisp
(after! editorconfig-mode
(add-to-list 'editorconfig-mode-alist
'(cpp-mode . "cpp")))
#+end_src
** LSP ** LSP
In order for editorconfig to do its thing, indentation by the lsp must be disabled. In order for editorconfig to do its thing, indentation by the lsp must be disabled.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq lsp-enable-indentation nil) (setq lsp-enable-indentation nil)
#+end_src emacs-lisp #+end_src emacs-lisp
* Website * Website
** Capture template ** Capture template
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -479,17 +389,12 @@ In order for editorconfig to do its thing, indentation by the lsp must be disabl
(setq templates/post-capture-template (concat templates/post-capture-title templates/post-capture-props)) (setq templates/post-capture-template (concat templates/post-capture-title templates/post-capture-props))
#+end_src #+end_src
* Crafting a Writing Environment :export:
** Hugo base directory
#+begin_src emacs-lisp
(setq org-hugo-base-dir (concat org-directory (file-name-as-directory "website")))
(setq org-hugo-default-section-directory "posts")
#+end_src
* Crafting a Writing Environment
For writing I like to automate as much as possible. For writing I like to automate as much as possible.
This means creating an environment that does citations and such /for/ me. This means creating an environment that does citations and such /for/ me.
** Export settings ** Export settings
*** Ox-latex *** \LaTeX
**** Ox-latex
#+begin_src emacs-lisp #+begin_src emacs-lisp
(after! org (after! org
;; Import ox-latex to get org-latex-classes and other funcitonality ;; Import ox-latex to get org-latex-classes and other funcitonality
@ -507,17 +412,17 @@ This means creating an environment that does citations and such /for/ me.
(setq org-latex-classes nil)))) (setq org-latex-classes nil))))
#+end_src #+end_src
*** Lualatex as PDF Processor **** Lualatex as PDF Processor
I've found that lualatex does a good job processing PDFs. $hi$ I've found that lualatex does a good job processing PDFs. $hi$
#+begin_src emacs-lisp #+begin_src emacs-lisp
(after! ox-latex (after! ox-latex
(setq org-latex-pdf-process (setq org-latex-pdf-process
'("lualatex --output-directory=/home/user/Documents -shell-escape -interaction nonstopmode %f" '("lualatex --output-directory=%o -shell-escape -interaction nonstopmode %f"
"lualatex --output-directory=/home/user/Documents -shell-escape -interaction nonstopmode %f"))) "lualatex --output-directory=%o -shell-escape -interaction nonstopmode %f")))
#+end_src #+end_src
#+RESULTS: #+RESULTS:
| lualatex --output-directory=/home/user/Documents -shell-escape -interaction nonstopmode %f | lualatex --output-directory=/home/user/Documents -shell-escape -interaction nonstopmode %f | | lualatex --output-directory=/home/judah/Documents -shell-escape -interaction nonstopmode %f | lualatex --output-directory=/home/judah/Documents -shell-escape -interaction nonstopmode %f |
$x + 1 = 3$ $x + 1 = 3$
#+RESULTS: #+RESULTS:
@ -614,12 +519,8 @@ $x + 1 = 3$
#+end_src #+end_src
#+RESULTS: **** COMMENT Fixing dvipng image handling
| mcdowellcv | \documentclass[]{mcdowellcv} |
*** COMMENT Fixing dvipng image handling
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun +org-refresh-latex-images-previews-h () (defun +org-refresh-latex-images-previews-h ()
(dolist (buffer (doom-buffers-in-mode 'org-mode (buffer-list))) (dolist (buffer (doom-buffers-in-mode 'org-mode (buffer-list)))
(with-current-buffer buffer (with-current-buffer buffer
@ -630,38 +531,8 @@ $x + 1 = 3$
(add-hook 'doom-load-theme-hook #'+org-refresh-latex-images-previews-h) (add-hook 'doom-load-theme-hook #'+org-refresh-latex-images-previews-h)
#+end_src #+end_src
*** Export Function
#+begin_src emacs-lisp
(defun eww-open-this-file ()
(set 'directory (file-name-directory buffer-file-name))
(set 'filename (file-name-sans-extension buffer-file-name))
(set 'extension ".html")
(set 'filename (format "%s%s" filename extension))
(eww-open-file filename)
(evil-window-left)
)
(defun org-export-and-open-eww () **** Delete links from inline anki
"Export current file to html and open in eww"
(interactive)
(org-html-export-to-html)
(if (equal (file-name-extension buffer-file-name) "org")
(eww-open-this-file)
(message "Failed")
)
)
#+end_src
We'll want a handy shortcut for this.
#+begin_src emacs-lisp
(map! :leader
:desc "Export to html and diplay with eww"
"r E" #'org-export-and-open-eww)
#+end_src
#+RESULTS:
: /home/user/.config/doom/
*** Delete links from inline anki
#+begin_src elisp #+begin_src elisp
(defun inline-anki-link-filter (link backend info) (defun inline-anki-link-filter (link backend info)
"Rewrite links in export to preserve link text only" "Rewrite links in export to preserve link text only"
@ -774,6 +645,7 @@ Let's use a package or two to set a decent document class:
"\\documentclass[stu]{apa7} "\\documentclass[stu]{apa7}
\\usepackage[]{multicol} \\usepackage[]{multicol}
\\usepackage{mathptmx} \\usepackage{mathptmx}
\\usepackage{times}
[NO-DEFAULT-PACKAGES] [NO-DEFAULT-PACKAGES]
[NO-PACKAGES]" [NO-PACKAGES]"
("\\section{%s}" . "\\section*{%s}") ("\\section{%s}" . "\\section*{%s}")
@ -937,11 +809,6 @@ I use =r= for this purpose. It is close and goes well with *roam*.
)))) ))))
#+END_SRC #+END_SRC
*** Default Browser for Export
#+begin_src emacs-lisp
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "surf")
#+end_src
** Journal Environment with org-roam ** Journal Environment with org-roam
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -981,8 +848,8 @@ Adding up values for one key is supported."
(concat ret " " val) (concat ret " " val)
val))) val)))
ret)) ret))
#+end_src #+end_src
** Resume setup for a stellar CV ** Resume setup for a stellar CV
*** ox-extra for ":ignore:" tags *** ox-extra for ":ignore:" tags
I want to be able to ignore headings on export. I want to be able to ignore headings on export.
@ -1273,7 +1140,7 @@ I like to have all my config in one place.
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emacs
;;doom-quit ; DOOM quit-message prompts when you quit Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂 (emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra ;;hydra
indent-guides ; highlighted indent columns indent-guides ; highlighted indent columns
@ -1300,7 +1167,7 @@ I like to have all my config in one place.
(format ) ; automated prettiness (format ) ; automated prettiness
;;god ; run Emacs commands without modifier keys ;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim ;;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 ;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of ;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates ;;rotate-text ; cycle region at point between text candidates
@ -1317,7 +1184,7 @@ I like to have all my config in one place.
:term :term
;;eshell ; the elisp shell that works everywhere ;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs ;;shell ; simple shell REPL for Emacs
term ; basic terminal emulator for Emacs ;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs vterm ; the best terminal emulation in Emacs
:checkers :checkers
@ -1326,10 +1193,10 @@ I like to have all my config in one place.
grammar ; tasing grammar mistake every you make grammar ; tasing grammar mistake every you make
:tools :tools
;;ansible ansible
(biblio +icons) ; Writes a PhD for you (citation needed) (biblio +icons) ; Writes a PhD for you (citation needed)
;;debugger ; FIXME stepping through code, to help you add bugs ;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv direnv
;;docker ;;docker
editorconfig ; let someone else argue about tabs vs spaces editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs ;;ein ; tame Jupyter notebooks with emacs
@ -1346,7 +1213,7 @@ I like to have all my config in one place.
;;taskrunner ; taskrunner for all your projects ;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code ;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux ;;tmux ; an API for interacting with tmux
;;tree-sitter ; syntax and parsing, sitting in a tree... tree-sitter ; syntax and parsing, sitting in a tree...
;;upload ; map local to remote projects via ssh/ftp ;;upload ; map local to remote projects via ssh/ftp
:os :os
@ -1355,10 +1222,10 @@ I like to have all my config in one place.
:lang :lang
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
(beancount +lsp) ; mind the GAAP ;;(beancount +lsp) ; mind the GAAP
(cc +lsp) ; C > C++ == 1 (cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp ;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs ;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c ;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans ;;csharp ; unity, .NET, and mono shenanigans
@ -1376,7 +1243,7 @@ I like to have all my config in one place.
;;fsharp ; ML stands for Microsoft's Language ;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3 ;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for ;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect (go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST ;;(graphql +lsp) ; Give queries a REST
;;(haskell +lsp) ; a language that's lazier than I am ;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python ;;hy ; readability of scheme w/ speed of python
@ -1392,7 +1259,7 @@ I like to have all my config in one place.
lua ; one-based indices? one-based indices 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 ;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!" (nix +lsp +treesitter) ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel ;;ocaml ; an objective camel
(org +roam2 +gnuplot +pomodoro +noter +present +pretty) ; organize your plain life in plain text (org +roam2 +gnuplot +pomodoro +noter +present +pretty) ; organize your plain life in plain text
;;php ; perl's insecure younger brother ;;php ; perl's insecure younger brother
@ -1413,8 +1280,8 @@ I like to have all my config in one place.
;;solidity ; do you need a blockchain? No. ;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables? ;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance. ;;terra ; Earth and Moon in alignment for performance.
web ; the tubes (web +lsp) ; the tubes
;;yaml ; JSON, but readable yaml ; JSON, but readable
;zig ; C, but simpler ;zig ; C, but simpler
:email :email
@ -1433,22 +1300,20 @@ I like to have all my config in one place.
:config :config
literate literate
(default +bindings +smartparens) (default +bindings +smartparens)
) )
#+end_src #+end_src
* Footnotes * Footnotes
[fn:1] Stolen from Tecosaur's [[https://git.tecosaur.net/tec/emacs-config][config]] [fn:1] Stolen from Tecosaur's [[https://git.tecosaur.net/tec/emacs-config][config]]
* Other Editing * Other Editing
** Lillypond ** Lilypond :COMMENT:noexport:
*** package
*** ob-lilypond
**** package
#+begin_src emacs-lisp :tangle "packages.el" #+begin_src emacs-lisp :tangle "packages.el"
(package! ob-lilypond (package! ob-lilypond
:recipe (:host github :type git :repo "mjago/ob-lilypond")) :recipe (:host github :type git :repo "mjago/ob-lilypond"))
#+end_src #+end_src
**** config
*** config
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package! ob-lilypond) (use-package! ob-lilypond)
(setq ly-arrange-mode t) (setq ly-arrange-mode t)