You are not logged in.
Pages: 1
I have a problem with Evilwm; sometimes when I close a program (this has happened with Firefox, Pdgin and Vlc) it locks up. That is, I can't use any of the shortcut keys associated with Evilwm, and the shortcuts enabled via xbindkeys don't work either. I can use any programs open on the current workspace, I can switch to a different tty, and I can kill X via Control + Alt + Escape.
This doesn't happen often, but often enough to be seriously annoying. So far the only solution I've been able to work out is to kill the X server and restart the whole thing. This is not a bug isolated to Arch as the same thing used to happen on my old Ubuntu box. Anyone have any ideas here?
Offline
It sounds like EvilWM quit in some way. Could you confirm this from the console/xterm with htop or 'ps -A | grep evilwm'. If so, you could restart it with 'DISPLAY=:0.1 evilwm &' or whatever your display is. (or just 'evilwm &' of course if you happen to have an xterm in the open workspace)
Offline
No luck. I'm able to reproduce the bug by closing all windows, starting Pidgin (via a xbindkeys shortcut) and closing it right away. When I run "ps -A | grep evilwm" it shows evilwm still running, which is kind of what I expected since conky still runs and the background image doesn't change.
But here's an interesting thing: If I open a terminal, or indeed any window, and reproduce the bug nothing works like usual. But if I move the mouse over the terminal window, so it focuses on it, everything works again.
I don't really know that much about how Evilwm handles things behind the curtain, but that could be a hint to the real problem.
Offline
There was someone in the screenshot thread, perhaps last month, that had the same issue and actually switched window managers because of it.
I never had the problem with my EvilWM usage but I also always launched Firefox via Xterm or Urxvt, not a keyboard shortcut.
Offline
Maybe report it to the maintainer of evilwm?
Use the Source, Luke!
Offline
I already sent him an e-mail about it, if he comes up with a solution I'll pass it on.
I actually also switched to Openbox for about a month because of this, but Evilwm's like heroin, you keep coming back for more.
Offline
I've got some log messages from Evilwm if anyone's interested. They're made with the DEBUG and DEBUG + DXDEBUG flags in the Makefile (Evilwm error messages and Evilwm + X error messages) and show me starting Evilwm, opening a xterm window, reproducing the bug by opening and closing a Pidgin window, and then killing the X server.
With DEBUG only
setup_display() : XK_Num_Lock is (1<<0x04)
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): xterm
window started as 724x436 +182+130
make_new_client() : new window 724x436+183+131, wincount=1
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): Buddy List
window started as 332x717 +74+24
make_new_client() : new window 332x717+75+25, wincount=2
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
remove_client() : setting WithdrawnState
remove_client() : free(), window count now 1
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
remove_client() : setting WithdrawnState
remove_client() : free(), window count now 0
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
after 2747 requests (2747 known processed) with 6 events remaining.
With DEBUG and DXDEBUG (note: here we actually have two xterm windows and xclock open before opening Pidgin. I had to make xclock the "magic" process in xinitrc to get the error message pipe for Evilwm working)
setup_display() : XK_Num_Lock is (1<<0x04)
main:XQueryTree(); 6 windows
make_new_client(): xterm
XGetWindowAttributes()
(IsViewable) 724x436+391+151, bw = 1
XGetWMNormalHints()
PSize
PMinSize: min_width = 13, min_height = 22
PResizeInc: width_inc = 9, height_inc = 18
PBaseSize: base_width = 4, base_height = 4
PWinGravity: NorthWestGravity
window started as 724x436 +391+151
make_new_client() : new window 724x436+392+152, wincount=1
make_new_client(): xclock
XGetWindowAttributes()
(IsViewable) 164x164+1099+10, bw = 0
XGetWMNormalHints()
PSize
PWinGravity: NorthWestGravity
window started as 164x164 +1099+10
make_new_client() : new window 164x164+1100+11, wincount=2
handle_unmap_event(): ignored (0 ignores remaining)
handle_unmap_event(): ignored (0 ignores remaining)
XConfigureWindow(dpy, window(100001c), c, &wc);
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): xterm
XGetWindowAttributes()
(IsUnmapped) 724x436+0+0, bw = 1
XGetWMNormalHints()
PSize
PMinSize: min_width = 13, min_height = 22
PResizeInc: width_inc = 9, height_inc = 18
PBaseSize: base_width = 4, base_height = 4
PWinGravity: NorthWestGravity
window started as 724x436 +266+282
make_new_client() : new window 724x436+267+283, wincount=3
XConfigureWindow(dpy, window(160002a), c, &wc);
XConfigureWindow(dpy, window(160006c), f, &wc);
XConfigureWindow(dpy, window(160006c), 40, &wc);
handle_map_request() : don't know this window, calling make_new_client();
make_new_client(): Buddy List
XGetWindowAttributes()
(IsUnmapped) 332x717+0+0, bw = 0
XGetWMNormalHints()
PPosition
PWinGravity: NorthWestGravity
window started as 332x717 +127+20
make_new_client() : new window 332x717+128+21, wincount=4
XConfigureWindow(dpy, parent(e0000f), 40, &wc);
XConfigureWindow(dpy, parent(e0000f), 40, &wc);
handle_unmap_event(): unknown client!
handle_unmap_event(): flagging client for removal
remove_client() : Removing...
remove_client() : setting WithdrawnState
remove_client() : free(), window count now 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
handle_xerror() ignored an XErrorEvent: 3
remove_client() returning
handle_unmap_event(): unknown client!
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
after 669 requests (669 known processed) with 8 events remaining.
xterm: fatal IO error 11 (Resource temporarily unavailable) or KillClient on X server ":0.0"
I've sent the maker of Evilwm both files, but have yet to get any responce.
Last edited by gunnihinn (2008-01-13 09:43:56)
Offline
I think I figured this out. The problem seems to be that the window focus somehow gets lost when one closes certain programs.
I took a look at the Evilwm source, and in the file client.c there is a function called "remove_client" (line 124 in version 1.0.0 of Evilwm). I added
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
to the end of that (around line 178) and ran "make", "make install". It seems to have fixed the problem, at least I can't reproduce the bug anymore with Firefox, Vlc or Pidgin.
Offline
Wow. You're the man Gunnihinn!
Offline
had this same problem for ever, thanks!
Offline
Pages: 1