From 3abc7c97457ce22269806890d9d1dbdce483ea79 Mon Sep 17 00:00:00 2001 From: Daneel Date: Sat, 28 Feb 2026 20:48:57 +0100 Subject: [PATCH] config: org-caldav constants, evil merge, use-package cleanup, keybindings section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - org-caldav: extract UUIDs/URL to defconst near USER IDENTITY (my/caldav-url, my/caldav-id-suky/placeholders/family/klara) - evil: merge two (after! evil) blocks into one - olivetti: use-package! → after! (no load-order keywords needed) - keybindings: central reference section at end of file standalone map! bindings (zoom, elfeed, speech, kubel, iedit, vundo, org-roam-ui, langtool, org-caldav) moved here context-coupled bindings left near their packages with comment index --- config.el | 102 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 43 deletions(-) diff --git a/config.el b/config.el index b9ea9ce..4260087 100644 --- a/config.el +++ b/config.el @@ -7,6 +7,13 @@ (setq user-full-name "Martin Sukany" user-mail-address "martin@sukany.cz") +;; CalDAV calendar IDs (edit here to update sync targets) +(defconst my/caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin") +(defconst my/caldav-id-suky "default") +(defconst my/caldav-id-placeholders "4C748EE5-ECFF-4D4A-A72E-6DE37BAADEB3") +(defconst my/caldav-id-family "family") +(defconst my/caldav-id-klara "klara") + ;; Trust all TLS certificates (corporate MITM proxy with intermediate CA) (setq gnutls-verify-error nil) (setq tls-checktrust nil) @@ -97,7 +104,9 @@ ;; Let Evil use the system clipboard (after! evil - (setq evil-want-clipboard t)) + (setq evil-want-clipboard t) + ;; Ensure dashboard buffer starts in normal state (required for SPC leader) + (evil-set-initial-state '+doom-dashboard-mode 'normal)) ;; Standard macOS modifier keys for GUI Emacs (when (display-graphic-p) @@ -128,10 +137,6 @@ (global-set-key [wheel-up] #'mwheel-scroll) (global-set-key [wheel-down] #'mwheel-scroll)) -;; Ensure dashboard buffer starts in normal state (required for SPC leader) -(after! evil - (evil-set-initial-state '+doom-dashboard-mode 'normal)) - ;; Cancel persp-mode's 2.5s cache timer after startup ;; (reduces unnecessary redraws that cause macOS Zoom to jump) (run-with-timer 3 nil @@ -805,7 +810,6 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." ;;; RSS — ELFEED ;;; ============================================================ -(map! :leader :desc "Elfeed" "o r" #'elfeed) (after! org (setq rmh-elfeed-org-files @@ -1133,10 +1137,6 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." (setq dtk-speaker-process nil)) (message "Emacspeak OFF (server restart inhibited)")) -(map! :leader - (:prefix ("t" . "toggle") - :desc "Speech ON" "s" #'my/emacspeak-on - :desc "Speech OFF" "S" #'my/emacspeak-off)) (with-eval-after-load 'dtk-speak (setq dtk-speech-rate-base 300) @@ -1229,23 +1229,6 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." scroll-margin 2) -;;; ============================================================ -;;; KEYBINDINGS -;;; ============================================================ - -(map! :leader - (:prefix ("h" . "help") - :desc "Describe bindings (buffer-local)" "B" #'describe-bindings)) - -(map! :leader - (:prefix ("z" . "zoom") - :desc "Zoom in (x1.5)" "+" #'my/zoom-in - :desc "Zoom in (x1.5)" "=" #'my/zoom-in - :desc "Zoom out (x1.5)" "-" #'my/zoom-out - :desc "Reset" "0" #'my/zoom-reset - :desc "Restore previous" "z" #'my/zoom-restore)) - - ;;; ============================================================ ;;; MATRIX — EMENT.EL ;;; ============================================================ @@ -1412,9 +1395,7 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." ;;; WRITING — olivetti-mode ;;; ============================================================ -(use-package! olivetti - :defer t - :config +(after! olivetti (setq olivetti-body-width 90)) (add-hook 'org-mode-hook (lambda () (when buffer-file-name (olivetti-mode 1)))) @@ -1626,32 +1607,32 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." (insert "#+TITLE: CalDAV sync\n#+STARTUP: overview\n")))) ;; 1. Suky (twoway): download -> suky.org, upload from calendar_outbox.org - (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" - org-caldav-calendar-id "default" + (setq org-caldav-url my/caldav-url + org-caldav-calendar-id my/caldav-id-suky org-caldav-inbox "~/org/caldav/suky.org" org-caldav-files '("~/org/calendar_outbox.org") org-caldav-sync-direction 'twoway) (org-caldav-sync) ;; 2. Placeholders (read-only) - (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" - org-caldav-calendar-id "4C748EE5-ECFF-4D4A-A72E-6DE37BAADEB3" + (setq org-caldav-url my/caldav-url + org-caldav-calendar-id my/caldav-id-placeholders org-caldav-inbox "~/org/caldav/placeholders.org" org-caldav-files nil org-caldav-sync-direction 'cal->org) (org-caldav-sync) ;; 3. Family (read-only, shared via Baikal ACL) - (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" - org-caldav-calendar-id "family" + (setq org-caldav-url my/caldav-url + org-caldav-calendar-id my/caldav-id-family org-caldav-inbox "~/org/caldav/family.org" org-caldav-files nil org-caldav-sync-direction 'cal->org) (org-caldav-sync) ;; 4. Klara (read-only, shared via Baikal ACL) - (setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin" - org-caldav-calendar-id "klara" + (setq org-caldav-url my/caldav-url + org-caldav-calendar-id my/caldav-id-klara org-caldav-inbox "~/org/caldav/klara.org" org-caldav-files nil org-caldav-sync-direction 'cal->org) @@ -1659,7 +1640,6 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular." (message "CalDAV sync done: Suky + Placeholders + Family + Klara"))) -(map! :leader "o c" #'my/org-caldav-sync) ;;; ============================================================ @@ -1848,7 +1828,6 @@ Formats matching what org-caldav/ox-icalendar export correctly: :n "l" #'kubel-get-pod-logs :n "d" #'kubel-describe-resource :n "D" #'kubel-delete-resource)) -(map! :leader "o k" #'kubel) ;;; ============================================================ @@ -1894,12 +1873,10 @@ Formats matching what org-caldav/ox-icalendar export correctly: ;;; ============================================================ (use-package! iedit :commands iedit-mode) -(map! :leader "s e" #'iedit-mode) (use-package! vundo :commands vundo :config (setq vundo-glyph-alist vundo-unicode-symbols)) -(map! :leader "u" #'vundo) (use-package! breadcrumb :hook ((prog-mode . breadcrumb-local-mode) @@ -2104,7 +2081,6 @@ Formats matching what org-caldav/ox-icalendar export correctly: (setq org-roam-ui-sync-theme t org-roam-ui-follow t org-roam-ui-update-on-save t)) -(map! :leader "n r u" #'org-roam-ui-mode) ;;; ============================================================ @@ -2116,9 +2092,49 @@ Formats matching what org-caldav/ox-icalendar export correctly: (expand-file-name "~/languagetool/languagetool-commandline.jar") langtool-default-language "cs" langtool-mother-tongue "cs")) + + +;;; ============================================================ +;;; KEYBINDINGS — central reference +;;; ============================================================ +;;; Standalone bindings (package-independent, safe to define top-level). +;; +;; The following bindings are defined near their packages (load-order sensitive): +;; SPC o r — elfeed (elfeed section) +;; SPC o n/N — org-noter (org-noter section) +;; SPC o C — calendar/calfw (calfw section) +;; SPC j k/K — link-hint (link-hint section) +;; SPC t o — olivetti (olivetti section) +;; SPC z +/= — zoom in/out (keybindings section below) +;; SPC o M — Matrix/ement (Matrix section) +;; SPC B b/i — bibliography/citar (bibliography section) +;; SPC s q/Q — org-ql (org-ql section) +;; SPC | di| ci| vi| — table cell objects (evil-org section) + +(map! :leader + (:prefix ("z" . "zoom") + :desc "Zoom in (x1.5)" "+" #'my/zoom-in + :desc "Zoom in (x1.5)" "=" #'my/zoom-in + :desc "Zoom out (x1.5)" "-" #'my/zoom-out + :desc "Reset" "0" #'my/zoom-reset + :desc "Restore previous" "z" #'my/zoom-restore)) + +(map! :leader :desc "Elfeed" "o r" #'elfeed) +(map! :leader + (:prefix ("t" . "toggle") + :desc "Speech ON" "s" #'my/emacspeak-on + :desc "Speech OFF" "S" #'my/emacspeak-off)) +(map! :leader + (:prefix ("h" . "help") + :desc "Describe bindings (buffer-local)" "B" #'describe-bindings)) +(map! :leader "o k" #'kubel) +(map! :leader "s e" #'iedit-mode) +(map! :leader "u" #'vundo) +(map! :leader "n r u" #'org-roam-ui-mode) (map! :leader "t g" #'langtool-check "t G" #'langtool-check-done) +(map! :leader "o c" #'my/org-caldav-sync) ;; gls (setq insert-directory-program "gls")