Compare commits

..

No commits in common. "d28cd4d88ec12c7b62f79b2fe9fc98041b5a5088" and "17d5fdf03bb372db3a268d20498c1873753e519d" have entirely different histories.

2 changed files with 85 additions and 157 deletions

View File

@ -36,16 +36,12 @@ Some basic settings for Emacs
Set the theme. Set the theme.
/Use something dark/ /Use something dark/
+I also prefer relative line numbers because of *evil* mode+ +I also prefer relative line numbers because of *evil* mode+
Relative line numbers don't seem to work, because of folding in Org-mode. Relative line numbers don't work, because of foling in Org-mode.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq doom-theme 'doom-homage-black) (setq doom-theme 'doom-homage-black)
(condition-case nil (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))
(error (set-face-attribute 'default nil :height 130)))
(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 #+end_src
** Doom splash screen ** Doom splash screen
I really don't like the widgets, and I think it takes longer to load so I get rid of them 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 #+begin_src emacs-lisp
@ -64,8 +60,6 @@ I want a non-ESC way to get back to normal mode:
(after! org-mode (map! :desc "Delete previous character in insert mode" :i "C-h" #'evil-delete-backward-char)) (after! org-mode (map! :desc "Delete previous character in insert mode" :i "C-h" #'evil-delete-backward-char))
(map! :desc "Increment number below or after cursor" :n "C-a" #'evil-numbers/inc-at-pt) (map! :desc "Increment number below or after cursor" :n "C-a" #'evil-numbers/inc-at-pt)
(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 k" #'evil-previous-visual-line)
#+end_src #+end_src
* Terminal setup * Terminal setup
@ -75,48 +69,13 @@ I like to just use bash:
"Lauch term with /bin/bash" "Lauch term with /bin/bash"
(interactive) (interactive)
(term "/bin/bash")) (term "/bin/bash"))
(map!
(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
#+begin_src emacs-lisp
(map! :leader (:prefix ("k" . "shell")
:desc "Start a bash shell" :desc "Start a bash shell"
:n "b" #'bash "<f6>" #'bash)
:desc "Start a dash shell"
:n "d" #'dash
:desc "Start a zsh shell"
:n "z" #'zsh
:desc "Start an elisp repl"
:n "e" #'+emacs-lisp/open-repl
:desc "Start a python repl"
:n "j" #'+python/open-repl))
#+end_src #+end_src
#+RESULTS:
,#+RESULTS:
I don't like the modeline in the terminal. I don't like the modeline in the terminal.
,#+begin_src emacs-lisp #+begin_src emacs-lisp
(add-hook 'term-mode-hook 'hide-mode-line-mode) (add-hook 'term-mode-hook 'hide-mode-line-mode)
#+end_src #+end_src
* Sage-math * Sage-math
@ -163,14 +122,6 @@ Because I sometimes use Fish or another shell, it's good to make sure bash is ru
:desc "Insert the current date into the buffer" :desc "Insert the current date into the buffer"
"i d" #'insert-current-date) "i d" #'insert-current-date)
#+end_src #+end_src
** Convert regex strings to rx
#+begin_src elisp :tangle packages.el
(package! xr)
#+end_src
#+begin_src elisp
(use-package! xr)
#+end_src
* Creating Diagrams and graphs * Creating Diagrams and graphs
** TODO set default values using org-babel's features for that. ** TODO set default values using org-babel's features for that.
@ -198,6 +149,8 @@ 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/user/age-preprocessor.zsh"
#!/usr/bin/env zsh #!/usr/bin/env zsh
@ -238,6 +191,7 @@ Emacs has better default values now, so it will ask to evaluate local variables.
* 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.
*** Finding Files with Ripgrep *** Finding Files with Ripgrep
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: agenda-efficient :CUSTOM_ID: agenda-efficient
@ -264,16 +218,6 @@ 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)
#+end_src #+end_src
*** Filtering the agenda
I don't want the agenda to show more than one day be default.
#+begin_src emacs-lisp
(after! org
(setq org-agenda-start-day "-8d")
(setq org-agenda-span 9))
#+end_src
#+RESULTS:
: 9
** Basic settings ** Basic settings
@ -334,20 +278,17 @@ Edna allows better dependency handling for todos and the like.
(org-habit-graph-column 1) (org-habit-graph-column 1)
(org-habit-preceding-days 10) (org-habit-preceding-days 10)
(org-habit-following-days 1) (org-habit-following-days 1)
(org-habit-show-habits-only-for-today t)) (org-habit-show-habits-only-for-today nil))
#+end_src #+end_src
** Anki editing in org-mode ** Anki editing in org-mode
Anki editor is a good one for large cards that need high complexity.
#+begin_src emacs-lisp :tangle packages.el #+begin_src emacs-lisp :tangle packages.el
(package! anki-editor) (package! anki-editor)
#+end_src #+end_src
*** inline-anki *** Configuring inline-anki
Inline anki is far better for small cards, and where it is best to maintain a /single source of truth/.
#+begin_src emacs-lisp :tangle packages.el #+begin_src emacs-lisp :tangle packages.el
(package! asyncloop) (package! asyncloop)
(package! inline-aki (package! inline-aki
@ -358,18 +299,6 @@ Inline anki is far better for small cards, and where it is best to maintain a /s
(setq inline-anki-note-type "Katex and Markdown Cloze") (setq inline-anki-note-type "Katex and Markdown Cloze")
(setq inline-anki-use-tags t) (setq inline-anki-use-tags t)
#+end_src #+end_src
**** Inline Anki symbol
By default, [[*inline-anki][Inline-anki]] uses _underscore_ to specify the card type.
This is okay, but I'd rather find something that isn't already used.
#+begin_src emacs-lisp
(add-to-list 'org-emphasis-alist '("." nil))
(setq inline-anki-emphasis-type "_")
#+end_src
#+RESULTS:
: _
** calfw Calendar View ** calfw Calendar View
#+begin_src emacs-lisp :tangle "packages.el" #+begin_src emacs-lisp :tangle "packages.el"
(package! calfw (package! calfw
@ -399,6 +328,15 @@ In order for editorconfig to do its thing, indentation by the lsp must be disabl
#+end_src #+end_src
#+begin_src emacs-lisp
(add-to-list 'org-roam-capture-templates
'("m" "Markdown" plain "" :target
(file+head "training-resources/content/${title}.md"
"---\ntitle: ${title}\nid: %<%Y-%m-%dT%H%M%S>\ncategory: \n---\n")
:unnarrowed t))
#+end_src
** Hugo base directory ** Hugo base directory
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq org-hugo-base-dir (concat org-directory (file-name-as-directory "website"))) (setq org-hugo-base-dir (concat org-directory (file-name-as-directory "website")))
@ -440,7 +378,10 @@ 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=/home/user/Documents -shell-escape -interaction nonstopmode %f"
"lualatex --output-directory=/home/user/Documents -shell-escape -interaction nonstopmode %f"))
)
#+end_src #+end_src
$x + 1 = 3$ $x + 1 = 3$
@ -585,35 +526,8 @@ We'll want a handy shortcut for this.
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: /home/user/.config/doom/ : /home/user/.config/doom/
*** Delete links from inline anki
#+begin_src elisp
(defun inline-anki-link-filter (link backend info)
"Rewrite links in export to preserve link text only"
(if (eq backend 'inline-anki--ox-anki-html-backend)
(save-match-data ; is usually a good idea
(and (string-match "\\[(?:\\[([^\\]\\[]*)\\])(?:\\[(.*)\\])?\\]" link)
(match-string 2 link)))))
#+end_src
#+RESULTS:
: inline-anki-link-filter
#+begin_src elisp
(add-to-list 'org-export-filter-link-functions
'inline-anki-link-filter)
#+end_src
#+begin_src elisp
#+end_src
#+RESULTS:
| inline-anki-link-filter |
** Automatic Citations with *citar* and *org-cite* ** Automatic Citations with *citar* and *org-cite*
:PROPERTIES:
:custom_id: citation-settings
:END:
Citar is a sweet little package for managing citations. Citar is a sweet little package for managing citations.
We want a general [[file:~/org/references.bib][bibliography file]], a [[file:~/Zotero/styles/][styles directory]], We want a general [[file:~/org/references.bib][bibliography file]], a [[file:~/Zotero/styles/][styles directory]],
and a default set of styles. and a default set of styles.
@ -752,9 +666,6 @@ Org-roam enables features essential to a Zettelkasten such as inter-ID linking.
:init (setq org-roam-directory "~/org/")) :custom :init (setq org-roam-directory "~/org/")) :custom
#+end_src #+end_src
I use several capture templates to make it easy to get notes into my various sections.
I only use [[#md-roam-config][Markdown]] in the team wiki, so I have it set to that.
I also have a capture template form my [[Website]]
#+begin_src emacs-lisp #+begin_src emacs-lisp
(after! org-roam (after! org-roam
:ensure t :ensure t
@ -763,29 +674,29 @@ I also have a capture template form my [[Website]]
`( `(
("d" "default" plain "%?" ("d" "default" plain "%?"
:target (file+head "%<%Y%m%d-%H%M%S>.org" :target (file+head "%<%Y%m%d-%H%M%S>.org"
"#+TITLE: ${title}\n") "#+TITLE: ${title}\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"css/retro.css\" />\n")
:unnarrowed t)
("s" "school" plain "%?"
:target (file+head "%<%Y%m%d-%H%M%S>.org"
"#+TITLE: ${title}
,#+LATEX_CLASS: student-apa7
,#+LATEX_OPTIONS: stu
,#+LATEX_HEADER: \\course{}
,#+LATEX_HEADER:\\authorsnames{Judah Sotomayor}
,#+LATEX_HEADER: \\authorsaffiliations{}
,#+LATEX_HEADER: \\professor{}
,#+LATEX_HEADER: \\usepackage{times}
,#+LATEX_HEADER: \\duedate{}
,#+OPTIONS: toc:nil\n")
:unnarrowed t) :unnarrowed t)
("c" "encrypted" plain "%?" ("c" "encrypted" plain "%?"
:target (file+head "%<%Y%m%d-%H%M%S>.sec.org.age" :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") "#+TITLE: ${title}\n#+FILETAGS: :secure:noexport:\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"css/retro.css\" />\n\n\n* No Export Below This Line")
:unnarrowed t)
("m" "Markdown" plain ""
:target
(file+head "training-resources/content/${title}.md"
"---\ntitle: ${title}\nid: %<%Y-%m-%dT%H%M%S>\ncategory: \n---\n")
:unnarrowed t)
("w" "Website" plain "%?"
:target
(file+head "website/src/posts/%<%Y%m%d-%H%M%S>.org"
"#+TITLE: ${title}\n#+DRAFT: true\n")
:unnarrowed t)))) :unnarrowed t))))
#+end_src
#+RESULTS: #+end_src
| d | default | plain | %? | :target | (file+head %<%Y%m%d-%H%M%S>.org #+TITLE: ${title} |
*** Keybinds *** Keybinds
Org-roam has many commands, of which I have bound the most important below. Org-roam has many commands, of which I have bound the most important below.
@ -857,7 +768,7 @@ I use =r= for this purpose. It is close and goes well with *roam*.
)))) ))))
#+END_SRC #+END_SRC
**** COMMENT Function to pull up org-roam ui **** Function to pull up org-roam ui
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun open-org-roam-ui () (defun open-org-roam-ui ()
(interactive) (interactive)
@ -922,28 +833,12 @@ Adding up values for one key is supported."
*** 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.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(after! org
(use-package! ox-extra (use-package! ox-extra
:after (org)
:config :config
(ox-extras-activate '(latex-header-blocks ignore-headlines))) (ox-extras-activate '(latex-header-blocks ignore-headlines))))
#+end_src #+end_src
*** McDowell Resume Template *** Resume template
This template is supposed to be the standard.
#+begin_src emacs-lisp
(add-to-list 'org-latex-classes
'("mcdowellcv"
"\\documentclass[]{mcdowellcv}
\\usepackage{amsmath}
\\usepackage[]{multicol}
\\usepackage[hidelinks]{hyperref}
[NO-DEFAULT-PACKAGES]
[NO-PACKAGES]"
("\\begin{cvsection}{%s}" "\\end{cvsection}")
("\\begin{cvsubsection}{%s}" "\\end{cvsubsection}")))
#+end_src
*** Altacv template :ARCHIVE:
This is no longer really used.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(add-to-list 'org-latex-classes (add-to-list 'org-latex-classes
'("altacv" "\\documentclass[10pt,a4paper,ragged2e,withhyper]{altacv} '("altacv" "\\documentclass[10pt,a4paper,ragged2e,withhyper]{altacv}
@ -989,6 +884,33 @@ This is no longer really used.
("\\cvsection{%s}" . "\\cvsection*{%s}") ("\\cvsection{%s}" . "\\cvsection*{%s}")
("\\cvevent{%s}" . "\\cvevent*{%s}"))) ("\\cvevent{%s}" . "\\cvevent*{%s}")))
#+end_src #+end_src
*** McDowell Resume Template
This template is supposed to be the standard.
#+begin_src emacs-lisp
(add-to-list 'org-latex-classes
'("mcdowellcv"
"\\documentclass[]{mcdowellcv}
\\usepackage{amsmath}
\\usepackage[]{multicol}
\\usepackage[hidelinks]{hyperref}
[NO-DEFAULT-PACKAGES]
[NO-PACKAGES]"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")
("\\cvsection{%s}" . "\\cvsection*{%s}")
("\\cvevent{%s}" . "\\cvevent*{%s}")))
#+end_src
** Better EViL keybinds
*** Remapping =g-j/k=
#+begin_src emacs-lisp
(map! :n "g j" #'evil-next-visual-line)
(map! :n "g k" #'evil-previous-visual-line)
#+end_src
* Company-mode for great autocompletes * Company-mode for great autocompletes
I don't really want company-mode to run on timeouts. I don't really want company-mode to run on timeouts.
I want VIM-like autocompletion, where =C-x o= and friends gives me my autocompletion. I want VIM-like autocompletion, where =C-x o= and friends gives me my autocompletion.
@ -1017,9 +939,6 @@ We need to bring in the correct SSH agent values, so that Emacs is aware of wher
#+end_src #+end_src
* Md-roam * Md-roam
:PROPERTIES:
:CUSTOM_ID: md-roam-config
:END:
** Packages ** Packages
#+begin_src emacs-lisp :tangle "packages.el" #+begin_src emacs-lisp :tangle "packages.el"
(package! md-roam (package! md-roam
@ -1038,6 +957,15 @@ 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) (setq md-roam-use-org-extract-ref nil)
(org-roam-db-autosync-mode 1)) (org-roam-db-autosync-mode 1))
#+end_src #+end_src
** COMMENT Capture template for documentation
#+begin_src emacs-lisp
(add-to-list 'org-roam-capture-templates
'("m" "Markdown" plain "" :target
(file+head "training-resources/content/${title}.md"
"---\ntitle: ${title}\nid: %<%Y-%m-%dT%H%M%S>\ncategory: \n---\n")
:unnarrowed t))
#+end_src
* Funny Stuff * Funny Stuff
** Spray ** Spray
#+begin_src emacs-lisp #+begin_src emacs-lisp

Binary file not shown.