Open Vladimir-csp opened 2 months ago
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.
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
no_gaps_when_only
/no_gaps_when_more
border
, decoration
, etc in workspace rules.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.
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.
Description
Intermediate mode for
fullscreen
that ignores gaps, but keeps bar(s).