Commit Graph

176 Commits

Author SHA1 Message Date
7219b3fac9 Fix org-caldav: @ encoding in UIDs + nil-field event guard
Two patches in org-caldav use-package! config:

Fix #1: org-caldav-get-event encodes @ as %40 via url-hexify-string.
Baikal stores files with literal @ in filename (e.g. ...@google.com.ics).
Result: HTTP 404 after 5 retries for UIDs with @google.com suffix.
Advice: cl-letf temporarily replaces url-hexify-string to decode %40 back to @.

Fix #2: Some CalDAV events have nil SUMMARY/DTSTART. icalendar parser
returns nil, org-caldav passes to string-match -> Wrong type argument: stringp nil.
Advice: condition-case in org-caldav-update-events-in-org catches the error,
logs it to *org-caldav-debug* buffer, and allows sync state to be saved.
2026-02-25 09:44:20 +01:00
cf4b4862cf fix calfw sort: wrapper sortuje periods list (org-caldav active-range → periods, sorter se nevztahoval) 2026-02-24 23:46:16 +01:00
6f9a72f1fc fix calfw sort: cfw:event struct start-time (month view nemá čas v textu, string parse nefungoval) 2026-02-24 23:34:33 +01:00
f6dc7ca679 feat calfw: multi-source (Agenda+Suky+Klára+Rodina), universal sorter, calfw-org-create-file-source pro caldav 2026-02-24 23:29:25 +01:00
762435acb4 fix calfw: normal state + evil-define-key rebind (SPC=leader, q=bury, navigace funguje) 2026-02-24 23:18:07 +01:00
57190b9330 fix org-caldav: delete-org-entries/delete-calendar-entries 'never (stop delete prompts) 2026-02-24 23:08:53 +01:00
33dcc1e297 revert calfw: zpět na stabilní calfw-org-open-calendar (barvy řeším separátně) 2026-02-24 23:08:01 +01:00
179aa56e56 fix calfw sort: advice na calfw-org-convert-event, same-day events → contents (sortují se) 2026-02-24 23:03:14 +01:00
fe7b7e4147 feat calfw: barvy + universal sorter (Varianta B: agenda=create-source, caldav=file-source) 2026-02-24 22:57:19 +01:00
de7d20f60e revert calfw colors: zpět na calfw-org-open-calendar (barvy způsobovaly špatné datum/sort) 2026-02-24 22:54:09 +01:00
d86ebacb24 fix embark: přidej C-. jako alias (Doom default je C-;, ne C-.) 2026-02-24 22:52:41 +01:00
25d669dd9d fix calfw sort: všechny zdroje calfw-org-create-source + calfw-org--schedule-sorter 2026-02-24 22:47:33 +01:00
6a6b2dd512 fix calfw: sorter calfw-sorter-start-time (cross-source sort by start time) 2026-02-24 22:42:15 +01:00
5494b874eb feat calfw: barevné zdroje s condition-case fallback (research verified) 2026-02-24 22:34:56 +01:00
efeb4347ca revert: odstraň barevné calfw zdroje (rozbily start), jednoduchý calfw-org-open-calendar 2026-02-24 22:24:06 +01:00
bfbf38ae38 fix org-caldav: 'fromcal → 'cal->org (správná hodnota org-caldav-sync-direction) 2026-02-24 22:22:35 +01:00
fdaf91e7f6 feat calfw: barevné zdroje per kalendář (Suky=modrá, Klára=žlutá, Rodina=zelená, Agenda=černá) 2026-02-24 22:16:32 +01:00
bbbb5ec803 fix org-caldav: pre-create inbox soubory před sync (fromcal bug workaround) 2026-02-24 22:11:10 +01:00
d7d925ab29 fix org-caldav+calfw: days-in-past 1825 (5 let); calfw přidá caldav/ soubory jako zdroj 2026-02-24 22:07:32 +01:00
08268c97b5 fix calfw: evil-set-initial-state emacs pro calfw-calendar-mode a calfw-details-mode 2026-02-24 22:01:00 +01:00
6f9943f220 feat: české státní svátky, bez amerických (calendar-holidays) 2026-02-24 21:57:29 +01:00
fee9f48dda fix: calfw-org-open-calendar (haji-ali fork); org-caldav-days-in-past nil (všechny události) 2026-02-24 21:52:25 +01:00
d853a7a9a4 fix calfw: obal cfw:open-org-calendar do cmd! (není interactive command) 2026-02-24 21:48:41 +01:00
23a6ac3d84 fix calfw: :demand t — načti při startu, bez autoload 2026-02-24 21:43:41 +01:00
ad55cc2b0b fix calfw: vlastní wrapper my/open-calendar s fallbackem pro různé verze calfw-org 2026-02-24 21:40:38 +01:00
d88174534c fix calfw: použij explicitní require místo autoload (stale bytecode bypass) 2026-02-24 21:38:23 +01:00
6776737741 feat org-caldav: přidej Klářin kalendář (martin/klara/ přes Baikal ACL share, read-only) 2026-02-24 21:36:31 +01:00
dff377f8e2 fix calfw: autoload cfw:open-org-calendar z calfw-org (ne calfw) 2026-02-24 21:34:53 +01:00
deabd9ccd3 fix org-caldav: family calendar přes martin/family/ (Baikal ACL share, bez family@ URL hacku) 2026-02-24 21:30:50 +01:00
c5b6442854 fix org-caldav: inbox soubory do ~/org/caldav/ (mimo org-agenda-files) — bez minulých událostí v agendě 2026-02-24 21:15:40 +01:00
7c4fbc9aeb feat org-caldav: 3 calendars — Suky (twoway/outbox-only), Placeholders (fromcal), Rodina (fromcal/family) 2026-02-24 21:10:59 +01:00
c893960944 fix org-caldav: odstraň url-basic-auth-storage pre-registration (broke Emacs 31), spoléhej na ~/.authinfo + native url-auth 2026-02-24 21:02:01 +01:00
3dc9f49b3e fix org-caldav: use Basic auth with url-basic-auth-storage pre-registration
Baikal server is configured for Basic auth (dav_auth_type: Basic).
Previous Digest auth approach was wrong. New approach:
- my/caldav-preregister-basic-auth reads credentials from auth-source (~/.authinfo)
- Pre-registers in url-basic-auth-storage to bypass auth-source retries during requests
- Gives clear error if ~/.authinfo not configured
- Removed family calendar sync (was failing; can be added later)
2026-02-24 20:05:15 +01:00
6945810fda fix(org-caldav): switch to Basic auth — Baikal server changed from Digest to Basic
Server-side: dav_auth_type changed to Basic in baikal.yaml (HTTPS = secure).
Config simplified — no Digest hackery, standard authinfo works natively.
~/.authinfo: machine cal.apps.sukany.cz login martin password PASS
             machine cal.apps.sukany.cz login family password PASS
