Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

"fullscreen, 2" (ignore gaps)

Open Vladimir-csp opened this issue 1 year ago • 4 comments

Description

Intermediate mode for fullscreen that ignores gaps, but keeps bar(s).

Vladimir-csp avatar Aug 08 '24 21:08 Vladimir-csp

Like fullscreen 1 +

master {
    no_gaps_when_only = 1 # single monocle, basically
}

dwindle {
    no_gaps_when_only = 1 # single monocle, basically
}

?

https://github.com/user-attachments/assets/f069b10a-b76f-44c6-8f48-1c38927c5a11

EDIT:

Oh, I see that you've tried it in another issue. So there is an option to do what you want, but presudotiling, which you also want, doesn't work when no_gaps_when_only is enabled. I'm pretty sure it ...used to work? Haven't used it in ages, tho.

MahouShoujoMivutilde avatar Aug 08 '24 23:08 MahouShoujoMivutilde

I'm moving in from sway and experimenting with everything. Sometimes the whole screen for a single window is way too much, but sometimes it is perfect and border is useless. TLDR what I want is to be able to switch on the fly between two states: 1. single tile on workspace is limited and has border, 2. single tile on workspace is maximized with no border.

Currently I'm using:

$HGAP = 200
# single window width limit for ws 1,2
workspace = r[1-2] w[t1], gapsout:0 $HGAP 0 $HGAP
workspace = r[1-2] w[g1], gapsout:0 $HGAP 0 $HGAP
# single window smart gaps emulation for ws 3-10
workspace = r[3-10] w[t1], border:0, decoration:0

I can tweak the gap with hyprctl keyword '$HGAP' N, i.e. from kanshi to keep the window size sane while hopping monitors (another potential feature request: setting gaps in reverse, by remaining area size. Would eliminate all the kanshi scripting hassle).

But this rule arrangement has downsides: switching from gapped single window to no gaps and back is not trivial, that is why I made different states on different workspaces. border:0, decoration:0 also strips borders from floating windows on that workspaces. And there is no "reverse smart gaps" like in sway.

fullscreen, 1 is a great feature though, it also very neatly replaces single group container with no extra shortcuts to manage. So I thought fullscreen, 2 ignoring the gaps and keeping bars would be perfect (and possibly also disabling borders, fullscreen, 3?).

Alternative features for these goals or in their general direction would be:

  • no_gaps_when_more
  • per-workspace dispatcher variant of no_gaps_when_only/no_gaps_when_more
  • tiled/floating limiters for border, decoration, etc in workspace rules.

Vladimir-csp avatar Aug 09 '24 06:08 Vladimir-csp

Not sure if I understand what you try to achieve. Try this: Disable no_gaps_when_only and then use this binding:

bind = $mainMod, F, fullscreen, 1

and these rules:

workspace=f[0],rounding:false,bordersize:0,gapsout:0
workspace=f[1],rounding:false,bordersize:0,gapsout:0

which disable gaps if a window is fullscreened.

LDAP avatar Aug 09 '24 18:08 LDAP

Good idea!

$HGAP = 200
workspace = r[1-10] w[tv1] f[-1], gapsout:0 $HGAP 0 $HGAP
workspace = r[1-10] f[1], gapsout:0 0 0 0
windowrulev2 = noborder, fullscreen:1

(edit: optimized and fixed corner cases with group/tile mixes) Now single tiles or groups are contained, and I can maximize them dropping borders. I guess the initial request is is fulfilled with this construct. Downsides are: no floating windows while maximized, have to unmaximize to see any new windows.

Per-workspace dispatcher variant of no_gaps_when_only would be great.

Vladimir-csp avatar Aug 09 '24 21:08 Vladimir-csp

Hello there!

This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.

Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)

Thank you for your understanding!

vaxerski avatar Apr 05 '25 18:04 vaxerski