From: Amin Bandali Date: Tue, 27 Dec 2022 14:12:42 +0000 (-0500) Subject: Prevent bad interaction between EXWM and winner-mode X-Git-Url: https://git.shemshak.org/~bandali/configs/commitdiff_plain/53edeec7b6f8ba41c6040f0d849f8b4114f4628c?ds=sidebyside;hp=a567a3276f8d953c60b2ad9a25a6509a90f61034 Prevent bad interaction between EXWM and winner-mode --- 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