Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't switch away from some workspaces with single X window #688

Open
dto opened this issue Dec 7, 2019 · 24 comments
Open

Can't switch away from some workspaces with single X window #688

dto opened this issue Dec 7, 2019 · 24 comments

Comments

@dto
Copy link

dto commented Dec 7, 2019

I switched to Emacs 27.1 (from Git head) and have a problem. When I try to switch to another workspace via Super-1/2/3 etc, when using whichever is the most recently started X window, the workspace switch happens for a split second and then I am pulled back to the original workspace with the X window. To be able to switch workspaces, I have to hide the X window first.

@emacksnotes
Copy link

To my untrained ears, the description sounds similar to #617 (comment). If you look at the issue, I have linked to a screen-recording of the issue.

  1. What application are you using?
  2. Do you have custom settings for windows of these class?
  3. Could you please share a screen-recording? This will tell how your windows are arranged, in what mode they are and where the focus etc.

@emacksnotes
Copy link

emacksnotes commented Dec 8, 2019

@ch11ng
Copy link
Owner

ch11ng commented Dec 8, 2019

@dto Do you have a multi-monitor setup or is mouse-autoselect-window enabled? Which mode (line-mode or char-mode) was the X window in?

@mobid
Copy link

mobid commented Mar 3, 2020

I can confirm this bug.

I have two workspaces on differen screens. Buffer firefox<2> is on workspace 0 and scratch is on workspace 1. When I try to switch from workspace 0 to 1 with function `exwm-workspace-switch' focus jump back to workspace 0.

Here is attached xelb debug log, where I try to change workspace four times:
xelb.log

Answers to second comment:
1.) I'm using firefox. But any other X application have same behaviour.
2.) I don't have any custom setting for firefox.
3.) It is in line mode. I try change to char mode but it is the same result.

Note: This happens only if frame with firefox has only one window. If I split frame into two windows (with at least one buffer which is not exwm) this doesn't happen.

@ch11ng
Copy link
Owner

ch11ng commented Mar 8, 2020

The problem is with the logs like:

[07:25:31] exwm-input--on-buffer-list-update:	current-buffer=#<buffer  firefox<2>> selected-window=#<window 21 on  firefox<2>>
[07:25:31] exwm-input--on-buffer-list-update:	current-buffer=#<buffer  firefox<2>> selected-window=#<window 21 on  firefox<2>>

I'm not sure why buffer-list-update-hook was invoked. Could you help inspecting this by adding the following form in your config file?

(advice-add #'exwm-input--on-buffer-list-update :before
            (lambda (&rest r)
              (exwm--log "CALL STACK: %s" (cddr (reverse (xcb-debug:-call-stack))))))

@mobid
Copy link

mobid commented Mar 9, 2020

Here is the log with call stack: xelb.log

@mobid
Copy link

mobid commented Mar 9, 2020

I figured out something.

If I have in configuration this snippet, which show me whenever JBoss is running, the problem is present when I try to change workspace with mouse click too.

(defun jboss-pid ()
  (let ((default-directory "~/"))
    (s-trim-right (shell-command-to-string "ps -eo pid,args | grep java | grep -i jboss | grep -v 'pid,args' | sed 's/^ \\+//' | cut -d' ' -f1"))))
(add-to-list 'global-mode-string '(:eval (if (string-empty-p (jboss-pid)) "" " JBoss")) t)

If I put this out, the problem is only present when I call `exwm-workspace-switch' command interactively.

@ch11ng
Copy link
Owner

ch11ng commented Mar 15, 2020

@mobid From the logs it's clearly w3m-redisplay-pages-automatically from the w3m package that triggered select-window, which invoked buffer-list-update-hook and caused the problem. Depending on your needs this feature can be disabled by setting w3m-redisplay-pages-automatically-p to nil.

@mobid
Copy link

mobid commented Mar 16, 2020

Thank you for solution. It works fine now.

I was also modify jboss-pid function:

