From 53edeec7b6f8ba41c6040f0d849f8b4114f4628c Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Tue, 27 Dec 2022 09:12:42 -0500 Subject: Prevent bad interaction between EXWM and winner-mode --- .emacs.d/init.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-60-g2f50