hyprwm / Hypr

Hypr is a tiling window manager written in modern C++.
BSD 3-Clause "New" or "Revised" License
1.06k stars 32 forks source link

Pseudo Tile Mode #43

Closed garrettjwilke closed 2 years ago

garrettjwilke commented 2 years ago

Pseudo Tile Mode allows windows that are in tiled mode to resize to it's floating mode dimensions. When you bring an app into floating mode, it allows you to resize the window to an optimal size (most apps remember this size). Pseudo Tile mode takes the window dimensions from it's floating mode size and keeps it that size when it is in tiled mode.

A great example of it's usefulness is with applications that are size sensitive. For instance, I use Epy to read e-books in my terminal window. It is easier to read when the window does not span across my entire screen, and is instead resized to a thinner width so lines are neatly confined into a vertical reading space.

Another great use case is videos that have a specific aspect ratio. I watch a lot of old TV shows that were only filmed in 4:3 aspect ratio, and it would be nice to have a clean background wallpaper with a clean 4:3 video playing in the middle of the screen.

As much as this feels like an aesthetic feature request, I would also argue that it provides actual functionality options as well. I really like Hypr so far (simple config, built in animations and rounded corners). With Pseudo Tile, I am pretty sure I will never need another WM again! I hear that you are working on a Wayland version, which would be even better! I tried out SWAY, and I really like how smooth it was, but they are merely doing a 1:1 feature match of i3wm (which means no possibility of Pseudo Tile Mode). Thanks for considering, and thanks for Hypr! :)

vaxerski commented 2 years ago

Will add in, shouldn't be a problem.

When it comes to Hyprland, pseudotile is not on the immediate bucket list as there are far more important issues atm, but it will be implemented in the future there as well.

vaxerski commented 2 years ago

added in 31694d4a4994d5595d884848c23af7a943e59c86.

you can add a window rule for a window to be automatically pseudod at launch, or a bind.

both the windowrule and dispatcher for a bind are named pseudo. (See the updated wiki page)

Thanks!

garrettjwilke commented 2 years ago

wow... that was fast... this is awesome! thanks :)