(defun jboss-pid ()
  (let ((default-directory "~/")
         (buffer-list-update-hook '()))
    ...))

@medranocalvo
Copy link
Collaborator

@dto, is @mobid's issue related to yours? Are you still experiencing the same problem? If so, could you provide the requested information?

@Stebalien
Copy link
Contributor

For me, the issue appears to be eyebrowse. Disabling eyebrowse fixes the issue.

log
[02:41:19] :	CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t get-buffer-create  *temp*) (t generate-new-buffer  *temp*) (t format-spec %s ((115 . 1) (116 . ))) (t eyebrowse-format-slot (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer *spacemacs* (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t #[257 \211@\211\300U\203\0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323�	\324\325\326��\327�&�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3 

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t mapconcat #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] ((1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) , ) (t eyebrowse-mode-line-indicator) (t eval (eyebrowse-mode-line-indicator)) (t format-mode-line ( (:eval (doom-modeline-segment--misc-info)) (:eval (doom-modeline-segment--media-info)) (:eval (doom-modeline-segment--major-mode)) (:eval (doom-modeline-segment--process)) (:eval (doom-modeline-segment--vcs)))) (t doom-modeline-format--media) (t eval (doom-modeline-format--media)) (t redisplay_internal (C function)))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Firefox: Timers - GNU Emacs Lisp Reference Manual> selected-window=#<window 148 on *Firefox: Timers - GNU Emacs Lisp Reference Manual>
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t kill-buffer #) (t #[nil \301�!\205 \0\302�!\207 [temp-buffer buffer-name kill-buffer] 2]) (t format-spec %s ((115 . 1) (116 . ))) (t eyebrowse-format-slot (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t mapconcat #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] ((1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) , ) (t eyebrowse-mode-line-indicator) (t eval (eyebrowse-mode-line-indicator)) (t format-mode-line ( (:eval (doom-modeline-segment--misc-info)) (:eval (doom-modeline-segment--media-info)) (:eval (doom-modeline-segment--major-mode)) (:eval (doom-modeline-segment--process)) (:eval (doom-modeline-segment--vcs)))) (t doom-modeline-format--media) (t eval (doom-modeline-format--media)) (t redisplay_internal (C function)))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Firefox: AutoNAT doesn't work in ipfs when using swarm key · Issue #7067 · ipfs/go-ipfs> selected-window=#<window 148 on *Firefox: Timers - GNU Emacs Lisp Reference Manual>
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t get-buffer-create temp) (t generate-new-buffer temp) (t format-spec %s ((115 . 1) (116 . ))) (t eyebrowse-format-slot (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t mapconcat #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] ((1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) , ) (t eyebrowse-mode-line-indicator) (t eval (eyebrowse-mode-line-indicator)) (t redisplay_internal (C function)))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Firefox: Timers - GNU Emacs Lisp Reference Manual> selected-window=#<window 148 on *Firefox: Timers - GNU Emacs Lisp Reference Manual>
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t kill-buffer #) (t #[nil \301�!\205 \0\302�!\207 [temp-buffer buffer-name kill-buffer] 2]) (t format-spec %s ((115 . 1) (116 . ))) (t eyebrowse-format-slot (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) (t mapconcat #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] ((1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 104) (min-pixel-width . 120) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 40) (min-pixel-height-safe . 26) (min-pixel-width-safe . 24)) leaf (pixel-width . 3840) (pixel-height . 3014) (total-width . 320) (total-height . 115) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1))) )) , ) (t eyebrowse-mode-line-indicator) (t eval (eyebrowse-mode-line-indicator)) (t redisplay_internal (C function)))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Firefox: AutoNAT doesn't work in ipfs when using swarm key · Issue #7067 · ipfs/go-ipfs> selected-window=#<window 148 on *Firefox: Timers - GNU Emacs Lisp Reference Manual>
[02:41:19] exwm--on-PropertyNotify: atom=WM_STATE(430)
[02:41:19] exwm--on-PropertyNotify: Unhandled: WM_STATE(430)
[02:41:19] exwm-input--on-PropertyNotify:
[02:41:19] exwm--on-PropertyNotify: atom=_NET_WM_STATE(382)
[02:41:19] exwm--on-PropertyNotify: Unhandled: _NET_WM_STATE(382)
[02:41:19] exwm-input--on-PropertyNotify:
[02:41:19] exwm--on-PropertyNotify: atom=WM_STATE(430)
[02:41:19] exwm--on-PropertyNotify: Unhandled: WM_STATE(430)
[02:41:19] exwm-input--on-PropertyNotify:
[02:41:19] exwm--on-PropertyNotify: atom=_NET_WM_STATE(382)
[02:41:19] exwm--on-PropertyNotify: Unhandled: _NET_WM_STATE(382)
[02:41:19] exwm-input--on-PropertyNotify:
[02:41:19] exwm-input--update-focus: focus-window=#<window 148 on *Firefox: Timers - GNU Emacs Lisp Reference Manual> focus-buffer=*Firefox: Timers - GNU Emacs Lisp Reference Manual
[02:41:19] exwm-input--update-focus: Set focus on #x2a00268
[02:41:19] exwm-input--set-focus: #x2a00268 (corrected) => #x2a00268
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t # (switch-frame #<frame 0xc7501f28d40>)) (t apply # (switch-frame #<frame 0xc7501f28d40>)) (t #[128 \300\302�"\300\301�"\210\207 [apply doom-modeline-set-selected-window # nil] 5 nil ^e] (switch-frame #<frame 0xc7501f28d40>)) (t apply #[128 \300\302�"\300\301�"\210\207 [apply doom-modeline-set-selected-window # nil] 5 nil ^e] (switch-frame #<frame 0xc7501f28d40>)) (t handle-switch-frame (switch-frame #<frame 0xc7501f28d40>)) (t funcall-interactively handle-switch-frame (switch-frame #<frame 0xc7501f28d40>)) (t call-interactively handle-switch-frame nil nil) (t command-execute handle-switch-frame))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer scratch> selected-window=#<window 22 on scratch>
[02:41:19] exwm-input--on-echo-area-dirty:
[02:41:19] exwm-input--on-echo-area-clear:
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t select-window #<window 22 on scratch>) (t posn-set-point (#<window 22 on scratch> 1 (352 . 339) 96855544 nil 1 (29 . 0) nil (352 . 339) (12 . 26))) (t mouse-set-point (down-mouse-1 (#<window 22 on scratch> 1 (352 . 339) 96855544 nil 1 (29 . 0) nil (352 . 339) (12 . 26)))) (t evil-mouse-drag-track (down-mouse-1 (#<window 22 on scratch> 1 (352 . 339) 96855544 nil 1 (29 . 0) nil (352 . 339) (12 . 26))) t) (t evil-mouse-drag-region (down-mouse-1 (#<window 22 on scratch> 1 (352 . 339) 96855544 nil 1 (29 . 0) nil (352 . 339) (12 . 26)))) (t funcall-interactively evil-mouse-drag-region (down-mouse-1 (#<window 22 on scratch> 1 (352 . 339) 96855544 nil 1 (29 . 0) nil (352 . 339) (12 . 26)))) (t call-interactively evil-mouse-drag-region nil nil) (t command-execute evil-mouse-drag-region))
[02:41:19] exwm-input--on-buffer-list-update: current-buffer=#<buffer scratch> selected-window=#<window 22 on scratch>
[02:41:19] : CALL STACK: ((t exwm-input--on-buffer-list-update) (t run-hooks buffer-list-update-hook) (t get-buffer-create temp) (t generate-new-buffer temp) (t format-spec %s ((115 . 1) (116 . ))) (t eyebrowse-format-slot (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 2) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 4) (min-pixel-width . 10) (min-pixel-height-ignore . 2) (min-pixel-width-ignore . 2) (min-pixel-height-safe . 1) (min-pixel-width-safe . 2)) leaf (pixel-width . 10) (pixel-height . 10) (total-width . 10) (total-height . 10) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 0 0 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1)) (prev-buffers (scratch 1 1))) )) (t #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

(fn WINDOW-CONFIG)] (1 (((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 2) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 4) (min-pixel-width . 10) (min-pixel-height-ignore . 2) (min-pixel-width-ignore . 2) (min-pixel-height-safe . 1) (min-pixel-width-safe . 2)) leaf (pixel-width . 10) (pixel-height . 10) (total-width . 10) (total-height . 10) (normal-height . 1.0) (normal-width . 1.0) (buffer spacemacs (selected . t) (hscroll . 0) (fringes 0 0 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 29) (start . 1)) (prev-buffers (scratch 1 1))) )) (t mapconcat #[257 \211@\211\300U\203 \0\301\202
\0\302\303 \304�\305\306\307\310\311\312�
!\313"\314\315\316&�#\210\211\262�\317\320�!\321�\322��\323� \324\325\326��\327� &�\207 [1 eyebrowse-mode-line-active eyebrowse-mode-line-inactive make-sparse-keymap define-key [mode-line mouse-1] make-byte-code 257 \301\300!\207 vconcat vector [eyebrowse-switch-to-window-config] 3

(fn E) e mouse-1: Switch to indicated workspace eyebrowse-format-slot propertize face slot mouse-face mode-line-highlight local-map help-echo] 18

