New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Focus on monitor if there are no more apps left to focus #145
Comments
Coming from Linux tiling window managers this was something I immediately missed as well. Similarly, you'd expect the Also echo that this application is FABULOUS. As a designer I don't have much to offer but documentation help on this project, but I'll try and help where I can. |
The main underlying issue that needs to be resolved in order to implement this is being able to look at all of the monitors stored in the window manager state (they are indexed according to the numbers given to them by Windows ^), and be able to tell which monitor (if any) is placed to the left, right, top or bottom of the currently focused monitor. Then, with a reliable way to determine the index of a target monitor, if the user's focus is on a window at the given edge of the current monitor, and there is a physical monitor at that edge, it should be fairly easy to call the existing handlers that exist to operate across monitor boundaries. Just thinking about it makes my head hurt. 😅 I'll keep thinking about this and playing around with a few different ideas to see how this can work. |
This commit introduces the ability to operate across monitor boundaries with the 'move' and 'focus' commands. When operating down or to the right, the target index of the monitor in that direction will be 0. When operating up or to the left, the target index will either be len() - 1 if focusing, or len() if moving. re #145
@jrmallorca @snide The latest commit on this branch has something that is ready for user testing: https://github.com/LGUG2Z/komorebi/tree/feature/operate-across-monitors I was only able to test this with one monitor in each direction with my iPad hooked up via Duet; I'd be interested it see if what I've done holds up when there are 3+ monitors in the mix. |
I'll give this a shot tomorrow, ty! I should also have a video done by the end of the week. I'm still learning some of the deeper features and want to make sure I wire up the custom layout template logic. |
After doing some more research on how other tiling window managers handle focusing and moving across monitor boundaries, I'm going to modify the |
This commit ensures that when focusing across a monitor boundary, the focus will go to the last focused window container on the focused workspace on the other side of a given window boundary. re #145
Changing a Putting it on the backburner for now. |
This commit ensures that when moving across a monitor boundary, the origin window container will be swapped with the last focused window container on the other side of the monitor boundary. If there is no window container on the other side of the window boundary, it will be treated as a move instead of a swap. re #145
This commit provides two new commands, to set and toggle the behaviour (swap, insert) when moving window containers across monitor boundaries. MoveBehaviour::Swap has been selected as the default as this seems to be the default on bspwm. re #145
The desired behaviour move is now configurable and toggle-able:
With this I think the feature is almost done pending user testing on setups of 3+ monitors in different orientations. |
Cool! I'll check this tonight. |
This commit introduces the ability to operate across monitor boundaries with the 'move' and 'focus' commands. When operating down or to the right, the target index of the monitor in that direction will be 0. When operating up or to the left, the target index will either be len() - 1 if focusing, or len() if moving. re #145
This commit ensures that when focusing across a monitor boundary, the focus will go to the last focused window container on the focused workspace on the other side of a given window boundary. re #145
This commit ensures that when moving across a monitor boundary, the origin window container will be swapped with the last focused window container on the other side of the monitor boundary. If there is no window container on the other side of the window boundary, it will be treated as a move instead of a swap. re #145
This commit provides two new commands, to set and toggle the behaviour (swap, insert) when moving window containers across monitor boundaries. MoveBehaviour::Swap has been selected as the default as this seems to be the default on bspwm. re #145
After some more testing I'm happy enough with the state of this to merge it into the |
Hello, I just wanna say thanks to creating your twm. Makes dealing with Windows a bit better.
I was wondering whether it's currently possible or not to be able to focus on a monitor if there are no more apps in the specified direction but there is a monitor.
For example, say we had 2 monitors M1 and M2 that are next to each other. M1 is on the left and M2 is on the right. Then say we had two apps A1 and A2. A1 is in M1 and A2 is in M2.
If A1 is currently focused, then when I try to focus right I would like to focus on A2 which is in M2.
The text was updated successfully, but these errors were encountered: