Comments (12)
Try using CTRL+W to close one window (implying the other tabs are closed).
from core.
What vypr says is a solution, but I think it would be nice if you could kill just one window instead of all the windows in that process.
from core.
wmutils will not switch to using EWMH.
If you want this behavior, use another program for killing windows.
from core.
So this depends on EWMH? But I've checked and when I do lsw
every Firefox window has a different WID...
But yes I've started using Ctrl+w meanwhile
from core.
when you fire up 'killw' on a window, it only close the window, but in a sort of brutal way. killw is not meant to gently close a window, its meant to kill a window. EMWH has a way to request a window to close itself, but has said, wmutils isn't designed to use EWMH.
Note that this is not related to firefox only. All webbrowsers starts tons of windows to catch up key events and such, and having them closed is not an expected behavior, so firefox might consider that when one of its child windows dies, something is wrong, and then shutdown completely.
So as killw only force ONE window to close (and not its parents or children), this could not be considered a bug in killw. It is just a side effect on how firefox react to Xorg killing one of its windows
from core.
OK, thanks z3bra. :)
from core.
I'm revisiting this issue because I have been experiencing the behavior that killw closes multiple windows, with the surf browser. To open a new window, surf forks and execs itself. I think that the child processes are reusing the parent's XCB connection from some inherited GTK memory. I looked into the i3 source and found that it uses xcb_destroy_window to close a window (as a fallback for EWMH). Is there an advantage to using xcb_kill_client which kills the X11 client owning a window, vs. xcb_destroy_window which kills a specific window?
from core.
It should be worth mentioning that killwa
from the contrib repo DOES kill single windows correctly. I haven't had time looking into its source yet, though.
from core.
@Ferdi265 Thanks, I didn't see that. Looks like killwa
uses EWMH WM_DELETE_WINDOW and then falls back to xcb_kill_client. It should probably fall back to xcb_destroy_window instead. I'll make a PR with my proposed changes
from core.
The advantage of xcb_kill_client is that it gives the possibility to kill a frozen or misbehaving client and all its children from a single application. It is IMO more useful than using the WM_DELETE_WINDOW, as all clients already include a way to close themselves "properly" (be it escape, ctrl+w or ctrl+d). Also, this atom is specified by the ICCCM standard and is thus not supported by all applications. The xcb_destroy_window() is much better there because it asks directly to the server to close the window, so it will always work. Thanks for the proposal!
from core.
@z3bratabs thanks, that makes sense.
from core.
I already created a tool that does exactly this using atoms, it's in contrib: https://github.com/wmutils/contrib/tree/master/killwa
from core.
Related Issues (20)
- chwso doesn't appear to work HOT 2
- Wayland port? HOT 5
- pfw : focus cannot set HOT 5
- pfw returns window ID not present in list returned by lsw. HOT 9
- Add xqp to wmutils HOT 4
- erratic behaviour in wtp / wmv / wrs HOT 14
- wew returns incorrect data
- Make a new release? HOT 2
- Cannot focus windows HOT 2
- Documentation wrt. IRC channel HOT 4
- util.c fatal error. HOT 4
- Provide static binaries. HOT 5
- DWM support HOT 2
- Get current border color of a window? HOT 3
- cannot find -lxcb-cursor HOT 2
- error trying to install wmutils HOT 2
- ignore bar to use tile or switch-grid HOT 3
- Man pages for `pdw`seems to be missing
- atomx: WM_CLASS only returns the instance value (not class) HOT 2
- wmv has no effect HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from core.