Update 2023.12.20

This commit is contained in:
Phil Bajsicki 2023-12-20 03:08:40 +01:00
parent da23c12e2e
commit 87ad70fd1d
12 changed files with 385 additions and 875 deletions

View file

@ -1,8 +1,2 @@
(use-package! org-transclusion
:after org
:init
(map!
:map global-map "<F12>" #'org-transclusion-add
:leader
:prefix "n"
:desc "Org Transclusion Mode" "t" #'org-transclusion-mode))
(after! flyspell
(setq flyspell-lazy-idle-seconds 2))

View file

@ -20,8 +20,11 @@ A lot of these are swiped from [[https://gitlab.com/dwt1/configuring-emacs/][DT'
#+end_src
*** Global settings
#+begin_src emacs-lisp :tangle config.el
;; must be set before `org` is loaded
(setq org-directory "~/enc/org/")
(setq org-agenda-files (directory-files-recursively "~/enc/org/" ".org$"))
(setq global-auto-revert-mode t)
(org-edna-mode)
(setq auth-sources '("~/.authinfo"))
(setq-default backup-inhibited t)
@ -30,7 +33,12 @@ A lot of these are swiped from [[https://gitlab.com/dwt1/configuring-emacs/][DT'
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(setq-default indent-tabs-mode t)
#+END_SRC
#+RESULTS:
: t
*** Langtool
Note that for this functionality you do need some resources, namely:
@ -60,27 +68,17 @@ This command only sets up the path to your java runtime binary.
#+begin_src emacs-lisp :tangle config.el
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
(setq doom-font (font-spec :family "Iosevka")
doom-unicode-font (font-spec :family "Iosevka"))
(dolist (charset '(unicode))
(set-fontset-font (frame-parameter nil 'font)
charset (font-spec :family "Iosevka")))
#+end_src
#+RESULTS:
: t
**** Font Family List
This is a simple command that outputs the fonts you have available in Emacs.
#+begin_src emacs-lisp :results value format: pp
(print (font-family-list))
#+end_src
**** Ligature.el
#+begin_src emacs-lisp :tangle config.el
(ligature-set-ligatures 't '("www"))
;; Enable traditional ligature support in eww-mode, if the
;; `variable-pitch' face supports it
@ -123,17 +121,6 @@ This is a simple command that outputs the fonts you have available in Emacs.
(setq-default calendar-week-start-day 1)
#+END_SRC
** Package settings
*** Straight
#+begin_src emacs-lisp :tangle config.el
(setq straight-repository-branch "develop")
#+end_src
** emojify-mode
#+begin_src emacs-lisp :tangle no
(global-emojify-mode)
(global-emojify-mode-line-mode)
#+end_src
** Global Keybinds
Setting this here because I experiment with these occasionally and want them reset properly eaach time.
@ -142,26 +129,53 @@ Setting this here because I experiment with these occasionally and want them res
(global-set-key "\C-cu" 'browse-url-chrome)
#+end_src
#+RESULTS:
: browse-url-chrome
** org-mode
If you use `org' and don't want your org files in the default location below, change `org-directory'. It must be set before org loads!
Make .org file automatically open in org-mode.
*** org
**** Basic settings
** Package settings
*** Straight
#+begin_src emacs-lisp :tangle config.el
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(setq org-directory "~/enc/org/")
(setq straight-repository-branch "develop")
#+end_src
*** pdf-tools
#+begin_src emacs-lisp :tangle config.el
(use-package! pdf-tools
:defer t
:commands (pdf-loader-install)
:mode "\\.pdf\\'"
:bind (:map pdf-view-mode-map
("n" . pdf-view-next-line-or-next-page)
("p" . pdf-view-previous-line-or-previous-page)
("C-=" . pdf-view-enlarge)
("C--" . pdf-view-shrink))
:init (pdf-loader-install)
:config (add-to-list 'revert-without-query ".pdf"))
(add-hook 'pdf-view-mode-hook #'(lambda () (interactive (display-line-numbers-mode))))
#+end_src
#+RESULTS:
| doom--setq-evil-normal-state-cursor-for-pdf-view-mode-h | (lambda nil (interactive (display-line-numbers-mode))) | pdf-tools-enable-minor-modes |
*** emojify-mode
#+begin_src emacs-lisp :tangle no
(global-emojify-mode)
(global-emojify-mode-line-mode)
#+end_src
*** org-mode
If you use `org' and don't want your org files in the default location below, change `org-directory'. It must be set before org loads!
Make .org file automatically open in org-mode.
**** org
***** Basic settings
#+begin_src emacs-lisp :tangle config.el
(add-to-list 'auto-mode-alist
'("\\.org\\'" . org-mode))
(setq org-image-actual-width nil)
(setq org-enforce-todo-dependencies t)
(setq org-insert-heading-respect-content nil)
(setq org-reverse-note-order nil)
(setq org-show-following-heading t)
(setq org-show-hierarchy-above t)
(setq org-show-siblings nil)
(setq org-deadline-warning-days 7)
(setq org-blank-before-new-entry (quote ((heading . t)
(plain-list-item . nil))))
@ -175,24 +189,16 @@ Make .org file automatically open in org-mode.
(setq org-log-done (quote time))
(setq org-log-into-drawer t)
(setq org-catch-invisible-edits "smart")
(setq org-completion-use-ido t)
(setq org-use-property-inheritance nil)
(setq org-duration-format 'h:mm)
(setq org-hierarchical-todo-statistics t)
(org-align-tags t)
#+end_src
***** Automatically write =CREATED= properties in the =PROPERTIES= drawer:
#+BEGIN_SRC emacs-lisp
(org-expiry-insinuate)
;; not checked yet: (setq org-expiry-handler-function 'org-expiry-archive-subtree)
#+END_SRC
**** DISABLED Split lines?
Ensure that hitting ~M-<return>~ splits the line it's on. This is useful when I'm typing something long, and then decide to turn a paragraph into a list
#+begin_src emacs-lisp :tangle no
#+end_src
**** my-org-tree-to-indirect-buffer
#+RESULTS:
: t
***** my-org-tree-to-indirect-buffer
#+begin_quote
This beautiful piece of code was done by [[https://www.reddit.com/user/github-alphapapa][alphapapa]] and published on
[[https://www.reddit.com/r/orgmode/comments/dbsngi/finally_solving_the_lack_of_a_treeview_navigation/f26qpzr/][reddit]]. Its purpose is to provide more than one indirect buffer when
@ -203,7 +209,7 @@ Using an advice, the original function gets overwritten.
#+end_quote
--Karl Voit
#+BEGIN_SRC emacs-lisp
#+BEGIN_SRC emacs-lisp :tangle config.el
(defun my-org-tree-to-indirect-buffer (&optional arg)
"Create indirect buffer and narrow it to current subtree.
The buffer is named after the subtree heading, with the filename
@ -234,7 +240,7 @@ selected instead of creating a new buffer."
#+END_SRC
**** my-org-retrieve-url-from-point → C-c o
***** my-org-retrieve-url-from-point → C-c o
#+begin_quote
I wanted a function that does not open an web URL within Org mode (via
=C-c C-o=) but rather copies its URL to the system clipboard for
@ -262,16 +268,18 @@ Lucky me, I found the ready-to-use solution [[https://emacs.stackexchange.com/a/
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-c o") 'my-org-retrieve-url-from-point)
#+END_SRC
**** org-element cache verification
***** org-element cache verification
2022-01-16: This has a positive impact on the performance as long as
you would not need it for consistency warnings. Re-enable it if
something is fishy and you want the self-check functionality again.
#+BEGIN_SRC emacs-lisp
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-element--cache-self-verify nil)
#+END_SRC
**** Theming
#+RESULTS:
***** Theming
:PROPERTIES:
:ID: b663a9ef-f08e-436f-913d-98e4234cf2cd
:END:
@ -285,7 +293,7 @@ something is fishy and you want the self-check functionality again.
#+end_src
https://www.emacswiki.org/emacs/TruncateLines =M-x toggle-truncate-lines=
#+BEGIN_SRC emacs-lisp
(setq-default truncate-lines t)
;; (setq-default truncate-lines t)
(setq org-src-fontify-natively t)
(setq org-hide-leading-stars t)
@ -294,12 +302,12 @@ https://www.emacswiki.org/emacs/TruncateLines =M-x toggle-truncate-lines=
(setq org-agenda-dim-blocked-tasks nil);; show blocked tasks
#+END_SRC
***** Set the width of inline images:
****** Set the width of inline images:
#+BEGIN_SRC emacs-lisp
(setq org-image-actual-width '(600))
#+END_SRC
***** org-modern
****** org-modern
#+begin_src emacs-lisp :tangle config.el
(modify-all-frames-parameters
'((right-divider-width . 2)
@ -337,13 +345,13 @@ https://www.emacswiki.org/emacs/TruncateLines =M-x toggle-truncate-lines=
#+end_src
**** Dependencies
***** Dependencies
#+begin_src emacs-lisp :tangle config.el
(setq-default org-enforce-todo-dependencies t)
(setq org-enforce-todo-checkbox-dependencies t)
#+END_SRC
*** Hooks
**** append and update time-stamps for =Time-stamp: <>= in headers:
**** Hooks
***** append and update time-stamps for =Time-stamp: <>= in headers:
#+begin_src emacs-lisp :tangle config.el
(add-hook 'write-file-hooks 'time-stamp)
(add-hook 'org-mode-hook
@ -357,7 +365,7 @@ https://www.emacswiki.org/emacs/TruncateLines =M-x toggle-truncate-lines=
;; auto-fill mode on
(auto-fill-mode 1)))
#+end_src
*** Keybinds
**** Keybinds
#+begin_src emacs-lisp :tangle config.el
(global-set-key "\C-cl" 'org-store-link)
@ -365,7 +373,7 @@ https://www.emacswiki.org/emacs/TruncateLines =M-x toggle-truncate-lines=
(global-set-key "\C-cne" 'elgantt-open)
(global-set-key "\C-cnn" 'org-capture)
#+end_src
**** Timestamp keybinds
***** Timestamp keybinds
Inserts timestamps in the proper format. ~'(16)~ stands for two universal arguments, keeping the command from prompting for the time. Two keybinds here, which insert an active or inactive timestamp.
#+begin_src emacs-lisp :tangle config.el
(global-set-key "\C-cia" '(lambda ()(interactive)
@ -374,10 +382,8 @@ Inserts timestamps in the proper format. ~'(16)~ stands for two universal argume
(org-time-stamp-inactive '(16))))
#+end_src
*** Todo keywords
**** Todo keywords
#+begin_src emacs-lisp :tangle config.el
(after! org
(setq org-todo-keywords
'((sequence
"INBOX(i)"
@ -404,7 +410,7 @@ Inserts timestamps in the proper format. ~'(16)~ stands for two universal argume
("WAIT" :foreground "yellow" :weight bold)
("HOLD" :foreground "orange" :weight bold)
("DONE" :foreground "green" :weight bold)
("KILL" :foreground "grey" :weight bold))))
("KILL" :foreground "grey" :weight bold)))
#+end_src
#+RESULTS:
@ -430,7 +436,9 @@ Change font for DONE tasks
(:foreground "LightSalmon" :strike-through t)))))
#+END_SRC
*** Automated timestamps in headings
**** Automated timestamps in headings
I need this because hitting the above is tedious.
For the files whose paths match the strings in the function, it will advise the org-insert-heading function to insert an inactive timestamp into the new heading.
@ -459,7 +467,7 @@ This turns making new entries from ~C-<return> C-i i~ into just ~C-<return>~. Mu
| lambda | nil | (if (or (string-match journal buffer-file-name) (string-match money buffer-file-name) (string-match therapy buffer-file-name)) (progn (org-timestamp-inactive '(16)) (newline)) (progn (signal 'wrong-type-argument (list 'symbolp ''org-insert-heading-hook)))) |
*** Capture templates
**** Capture templates
#+begin_src emacs-lisp :tangle config.el
(setq org-capture-templates '(("t" "inbox" entry (file+headline "~/enc/org/phil.org" "Inbox") "* TODO %i%?")
@ -480,7 +488,7 @@ This turns making new entries from ~C-<return> C-i i~ into just ~C-<return>~. Mu
:END:")))
#+end_src
*** preserving all heading levels when archiving
**** preserving all heading levels when archiving
Karl Voit:
@ -532,7 +540,7 @@ Preserve the hierarchy when archiving: [[https://fuco1.github.io/2017-04-20-Arch
(org-end-of-subtree t t)
(org-paste-subtree level tree-text))))))))
#+END_SRC
*** my-dired-insert-lfile-link-list-to-other-org-window()
**** my-dired-insert-lfile-link-list-to-other-org-window()
#+begin_quote
| 2022-06-20 | I had this idea and implemented it |
@ -583,7 +591,7 @@ This results in a list that gets added to the Org-mode buffer similar to:
#+end_src
*** link colors
**** link colors
#+begin_quote
| 2021-01-11 | moved commands to =my-set-linkcolors= and defined 3 categories of colors |
@ -744,9 +752,19 @@ When some code generates an image file, display it in the results:
#+END_SRC
** org-export
*** LaTeX
****
** org-export*** LaTeX
#+begin_src emacs-lisp :tangle config.el
(with-eval-after-load 'ox-latex
(add-to-list 'org-latex-classes
'("memoir"
"\\documentclass{memoir}"
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))))
#+end_src
#+RESULTS:
** org-super-links
@ -783,7 +801,7 @@ Replace org-store-link and org-insert-link with org-super-links alternatives.
: org-super-links-delete-link
** org-super-agenda
#+begin_src emacs-lisp :tangle config.el
#+begin_src emacs-lisp :tangle no
(org-super-agenda-mode)
(setq super-agenda-groups
'(;; Each group has an implicit boolean OR operator between its selectors.
@ -830,10 +848,7 @@ Replace org-store-link and org-insert-link with org-super-links alternatives.
:order 110
)
(:name "Waiting…" :todo "WAIT" :order 118) ; Set order of this section
;; After the last group, the agenda will display items that didn't
;; match any of these groups, with the default order position of 99
))
)
(defun my-super-agenda()
"generates my super-agenda"
@ -842,8 +857,7 @@ Replace org-store-link and org-insert-link with org-super-links alternatives.
(let
((org-super-agenda-groups super-agenda-groups))
(org-agenda nil "a")
)
)
))
#+end_src
@ -957,29 +971,6 @@ Straight from Karl Voit's config.
:unnarrowed)))
#+end_src
** org-elgantt
#+begin_src emacs-lisp :tangle config.el
(add-to-list 'load-path "~/.emacs.d/.local/straight/repos/elgantt/")
(setq elgantt-header-type 'outline
elgantt-draw-overarching-headers t
elgantt-insert-header-even-if-no-timestamp nil
elgantt-scroll-to-current-month-at-startup t)
(setq elgantt-user-set-color-priority-counter 0)
(setq elgantt-custom-header-line
'((:left ((:prop date-at-point
:padding 25)
(:prop todo
:padding 30)))
(:center ((:prop headline)))
(:right ((:prop hashtag
:padding 40
:text-props (face (:background "red")))))))
#+end_src
** org-agenda
*** Keybinds
#+begin_src emacs-lisp :tangle config.el
@ -990,11 +981,8 @@ Straight from Karl Voit's config.
(define-key org-agenda-map "a" 'org-agenda)
#+end_src
*** Settings
#+begin_src emacs-lisp :tangle config.el
(setq org-agenda-files (directory-files-recursively "~/enc/org" "org$"))
(setq org-agenda-start-day nil
org-agenda-span '14
org-agenda-dim-blocked-tasks 'invisible
@ -1018,22 +1006,11 @@ Straight from Karl Voit's config.
(quote (("x" "Phil's view" agenda ""
((org-agenda-prefix-format " %i %-12:c %s %t "))))))
#+end_src
#+RESULTS:
| x | Phil's view | agenda | | ((org-agenda-prefix-format %i %-12:c %s %t )) |
**** From Karl Voit
Keep tasks with dates off the global todo lists:
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-todo-ignore-with-date nil)
#+END_SRC
Allow deadlines which are due soon to appear on the global todo lists:
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-todo-ignore-deadlines (quote far))
#+END_SRC
Keep tasks scheduled in the future off the global todo lists
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-todo-ignore-scheduled (quote future))
#+END_SRC
Remove completed deadline tasks from the agenda view
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-skip-deadline-if-done t)
@ -1059,22 +1036,11 @@ show state changes in log-mode of agenda
(setq org-agenda-log-mode-items (quote (state)))
#+END_SRC
http://orgmode.org/worg/org-faq.html
#+BEGIN_SRC emacs-lisp :tangle config.el
;(setq org-agenda-skip-additional-timestamps-same-entry t)
(setq org-agenda-skip-additional-timestamps-same-entry nil)
#+END_SRC
do not search for time in heading when displaying a date-stamp
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-search-headline-for-time nil)
#+END_SRC
open agenda in same buffer, full size
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-window-setup 'current-window)
#+END_SRC
add diary entries in agenda view
http://orgmode.org/org.html#Weekly_002fdaily-agenda
#+BEGIN_SRC emacs-lisp :tangle config.el
@ -1110,11 +1076,6 @@ Non-nil means skip timestamp line if same entry shows because of deadline.
(setq org-agenda-skip-timestamp-if-deadline-is-shown t)
#+END_SRC
Agenda sorting functions
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-cmp-user-defined 'bh/agenda-sort)
#+END_SRC
Enable display of the time grid so we can see the marker for the current time
#+BEGIN_SRC emacs-lisp :tangle no
(setq org-agenda-time-grid
@ -1124,24 +1085,6 @@ Enable display of the time grid so we can see the marker for the current time
(800 1000 1200 1400 1600 1800 2000)))
#+END_SRC
Display tags farther right
#+BEGIN_SRC emacs-lisp :tangle config.el
;;(setq org-agenda-tags-column -102)
(setq org-tags-column -101); for powerplantwin 23" TFT turned 90
; degrees; should *not* differ between
; systems! Otherwise Org-files gets
; re-formatted after switching
; system
;;(when (my-system-type-is-windows)
;; ;;(setq org-agenda-tags-column -103);; for 23" TFT turned 90 degrees
;; (setq org-agenda-tags-column -117);; for 24" TFT turned 90 degrees
;; )
;;(when (my-system-is-sting)
;; (setq org-agenda-tags-column -117);; -117 for 23" TFT sting, rotated 90°
;; )
(setq org-agenda-tags-column (- (- (window-total-width) 3))) ;; total width minus 3
#+END_SRC
Sticky agendas remain opened in the background so that you don't
need to regenerate them each time you hit the corresponding
keystroke. This is a big time saver.
@ -1158,16 +1101,9 @@ time.
(define-key org-agenda-mode-map (kbd "C-n") 'my-scroll-up-half)
#+END_SRC
From [[https://www.reddit.com/r/orgmode/comments/cc5vz5/how_to_avoid_duplicates_in_orgsuperagenda/][reddit]] I got the settings that deadlines are not shown when
SCHEDULED is set:
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-skip-scheduled-if-deadline-is-shown nil)
;;(setq org-agenda-skip-deadline-prewarning-if-scheduled t)
#+END_SRC
From [[https://www.reddit.com/r/orgmode/comments/e4stk2/adding_a_separator_line_between_days_in_emacs/][reddit]]: Adding a separator line between days.
Disabled 2020-01-03 because I usually see one single day only.
#+BEGIN_SRC emacs-lisp :tangle no
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-agenda-format-date (lambda (date) (concat "\n"
(make-string (window-width) 9472)
"\n"
@ -1175,79 +1111,14 @@ Disabled 2020-01-03 because I usually see one single day only.
#+END_SRC
**** habits
«Org has the ability to track the consistency of a special category of
TODOs, called “habits”.»
- http://orgmode.org/manual/Tracking-your-habits.html
- http://orgmode.org/worg/org-tutorials/tracking-habits.html
- global STYLE property values for completion
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-global-properties (quote (("STYLE_ALL" . "habit"))))
#+END_SRC
- position the habit graph on the agenda to the right of the default
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-habit-graph-column 100)
#+END_SRC
**** my-org-obfuscate-agenda-item
:PROPERTIES:
:CREATED: [2018-09-01 Sat 14:38]
:END:
This was originally developed by [[https://github.com/alphapapa][alphapapa]] as =org-agenda-sharpie()=
and published on [[https://github.com/alphapapa/org-super-agenda/issues/43#issuecomment-403268926][GitHub]].
When invoked on an agenda item, you can enter some text and the agenda
item gets temporarily overwritten. You can use this to obfuscate or
"overwrite" agenda entries before making a screenshot for public use.
#+BEGIN_SRC emacs-lisp :tangle config.el
(defun org-agenda-sharpie ()
"Censor the text of items in the agenda."
(interactive)
(let (regexp old-heading new-heading properties)
;; Save face properties of line in agenda to reapply to changed text
(setq properties (text-properties-at (point)))
;; Go to source buffer
(org-with-point-at (org-find-text-property-in-string 'org-marker
(buffer-substring (line-beginning-position)
(line-end-position)))
;; Save old heading text and ask for new text
(line-beginning-position)
(unless (org-at-heading-p)
;; Not sure if necessary
(org-back-to-heading))
(setq old-heading (when (looking-at org-complex-heading-regexp)
(match-string 4))))
(unless old-heading
(error "Can't find heading. How can this be?"))
;; Back to agenda buffer
(setq new-heading (read-from-minibuffer "Overwrite visible heading with: "))
(add-text-properties 0 (length new-heading) properties new-heading)
;; Replace agenda text
(save-excursion
(let ((inhibit-read-only t))
(goto-char (line-beginning-position))
(when (search-forward old-heading (line-end-position))
(replace-match new-heading 'fixedcase 'literal))))))
#+END_SRC
*** Exports
Export subtree (by default) instead of whole buffer:
http://orgmode.org/manual/The-Export-Dispatcher.html
#+BEGIN_SRC emacs-lisp :tangle config.el
#+BEGIN_SRC emacs-lisp :tangle no
(setq org-export-initial-scope 'subtree)
#+END_SRC
#+RESULTS:
: subtree
With a densly interconnected Org knowledge-base (e.g., see
=org-super-links=) and a "few but large Org mode files" in combination
with "I'm using export methods on sub-heading levels mostly", you end
@ -1262,173 +1133,7 @@ part of the export result get broken because of a typo or similar.
#+BEGIN_SRC emacs-lisp :tangle config.el
(setq org-export-with-broken-links t)
#+END_SRC
**** LaTeX classes
http://orgmode.org/org.html#Header-and-sectioning
BEGIN of LaTeX class definitions
#+BEGIN_SRC emacs-lisp :tangle config.el
(with-eval-after-load 'ox-latex
;;(message (concat "################################################\norg-latex-classes = [" org-latex-classes "]"))
#+END_SRC
Customized «scrartcl»
#+BEGIN_SRC emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("scrartcl"
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
«scrartclsmall»
- 2014-10-16: does NOT work yet. Most probably because savetrees does not work well with inputenc
#+BEGIN_SRC emacs-lisp
(add-to-list 'org-latex-classes
'("scrartclsmall"
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}\\usepackage\{savetrees\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
«detego»
- 2017-09-13:
#+BEGIN_SRC emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("detego"
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
\\usepackage\{helvet\}
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/Detego-Logo-209x41.png}}} \\pagestyle{scrheadings} %% Logo in header
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
%% colorful headings:
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
\\usepackage\{enumitem\}
\\setlist\{noitemsep\} %% kills the space between items
"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
«rise»
- 2019-12-16
#+BEGIN_SRC emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("rise"
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
\\usepackage\{helvet\}
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/RISE_logo_202x500.jpeg}}} \\pagestyle{scrheadings} %% Logo in header
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
%% colorful headings:
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
\\usepackage\{enumitem\}
\\setlist\{noitemsep\} %% kills the space between items
"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
«lyrics»
- 2017-03-23: 2-column layout sans-serif for lyrics
#+BEGIN_SRC emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("lyrics"
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
«lyrics2» 2 column version of «lyrics»
#+BEGIN_SRC emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("lyrics2"
"\\documentclass\[a4paper,parskip=half,twocolumn\]\{scrartcl\}
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
#+END_SRC
Adding TUGRAZ letter export class format
- compare: http://orgmode.org/worg/org-tutorials/org-latex-export.html
#+BEGIN_SRC emacs-lisp :tangle no
(add-to-list 'org-export-latex-classes
'("TUGRAZletter"
"\\documentclass{scrlttr2}
\\usepackage{tugrazletter}
[NO-DEFAULT-PACKAGES]
[EXTRA]"
("\\section{%s}" . "\\section*{%s}")))
#+END_SRC
#+begin_src emacs-lisp :tangle config.el
(add-to-list 'org-latex-classes
'("memoirbook"
"\\documentclass[a5paper,12pt]{memoir}"
;; "\\semiisopage[8]"
;; "\\hypersetup{colorlinks=true,linkcolor={Blue},urlcolor={Blue}}" ;; genera un problema al exportar
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
'(org-export-latex-default-class "memoir")
#+end_src
END of LaTeX class definitions
#+BEGIN_SRC emacs-lisp :tangle config.el
);; with-eval-after-load
#+END_SRC
**** ox-asciidoc - Export to AsciiDoc
https://github.com/yashi/org-asciidoc - «An Org Mode Exporter Backend For AsciiDoc»
#+BEGIN_SRC emacs-lisp :tangle config.el
(use-package ox-asciidoc
;;:ensure t ;; install package if not found OR: (setq use-package-always-ensure t)
:defer 110
)
#+END_SRC
**** Org-Reveal - generate nice presentations out of Org-mode
https://github.com/yjwen/org-reveal
#+BEGIN_QUOTE
- =Reveal.js= is a tool for creating good-looking HTML presentations, authored by Hakim El Hattab.
@ -1442,71 +1147,10 @@ https://github.com/yjwen/org-reveal
:ensure t
;;:if (my-system-type-is-windows)
:defer 110
:config
;;(setq org-reveal-root "file:///d:/reveal.js")
(cond ((my-system-type-is-gnu)
(setq org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js")
(setq org-reveal-extra-css "file:///home/vk/.emacs.d/bin/reveal_theme_night_local.css"))
((string-equal system-name "GRZN17009")
(setq org-reveal-root "file:///C:/Users/karl.voit/.emacs.d/bin/reveal.js/")
(setq org-reveal-extra-css "file:///C:/Users/karl.voit/.emacs.d/bin/reveal_theme_night_local.css"))
((string-equal system-name "cosmo")
(setq org-reveal-root "file:///C:/Users/John/AppData/Roaming/.emacs.d/bin/reveal.js/")
(setq org-reveal-extra-css "file:///C:/Users/John/AppData/Roaming/.emacs.d/bin/reveal_theme_night_local.css"))
(t
(setq org-reveal-root "http://cdn.jsdelivr.net/reveal.js/3.0.0/"))
)
;; my preferred defaults:
(setq org-reveal-hlevel 2)
(setq org-reveal-postamble "<p> Created by Karl. </p>")
(setq org-reveal-center nil)
(setq org-reveal-progress t)
(setq org-reveal-history nil)
(setq org-reveal-control t)
(setq org-reveal-keyboard t)
(setq org-reveal-overview nil)
(setq org-reveal-transition "default")
;; - transitions:
;; - default
;; - cube
;; - page
;; - concave
;; - zoom
;; - linear
;; - fade
;; - none
(setq org-reveal-theme "night")
;; - Styles:
;; - black (default)
;; - white
;; - league
;; - gray one
;; - sky
;; - nice bright one
;; - beige
;; - nice bright one
;; - simple
;; - bright
;; - serif
;; - old school
;; - blood
;; - cool!
;; - *night*
;; - very nice
;; - moon
;; - solarized
)
:config)
#+END_SRC
#+RESULTS:
: t
**** my-org-copy-region-as-markdown
| 2022-05-03 | initial setup and disabled because of error |
I've found this nugget on http://mbork.pl/2021-05-02_Org-mode_to_Markdown_via_the_clipboard.
@ -1600,9 +1244,6 @@ works *offline* (without cloud or network) and amazingly well for English.
)
#+END_SRC
** hledger-mode
#+begin_src emacs-lisp :tangle config.el
;; To open files with .journal extension in hledger-mode
@ -1719,17 +1360,17 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
;;(spell +flyspell) ; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools
;;ansible
ansible
;;biblio ; Writes a PhD for you (citation needed)
;;collab ; buffers with friends
;;debugger ; FIXME stepping through code, to help you add bugs
debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
docker
editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
@ -1755,7 +1396,7 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
clojure ; java with a lisp
(clojure +lsp) ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
@ -1781,8 +1422,8 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
;;idris ; a language you can depend on
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
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
(julia +lsp) ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
@ -1792,11 +1433,11 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
org ; organize your plain life in plain text
(org +dragndrop +pandoc +pretty +gnuplot +roam2) ; organize your plain life in plain text
php ; perl's insecure younger brother
plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
(python +lsp) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
raku ; the artist formerly known as perl6
@ -1806,14 +1447,14 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
(sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
web ; the tubes
(web +lsp) ; the tubes
yaml ; JSON, but readable
zig ; C, but simpler
(zig +lsp) ; C, but simpler
:email
;;(mu4e +org +gmail)
@ -1830,10 +1471,12 @@ This is the state as of <2023-08-12 Sat>. I'm sure Doom Emacs will expand/ chang
:config
;;literate
(default +bindings +smartparens))
(default +bindings))
#+end_src
#+RESULTS:
* packages.el
** Info from the included (default) comments:
To install a package with Doom you must declare them here and run 'doom sync' on the command line, then restart Emacs for the changes to take effect -- or use 'M-x doom/reload'.
@ -1926,13 +1569,18 @@ release. You can ~unpin!~ them. Note ~(unpin! t)~ unpins all the packages and ca
#+begin_src emacs-lisp :tangle packages.el
;; (package! helm-xref)
#+end_src
*** pdf-tools
#+begin_src emacs-lisp :tangle packages.el
(package! pdf-tools)
#+end_src
*** Org
#+begin_src emacs-lisp :tangle packages.el
;; Fix for org-roam link issue
(package! org :pin "ca873f7")
(package! org-auto-tangle)
(package! ox-slack)
(package! ox-tufte)
(package! org-special-block-extras)
(package! org-transclusion)
(package! org-modern)
(package! org-ql)

View file

@ -1,7 +1,10 @@
(setq user-full-name "Phil Bajsicki")
;; must be set before `org` is loaded
(setq org-directory "~/enc/org/")
(setq org-agenda-files (directory-files-recursively "~/enc/org/" ".org$"))
(setq global-auto-revert-mode t)
(org-edna-mode)
(setq auth-sources '("~/.authinfo"))
(setq-default backup-inhibited t)
@ -10,6 +13,7 @@
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(setq-default indent-tabs-mode t)
(setq langtool-java-bin "/usr/bin/java")
@ -23,12 +27,6 @@
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
(setq doom-font (font-spec :family "Iosevka")
doom-unicode-font (font-spec :family "Iosevka"))
(dolist (charset '(unicode))
(set-fontset-font (frame-parameter nil 'font)
charset (font-spec :family "Iosevka")))
(ligature-set-ligatures 't '("www"))
;; Enable traditional ligature support in eww-mode, if the
;; `variable-pitch' face supports it
@ -60,20 +58,34 @@
(setq x-stretch-cursor t)
(setq column-number-mode t)
(setq straight-repository-branch "develop")
(global-set-key "\C-g" 'keyboard-quit)
(global-set-key "\C-cu" 'browse-url-chrome)
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(setq org-directory "~/enc/org/")
(setq straight-repository-branch "develop")
(use-package! pdf-tools
:defer t
:commands (pdf-loader-install)
:mode "\\.pdf\\'"
:bind (:map pdf-view-mode-map
("n" . pdf-view-next-line-or-next-page)
("p" . pdf-view-previous-line-or-previous-page)
("C-=" . pdf-view-enlarge)
("C--" . pdf-view-shrink))
:init (pdf-loader-install)
:config (add-to-list 'revert-without-query ".pdf"))
(add-hook 'pdf-view-mode-hook #'(lambda () (interactive (display-line-numbers-mode))))
(add-to-list 'auto-mode-alist
'("\\.org\\'" . org-mode))
(setq org-image-actual-width nil)
(setq org-enforce-todo-dependencies t)
(setq org-insert-heading-respect-content nil)
(setq org-reverse-note-order nil)
(setq org-show-following-heading t)
(setq org-show-hierarchy-above t)
(setq org-show-siblings nil)
(setq org-deadline-warning-days 7)
(setq org-blank-before-new-entry (quote ((heading . t)
(plain-list-item . nil))))
@ -87,12 +99,40 @@
(setq org-log-done (quote time))
(setq org-log-into-drawer t)
(setq org-catch-invisible-edits "smart")
(setq org-completion-use-ido t)
(setq org-use-property-inheritance nil)
(setq org-duration-format 'h:mm)
(setq org-hierarchical-todo-statistics t)
(org-align-tags t)
(defun my-org-tree-to-indirect-buffer (&optional arg)
"Create indirect buffer and narrow it to current subtree.
The buffer is named after the subtree heading, with the filename
appended. If a buffer by that name already exists, it is
selected instead of creating a new buffer."
(interactive "P")
(let* ((new-buffer-p)
(pos (point))
(buffer-name (let* ((heading (org-get-heading t t))
(level (org-outline-level))
(face (intern (concat "outline-" (number-to-string level))))
(heading-string (propertize (org-link-display-format heading)
'face face)))
(concat heading-string "::" (buffer-name))))
(new-buffer (or (get-buffer buffer-name)
(prog1 (condition-case nil
(make-indirect-buffer (current-buffer) buffer-name 'clone)
(error (make-indirect-buffer (current-buffer) buffer-name)))
(setq new-buffer-p t)))))
(switch-to-buffer new-buffer)
(when new-buffer-p
;; I don't understand why setting the point again is necessary, but it is.
(goto-char pos)
(rename-buffer buffer-name)
(org-narrow-to-subtree))))
(advice-add 'org-tree-to-indirect-buffer :override 'my-org-tree-to-indirect-buffer)
(setq org-element--cache-self-verify nil)
(modify-all-frames-parameters
'((right-divider-width . 2)
@ -153,7 +193,6 @@
(global-set-key "\C-cii" '(lambda () (interactive)
(org-time-stamp-inactive '(16))))
(after! org
(setq org-todo-keywords
'((sequence
"INBOX(i)"
@ -180,7 +219,7 @@
("WAIT" :foreground "yellow" :weight bold)
("HOLD" :foreground "orange" :weight bold)
("DONE" :foreground "green" :weight bold)
("KILL" :foreground "grey" :weight bold))))
("KILL" :foreground "grey" :weight bold)))
(add-hook 'org-insert-heading-hook
(lambda ()
@ -224,6 +263,15 @@
(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)
(with-eval-after-load 'ox-latex
(add-to-list 'org-latex-classes
'("memoir"
"\\documentclass{memoir}"
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))))
(defun org-super-links-quick-related ()
(interactive)
(let ((org-super-links-link-prefix "\nrelated: "))
@ -242,67 +290,6 @@
(global-set-key (kbd "C-c l r") 'org-super-links-quick-related)
(global-set-key (kbd "C-c l d") 'org-super-links-delete-link)
(org-super-agenda-mode)
(setq super-agenda-groups
'(;; Each group has an implicit boolean OR operator between its selectors.
(:name "Today" ; Optionally specify section name
:time-grid t ; Items that appear on the time grid
)
(:name "DEADLINES" :deadline t :order 1)
(:name "Focus | [A]" :tag "Focus" :priority "A" :order 2 :face (:append t :weight bold))
;; (:name "Important" :priority "A" :order 4)
;; (:name "Habits" :habit t :order 3)
;; (:name "Shopping" :tag "Besorgung" :order 8)
;; Boolean AND group matches items that match all subgroups
;; :and (:tag "shopping" :tag "@town")
;; Multiple args given in list with implicit OR
;; :tag ("food" "dinner"))
;; :habit t
;; :tag "personal")
(:name "Started" :and (:todo "TASK" :not (:tag "someday") :not (:priority "C") :not (:priority "B") ) :order 10)
;;(: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")))
;;(:name "BWG" :tag "@BWG" :order 16)
;; (:name "read" :tag "2read" :order 22)
;; Groups supply their own section names when none are given
(:name "Someday" :and ( :todo ("WAIT" "HOLD" "INBOX") :tag "someday" :not (:priority "C") :not (:priority "B"))
;; 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 25)
;; "other items": an auto-group with order 99 ----------------------------
(:name "Prio ≤ B" :priority<= "B"
;; Show this section after "Today" and "Important", because
;; their order is unspecified, defaulting to 0. Sections
;; are displayed lowest-number-first.
:order 105)
(:name "reward"
:tag ("reward" "lp")
:order 110
)
(:name "Waiting…" :todo "WAIT" :order 118) ; Set order of this section
;; After the last group, the agenda will display items that didn't
;; match any of these groups, with the default order position of 99
))
(defun my-super-agenda()
"generates my super-agenda"
(interactive)
(org-super-agenda-mode)
(let
((org-super-agenda-groups super-agenda-groups))
(org-agenda nil "a")
)
)
(org-wild-notifier-mode)
(setq org-wild-notifier-alert-time '(10))
@ -347,32 +334,12 @@
:empty-lines 1
:unnarrowed)))
(add-to-list 'load-path "~/.emacs.d/.local/straight/repos/elgantt/")
(setq elgantt-header-type 'outline
elgantt-draw-overarching-headers t
elgantt-insert-header-even-if-no-timestamp nil
elgantt-scroll-to-current-month-at-startup t)
(setq elgantt-user-set-color-priority-counter 0)
(setq elgantt-custom-header-line
'((:left ((:prop date-at-point
:padding 25)
(:prop todo
:padding 30)))
(:center ((:prop headline)))
(:right ((:prop hashtag
:padding 40
:text-props (face (:background "red")))))))
(global-set-key "\C-ca" 'org-agenda)
(define-prefix-command 'org-agenda-map)
(global-set-key "\C-a" 'org-agenda-map)
(define-key org-agenda-map "n" 'org-agenda-capture)
(define-key org-agenda-map "a" 'org-agenda)
(setq org-agenda-files (directory-files-recursively "~/enc/org" "org$"))
(setq org-agenda-start-day nil
org-agenda-span '14
org-agenda-dim-blocked-tasks 'invisible
@ -396,12 +363,6 @@
(quote (("x" "Phil's view" agenda ""
((org-agenda-prefix-format " %i %-12:c %s %t "))))))
(setq org-agenda-todo-ignore-with-date nil)
(setq org-agenda-todo-ignore-deadlines (quote far))
(setq org-agenda-todo-ignore-scheduled (quote future))
(setq org-agenda-skip-deadline-if-done t)
(setq org-agenda-skip-scheduled-if-done t)
@ -410,13 +371,8 @@
(setq org-agenda-log-mode-items (quote (state)))
;(setq org-agenda-skip-additional-timestamps-same-entry t)
(setq org-agenda-skip-additional-timestamps-same-entry nil)
(setq org-agenda-search-headline-for-time nil)
(setq org-agenda-window-setup 'current-window)
(setq org-agenda-include-diary t)
(setq org-agenda-repeating-timestamp-show-all t)
@ -433,170 +389,16 @@
(setq org-agenda-skip-timestamp-if-deadline-is-shown t)
(setq org-agenda-cmp-user-defined 'bh/agenda-sort)
;;(setq org-agenda-tags-column -102)
(setq org-tags-column -101); for powerplantwin 23" TFT turned 90
; degrees; should *not* differ between
; systems! Otherwise Org-files gets
; re-formatted after switching
; system
;;(when (my-system-type-is-windows)
;; ;;(setq org-agenda-tags-column -103);; for 23" TFT turned 90 degrees
;; (setq org-agenda-tags-column -117);; for 24" TFT turned 90 degrees
;; )
;;(when (my-system-is-sting)
;; (setq org-agenda-tags-column -117);; -117 for 23" TFT sting, rotated 90°
;; )
(setq org-agenda-tags-column (- (- (window-total-width) 3))) ;; total width minus 3
(define-key org-agenda-mode-map (kbd "C-p") 'my-scroll-down-half)
(define-key org-agenda-mode-map (kbd "C-n") 'my-scroll-up-half)
(setq org-agenda-skip-scheduled-if-deadline-is-shown nil)
;;(setq org-agenda-skip-deadline-prewarning-if-scheduled t)
(setq org-global-properties (quote (("STYLE_ALL" . "habit"))))
(setq org-habit-graph-column 100)
(defun org-agenda-sharpie ()
"Censor the text of items in the agenda."
(interactive)
(let (regexp old-heading new-heading properties)
;; Save face properties of line in agenda to reapply to changed text
(setq properties (text-properties-at (point)))
;; Go to source buffer
(org-with-point-at (org-find-text-property-in-string 'org-marker
(buffer-substring (line-beginning-position)
(line-end-position)))
;; Save old heading text and ask for new text
(line-beginning-position)
(unless (org-at-heading-p)
;; Not sure if necessary
(org-back-to-heading))
(setq old-heading (when (looking-at org-complex-heading-regexp)
(match-string 4))))
(unless old-heading
(error "Can't find heading. How can this be?"))
;; Back to agenda buffer
(setq new-heading (read-from-minibuffer "Overwrite visible heading with: "))
(add-text-properties 0 (length new-heading) properties new-heading)
;; Replace agenda text
(save-excursion
(let ((inhibit-read-only t))
(goto-char (line-beginning-position))
(when (search-forward old-heading (line-end-position))
(replace-match new-heading 'fixedcase 'literal))))))
(setq org-export-initial-scope 'subtree)
(setq org-agenda-format-date (lambda (date) (concat "\n"
(make-string (window-width) 9472)
"\n"
(org-agenda-format-date-aligned date))))
(setq org-export-with-broken-links t)
(with-eval-after-load 'ox-latex
;;(message (concat "################################################\norg-latex-classes = [" org-latex-classes "]"))
(add-to-list 'org-latex-classes
'("scrartcl"
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
(add-to-list 'org-latex-classes
'("detego"
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
\\usepackage\{helvet\}
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/Detego-Logo-209x41.png}}} \\pagestyle{scrheadings} %% Logo in header
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
%% colorful headings:
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
\\usepackage\{enumitem\}
\\setlist\{noitemsep\} %% kills the space between items
"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
(add-to-list 'org-latex-classes
'("rise"
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
\\usepackage\{helvet\}
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/RISE_logo_202x500.jpeg}}} \\pagestyle{scrheadings} %% Logo in header
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
%% colorful headings:
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
\\usepackage\{enumitem\}
\\setlist\{noitemsep\} %% kills the space between items
"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
(add-to-list 'org-latex-classes
'("lyrics"
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
(add-to-list 'org-latex-classes
'("lyrics2"
"\\documentclass\[a4paper,parskip=half,twocolumn\]\{scrartcl\}
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
("\\section\{%s\}" . "\\section*\{%s\}")
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
(add-to-list 'org-latex-classes
'("memoirbook"
"\\documentclass[a5paper,12pt]{memoir}"
;; "\\semiisopage[8]"
;; "\\hypersetup{colorlinks=true,linkcolor={Blue},urlcolor={Blue}}" ;; genera un problema al exportar
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
'(org-export-latex-default-class "memoir")
);; with-eval-after-load
(use-package ox-asciidoc
;;:ensure t ;; install package if not found OR: (setq use-package-always-ensure t)
:defer 110
)
(defun my-org-copy-region-as-markdown ()
"Copy the region (in Org) to the system clipboard as Markdown."
(interactive)

View file

@ -13,3 +13,4 @@
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(put 'narrow-to-region 'disabled nil)

View file

@ -81,17 +81,17 @@
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
;;(spell +flyspell) ; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools
;;ansible
ansible
;;biblio ; Writes a PhD for you (citation needed)
;;collab ; buffers with friends
;;debugger ; FIXME stepping through code, to help you add bugs
debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
docker
editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
@ -117,7 +117,7 @@
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
clojure ; java with a lisp
(clojure +lsp) ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
@ -143,8 +143,8 @@
;;idris ; a language you can depend on
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
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
(julia +lsp) ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
@ -154,11 +154,11 @@
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
org ; organize your plain life in plain text
(org +dragndrop +pandoc +pretty +gnuplot +roam2) ; organize your plain life in plain text
php ; perl's insecure younger brother
plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
(python +lsp) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
raku ; the artist formerly known as perl6
@ -168,14 +168,14 @@
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
(sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
web ; the tubes
(web +lsp) ; the tubes
yaml ; JSON, but readable
zig ; C, but simpler
(zig +lsp) ; C, but simpler
:email
;;(mu4e +org +gmail)
@ -192,4 +192,4 @@
:config
;;literate
(default +bindings +smartparens))
(default +bindings))

View file

@ -22,10 +22,13 @@
;; (package! helm-xref)
(package! pdf-tools)
;; Fix for org-roam link issue
(package! org :pin "ca873f7")
(package! org-auto-tangle)
(package! ox-slack)
(package! ox-tufte)
(package! org-special-block-extras)
(package! org-transclusion)
(package! org-modern)
(package! org-ql)

View file

@ -10,6 +10,12 @@ First line removes the path; second line sets it. Without the first line, your
#+begin_src fish
set -e fish_user_paths
set -U fish_user_paths $HOME/.local/bin $HOME/Applications $HOME/.cabal/bin $HOME/.ghcup/bin $fish_user_paths
set -e SSH_AGENT_PID
if not set -q gnupg_SSH_AUTH_SOCK_by or test $gnupg_SSH_AUTH_SOCK_by -ne $fish_pid
set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
end
#+end_src
* Exports
@ -416,6 +422,14 @@ Occasionally my keyboard layout changes. I have not figured out why yet, but thi
function polish
setxkbmap -model pc104 -layout pl -option compose:rctrl
end
#+end_src
** greek
Occasionally I type in greek. This function sets my keyboard layout for it.
#+begin_src fish
function greek
setxkbmap -model pc104 -layout gr -option compose:rctrl
end
#+end_src
** vps
Logs me into my VPS with an ssh key. I use it extensively, so being able to log in without having to type a password is really nice.

View file

@ -1,6 +1,12 @@
set -e fish_user_paths
set -U fish_user_paths $HOME/.local/bin $HOME/Applications $HOME/.cabal/bin $HOME/.ghcup/bin $fish_user_paths
set -e SSH_AGENT_PID
if not set -q gnupg_SSH_AUTH_SOCK_by or test $gnupg_SSH_AUTH_SOCK_by -ne $fish_pid
set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
end
set fish_greeting
set TERM "xterm-256color"
set EDITOR "emacsclient -t -a ''"
@ -235,8 +241,6 @@ alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'"
alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'"
alias tofish="sudo chsh $USER -s /bin/fish && echo 'Now log out.'"
alias config="/usr/bin/git --git-dir=$HOME/git/dot --work-tree=$HOME"
alias tb="nc termbin.com 9999"
alias tips="lbrynet txo spend --type=support --is_not_my_input --blocking"
@ -255,6 +259,10 @@ function polish
setxkbmap -model pc104 -layout pl -option compose:rctrl
end
function greek
setxkbmap -model pc104 -layout gr -option compose:rctrl
end
function vps
ssh -p 2222 phil@46.38.232.163 -i ~/.ssh/id_ed25519_nopass
end

View file

@ -133,6 +133,19 @@ bind = , Print, exec, hyprshot -m region
bind = $mainMod, E, exec, emacsclient -c -a 'emacs'
#+end_src
*** Timestamps
#+begin_src config
bind = $mainMod, W, submap, timestamp
submap = timestamp
bind = , l, exec, wtype $(date +"%Y.%m.%d %H:%M:%S %Z")
bind = , l, submap, reset
bind = , e, exec, wtype $(TZ=America/New_York date +'%Y.%m.%d %H:%M:%S %Z')
bind = , e, submap, reset
bind = , p, exec, wtype $(TZ=America/Denver date +'%Y.%m.%d %H:%M:%S %Z')
bind = , p, submap, reset
bind= , escape, submap, reset
submap = reset
#+end_src
*** Workspaces
**** Show
#+begin_src config
@ -336,4 +349,5 @@ bindm = $mainMod, mouse:273, resizewindow
** Autostart
#+begin_src config
exec-once=waybar
exec-once=ydotoold
#+end_src

View file

@ -1,6 +1,8 @@
monitor=HDMI-A-1, 1920x1080@60, 0x0, 1
monitor=eDP-1, 1920x1080@165, 1920x0, 1
monitor=DP-2, 1920x1080@60, 3840x0, 1
monitor=eDP-2, 1920x1080@165, 1920x0, 1
monitor=DP-2, 1920x1080@60, 1920x1080, 1
monitor=DP-1, 1920x1080@60, 3840x0, 1
input {
kb_layout = pl
@ -24,15 +26,12 @@ general {
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 0
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
@ -60,7 +59,7 @@ master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
inherit_fullscreen = true
mfact = 0.6
mfact = 0.65
}
gestures {
@ -96,6 +95,17 @@ bind = , Print, exec, hyprshot -m region
bind = $mainMod, E, exec, emacsclient -c -a 'emacs'
bind = $mainMod, W, submap, timestamp
submap = timestamp
bind = , l, exec, wtype $(date +"%Y.%m.%d %H:%M:%S %Z")
bind = , l, submap, reset
bind = , e, exec, wtype $(TZ=America/New_York date +'%Y.%m.%d %H:%M:%S %Z')
bind = , e, submap, reset
bind = , p, exec, wtype $(TZ=America/Denver date +'%Y.%m.%d %H:%M:%S %Z')
bind = , p, submap, reset
bind= , escape, submap, reset
submap = reset
bind = $mainMod, S, submap, show
submap = show
bind = , 1, moveworkspacetomonitor, name:1 current
@ -276,7 +286,7 @@ bind = , q, movetoworkspacesilent, name:q
bind = , q, submap, reset
bind = , z, movetoworkspacesilent, name:z
bind = , z, submap, reset
bind = , p, movetoworkspacesilent, name:tp
bind = , p, movetoworkspacesilent, name:p
bind = , p, submap, reset
bind=,escape,submap,reset
submap = reset
@ -290,3 +300,4 @@ bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
exec-once=waybar
exec-once=ydotoold

View file

@ -280,6 +280,10 @@ Dunst for notifications.
#+begin_src haskell
spawnOnce "dunst"
#+end_src
***** Compositing - picom
#+begin_src haskell
spawnOnce "picom -b"
#+end_src
***** Activity Watch
I like looking back on the way I spend my time every once in a while. Local time tracking is really helpful, so I run AW in the background.
#+begin_src haskell
@ -563,6 +567,12 @@ Notes: I use a ZSA Moonlander so a lot of the 4-5 key sequences are actually jus
, ("M-<Print>", spawn "dm-maim")
, ("<Print>", spawn "flameshot gui")
#+end_src
*** Keybindings for keyboard layout changes
#+begin_src haskell
, ("M-j p", spawn "setxkbmap -model pc104 -layout pl -option compose:rctrl")
, ("M-j g", spawn "setxkbmap -model pc104 -layout gr -option compose:rctrl")
#+end_src
*** XMonad.Prompt.OrgMode
#+begin_src haskell

View file

@ -146,6 +146,8 @@ myStartupHook = do
spawnOnce "dunst"
spawnOnce "picom -b"
spawnOnce "aw-server"
spawnOnce "aw-watcher-afk"
spawnOnce "aw-watcher-window"
@ -342,6 +344,9 @@ main = do
, ("M-<Print>", spawn "dm-maim")
, ("<Print>", spawn "flameshot gui")
, ("M-j p", spawn "setxkbmap -model pc104 -layout pl -option compose:rctrl")
, ("M-j g", spawn "setxkbmap -model pc104 -layout gr -option compose:rctrl")
, ("M-c i", orgPrompt def "TODO" "~/enc/org/inbox.org")
, ("M-c l", orgPromptPrimary def "LINK" "~/enc/org/inbox.org")
, ("M-c n", orgPrompt def "NOTE" "~/enc/org/inbox.org")