(setq user-full-name "Phil Bajsicki") (setq global-auto-revert-mode t) (org-edna-mode) (setq auth-sources '("~/.authinfo")) (setq-default backup-inhibited t) (setq locale-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-system 'utf-8) (prefer-coding-system 'utf-8) (after! counsel (setq counsel-outline-display-style 'title)) (load-theme 'doom-one t) (doom-themes-neotree-config) (doom-themes-org-config) (setq doom-themes-enable-bold t doom-themes-enable-italic t) (setq doom-font (font-spec :family "IosevkaTerm" :size 12) doom-unicode-font (font-spec :family "IosevkaTerm" :size 12)) (dolist (charset '(unicode)) (set-fontset-font (frame-parameter nil 'font) charset (font-spec :family "IosevkaTerm" :size 12))) (set-frame-parameter nil 'alpha-background 70) (add-to-list 'default-frame-alist '(alpha-background . 80)) (setq display-line-numbers-type 'relative) (setq next-screen-context-lines 4) (setq-default global-visual-line-mode t) (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 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)))) (setq org-todo-repeat-to-state "LOOP") (setq org-remove-highlights-with-change nil) (setq org-read-date-prefer-future nil) (setq org-special-ctrl-a/e t) (setq org-special-ctrl-k t) (setq org-yank-adjusted-subtrees t) (setq org-M-RET-may-split-line t) (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-hierarchical-todo-statistics t) (org-align-tags t) (modify-all-frames-parameters '((right-divider-width . 2) (internal-border-width . 0))) (dolist (face '(window-divider window-divider-first-pixel window-divider-last-pixel)) (face-spec-reset-face face) (set-face-foreground face (face-attribute 'default :background))) (set-face-background 'fringe (face-attribute 'default :background)) (setq ;; Edit settings org-auto-align-tags nil org-tags-column 0 org-catch-invisible-edits 'show-and-error org-insert-heading-respect-content t ;; Org styling, hide markup etc. org-hide-emphasis-markers t org-pretty-entities t org-ellipsis "…" ;; Agenda styling org-agenda-tags-column 0 org-agenda-block-separator ?─ org-agenda-time-grid '((daily today require-timed) (800 1000 1200 1400 1600 1800 2000) " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄") org-agenda-current-time-string "⌚ now ─────────────────────────────────────────────────") (global-org-modern-mode) (setq-default org-enforce-todo-dependencies t) (setq org-enforce-todo-checkbox-dependencies t) (add-hook 'write-file-hooks 'time-stamp) (add-hook 'org-mode-hook (lambda () ;; yasnippet ;;disabled; (make-variable-buffer-local 'yas/trigger-key) ;;disabled; (org-set-local 'yas/trigger-key [tab]) ;;disabled; (define-key yas/keymap [tab] 'yas/next-field-group) ;; flyspell mode for spell checking everywhere ;;disabled; (flyspell-mode 1) ;; auto-fill mode on (auto-fill-mode 1))) (global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-ch" 'counsel-org-link) (global-set-key "\C-cne" 'elgantt-open) (global-set-key "\C-cnn" 'org-capture) (global-set-key "\C-cia" '(lambda ()(interactive) (org-time-stamp '(16)))) (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)))) (add-hook 'org-insert-heading-hook (lambda () (if (or (string-match "journal.org" buffer-file-name) (string-match "money" buffer-file-name) (string-match "therapy.org" buffer-file-name)) ((lambda () (interactive) (org-time-stamp-inactive '(16)) (newline))) (setq org-insert-heading-hook nil) ))) (setq org-capture-templates '(("t" "inbox" entry (file+headline "~/enc/org/phil.org" "Inbox") "* TODO %i%?") ("i" "idea" entry (file+headline "~/enc/org/phil.org" "Ideas") "* %?") ("d" "reminder" entry (file+headline "~/enc/org/phil.org" "Reminders") "* %i%? \n %U") ("p" "person" entry (file+headline "~/enc/org/people.org" "People") "* %(org-contacts-template-name) :PROPERTIES: :EMAIL: %(org-contacts-template-email) :PHONE: %(org-contacts-template-phone) :ALIAS: :NICKNAME: :IGNORE: :ICON: :NOTE: :ADDRESS: :BIRTHDAY: :END:"))) (add-hook 'org-babel-after-execute-hook 'org-display-inline-images) (defun org-super-links-quick-related () (interactive) (let ((org-super-links-link-prefix "\nrelated: ")) (org-super-links-link))) (setq org-super-links-related-into-drawer t) (setq org-super-links-related-drawer-default-name "RELATED" org-super-links-link-prefix 'org-super-links-link-prefix-timestamp) (setq org-export-with-broken-links t) ;; avoiding error on export (global-unset-key (kbd "C-c l")) (global-set-key (kbd "C-c l l") 'org-super-links-link) (global-set-key (kbd "C-c l s") 'org-super-links-store-link) (global-set-key (kbd "C-c l i") 'org-super-links-insert-drawer-link) (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)) (setq org-wild-notifier-notification-title "Emacs org-mode agenda") (setq org-wild-notifier-keyword-whitelist '("TODO")) (setq org-refile-targets '((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9))) (setq org-outline-path-complete-in-steps nil) (setq org-refile-use-outline-path t) (setq org-contacts-files '("~/enc/org/people.org")) (define-prefix-command 'org-roam-map) (global-set-key "\C-r" 'org-roam-map) (define-key org-roam-map "o" 'org-roam-buffer-toggle) (define-key org-roam-map "f" 'org-roam-node-find) (define-key org-roam-map "i" 'org-roam-node-insert) (define-key org-roam-map "n" 'org-roam-capture) (setq org-roam-v2-ack t) (setq org-roam-completion-everywhere t) (setq org-roam-directory (file-truename "~/enc/org/roam")) (org-roam-db-autosync-mode) (org-roam-db-autosync-enable) (setq org-roam-capture-templates '(("n" "default" plain "%?" :if-new (file+head "${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: \n") :empty-lines 1 :unnarrowed t) ("j" "journal" plain "%?" :if-new (file+head "journal/journal-${slug}.org" "#+title: ${title}\n#+category: 📔${title}\n#+filetags: 📔\n") :empty-lines 1 :unnarrowed t) ("t" "Therapy" plain "#+title: ${title}\n" :if-new (file+head "therapy/therapy-${slug}.org" "#+title: ${title}\n#+category: 📗 ${title}\n#+filetags: 📗\n") :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 org-agenda-sorting-strategy '((agenda habit-down time-up priority-down category-keep) (todo priority-down category-keep) (search category-keep)) org-deadline-warning-days 3 org-agenda-insert-diary-extract-time t org-log-into-drawer t org-clock-into-drawer t 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-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)) (setq org-agenda-skip-deadline-if-done t) (setq org-agenda-skip-scheduled-if-done t) (setq org-agenda-text-search-extra-files (quote (agenda-archives))) (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) (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-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 (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-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) (if (use-region-p) (let* ((region (buffer-substring-no-properties (region-beginning) (region-end))) (markdown (org-export-string-as region 'md t '(:with-toc nil)))) (gui-set-selection 'CLIPBOARD markdown)))) (setq doom-snippets-enable-short-helpers t) (setq dired-open-extensions '(("gif" . "sxiv") ("jpg" . "sxiv") ("png" . "sxiv") ("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) (add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode)) (autoload 'csv-mode "csv-mode" "Major mode for editing comma-separated value files." t) ;; To open files with .journal extension in hledger-mode (add-to-list 'auto-mode-alist '("\\.journal\\'" . hledger-mode)) ;; Provide the path to you journal file. ;; The default location is too opinionated. (setq hledger-jfile "~/enc/org/hledger/2023.journal") ;;; Auto-completion for account names ;; For company-mode users, (add-to-list 'company-backends 'hledger-company)