paperwm / PaperWM

Tiled scrollable window management for Gnome Shell
GNU General Public License v3.0
3.03k stars 127 forks source link

Drop a "taken" window in the first column #852

Open gustavcedersjo opened 5 months ago

gustavcedersjo commented 5 months ago

I like the "take" functionality, because I only need to remember Super+T in addition to the normal navigation keys. However, I don't know how to drop a window in the first column, all the way to the left. Could the "take" mode be extended somehow to select this column as well? Maybe a combination of the "take" UI and the "drag-n-drop" UI? Other ideas?

jtaala commented 5 months ago

Not sure I understand here, but if you mean dropping the window to the "left" of current window you can change the window insertion position while in "take" mode (although it occurred to me that you might need to change your keybind for insertion point windows to make this easier - e.g. I have alt+r as my "take" keybind, and alt+~ as my switch "open window position" keybind). See https://github.com/paperwm/PaperWM?tab=readme-ov-file#window-insertion-position-for-new-windows

You can also add "open position modes" in advanced settings (e.g. enable the start mode, which will drop a window at the start of the tiling group).

If you mean to drop a window in a column (e.g. multi-window vertical stack) - then there's currently nothing. I suppose it could be added to the "take" mode keybinds (https://github.com/paperwm/PaperWM?tab=readme-ov-file#managing-multiple-windows-at-once).

I don't really use the vertical stacking too much, but can see the use in this one.

gustavcedersjo commented 5 months ago

I think I want a drop mode, as a complement to the take mode.

First you take some windows, for example with Super+T. Then, if you want better control of where to drop, you enter the new drop mode, for example with Super+D. In the drop mode, you can select which space between columns or rows where you want to drop your windows.

This drop mode could borrow its visuals from the drag-and-drop feature, with the overlay boxes that marks out the drop location. If the marker is vertical (between columns), the windows should be inserted in that space, in separate columns. This is similar to the normal exit of the take mode, but with the difference that you can drop the windows anywhere irrespective of the "open position mode". If the marker is horizontal (between rows), the windows should be inserted in that space in separate rows in that column.

Does it make more sense?

By the way, I really like the vertical stacking. I usually put my editor at almost full height above a low height terminal window.

jtaala commented 5 months ago

I think I want a drop mode, as a complement to the take mode.

We currently have a "drop mode" (while in take mode you can press spacebar and you'll drop a single window where you want). What version of PaperWM are you on?

E.g. see https://github.com/paperwm/PaperWM/pull/808

Selectively take/drop windows (pressing spacebar to drop the latest taken window):

https://github.com/paperwm/PaperWM/assets/30424662/f736adea-d5ba-4c9d-aca0-2f63322c08cb

jtaala commented 5 months ago

P.S. pressing tab or shift+tab in take mode cycles through current "taken" window in case you want to drop a different window.

It sounds like we could do what you want to do simply by adding another keybind (similar to spacebar) that would drop a window into a row (instead of next to the currently selected window).

paulelms commented 3 months ago

We currently have a "drop mode" (while in take mode you can press spacebar and you'll drop a single window where you want).

Please make it customizable. Win+Space is the default combination for switching between input languages, so when Win+T is held down, additional clicks on Space switch languages, and do not allow you to drop the window

jtaala commented 3 months ago

We currently have a "drop mode" (while in take mode you can press spacebar and you'll drop a single window where you want).

Please make it customizable. Win+Space is the default combination for switching between input languages, so when Win+T is held down, additional clicks on Space switch languages, and do not allow you to drop the window

Fair enough (feel free to create a feature-request for this one). I don't know when I'll get time to look at this one, but in the meantime some options for you:

What distro are you using? If language switching was a gnome shortcut, PaperWM should take preference here, but it might using something like ibus shortcut (see similar issue here https://github.com/paperwm/PaperWM/issues/690).

I would accept a PR with an implementation to change this in PaperWM settings!

Cheers.

lambdaclan commented 2 months ago

It sounds like we could do what you want to do simply by adding another keybind (similar to spacebar) that would drop a window into a row (instead of next to the currently selected window).

As someone who would also like some control over where taken windows can be dropped I was wondering if you could just make the default drop hotkey (spacebar) follow the global Switch between positions for creating new windows option. Basically make it work with both new and taken windows. I realized that while in take mode you can actually switch the position so it is just a matter of making the drop mode also follow it!

I am not sure how complex that would be and if it might be easier to just add another hotkey for dropping directly into a row, but I am just making a suggestion.

Thank you for all your work on this wonderful extension which has dramatically improved my workflow.

jtaala commented 2 months ago

As someone who would also like some control over where taken windows can be dropped I was wondering if you could just make the default drop hotkey (spacebar) follow the global Switch between positions for creating new windows option. Basically make it work with both new and taken windows. I realized that while in take mode you can actually switch the position so it is just a matter of making the drop mode also follow it!

Hey @lambdaclan - ah yes, this works for left/right/start/end positions (this is what it was designed for too) - didn't think about the other positions (down, up, start, end) for take mode dropping - but makes sense to do that as well.

Note we also have direct keybinds to select a drop position directly as well (no keybind by default, but can be set by users):

image

jtaala commented 2 months ago

I like the "take" functionality, because I only need to remember Super+T in addition to the normal navigation keys. However, I don't know how to drop a window in the first column, all the way to the left. Could the "take" mode be extended somehow to select this column as well? Maybe a combination of the "take" UI and the "drag-n-drop" UI? Other ideas?

Hey @gustavcedersjo - note you can already do this by selecting the create new window position mode as start. You can even do this during take mode. E.g. in the video below, you'll see me taking multiple windows, using my keybind to switch drop position to start and then hitting spacebar (which drops window at the start position):

Screencast from 2024-08-11 17-28-14.webm

jtaala commented 2 months ago

I'm planning on closing this particular issue given you can already do this (unless I misunderstood the original issue).

lambdaclan commented 2 months ago

I'm planning on closing this particular issue given you can already do this (unless I misunderstood the original issue).

Hey @lambdaclan - ah yes, this works for left/right/start/end positions (this is what it was designed for too) - didn't think about the other positions (down, up, start, end) for take mode dropping - but makes sense to do that as well.

As you will be closing this issue I made a new one #928 to track the request to drop windows in any position (left/right, start/end and down/up).