I have a window whose process is not responding. No problem, i3 lets me kill windows, so I type that key combination. Usually it works, but this time it doesn't.
My work-around is to use wininfo to find the window id of the dead but mapped thing, bc to convert to decimal, use "ps aeww | grep" to find the process with that window id in its environment, then send it a kill -15 (does nothing visible) and then a kill -9 (still mapped, but process now shows as defunct). So the* problem* (obviously not critical, since I have a work-around) is how could I have avoided the wininfo -> ps -> bc -> kill thing. Looking at the code, it looks like i3's kill window is cmd_kill <https://github.com/i3/i3/blob/next/src/commands.c#L1298>() in commands.c. (How can that get called with kill_mode_str == "client"?) The chain is then to call tree_close_con <https://github.com/i3/i3/blob/next/src/tree.c#L369>() -> tree_close <https://github.com/i3/i3/blob/next/src/tree.c#L192>() -> x_window_kill <https://github.com/i3/i3/blob/next/src/x.c#L283>() -> one_of { xcb_destroy_window <http://www.x.org/archive/current/doc/man/man3/xcb_destroy_window.3.xhtml>(), xcb_kill_client <http://www.x.org/archive/current/doc/man/man3/xcb_kill_client.3.xhtml>() }. I think to answer that I'l have to run i3 with logging so I can see which path it's taking at the end. And wait for an appropriately hung process. My initial hypothesis is that the window supports WM_DELETE_WINDOW but, since the proc is hung, it never processes it. Anyway, thanks for any insights. Clearly this is as much about me learning as anything else. Jeff Abrahamson +33 6 24 40 01 57 +44 7920 594 255 <-- only when I'm in the UK *http://www.ml-week.com/fr/* <http://www.ml-week.com/fr/>* 2-5 novembre 2015* http://jeff.purple.com/ http://blog.purple.com/jeff/