@Stebalien
Copy link
Contributor

Something strange: I fixed a separate issue where my modeline, doom, wasn't being updated by adding:

      (with-eval-after-load 'doom-modeline
        (add-hook 'exwm-workspace-switch-hook #'doom-modeline-set-selected-window))

This appears to have fixed the problem. So I'm not sure where the problem is coming from.

@ch11ng
Copy link
Owner

ch11ng commented Apr 12, 2020

I have no clue what side effect doom-modeline-set-selected-window makes as it appears to only update an internal state. If this turns out to be irrelevant, you may be experiencing a timing issue (e.g. some package calls select-window at a wrong time).

@medranocalvo
Copy link
Collaborator

@Stebalien, the reason is that eyebrowse invokes format-spec to format its modeline, which invokes with-temp-buffer which changes current-buffer. This happens while the mode-line is redrawn, which is a bad moment for EXWM.

@Stebalien Please, test #737 with eyebrowse and report back.

@dto Please, test #737 and report back.

@ch11ng
Copy link
Owner

ch11ng commented May 5, 2020

#737 looks overall good to me. Let's wait for feed backs from @Stebalien and @dto before it's merged.

@Stebalien
Copy link
Contributor

Sorry for the delay. I've tested #737 and, while it works, it doesn't fix the bug for me.

@divansantana
Copy link

Is there any workaround to this so far?

@ch11ng
Copy link
Owner

ch11ng commented Jun 14, 2020

@Stebalien Could you regenerate debug logs with #737 patched?

@divansantana Which problem did you refer to? What other three users reported may not be the same thing after all. You may check if #737 works for you of course.

@divansantana
Copy link

@ch11ng
My issue is when eyebrowse-mode is active and I have switched to
another eyebrowse workspace, then if I have a X window full screen and
I hit a key binding which launches icomplete in the mini-buffer, the
focus does not change to the bottom and I get stuck in the X window.

This only happens with eyebrowse-mode in this scenario so far, no
other app, unlike in the past which was fixed.

I'll test your patch as soon as I can.

@divansantana
Copy link

I've tried using this PR #737 with these two commits

last in it.

I still have the same issue described above.

I've tried to enable debugging and attached it:

*XELB-DEBUG* buffer contents:

Let me know if you need anything else:

