Closed Luis-Henriquez-Perez closed 5 years ago
I think there are quite a few qutebrowser users here and they don't seem to have such problem. I myself just installed it and it seems working fine. Please prepare a debug log so we can help you troubleshooting this problem.
Ok, I will be more detailed. It's my first time using exwm debug so please bear with me.
I'm using arch linux.
This is my exwm configuration:
(with-os! linux
(when (display-graphic-p)
(setq exwm-replace nil)
(require 'exwm)
(exwm-enable)))
(defun void/do-shell-command (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command))
After opening exwm I did M-x exwm-debug
. Then I opened qutebrowser with
void/do-shell-command
. And then I closed it.
The log is really long.
[00:06:42] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>[00:06:42] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:42] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:42] exwm-input--update-focus: focus-window=#<window 3 on main.org> focus-buffer=main.org
[00:06:42] exwm-input--update-focus: Focus on #<window 3 on main.org>
[00:06:42] exwm-input--set-active-window:
[00:06:42] exwm-input--on-echo-area-dirty:
[00:06:42] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:06:47] exwm-input--on-echo-area-clear:
[00:06:47] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Minibuf-1*> selected-window=#<window 4 on *Minibuf-1*>
[00:06:47] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--set-client-list-stacking:
[00:06:47] exwm-input--on-minibuffer-setup:
[00:06:47] exwm-layout--on-minibuffer-setup:
[00:06:47] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--set-client-list-stacking:
[00:06:47] exwm-input--update-focus: focus-window=#<window 4 on *Minibuf-1*> focus-buffer= *Minibuf-1*
[00:06:47] exwm-input--update-focus: Focus on #<window 4 on *Minibuf-1*>
[00:06:47] exwm-input--set-active-window:
[00:06:47] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:47] exwm-layout--set-client-list-stacking:
[00:06:47] exwm-input--on-echo-area-dirty:
[00:06:47] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:06:47] exwm-input--on-echo-area-dirty:
[00:06:47] exwm-input--on-echo-area-dirty:
[00:06:48] exwm-input--on-echo-area-dirty:
[00:06:50] exwm-input--on-minibuffer-exit:
[00:06:50] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:50] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:50] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:50] exwm-layout--set-client-list-stacking:
[00:06:50] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:50] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Minibuf-1*> selected-window=#<window 4 on *Minibuf-1*>
[00:06:50] exwm-input--on-minibuffer-setup:
[00:06:50] exwm-layout--on-minibuffer-setup:
[00:06:50] exwm-input--update-focus: focus-window=#<window 4 on *Minibuf-1*> focus-buffer= *Minibuf-1*
[00:06:50] exwm-input--update-focus: Focus on #<window 4 on *Minibuf-1*>
[00:06:50] exwm-input--set-active-window:
[00:06:50] exwm-input--on-echo-area-dirty:
[00:06:50] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:06:50] exwm-input--on-echo-area-dirty:
[00:06:50] exwm-input--on-echo-area-dirty:
[00:06:50] exwm-input--on-echo-area-dirty:
[00:06:51] exwm-input--on-echo-area-dirty:
[00:06:51] exwm-input--on-echo-area-dirty:
[00:06:51] exwm-input--on-echo-area-dirty:
[00:06:51] exwm-input--on-echo-area-dirty:
[00:06:51] exwm-input--on-echo-area-dirty:
[00:06:52] exwm-input--on-echo-area-dirty:
[00:06:52] exwm-input--on-echo-area-dirty:
[00:06:52] exwm-input--on-echo-area-dirty:
[00:06:52] exwm-input--on-minibuffer-exit:
[00:06:52] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:52] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:52] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:52] exwm-layout--set-client-list-stacking:
[00:06:52] exwm-input--update-focus: focus-window=#<window 3 on main.org> focus-buffer=main.org
[00:06:52] exwm-input--update-focus: Focus on #<window 3 on main.org>
[00:06:52] exwm-input--set-active-window:
[00:06:52] exwm-input--on-echo-area-dirty:
[00:06:52] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:06:54] exwm--on-ClientMessage: atom=_NET_WM_STATE(332)
[00:06:54] exwm--on-ClientMessage: atom=_NET_WM_STATE(332)
[00:06:54] exwm--on-ClientMessage: atom=_NET_WM_STATE(332)
[00:06:54] exwm-manage--on-MapRequest: id=#xe00033 parent=#x106
[00:06:54] exwm-manage--on-MapRequest: #xe00033
[00:06:54] exwm-manage--manage-window: Try to manage #xe00033
[00:06:54] exwm--update-window-type: #xe00033
[00:06:54] exwm--update-class: #xe00033
[00:06:54] exwm--update-transient-for: #xe00033
[00:06:54] exwm--update-normal-hints: #xe00033
[00:06:54] exwm--update-hints: #xe00033
[00:06:54] exwm-manage--update-geometry: id=#xe00033
[00:06:54] exwm-manage--update-mwm-hints: id=#xe00033
[00:06:54] exwm--update-title: #xe00033
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm--update-protocols: #xe00033
[00:06:54] exwm-manage--get-configurations:
[00:06:54] exwm-manage--manage-window: Manage #xe00033
[00:06:54] exwm-manage--set-client-list:
[00:06:54] exwm-floating--unset-floating: #xe00033
[00:06:54] exwm-floating--set-allowed-actions: #xe00033
[00:06:54] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:54] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:54] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:54] exwm-layout--show: Show #xe00033 in #<window 3 on *EXWM*<2>>
[00:06:54] exwm--set-geometry: Setting #xe00033 to 1440x863+0+0
[00:06:54] exwm-layout--set-state: id=#xe00033
[00:06:54] exwm-layout--set-client-list-stacking:
[00:06:54] exwm-input--on-buffer-list-update: current-buffer=#<buffer *EXWM*<2>> selected-window=#<window 3 on *EXWM*<2>>
[00:06:54] exwm-input-grab-keyboard: id=#xe00033
[00:06:54] exwm-input--grab-keyboard: id=#xe00033
[00:06:54] exwm-input--update-mode-line: #xe00033
[00:06:54] exwm--update-desktop: #xe00033
[00:06:54] exwm-workspace--set-desktop: #xe00033
[00:06:54] exwm-manage--update-ewmh-state: id=#xe00033
[00:06:54] exwm-layout-set-fullscreen: id=#xe00033
[00:06:54] exwm--set-geometry: Setting #xe00033 to 1440x900+0+0
[00:06:54] exwm-input--release-keyboard: id=#xe00033
[00:06:54] exwm-input--grab-global-prefix-keys:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_ALLOWED_ACTIONS(446)
[00:06:54] exwm--on-PropertyNotify: Unhandled: _NET_WM_ALLOWED_ACTIONS(446)
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm-manage--on-MapNotify: id=#xe00033
[00:06:54] exwm--on-PropertyNotify: atom=WM_STATE(413)
[00:06:54] exwm--on-PropertyNotify: Unhandled: WM_STATE(413)
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_DESKTOP(326)
[00:06:54] exwm--on-PropertyNotify: Unhandled: _NET_WM_DESKTOP(326)
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_STATE(332)
[00:06:54] exwm--on-PropertyNotify: Unhandled: _NET_WM_STATE(332)
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm-input--update-focus: focus-window=#<window 3 on *EXWM*<2>> focus-buffer=*EXWM*<2>
[00:06:54] exwm-input--update-focus: Set focus on #xe00033
[00:06:54] exwm-input--set-focus: id=#xe00033
[00:06:54] exwm-input--update-timestamp:
[00:06:54] exwm--on-PropertyNotify: atom=_TIME(474)
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm-input--set-active-window:
[00:06:54] exwm-input--on-echo-area-dirty:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NORMAL_HINTS(40)
[00:06:54] exwm--update-normal-hints: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:54] exwm--update-utf8-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:54] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:54] exwm--update-ctext-title: #xe00033
[00:06:54] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:55] exwm--update-utf8-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:55] exwm--update-ctext-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:55] exwm--update-utf8-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:55] exwm--update-ctext-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=_NET_WM_NAME(329)
[00:06:55] exwm--update-utf8-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:55] exwm--on-PropertyNotify: atom=WM_NAME(39)
[00:06:55] exwm--update-ctext-title: #xe00033
[00:06:55] exwm-input--on-PropertyNotify:
[00:06:57] exwm--on-PropertyNotify: atom=_NET_WM_USER_TIME(355)
[00:06:57] exwm-input--on-PropertyNotify:
[00:06:57] exwm--on-PropertyNotify: atom=_NET_WM_USER_TIME(355)
[00:06:57] exwm-input--on-PropertyNotify:
[00:06:58] exwm--on-PropertyNotify: atom=_NET_WM_USER_TIME(355)
[00:06:58] exwm-input--on-PropertyNotify:
[00:06:59] exwm--on-PropertyNotify: atom=_NET_WM_USER_TIME(355)
[00:06:59] exwm-input--on-PropertyNotify:
[00:06:59] exwm-manage--on-UnmapNotify: id=#xe00033
[00:06:59] exwm-manage--unmanage-window: Unmanage #xe00033 (buffer: *EXWM*<2>, widthdraw: t)
[00:06:59] exwm-manage--set-client-list:
[00:06:59] exwm-input--on-buffer-list-update: current-buffer=#<buffer *EXWM*<2>> selected-window=#<window 3 on *EXWM*<2>>
[00:06:59] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:06:59] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:06:59] exwm-layout--set-client-list-stacking:
[00:06:59] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:06:59] exwm-input--on-echo-area-dirty:
[00:06:59] exwm-manage--on-UnmapNotify: id=#xe00033
[00:06:59] exwm-manage--unmanage-window: Unmanage #xe00033 (buffer: nil, widthdraw: t)
[00:06:59] exwm-input--update-focus: focus-window=#<window 3 on main.org> focus-buffer=main.org
[00:06:59] exwm-input--update-focus: Focus on #<window 3 on main.org>
[00:06:59] exwm-input--set-active-window:
[00:06:59] exwm-input--on-echo-area-dirty:
[00:06:59] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:07:01] exwm-input--on-echo-area-dirty:
[00:07:01] exwm-input--on-echo-area-dirty:
[00:07:01] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Minibuf-1*> selected-window=#<window 4 on *Minibuf-1*>
[00:07:01] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--set-client-list-stacking:
[00:07:01] exwm-input--on-minibuffer-setup:
[00:07:01] exwm-layout--on-minibuffer-setup:
[00:07:01] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--set-client-list-stacking:
[00:07:01] exwm-input--update-focus: focus-window=#<window 4 on *Minibuf-1*> focus-buffer= *Minibuf-1*
[00:07:01] exwm-input--update-focus: Focus on #<window 4 on *Minibuf-1*>
[00:07:01] exwm-input--set-active-window:
[00:07:01] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:01] exwm-layout--set-client-list-stacking:
[00:07:01] exwm-input--on-echo-area-dirty:
[00:07:01] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:07:04] exwm-input--on-minibuffer-exit:
[00:07:04] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:07:04] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:04] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:04] exwm-layout--set-client-list-stacking:
[00:07:04] exwm-input--update-focus: focus-window=#<window 3 on main.org> focus-buffer=main.org
[00:07:04] exwm-input--update-focus: Focus on #<window 3 on main.org>
[00:07:04] exwm-input--set-active-window:
[00:07:04] exwm-input--on-echo-area-dirty:
[00:07:04] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:07:04] exwm-input--on-echo-area-clear:
[00:07:05] exwm-input--on-buffer-list-update: current-buffer=#<buffer *Minibuf-1*> selected-window=#<window 4 on *Minibuf-1*>
[00:07:05] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--set-client-list-stacking:
[00:07:05] exwm-input--on-minibuffer-setup:
[00:07:05] exwm-layout--on-minibuffer-setup:
[00:07:05] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--set-client-list-stacking:
[00:07:05] exwm-input--update-focus: focus-window=#<window 4 on *Minibuf-1*> focus-buffer= *Minibuf-1*
[00:07:05] exwm-input--update-focus: Focus on #<window 4 on *Minibuf-1*>
[00:07:05] exwm-input--set-active-window:
[00:07:05] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:05] exwm-layout--set-client-list-stacking:
[00:07:05] exwm-input--on-echo-area-dirty:
[00:07:05] exwm--on-ClientMessage: atom=_NET_ACTIVE_WINDOW(321)
[00:07:06] exwm-input--on-echo-area-dirty:
[00:07:07] exwm-input--on-minibuffer-exit:
[00:07:07] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
[00:07:07] exwm-layout--refresh: frame=#<frame emacs@arch 0x1227c30>
[00:07:07] exwm-layout--refresh-workspace: Refresh workspace #<frame emacs@arch 0x1227c30>
[00:07:07] exwm-layout--set-client-list-stacking:
[00:07:07] exwm-input--on-buffer-list-update: current-buffer=#<buffer main.org> selected-window=#<window 3 on main.org>
I noticed in the log it's made full screen on startup. Is that what you meant with 'not controlled by EXWM'? If this is the case then you can exit the full screen state with whatever key binding exwm-reset
, or simply configure this program not to start in full screen mode.
Is that what you meant with 'not controlled by EXWM'?
That's part of it, but what I mean is it doesn't seem to be in line mode when it starts. After it's fullscreen and I type M-x
emacs does not intercept the command. This is why I suspect it's not being captured.
That's part of it, but what I mean is it doesn't seem to be in line mode when it starts.
Because it asked EXWM to put it into full screen mode on start.
After it's fullscreen and I type
M-x
emacs does not intercept the command.
Full screen X windows are treated as in char-mode so no mode-line, no M-x...
Thank you for your help. I used this code to make sure it starts in line-mode
. I may configure qutebrowser not to do this by default too. But I like the fact that I could do it in Emacs instead.
(defvar +exwm-initial-mode-alist '((t . line-mode)))
(push '((string-prefix-p "qutebrowser" exwm-instance-name) . line-mode)
+exwm-initial-mode-alist)
(defhook! +exwm|start-in-char-mode ()
"Decide whether to start program in char mode."
:hook exwm-manage-finish-hook
(-first (-lambda ((pred . mode))
(when (funcall `(lambda () ,pred))
(if (eq mode 'char-mode)
(exwm-input-release-keyboard (exwm--buffer->id (window-buffer)))
(exwm-reset))))
+exwm-initial-mode-alist))
For me
qutebrowser
is unable to be controlled by EXWM. I've looked at issue #287 and tried settingexwm-manage-configurations
(as you can see below). What are some other things I can try?