2026-02-24 19:57:46 +01:00
72d3c5f1dc feat: multi-calendar CalDAV sync + macOS install script
org-caldav:
- Sync personal calendar (twoway) + family calendar (fromcal/read-only)
- Clean helper fns: my/caldav-get-password, my/caldav-register-digest
- authinfo: add 'family' entry for family calendar password
- ~/.authinfo: machine cal.apps.sukany.cz login family password PASS

macos-install.sh:
- Bootstrap script for fresh macOS: brew, Emacs prereqs, search tools
- Perl (cpanm + LSP/Tidy/Critic), Python (ruff/pyright), Go (gopls)
- Ansible, Terraform, Podman, Kubernetes, email (mu/isync)
- Doom Emacs setup guidance
2026-02-24 19:55:02 +01:00
be351d39b9 fix(org-caldav): fallback HA1 hash + boundp guard for url-digest-auth-storage 2026-02-24 19:52:24 +01:00
37fb7802e8 fix(org-caldav): correct url-digest-auth-storage format to (realm user ha1)
CDR of realm-entry must be a list (user ha1), not a bare string.
url-digest-auth-build-response calls (car key)/(cadr key) on this.
2026-02-24 19:49:50 +01:00
f8c0c74531 fix(org-caldav): use url-digest-auth-storage with HA1 hash for Baikal Digest auth
url-digest-auth-user-pass does not exist. Correct var is url-digest-auth-storage
which stores HA1 = MD5(user:realm:pass), not plaintext password.
2026-02-24 19:47:14 +01:00
33188974ab fix(org-caldav): pre-register Baikal Digest auth from authinfo before sync
Baikal requires Digest auth (not Basic). Pre-register credentials from
~/.authinfo using url-digest-auth-user-pass before org-caldav-sync.
SPC o c now calls my/org-caldav-sync wrapper.
2026-02-24 19:43:50 +01:00
b2bc04a0ac fix(org-caldav): correct URL to dav.php/calendars/martin/default 2026-02-24 19:35:48 +01:00
0c09f60606 feat(extensions): add vundo/kubel/org-caldav/envrc/combobulate and more
Tier 1: org-caldav (CalDAV sync), envrc (direnv), kubel (K8s)
Tier 2: org-clock config, combobulate, vundo, breadcrumb, iedit
Tier 3: org-anki, org-ql, calfw, org-roam-ui, dirvish
Plus: citar/bibtex config, langtool grammar, org-ql search
2026-02-24 18:04:07 +01:00
53d7dc040e feat(org): snap cursor past TODO keyword/priority in org buffers
Like org-agenda, snap cursor to task name when navigating headings
in normal state. Uses buffer-local post-command-hook — fires only when
on a heading and cursor is before the task name.
2026-02-24 17:31:02 +01:00
466403c930 feat(dev-workflow): add Perl/Python/Go/Ansible/Terraform/Podman config
- cperl-mode with perltidy formatter and LSP
- Python with ruff formatter and pyright LSP
- Go with gopls and goimports
- Ansible/YAML with ansible-lint
- Terraform with terraform-ls LSP
- Dockerfile/Podman with hadolint
- SPC m f/r/t/b/d keybindings per language
2026-02-24 16:59:04 +01:00
08a474298a feat(evil): di| ci| vi| text objects for org table cells 2026-02-24 15:08:13 +01:00
3db96a77a7 fix(corfu): increase auto-delay to 1s 2026-02-24 15:00:09 +01:00
a984353093 fix(yasnippet): C-d clears field; ensure insert state on expand 2026-02-24 14:54:12 +01:00
8ba2c65fcf fix(yasnippet): add yasnippet-capf first in CAPF list for corfu integration 2026-02-24 14:39:24 +01:00
4859a4edb4 fix: remove cape-elisp-symbol from text-mode; corfu TAB tries yas-expand first 2026-02-24 14:35:50 +01:00
1b79d3fa10 fix(yasnippet): TAB in insert state tries yas-expand before fallback 2026-02-24 14:33:08 +01:00
441ea9e82a fix(yasnippet): push to yas-snippet-dirs + yas-reload-all 2026-02-24 14:30:24 +01:00