X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/a567a3276f8d953c60b2ad9a25a6509a90f61034..53edeec7b6f8ba41c6040f0d849f8b4114f4628c:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index e23653b..7b81064 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -216,7 +216,19 @@ (run-with-idle-timer 0.5 nil #'require 'winner) (with-eval-after-load 'winner - (winner-mode 1)) + (winner-mode 1) + (when (featurep 'exwm) + ;; prevent a bad interaction between EXWM and winner-mode, where + ;; sometimes closing a window (like closing a terminal after + ;; entering a GPG password via pinentry-gnome3's floating window) + ;; results in a dead frame somewhere and effectively freezes EXWM. + (advice-add + 'winner-insert-if-new + :around + (lambda (orig-fun &rest args) + ;; only add the frame if it's live + (when (frame-live-p (car args)) + (apply orig-fun args)))))) (run-with-idle-timer 0.5 nil #'require 'windmove) (with-eval-after-load 'windmove