fix: set persp-set-frame-buffer-predicate before persp-mode loads

- Fixes void-variable error on startup
- Sets persp-set-frame-buffer-predicate nil BEFORE persp-mode init
- Deferred timer cleanup as safety net
This commit is contained in:
2026-02-20 11:00:06 +01:00
parent 99589a5701
commit 3d6c8bae64

View File

@@ -423,14 +423,17 @@
;; macOS Zoom accessibility — minimalizace redraws
;; --------------------------------------------------
;; persp-mode (workspaces) — hlavní viník skákání (2.5s timer)
;; Vypnout predicate PŘED načtením persp-mode (zabrání vytvoření timeru)
(setq persp-set-frame-buffer-predicate nil)
(after! persp-mode
(setq persp-autokill-buffer-on-remove nil)
;; Vypnout predicate cache timer (způsobuje redraw každé 2.5s)
(when (timerp persp-frame-buffer-predicate-buffer-list-cache--timer)
(cancel-timer persp-frame-buffer-predicate-buffer-list-cache--timer))
(setq persp-frame-buffer-predicate-buffer-list-cache--timer nil)
;; Alternativa: vypnout frame-buffer-predicate úplně
(setq persp-set-frame-buffer-predicate nil))
;; Pokud timer přesto vznikl, zrušit ho
(run-with-idle-timer 5 nil
(lambda ()
(when (and (boundp 'persp-frame-buffer-predicate-buffer-list-cache--timer)
(timerp persp-frame-buffer-predicate-buffer-list-cache--timer))
(cancel-timer persp-frame-buffer-predicate-buffer-list-cache--timer)
(setq persp-frame-buffer-predicate-buffer-list-cache--timer nil)))))
;; which-key — zvýšit repeat delay (1.8s timer)
(setq which-key-idle-delay 2.0)