Skip to content
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

Vertical layout for portrait mode #858

Open
nicolandu opened this issue May 12, 2024 · 7 comments
Open

Vertical layout for portrait mode #858

nicolandu opened this issue May 12, 2024 · 7 comments
Labels
enhancement Adds a new feature or extends scope

Comments

@nicolandu
Copy link

nicolandu commented May 12, 2024

I have a primary monitor in landscape mode and a second monitor in portrait mode. Consuming/expelling windows to get full-width windows stacked above one another on my secondary is a painstaking process, and new windows keep opening to the right rather than below.

I would suggest a per-monitor setting of the "ribbon direction" (top-bottom vs side-to-side), to be able to have a sideways layout on a landscape monitor and a vertical layout on a portrait monitor.

I have tried looking up ways to change this setting, such as changing the window opening direction (#829), but it seems to revolve around a horizontal layout.

For me, the lack of a per-monitor orientation setting is a showstopper, and I'll seriously have to reconsider my workflow. PaperWM seems to have a lot of potential for customization, but it doesn't seem to play nice with vertical monitors.

@nicolandu nicolandu added the enhancement Adds a new feature or extends scope label May 12, 2024
@jtaala
Copy link
Collaborator

jtaala commented May 13, 2024

Hey @nicolandu,

Sounds like i3 may suit your workflow better? PaperWM definitely isn't for everyone and their preferred workflows.

In any case, I'm starting to look at related functionality (see #725, #852). First step is functionality to "open" new windows in a vertical stack (which is not implemented atm). Once we have that, we could then add this behaviour (vertical stacking modes) to a new dynamic "openWindow" directions. Last step would be making dynamic opening direction "per monitor" (like we do with "focusModes").

It's on the books/plan to be added.

Cheers,

Jay.

@nicolandu
Copy link
Author

I appreciate your support, and I really like PaperWM! I'll have a look at i3, but for now, horizontal mode should do the job. Would you consider appropriate to close the issue?

@jtaala
Copy link
Collaborator

jtaala commented May 13, 2024

No probs. Keep the issue open for sure - I'm currently working on having consume and expel windows from a vertical stack honour the current "open window" direction (e.g. left/right). I'm pretty much done that and will add a PR soon.

Planning on tackling the "open window in a vertical stack" mode next/soon.

jtaala added a commit that referenced this issue May 23, 2024
This PR improves the situation described in #858, and resolves #725;

More specifically, it adds new "create window" modes:
- `down`: create new windows in vertical stack (below current active
window);
- `up`: create new windows in the vertical stack (above current active
window);


![image](https://github.com/paperwm/PaperWM/assets/30424662/4b82a7cb-aa13-4d1c-9f11-a3bc9a85c80c)

This PR also adds new keybinds (unset by default) to directly set the
position to open windows:

![image](https://github.com/paperwm/PaperWM/assets/30424662/7f2cd1f7-2345-426d-8aed-1b0712cc0c0d)
@rbutera
Copy link

rbutera commented Aug 15, 2024

No probs. Keep the issue open for sure - I'm currently working on having consume and expel windows from a vertical stack honour the current "open window" direction (e.g. left/right). I'm pretty much done that and will add a PR soon.

Planning on tackling the "open window in a vertical stack" mode next/soon.

Hey I'm considering moving to PaperWM but I am struggling to understand something... If I change the direction that new windows will open in will it apply to all monitors or just the monitor currently in focus?

Many people have a mix of portrait and landscape monitors. It would be great if PaperWM could automatically determine the tiling direction by picking the longer axis of the monitor. Portrait monitors would automatically tile vertically, and landscape monitors horizontally. If you could implement that I would use paperwm and nothing else ever again

@jtaala
Copy link
Collaborator

jtaala commented Aug 15, 2024

Hey I'm considering moving to PaperWM but I am struggling to understand something... If I change the direction that new windows will open in will it apply to all monitors or just the monitor currently in focus?

No. I don't actually use multiple monitors in my workflow, but would happily accept a PR if someone wanted to work on this. Note, a per space or monitor persistent setting could work here as well.

Many people have a mix of portrait and landscape monitors. It would be great if PaperWM could automatically determine the tiling direction by picking the longer axis of the monitor. Portrait monitors would automatically tile vertically, and landscape monitors horizontally. If you could implement that I would use paperwm and nothing else ever again

Sounds like a useful feature / option. I wouldn't use this though, but would would happily accept a PR for this if you or others would be interested in something like this

@nicolandu
Copy link
Author

nicolandu commented Aug 15, 2024 via email

@jtaala
Copy link
Collaborator

jtaala commented Aug 15, 2024

I definitely would be interested in this feature. Would it be technically difficult to implement?

Well, either way you'd need to implement a per monitor (or per space) persistent setting for this. After that you could implement your own logic for which direction to enable under various conditions.

Technically it fits within PaperWM's current implementations (so wouldn't be massively difficult). Difficulty to implement would really depend on someone's familiarity with js, gnome extensions and paperwm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Adds a new feature or extends scope
Projects
None yet
Development

No branches or pull requests

3 participants