[02:31:02] exwm-input--on-echo-area-dirty:
[02:31:02] exwm-input--update-focus:	focus-window=#<window 7 on ds-exwm.el> focus-buffer=ds-exwm.el
[02:31:02] exwm-input--update-focus:	Focus on #<window 7 on ds-exwm.el>
[02:31:02] exwm-input--set-active-window:
[02:31:02] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:02] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:02] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:02] exwm-input--on-PropertyNotify:
[02:31:03] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:03] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:03] exwm-input--on-PropertyNotify:
[02:31:03] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:03] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:03] exwm-input--on-PropertyNotify:
[02:31:04] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:04] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:04] exwm-input--on-PropertyNotify:
[02:31:04] exwm-input--on-echo-area-clear:
[02:31:04] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-exwm.el 0x5c896a0>
[02:31:04] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-exwm.el 0x5c896a0>
[02:31:04] exwm-layout--set-client-list-stacking:
[02:31:04] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:04] exwm-input--on-echo-area-dirty:
[02:31:04] exwm-input--update-focus:	focus-window=#<window 7 on inbox.org> focus-buffer=inbox.org
[02:31:04] exwm-input--update-focus:	Focus on #<window 7 on inbox.org>
[02:31:04] exwm-input--set-active-window:
[02:31:04] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:04] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:04] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:04] exwm-input--on-PropertyNotify:
[02:31:05] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:05] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:05] exwm-input--on-PropertyNotify:
[02:31:05] exwm-input--on-echo-area-dirty:
[02:31:05] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:05] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:05] exwm-input--on-PropertyNotify:
[02:31:05] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:05] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:05] exwm-input--on-PropertyNotify:
[02:31:05] exwm-input--on-echo-area-dirty:
[02:31:05] exwm-input--on-echo-area-dirty:
[02:31:05] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:05] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:05] exwm-input--on-PropertyNotify:
[02:31:05] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:05] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:05] exwm-input--on-PropertyNotify:
[02:31:06] exwm-input--on-echo-area-dirty:
[02:31:06] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:06] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:06] exwm-input--on-PropertyNotify:
[02:31:07] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:07] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:07] exwm-input--on-PropertyNotify:
[02:31:07] exwm-input--on-echo-area-clear:
[02:31:07] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-1*> current-buffer=#<buffer  *Minibuf-1*>
[02:31:07] exwm-input--on-minibuffer-setup:
[02:31:07] exwm-layout--on-minibuffer-setup:
[02:31:07] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:07] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:07] exwm-layout--set-client-list-stacking:
[02:31:07] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:07] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:07] exwm-layout--set-client-list-stacking:
[02:31:07] exwm-input--on-echo-area-dirty:
[02:31:07] exwm-input--update-focus:	focus-window=#<window 8 on  *Minibuf-1*> focus-buffer= *Minibuf-1*
[02:31:07] exwm-input--update-focus:	Focus on #<window 8 on  *Minibuf-1*>
[02:31:07] exwm-input--set-active-window:
[02:31:07] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:07] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:07] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:07] exwm-input--on-PropertyNotify:
[02:31:07] exwm-input--on-echo-area-dirty:
[02:31:07] exwm-input--on-echo-area-dirty:
[02:31:08] exwm-input--on-minibuffer-exit:
[02:31:08] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:08] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:08] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:08] exwm-layout--set-client-list-stacking:
[02:31:08] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:08] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:08] exwm-input--on-PropertyNotify:
[02:31:08] exwm-input--update-focus:	focus-window=#<window 7 on inbox.org> focus-buffer=inbox.org
[02:31:08] exwm-input--update-focus:	Focus on #<window 7 on inbox.org>
[02:31:08] exwm-input--set-active-window:
[02:31:08] exwm-input--on-echo-area-dirty:
[02:31:08] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:08] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:08] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:08] exwm-input--on-PropertyNotify:
[02:31:09] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:09] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:09] exwm-input--on-PropertyNotify:
[02:31:09] exwm-input--on-echo-area-clear:
[02:31:09] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:09] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:09] exwm-layout--set-client-list-stacking:
[02:31:09] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:09] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:09] exwm-layout--set-client-list-stacking:
[02:31:09] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:09] exwm-input--on-echo-area-dirty:
[02:31:09] exwm-input--update-focus:	focus-window=#<window 7 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:09] exwm-input--update-focus:	Focus on #<window 7 on ds-eyebrowse.el>
[02:31:09] exwm-input--set-active-window:
[02:31:09] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:10] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:10] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:10] exwm-input--on-PropertyNotify:
[02:31:10] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:10] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:10] exwm-layout--set-client-list-stacking:
[02:31:10] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:10] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:10] exwm-layout--set-client-list-stacking:
[02:31:10] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:10] exwm-input--on-echo-area-dirty:
[02:31:10] exwm-input--update-focus:	focus-window=#<window 7 on inbox.org> focus-buffer=inbox.org
[02:31:10] exwm-input--update-focus:	Focus on #<window 7 on inbox.org>
[02:31:10] exwm-input--set-active-window:
[02:31:10] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:10] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:10] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:10] exwm-input--on-PropertyNotify:
[02:31:10] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:10] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:10] exwm-input--on-PropertyNotify:
[02:31:11] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:11] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:11] exwm-input--on-PropertyNotify:
[02:31:11] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:11] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:11] exwm-input--on-PropertyNotify:
[02:31:12] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:12] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:12] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:12] exwm--set-geometry:	Setting #x1e00013 to 1920x1022+1920+21
[02:31:12] exwm-layout--set-state:	id=#x1e00013
[02:31:12] exwm-layout--set-client-list-stacking:
[02:31:12] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:12] exwm-input--on-echo-area-dirty:
[02:31:12] exwm-manage--on-MapNotify:	id=#x1e00013
[02:31:12] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:12] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:12] exwm-input--on-PropertyNotify:
[02:31:12] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:12] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:12] exwm-input--on-PropertyNotify:
[02:31:12] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:12] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:12] exwm-input--on-PropertyNotify:
[02:31:12] exwm-input--update-focus:	focus-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> focus-buffer=DOS board - Agile Board - Jira for WORK - qutebrowser
[02:31:12] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:12] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:12] exwm-input--update-timestamp:
[02:31:12] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:12] exwm-input--on-PropertyNotify:
[02:31:12] exwm-input--set-active-window:
[02:31:12] exwm-input--on-echo-area-dirty:
[02:31:12] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:12] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:12] exwm-input--on-PropertyNotify:
[02:31:13] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:13] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:13] exwm-input--on-PropertyNotify:
[02:31:13] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:13] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:13] exwm-input--on-PropertyNotify:
[02:31:14] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:14] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:14] exwm-input--on-PropertyNotify:
[02:31:14] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:14] exwm-input--on-PropertyNotify:
[02:31:14] exwm--on-PropertyNotify:	atom=_NET_WM_NAME(364)
[02:31:14] exwm--update-utf8-title:	#x1e00013
[02:31:14] exwm-input--on-PropertyNotify:
[02:31:14] exwm--on-PropertyNotify:	atom=WM_NAME(39)
[02:31:14] exwm--update-ctext-title:	#x1e00013
[02:31:14] exwm-input--on-PropertyNotify:
[02:31:14] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:14] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:14] exwm-input--on-PropertyNotify:
[02:31:15] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:15] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:15] exwm-input--on-PropertyNotify:
[02:31:15] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:15] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:15] exwm-input--on-PropertyNotify:
[02:31:16] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:16] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:16] exwm-input--on-PropertyNotify:
[02:31:16] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:16] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:16] exwm-input--on-PropertyNotify:
[02:31:16] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:16] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:16] exwm-input--on-PropertyNotify:
[02:31:16] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:16] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:16] exwm-input--on-PropertyNotify:
[02:31:16] exwm--on-PropertyNotify:	atom=_NET_WM_ICON(454)
[02:31:16] exwm--on-PropertyNotify:	Unhandled: _NET_WM_ICON(454)
[02:31:16] exwm-input--on-PropertyNotify:
[02:31:17] exwm-input--on-ButtonPress:	major-mode=exwm-mode buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:17] exwm-input--on-ButtonPress-char-mode:
[02:31:17] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:17] exwm-input--on-PropertyNotify:
[02:31:17] exwm-input--on-ButtonPress:	major-mode=exwm-mode buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:17] exwm-input--on-ButtonPress-char-mode:
[02:31:17] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:17] exwm-input--on-PropertyNotify:
[02:31:17] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:17] exwm-input--on-PropertyNotify:
[02:31:18] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:18] exwm-input--on-PropertyNotify:
[02:31:18] exwm-input--on-KeyPress:	major-mode=exwm-mode buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:18] exwm-input--on-KeyPress-char-mode:	(119 . 3)
[02:31:18] exwm-input--mimic-read-event:
[02:31:18] exwm-input--cache-event:	8388727
[02:31:18] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-1*> current-buffer=#<buffer  *Minibuf-1*>
[02:31:18] exwm-input--on-minibuffer-setup:
[02:31:18] exwm-layout--on-minibuffer-setup:
[02:31:18] exwm-input--on-echo-area-dirty:
[02:31:18] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:18] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:18] exwm-layout--show:	Show #x1e00013 in #<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:18] exwm--set-geometry:	Setting #x1e00013 to 1920x1005+1920+21
[02:31:18] exwm-layout--set-state:	id=#x1e00013
[02:31:18] exwm-layout--set-client-list-stacking:
[02:31:18] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> current-buffer=#<buffer Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:18] exwm-randr--on-ConfigureNotify:
[02:31:18] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:18] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:18] exwm-input--on-PropertyNotify:
[02:31:18] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:18] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:18] exwm-input--on-PropertyNotify:
[02:31:18] exwm-input--update-focus:	focus-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> focus-buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:18] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:18] exwm-input--set-focus:	#x1e00013 => #x1e00013
[02:31:19] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-1*> current-buffer=#<buffer  *Minibuf-1*>
[02:31:19] exwm-input--update-focus:	focus-window=#<window 8 on  *Minibuf-1*> focus-buffer= *Minibuf-1*
[02:31:19] exwm-input--update-focus:	Focus on #<window 8 on  *Minibuf-1*>
[02:31:19] exwm-input--set-active-window:
[02:31:19] exwm-input--on-echo-area-dirty:
[02:31:19] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:19] exwm-input--on-echo-area-dirty:
[02:31:19] exwm-input--on-echo-area-dirty:
[02:31:19] exwm-input--on-echo-area-dirty:
[02:31:20] exwm-input--on-minibuffer-exit:
[02:31:20] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> current-buffer=#<buffer Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:20] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:20] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:20] exwm-layout--show:	Show #x1e00013 in #<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:20] exwm--set-geometry:	Setting #x1e00013 to 1920x1022+1920+21
[02:31:20] exwm-layout--set-state:	id=#x1e00013
[02:31:20] exwm-layout--set-client-list-stacking:
[02:31:20] exwm-input--on-echo-area-dirty:
[02:31:20] exwm-randr--on-ConfigureNotify:
[02:31:20] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:20] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:20] exwm-input--on-PropertyNotify:
[02:31:20] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:20] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:20] exwm-input--on-PropertyNotify:
[02:31:20] exwm-input--update-focus:	focus-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> focus-buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:20] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:20] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:20] exwm-input--update-timestamp:
[02:31:20] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:20] exwm-input--on-PropertyNotify:
[02:31:20] exwm-input--set-active-window:
[02:31:20] exwm-input--on-echo-area-dirty:
[02:31:21] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:21] exwm-input--on-PropertyNotify:
[02:31:21] exwm-input--on-KeyPress:	major-mode=exwm-mode buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:21] exwm-input--on-KeyPress-char-mode:	(65289 . 1)
[02:31:21] exwm-input--mimic-read-event:
[02:31:21] exwm-input--cache-event:	s-tab
[02:31:21] exwm-input--on-echo-area-clear:
[02:31:21] exwm-layout--refresh:	frame=#<frame Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser 0x5c896a0>
[02:31:21] exwm-layout--refresh-workspace:	Refresh workspace #<frame Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser 0x5c896a0>
[02:31:21] exwm-layout--hide:	Hide #x1e00013
[02:31:21] exwm-layout--set-state:	id=#x1e00013
[02:31:21] exwm-layout--set-client-list-stacking:
[02:31:21] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:21] exwm-input--on-echo-area-dirty:
[02:31:21] exwm-input--update-focus:	focus-window=#<window 7 on inbox.org> focus-buffer=inbox.org
[02:31:21] exwm-input--update-focus:	Focus on #<window 7 on inbox.org>
[02:31:21] exwm-input--set-active-window:
[02:31:21] exwm-input--on-echo-area-dirty:
[02:31:21] exwm-input--on-echo-area-dirty:
[02:31:21] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:21] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:21] exwm-input--on-PropertyNotify:
[02:31:21] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:21] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:21] exwm-input--on-PropertyNotify:
[02:31:21] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:22] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:22] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:22] exwm-layout--show:	Show #x1e00013 in #<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:22] exwm--set-geometry:	Setting #x1e00013 to 1920x1022+1920+21
[02:31:22] exwm-layout--set-state:	id=#x1e00013
[02:31:22] exwm-layout--set-client-list-stacking:
[02:31:22] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> current-buffer=#<buffer Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:22] exwm-input--on-echo-area-dirty:
[02:31:22] exwm-manage--on-MapNotify:	id=#x1e00013
[02:31:22] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:22] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:22] exwm-input--on-PropertyNotify:
[02:31:22] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:22] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:22] exwm-input--on-PropertyNotify:
[02:31:22] exwm-input--update-focus:	focus-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> focus-buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:22] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:22] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:22] exwm-input--update-timestamp:
[02:31:22] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:22] exwm-input--on-PropertyNotify:
[02:31:22] exwm-input--set-active-window:
[02:31:22] exwm-input--on-echo-area-dirty:
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm-input--on-KeyPress:	major-mode=exwm-mode buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:23] exwm-input--on-KeyPress-char-mode:	(119 . 3)
[02:31:23] exwm-input--mimic-read-event:
[02:31:23] exwm-input--cache-event:	8388727
[02:31:23] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-1*> current-buffer=#<buffer  *Minibuf-1*>
[02:31:23] exwm-input--on-minibuffer-setup:
[02:31:23] exwm-layout--on-minibuffer-setup:
[02:31:23] exwm-input--on-echo-area-dirty:
[02:31:23] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:23] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:23] exwm-layout--show:	Show #x1e00013 in #<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:23] exwm--set-geometry:	Setting #x1e00013 to 1920x1005+1920+21
[02:31:23] exwm-layout--set-state:	id=#x1e00013
[02:31:23] exwm-layout--set-client-list-stacking:
[02:31:23] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> current-buffer=#<buffer Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser>
[02:31:23] exwm-randr--on-ConfigureNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:23] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:23] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm-input--update-focus:	focus-window=#<window 7 on Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser> focus-buffer=Can't switch away from some workspaces with single X window · Issue #688 · ch11ng/exwm - qutebrowser
[02:31:23] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:23] exwm-input--set-focus:	#x1e00013 => #x1e00013
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_NAME(364)
[02:31:23] exwm--update-utf8-title:	#x1e00013
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=WM_NAME(39)
[02:31:23] exwm--update-ctext-title:	#x1e00013
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:23] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:23] exwm-input--on-PropertyNotify:
[02:31:24] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:24] exwm-input--on-PropertyNotify:
[02:31:25] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:25] exwm-input--on-PropertyNotify:
[02:31:25] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:25] exwm-input--on-PropertyNotify:
[02:31:25] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:25] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--on-KeyPress:	major-mode=minibuffer-inactive-mode buffer= *Minibuf-1*
[02:31:26] exwm-input--on-KeyPress-char-mode:	(65289 . 1)
[02:31:26] exwm-input--mimic-read-event:
[02:31:26] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:26] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:26] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm--set-geometry:	Setting #x1e00013 to 960x1005+1920+21
[02:31:26] exwm-layout--set-state:	id=#x1e00013
[02:31:26] exwm-layout--refresh:	frame=#<frame  *Minibuf-1* 0x5c896a0>
[02:31:26] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-1* 0x5c896a0>
[02:31:26] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm--set-geometry:	Setting #x1e00013 to 960x1005+1920+21
[02:31:26] exwm-layout--set-state:	id=#x1e00013
[02:31:26] exwm-layout--set-client-list-stacking:
[02:31:26] exwm-layout--set-client-list-stacking:
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:26] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:26] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:26] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm--set-geometry:	Setting #x1e00013 to 960x1005+1920+21
[02:31:26] exwm-layout--set-state:	id=#x1e00013
[02:31:26] exwm-layout--set-client-list-stacking:
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-randr--on-ConfigureNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--update-focus:	focus-window=#<window 82 on inbox.org> focus-buffer=inbox.org
[02:31:26] exwm-input--update-focus:	Focus on #<window 82 on inbox.org>
[02:31:26] exwm-input--set-active-window:
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:26] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-input--update-focus:	focus-window=#<window 82 on inbox.org> focus-buffer=inbox.org
[02:31:26] exwm-input--update-focus:	Focus on #<window 82 on inbox.org>
[02:31:26] exwm-input--set-active-window:
[02:31:26] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--update-focus:	focus-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> focus-buffer=DOS board - Agile Board - Jira for WORK - qutebrowser
[02:31:26] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:26] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:26] exwm-input--update-timestamp:
[02:31:26] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--set-active-window:
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--on-KeyPress:	major-mode=org-mode buffer=inbox.org
[02:31:26] exwm-input--on-KeyPress-char-mode:	(65289 . 1)
[02:31:26] exwm-input--mimic-read-event:
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on inbox.org> current-buffer=#<buffer inbox.org>
[02:31:26] exwm-layout--refresh:	frame=#<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:26] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-org/inbox.org 0x5c896a0>
[02:31:26] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm--set-geometry:	Setting #x1e00013 to 960x1005+1920+21
[02:31:26] exwm-layout--set-state:	id=#x1e00013
[02:31:26] exwm-layout--set-client-list-stacking:
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:26] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:26] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:26] exwm-input--update-focus:	Focus on #<window 82 on ds-eyebrowse.el>
[02:31:26] exwm-input--set-active-window:
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:26] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:26] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:26] exwm-input--update-focus:	focus-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> focus-buffer=DOS board - Agile Board - Jira for WORK - qutebrowser
[02:31:26] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:26] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:26] exwm-input--update-timestamp:
[02:31:26] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:26] exwm-input--on-PropertyNotify:
[02:31:26] exwm-input--set-active-window:
[02:31:26] exwm-input--on-echo-area-dirty:
[02:31:27] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:27] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:27] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:27] exwm-input--on-echo-area-dirty:
[02:31:27] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:27] exwm-input--update-focus:	Focus on #<window 82 on ds-eyebrowse.el>
[02:31:27] exwm-input--set-active-window:
[02:31:27] exwm-input--on-echo-area-dirty:
[02:31:27] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:28] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:28] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:28] exwm-input--on-echo-area-dirty:
[02:31:28] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:28] exwm-input--update-focus:	Focus on #<window 82 on ds-eyebrowse.el>
[02:31:28] exwm-input--set-active-window:
[02:31:28] exwm--on-ClientMessage:	atom=_NET_ACTIVE_WINDOW(372)
[02:31:28] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:28] exwm-input--update-focus:	focus-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> focus-buffer=DOS board - Agile Board - Jira for WORK - qutebrowser
[02:31:28] exwm-input--update-focus:	Set focus on #x1e00013
[02:31:28] exwm-input--set-focus:	#x200013c (corrected) => #x1e00013
[02:31:28] exwm-input--update-timestamp:
[02:31:28] exwm--on-PropertyNotify:	atom=_TIME(700)
[02:31:28] exwm-input--on-PropertyNotify:
[02:31:28] exwm-input--set-active-window:
[02:31:28] exwm-input--on-echo-area-dirty:
[02:31:28] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:28] exwm-input--on-PropertyNotify:
[02:31:29] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:29] exwm-input--on-PropertyNotify:
[02:31:29] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:29] exwm-input--on-PropertyNotify:
[02:31:30] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:30] exwm-input--on-PropertyNotify:
[02:31:30] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:30] exwm-input--on-PropertyNotify:
[02:31:30] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:30] exwm-input--on-PropertyNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm-input--on-KeyPress:	major-mode=emacs-lisp-mode buffer=ds-eyebrowse.el
[02:31:32] exwm-input--on-KeyPress-char-mode:	(97 . 3)
[02:31:32] exwm-input--mimic-read-event:
[02:31:32] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-2*> current-buffer=#<buffer  *Minibuf-2*>
[02:31:32] exwm-input--on-minibuffer-setup:
[02:31:32] exwm-layout--on-minibuffer-setup:
[02:31:32] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:32] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:32] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:32] exwm--set-geometry:	Setting #x1e00013 to 960x869+1920+21
[02:31:32] exwm-layout--set-state:	id=#x1e00013
[02:31:32] exwm-layout--set-client-list-stacking:
[02:31:32] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:32] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:32] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:32] exwm--set-geometry:	Setting #x1e00013 to 960x869+1920+21
[02:31:32] exwm-layout--set-state:	id=#x1e00013
[02:31:32] exwm-layout--set-client-list-stacking:
[02:31:32] exwm-input--on-echo-area-dirty:
[02:31:32] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:32] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:32] exwm-randr--on-ConfigureNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:32] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:32] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:32] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:32] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:32] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:32] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:32] exwm-input--on-PropertyNotify:
[02:31:33] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:33] exwm-input--on-PropertyNotify:
[02:31:33] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:33] exwm-input--on-PropertyNotify:
[02:31:34] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:34] exwm-input--on-PropertyNotify:
[02:31:34] exwm-input--on-KeyPress:	major-mode=minibuffer-inactive-mode buffer= *Minibuf-2*
[02:31:34] exwm-input--on-KeyPress-char-mode:	(97 . 3)
[02:31:34] exwm-input--mimic-read-event:
[02:31:34] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-2*> current-buffer=#<buffer  *Minibuf-2*>
[02:31:34] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-3*> current-buffer=#<buffer  *Minibuf-3*>
[02:31:34] exwm-input--on-minibuffer-setup:
[02:31:34] exwm-layout--on-minibuffer-setup:
[02:31:34] exwm-layout--refresh:	frame=#<frame  *Minibuf-2* 0x5c896a0>
[02:31:34] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-2* 0x5c896a0>
[02:31:34] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:34] exwm--set-geometry:	Setting #x1e00013 to 960x869+1920+21
[02:31:34] exwm-layout--set-state:	id=#x1e00013
[02:31:34] exwm-layout--set-client-list-stacking:
[02:31:34] exwm-input--on-echo-area-dirty:
[02:31:34] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:34] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:34] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:34] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:34] exwm-input--on-PropertyNotify:
[02:31:34] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:34] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:34] exwm-input--on-PropertyNotify:
[02:31:34] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:35] exwm-input--on-echo-area-dirty:
[02:31:35] exwm-input--on-echo-area-dirty:
[02:31:36] exwm--on-PropertyNotify:	atom=_NET_WM_USER_TIME(467)
[02:31:36] exwm-input--on-PropertyNotify:
[02:31:36] exwm-input--on-KeyPress:	major-mode=emacs-lisp-mode buffer=ds-eyebrowse.el
[02:31:36] exwm-input--on-KeyPress-char-mode:	(116 . 3)
[02:31:36] exwm-input--mimic-read-event:
[02:31:36] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--hide:	Hide #x1e00013
[02:31:36] exwm-layout--set-state:	id=#x1e00013
[02:31:36] exwm-layout--set-client-list-stacking:
[02:31:36] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--set-client-list-stacking:
[02:31:36] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on  *o: ds-eyebrowse.el*> current-buffer=#<buffer  *o: ds-eyebrowse.el*>
[02:31:36] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-4*> current-buffer=#<buffer  *Minibuf-4*>
[02:31:36] exwm-input--on-minibuffer-setup:
[02:31:36] exwm-layout--on-minibuffer-setup:
[02:31:36] exwm-layout--refresh:	frame=#<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--refresh-workspace:	Refresh workspace #<frame ~/src/ds-config/.emacs.d/ds-eyebrowse.el 0x5c896a0>
[02:31:36] exwm-layout--set-client-list-stacking:
[02:31:36] exwm-input--on-echo-area-dirty:
[02:31:36] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on  *a: DOS board - Agile Board - Jira for WORK - qutebrowser*> current-buffer=#<buffer  *a: DOS board - Agile Board - Jira for WORK - qutebrowser*>
[02:31:36] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on  *o: ds-eyebrowse.el*> current-buffer=#<buffer  *o: ds-eyebrowse.el*>
[02:31:36] exwm-input--on-echo-area-dirty:
[02:31:36] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:36] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:36] exwm-input--on-PropertyNotify:
[02:31:36] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:36] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:36] exwm-input--on-PropertyNotify:
[02:31:36] exwm-input--update-focus:	focus-window=#<window 82 on  *o: ds-eyebrowse.el*> focus-buffer= *o: ds-eyebrowse.el*
[02:31:37] exwm-input--on-minibuffer-exit:
[02:31:37] exwm-layout--refresh:	frame=#<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--set-client-list-stacking:
[02:31:37] exwm-layout--refresh:	frame=#<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--set-client-list-stacking:
[02:31:37] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:37] exwm-layout--refresh:	frame=#<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-4* 0x5c896a0>
[02:31:37] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:37] exwm--set-geometry:	Setting #x1e00013 to 960x869+1920+21
[02:31:37] exwm-layout--set-state:	id=#x1e00013
[02:31:37] exwm-layout--set-client-list-stacking:
[02:31:37] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-3*> current-buffer=#<buffer  *Minibuf-3*>
[02:31:37] exwm-input--on-buffer-list-update:	selected-window=#<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser> current-buffer=#<buffer DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:37] exwm-input--on-buffer-list-update:	selected-window=#<window 82 on ds-eyebrowse.el> current-buffer=#<buffer ds-eyebrowse.el>
[02:31:37] exwm-input--on-echo-area-dirty:
[02:31:37] exwm-manage--on-MapNotify:	id=#x1e00013
[02:31:37] exwm--on-PropertyNotify:	atom=WM_STATE(585)
[02:31:37] exwm--on-PropertyNotify:	Unhandled: WM_STATE(585)
[02:31:37] exwm-input--on-PropertyNotify:
[02:31:37] exwm--on-PropertyNotify:	atom=_NET_WM_STATE(369)
[02:31:37] exwm--on-PropertyNotify:	Unhandled: _NET_WM_STATE(369)
[02:31:37] exwm-input--on-PropertyNotify:
[02:31:37] exwm-input--update-focus:	focus-window=#<window 82 on ds-eyebrowse.el> focus-buffer=ds-eyebrowse.el
[02:31:39] exwm-input--on-echo-area-dirty:
[02:31:40] exwm-input--on-minibuffer-exit:
[02:31:40] exwm-input--on-buffer-list-update:	selected-window=#<window 8 on  *Minibuf-2*> current-buffer=#<buffer  *Minibuf-2*>
[02:31:40] exwm-layout--refresh:	frame=#<frame  *Minibuf-3* 0x5c896a0>
[02:31:40] exwm-layout--refresh-workspace:	Refresh workspace #<frame  *Minibuf-3* 0x5c896a0>
[02:31:40] exwm-layout--show:	Show #x1e00013 in #<window 7 on DOS board - Agile Board - Jira for WORK - qutebrowser>
[02:31:40] exwm--set-geometry:	Setting #x1e00013 to 960x869+1920+21
[02:31:40] exwm-layout--set-state:	id=#x1e00013
[02:31:40] exwm-layout--set-client-list-stacking:

