diogox / bspm Goto Github PK
View Code? Open in Web Editor NEWThe bspwm manager
The bspwm manager
this would be consistent with current bspwm monocle behavior (they are not focusable, so you cannot switch to them normally with node -f
).
Examples that work on bspwm:
Pidswallow
Devour
Requested here.
Described as such:
when you have side by side windows, you fullscreen one, the other one isnt visible but it receives some resize events. I m not sure what is happening with it but i d guess it has whole screen to span and the window you fullscreen is above it. Issue is that it triggers those resize events on windows bellow and thats pretty insane if you imagine it being bloated javascript site ...Company I work at has js that reloads site on certain width (to ditch some dependencies that are not needed on that size) and its annoying af. This could be solved by including empty node instead of the window that is fullscreened after. Goal is to make that browser "NOT RESIZE AT ALL". What i felt like is BIG problem, is what happens when you press program's fullscreen button (like F on mpv, video player), how would u get that event?
Need to make sure if this is fixable (there are suggestions in the mentioned thread. Read it), and if it makes sense to fix it in this tool.
I'm thinking this might just be a matter of making a "fullscreen mode" that simulates a fullscreen mode by hiding the adjacent nodes? Unless that still resizes them? And it doesn't fix other fullscreen triggers. Need to research this more.
Basically, this feature would fix the following problem:
Desired behavior: The app should stay in the desktop it was initialized in.
For more context, check out this Reddit thread where this was requested.
Reported here.
Should just be a matter of querying the swapped node and make sure that it's a leaf node.
If not, I need to get its children and handle each one of them accordingly.
It begs the question: Which leaf node should be focused in the destination's monocle mode? The biggest one?
Add support for bspm monocle --subscribe count_nodes
or something like it, that returns the number of nodes (hidden + focused) in a given desktop with "transparent monocle" mode activated, as that number changes.
When the focused node in monocle mode is turned into a floating window, the underlying node isn't made visible.
Make sure to also handle the inverse. A floating node being turned into a tiled node, thus hiding the previously shown node.
Subscribing to events, I can keep an internal representation of bspwm's state.
Allowing bspm for faster reaction times and expanded capabilities.
Add --version
flag. Potentially remove the -v
alias for --verbose
and give it to this flag instead.
Need to make sure this version gets set through build arguments in the release.yml
workflow. If possible.
It seems that force quitting nodes (through something like xkill
) will not handle it as a node_removal, leaving the screen empty, instead of showing the node beneath.
This might require non-bspwm features to solve, since bspwm solves this issue by not solving it. It just shows all nodes all the time, meaning that when the node gets force-quitted, the other nodes are already below.
If this can't be solved, or can't be solved easily, as I suspect, it's also an option to leave it like it is. As you simply have to toggle off and on to return to a functioning state.
I initially wasn't handling cases where nodes within the monocle mode might gain focus on their own, but it's best to do so. Just in case.
The idea is to allow for easier usage of the same keys (j
and k
, for example) in both monocle mode and tiled mode.
The end result would allow for this:
super + {j,k}
bspm monocle --next || bspc node -f {north,south}
Removing the need for a whole script.
Read through this discussion and make sure all the mentioned bugs get fixed.
Read this comment
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.