From 87ad70fd1d36d79f58079685a03c6c30561ab54e Mon Sep 17 00:00:00 2001 From: Phil Bajsicki Date: Wed, 20 Dec 2023 03:08:40 +0100 Subject: [PATCH] Update 2023.12.20 --- .config/doom/README.el | 10 +- .config/doom/README.org | 702 +++++++++---------------------------- .config/doom/config.el | 436 +++++++---------------- .config/doom/custom.el | 1 + .config/doom/init.el | 28 +- .config/doom/packages.el | 5 +- .config/fish/README.org | 14 + .config/fish/config.fish | 12 +- .config/hypr/README.org | 14 + .config/hypr/hyprland.conf | 23 +- .config/xmonad/README.org | 10 + .config/xmonad/xmonad.hs | 5 + 12 files changed, 385 insertions(+), 875 deletions(-) diff --git a/.config/doom/README.el b/.config/doom/README.el index 1c23e40..292cbc3 100644 --- a/.config/doom/README.el +++ b/.config/doom/README.el @@ -1,8 +1,2 @@ -(use-package! org-transclusion - :after org - :init - (map! - :map global-map "" #'org-transclusion-add - :leader - :prefix "n" - :desc "Org Transclusion Mode" "t" #'org-transclusion-mode)) +(after! flyspell + (setq flyspell-lazy-idle-seconds 2)) diff --git a/.config/doom/README.org b/.config/doom/README.org index f6f6f32..b5d2066 100644 --- a/.config/doom/README.org +++ b/.config/doom/README.org @@ -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,29 +129,56 @@ 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")) - (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)))) +(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-deadline-warning-days 7) +(setq org-blank-before-new-entry (quote ((heading . t) + (plain-list-item . nil)))) (setq org-todo-repeat-to-state "LOOP") (setq org-remove-highlights-with-change nil) (setq org-read-date-prefer-future 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-~ 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,37 +382,35 @@ 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)" - "TASK(t)" ; A task that needs doing & is ready to do - "PROJ(p)" ; A project, which usually contains other tasks - "LOOP(r)" ; A recurring task - "WAIT(w)" ; Something external is holding up this task - "HOLD(h)" ; This task is paused/on hold because of me - "|" - "DONE(d)" ; Task successfully completed - "KILL(k)") ; Task was cancelled, aborted or is no longer applicable - (sequence - "DECIDE()" ; for making decisions - "|" - "OKAY(o)" ; okay as-is - "YES(y)" ; take action - "NO(n)")) ; don't take action - org-todo-keyword-faces - '( - ("INBOX" :foreground "cyan" :weight bold) - ("TASK" :foreground "purple" :weight bold) - ("PROJ" :foreground "violet" :weight bold) - ("LOOP" :foreground "magenta" :weight bold) - ("WAIT" :foreground "yellow" :weight bold) - ("HOLD" :foreground "orange" :weight bold) - ("DONE" :foreground "green" :weight bold) - ("KILL" :foreground "grey" :weight bold)))) +(setq org-todo-keywords + '((sequence + "INBOX(i)" + "TASK(t)" ; A task that needs doing & is ready to do + "PROJ(p)" ; A project, which usually contains other tasks + "LOOP(r)" ; A recurring task + "WAIT(w)" ; Something external is holding up this task + "HOLD(h)" ; This task is paused/on hold because of me + "|" + "DONE(d)" ; Task successfully completed + "KILL(k)") ; Task was cancelled, aborted or is no longer applicable + (sequence + "DECIDE()" ; for making decisions + "|" + "OKAY(o)" ; okay as-is + "YES(y)" ; take action + "NO(n)")) ; don't take action + org-todo-keyword-faces + '( + ("INBOX" :foreground "cyan" :weight bold) + ("TASK" :foreground "purple" :weight bold) + ("PROJ" :foreground "violet" :weight bold) + ("LOOP" :foreground "magenta" :weight bold) + ("WAIT" :foreground "yellow" :weight bold) + ("HOLD" :foreground "orange" :weight bold) + ("DONE" :foreground "green" :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- C-i i~ into just ~C-~. 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- C-i i~ into just ~C-~. 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,10 +801,10 @@ 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. +(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 ) @@ -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 @@ -1009,31 +997,20 @@ Straight from Karl Voit's config. org-agenda-log-mode-items '(closed clock state) org-agenda-prefix-format "%l %i %c %s %t") - (setq org-agenda-compact-blocks t) - (setq org-agenda-use-tag-inheritance (quote (agenda)));; agenda performance - (setq org-agenda-span 1) - (add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) +(setq org-agenda-compact-blocks t) +(setq org-agenda-use-tag-inheritance (quote (agenda)));; agenda performance +(setq org-agenda-span 1) +(add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) (setq org-agenda-custom-commands - (quote (("x" "Phil's view" agenda "" - ((org-agenda-prefix-format " %i %-12:c %s %t ")))))) + (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,45 +1036,34 @@ 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 - (setq org-agenda-include-diary t) +(setq org-agenda-include-diary t) #+END_SRC Show all future entries for repeating tasks #+BEGIN_SRC emacs-lisp :tangle config.el - (setq org-agenda-repeating-timestamp-show-all t) +(setq org-agenda-repeating-timestamp-show-all t) #+END_SRC Show all agenda dates - even if they are empty #+BEGIN_SRC emacs-lisp :tangle config.el - (setq org-agenda-show-all-dates t) +(setq org-agenda-show-all-dates t) #+END_SRC Sorting order for tasks on the agenda #+BEGIN_SRC emacs-lisp :tangle config.el - (setq org-agenda-sorting-strategy - (quote ((agenda habit-down time-up user-defined-up priority-down category-keep) - (todo priority-down category-keep) - (tags priority-down category-keep) - (search category-keep)))) +(setq org-agenda-sorting-strategy + (quote ((agenda habit-down time-up user-defined-up priority-down category-keep) + (todo priority-down category-keep) + (tags priority-down category-keep) + (search category-keep)))) #+END_SRC Start the weekly agenda today @@ -1107,12 +1073,7 @@ Start the weekly agenda today Non-nil means skip timestamp line if same entry shows because of deadline. #+BEGIN_SRC emacs-lisp :tangle config.el - (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) +(setq org-agenda-skip-timestamp-if-deadline-is-shown t) #+END_SRC Enable display of the time grid so we can see the marker for the current time @@ -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 "

Created by Karl.

") - (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. @@ -1555,8 +1199,8 @@ Debugging: #+end_src ** mode-icons #+begin_src emacs-lisp :tangle config.el - (mode-icons-mode) - (add-hook 'dired-mode-hook #'mode-icons--mode-disable) ;; with mode-icons, visiting a dir with dired takes up *lots* of CPU for =mode-icons-reset= (performance-issue) +(mode-icons-mode) +(add-hook 'dired-mode-hook #'mode-icons--mode-disable) ;; with mode-icons, visiting a dir with dired takes up *lots* of CPU for =mode-icons-reset= (performance-issue) #+end_src ** csv-mode #+begin_src emacs-lisp :tangle config.el @@ -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) diff --git a/.config/doom/config.el b/.config/doom/config.el index 01855d1..edc0d08 100644 --- a/.config/doom/config.el +++ b/.config/doom/config.el @@ -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,23 +58,37 @@ (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") - (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)))) +(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-deadline-warning-days 7) +(setq org-blank-before-new-entry (quote ((heading . t) + (plain-list-item . nil)))) (setq org-todo-repeat-to-state "LOOP") (setq org-remove-highlights-with-change nil) (setq org-read-date-prefer-future 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,34 +193,33 @@ (global-set-key "\C-cii" '(lambda () (interactive) (org-time-stamp-inactive '(16)))) -(after! org - (setq org-todo-keywords - '((sequence - "INBOX(i)" - "TASK(t)" ; A task that needs doing & is ready to do - "PROJ(p)" ; A project, which usually contains other tasks - "LOOP(r)" ; A recurring task - "WAIT(w)" ; Something external is holding up this task - "HOLD(h)" ; This task is paused/on hold because of me - "|" - "DONE(d)" ; Task successfully completed - "KILL(k)") ; Task was cancelled, aborted or is no longer applicable - (sequence - "DECIDE()" ; for making decisions - "|" - "OKAY(o)" ; okay as-is - "YES(y)" ; take action - "NO(n)")) ; don't take action - org-todo-keyword-faces - '( - ("INBOX" :foreground "cyan" :weight bold) - ("TASK" :foreground "purple" :weight bold) - ("PROJ" :foreground "violet" :weight bold) - ("LOOP" :foreground "magenta" :weight bold) - ("WAIT" :foreground "yellow" :weight bold) - ("HOLD" :foreground "orange" :weight bold) - ("DONE" :foreground "green" :weight bold) - ("KILL" :foreground "grey" :weight bold)))) +(setq org-todo-keywords + '((sequence + "INBOX(i)" + "TASK(t)" ; A task that needs doing & is ready to do + "PROJ(p)" ; A project, which usually contains other tasks + "LOOP(r)" ; A recurring task + "WAIT(w)" ; Something external is holding up this task + "HOLD(h)" ; This task is paused/on hold because of me + "|" + "DONE(d)" ; Task successfully completed + "KILL(k)") ; Task was cancelled, aborted or is no longer applicable + (sequence + "DECIDE()" ; for making decisions + "|" + "OKAY(o)" ; okay as-is + "YES(y)" ; take action + "NO(n)")) ; don't take action + org-todo-keyword-faces + '( + ("INBOX" :foreground "cyan" :weight bold) + ("TASK" :foreground "purple" :weight bold) + ("PROJ" :foreground "violet" :weight bold) + ("LOOP" :foreground "magenta" :weight bold) + ("WAIT" :foreground "yellow" :weight bold) + ("HOLD" :foreground "orange" :weight bold) + ("DONE" :foreground "green" :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 @@ -387,20 +354,14 @@ org-agenda-log-mode-items '(closed clock state) org-agenda-prefix-format "%l %i %c %s %t") - (setq org-agenda-compact-blocks t) - (setq org-agenda-use-tag-inheritance (quote (agenda)));; agenda performance - (setq org-agenda-span 1) - (add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) +(setq org-agenda-compact-blocks t) +(setq org-agenda-use-tag-inheritance (quote (agenda)));; agenda performance +(setq org-agenda-span 1) +(add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) (setq org-agenda-custom-commands - (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)) + (quote (("x" "Phil's view" agenda "" + ((org-agenda-prefix-format " %i %-12:c %s %t ")))))) (setq org-agenda-skip-deadline-if-done t) @@ -410,193 +371,34 @@ (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-include-diary t) +(setq org-agenda-repeating-timestamp-show-all t) - (setq org-agenda-repeating-timestamp-show-all t) +(setq org-agenda-show-all-dates t) - (setq org-agenda-show-all-dates t) - - (setq org-agenda-sorting-strategy - (quote ((agenda habit-down time-up user-defined-up priority-down category-keep) - (todo priority-down category-keep) - (tags priority-down category-keep) - (search category-keep)))) +(setq org-agenda-sorting-strategy + (quote ((agenda habit-down time-up user-defined-up priority-down category-keep) + (todo priority-down category-keep) + (tags priority-down category-keep) + (search category-keep)))) (setq org-agenda-start-on-weekday nil) - (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 +(setq org-agenda-skip-timestamp-if-deadline-is-shown t) (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) @@ -617,8 +419,8 @@ ("mkv" . "mpv") ("mp4" . "mpv"))) - (mode-icons-mode) - (add-hook 'dired-mode-hook #'mode-icons--mode-disable) ;; with mode-icons, visiting a dir with dired takes up *lots* of CPU for =mode-icons-reset= (performance-issue) +(mode-icons-mode) +(add-hook 'dired-mode-hook #'mode-icons--mode-disable) ;; with mode-icons, visiting a dir with dired takes up *lots* of CPU for =mode-icons-reset= (performance-issue) (add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode)) (autoload 'csv-mode "csv-mode" diff --git a/.config/doom/custom.el b/.config/doom/custom.el index 1f32ebb..5446da8 100644 --- a/.config/doom/custom.el +++ b/.config/doom/custom.el @@ -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) diff --git a/.config/doom/init.el b/.config/doom/init.el index 6190850..7fe2049 100644 --- a/.config/doom/init.el +++ b/.config/doom/init.el @@ -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)) diff --git a/.config/doom/packages.el b/.config/doom/packages.el index 65efa7f..bf966a9 100644 --- a/.config/doom/packages.el +++ b/.config/doom/packages.el @@ -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) diff --git a/.config/fish/README.org b/.config/fish/README.org index 238da1b..a442361 100644 --- a/.config/fish/README.org +++ b/.config/fish/README.org @@ -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. diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 4a710b3..4bd6d25 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -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 diff --git a/.config/hypr/README.org b/.config/hypr/README.org index 107f447..314da2d 100644 --- a/.config/hypr/README.org +++ b/.config/hypr/README.org @@ -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 diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index b6308fd..2cb940b 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -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 diff --git a/.config/xmonad/README.org b/.config/xmonad/README.org index 1cac534..4eb73af 100644 --- a/.config/xmonad/README.org +++ b/.config/xmonad/README.org @@ -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-", spawn "dm-maim") , ("", 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 diff --git a/.config/xmonad/xmonad.hs b/.config/xmonad/xmonad.hs index cb9cf39..85917ca 100644 --- a/.config/xmonad/xmonad.hs +++ b/.config/xmonad/xmonad.hs @@ -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-", spawn "dm-maim") , ("", 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")