@divansantana
Copy link

My eyebrowse config is pretty standard:

(use-package eyebrowse
  :ensure t
  :pin melpa
  :config
  (setq-default eyebrowse-mode-line-style 'smart)
  (exwm-input-set-key (kbd "s-1") #'eyebrowse-switch-to-window-config-1)
  (exwm-input-set-key (kbd "s-2") #'eyebrowse-switch-to-window-config-2)
  (exwm-input-set-key (kbd "s-3") #'eyebrowse-switch-to-window-config-3)
  (exwm-input-set-key (kbd "s-4") #'eyebrowse-switch-to-window-config-4)
  (eyebrowse-mode t))

@ch11ng
Copy link
Owner

ch11ng commented Jul 12, 2020

Just as @medranocalvo have mentioned, the problem with eyebrowse is with the temp buffer generated during workspace switch. You may apply the following patch as a workaround, which unfortunately conflicts with #737 so for those already applied #737 you'll have to revert it first. We may end up with this as the solution if we can't come up with a better one.

diff --git a/exwm-input.el b/exwm-input.el
index decfc8128..9074bd16e 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -1133,6 +1133,19 @@ One use is to access the keymap bound to KEYS (as prefix keys) in char-mode."
   (unless (current-message)
     (exwm-input--on-minibuffer-exit)))
 
+(defun exwm-input--ignore-temp-buffer (orig-fun &rest params)
+  "Set `exwm-input--skip-buffer-list-update' to ignore temp buffers."
+  (exwm--log)
+  (let ((exwm-input--skip-buffer-list-update
+         (equal " *temp*" (cond
+                           ((stringp (car params))
+                            (car params))
+                           ((bufferp (car params))
+                            (buffer-name (car params)))
+                           (t
+                            nil)))))
+    (apply orig-fun params)))
+
 (defun exwm-input--init ()
   "Initialize the keyboard module."
   (exwm--log)
@@ -1178,6 +1191,8 @@ One use is to access the keymap bound to KEYS (as prefix keys) in char-mode."
   (when mouse-autoselect-window
     (xcb:+event exwm--connection 'xcb:EnterNotify
                 #'exwm-input--on-EnterNotify))
+  (advice-add 'generate-new-buffer :around #'exwm-input--ignore-temp-buffer)
+  (advice-add 'kill-buffer :around #'exwm-input--ignore-temp-buffer)
   ;; Control `exwm-input--during-command'
   (add-hook 'pre-command-hook #'exwm-input--on-pre-command)
   (add-hook 'post-command-hook #'exwm-input--on-post-command)
@@ -1199,6 +1214,8 @@ One use is to access the keymap bound to KEYS (as prefix keys) in char-mode."
   "Exit the input module."
   (exwm--log)
   (exwm-input--unset-simulation-keys)
+  (advice-remove 'generate-new-buffer #'exwm-input--ignore-temp-buffer)
+  (advice-remove 'kill-buffer #'exwm-input--ignore-temp-buffer
   (remove-hook 'pre-command-hook #'exwm-input--on-pre-command)
   (remove-hook 'post-command-hook #'exwm-input--on-post-command)
   (remove-hook 'minibuffer-setup-hook #'exwm-input--on-minibuffer-setup)

@elken
Copy link

elken commented Jan 17, 2021

Seem to have it isolated to:

  • Single x window on top monitor, single x window on bottom monitor
  • Close window on bottom monitor
  • Window "jumps" and gets "stuck"

Anything I can provide?

@elken
Copy link

elken commented Feb 19, 2021

I can confirm neither the above diff nor #737 resolve this for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants