From 33dcc1e297c7cdbd545613dbadf6e35ec9a7d4e7 Mon Sep 17 00:00:00 2001 From: Daneel Date: Tue, 24 Feb 2026 23:08:01 +0100 Subject: [PATCH] =?UTF-8?q?revert=20calfw:=20zp=C4=9Bt=20na=20stabiln?= =?UTF-8?q?=C3=AD=20calfw-org-open-calendar=20(barvy=20=C5=99e=C5=A1=C3=AD?= =?UTF-8?q?m=20separ=C3=A1tn=C4=9B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.el | 47 ++--------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/config.el b/config.el index d5a185e..09d74d1 100644 --- a/config.el +++ b/config.el @@ -1933,53 +1933,10 @@ current frame." (evil-set-initial-state 'calfw-calendar-mode 'emacs) (evil-set-initial-state 'calfw-details-mode 'emacs) - ;; FIX: calfw-org-create-file-source dává same-day timed events (10:00-11:00) - ;; do `periods` místo `contents` protože end-date = start-date → sorter se nevztahuje. - ;; Advice vymaže end-date pro same-day events → jdou do contents → sortují se správně. - (define-advice calfw-org-convert-event (:filter-return (event) my/fix-same-day-periods) - (when (and event - (calfw-event-end-date event) - (equal (calfw-event-end-date event) (calfw-event-start-date event))) - (setf (calfw-event-end-date event) nil)) - event) - - ;; Universal sorter: time-of-day property (agenda source) NEBO prefix "HH:MM " (file source) - (defun my/calfw-extract-time (str) - (when (string-match "^\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\) " str) - (+ (* (string-to-number (match-string 1 str)) 100) - (string-to-number (match-string 2 str))))) - - (defun my/calfw-sorter (text1 text2) - (let ((t1 (or (get-text-property 0 'time-of-day text1) (my/calfw-extract-time text1))) - (t2 (or (get-text-property 0 'time-of-day text2) (my/calfw-extract-time text2)))) - (cond ((and t1 t2) (< t1 t2)) - (t1 t) - (t2 nil) - (t (string-lessp text1 text2))))) - (defun my/open-calendar () - "Calfw s barvami: Suky=modrá, Klára=žlutá, Rodina=zelená, Agenda=tmavě zelená. -same-day events → contents (sortují se), multi-day → periods. -Agenda files → calfw-org-create-source. CalDAV → calfw-org-create-file-source." + "Calfw — stabilní verze, org-agenda-files." (interactive) - (condition-case err - (let* ((cd (expand-file-name "~/org/caldav/")) - (sources (delq nil - (list - (calfw-org-create-source nil "Agenda" "SeaGreen4") - (when (file-exists-p (concat cd "suky.org")) - (calfw-org-create-file-source "Suky" (concat cd "suky.org") "SteelBlue")) - (when (file-exists-p (concat cd "klara.org")) - (calfw-org-create-file-source "Klára" (concat cd "klara.org") "Gold")) - (when (file-exists-p (concat cd "family.org")) - (calfw-org-create-file-source "Rodina" (concat cd "family.org") "ForestGreen")))))) - (calfw-open-calendar-buffer - :contents-sources sources - :view 'month - :sorter #'my/calfw-sorter)) - (error - (message "calfw: %s — fallback" (error-message-string err)) - (calfw-org-open-calendar)))) + (calfw-org-open-calendar)) (map! :leader "o C" #'my/open-calendar))