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
Feature Request: Resizing on a predefined grid (in percentage values) #4275
Labels
Comments
I think something like this can be implemented externally using the IPC and would probably favor doing it that way. |
Does this give you any ideas in the meantime?
#ᰜᰜᰜᰜᰜᰜ Resize Windows ᰜᰜᰜᰜᰜᰜ#
# Resizing windows with keyboard only:
https://unix.stackexchange.com/q/255344/150597
# Resizing by 1
bindsym $mod+control+Right resize grow width 1 px or 1 ppt
bindsym $mod+control+Left resize shrink width 1 px or 1 ppt
bindsym $mod+control+Up resize shrink height 1 px or 1 ppt
bindsym $mod+control+Down resize grow height 1 px or 1 ppt
#ᰜᰜᰜᰜᰜᰜ Resize i3-Gaps ᰜᰜᰜᰜᰜᰜ#
# gaps inner|outer|horizontal|vertical|top|right|bottom|left current|all
set|plus|minus|toggle
bindsym control+Shift+q gaps left current plus 10
bindsym control+Shift+w gaps left current minus 10
bindsym control+Shift+a gaps right current plus 10
bindsym control+Shift+s gaps right current minus 10
bindsym control+Shift+e gaps top current plus 10
bindsym control+Shift+d gaps bottom current plus 10
bindsym control+Shift+r gaps top current minus 10
bindsym control+Shift+f gaps bottom current minus 10
bindsym control+Shift+t gaps outer current toggle 40
bindsym control+Shift+g gaps outer current plus 10
bindsym control+Shift+b gaps outer current minus 10
bindsym control+Shift+y gaps outer all set 10
bindsym control+Shift+h gaps outer all set 20
bindsym control+Shift+n gaps outer all set 40
bindsym control+Shift+u gaps vertical current set 20
bindsym control+Shift+j gaps outer all set 40
bindsym control+Shift+m gaps outer all set 60
bindsym control+Shift+i gaps inner all set 5; gaps outer all set 5
bindsym control+Shift+k gaps inner all set 15; gaps outer all set 15
bindsym control+Shift+comma gaps inner all set 30; gaps outer all set 30
bindsym control+Shift+o gaps vertical current plus 10
bindsym control+Shift+l gaps vertical current minus 10
bindsym control+Shift+period gaps horizontal current plus 10
bindsym control+Shift+slash gaps horizontal current minus 10
bindsym control+Shift+bracketleft gaps all set minus 10
bindsym control+Shift+bracketright gaps all set plus 10
bindsym control+Shift+semicolon gaps right current plus 10
bindsym control+Shift+apostrophe gaps right current minus 10
…On Sat, Nov 28, 2020 at 7:54 AM Cookie Engineer ***@***.***> wrote:
Hey,
first off I wanted to say that i3 is amazing! I've been using it for a
couple months now and I love it. The behavior is very predictable and it
allows me to increase my productivity a lot! Thank you for your work on
this! :)
Today I took the time and wanted to figure out how I can increase my
productivity a bit further. I noticed that when it comes to resizing, I
usually prefer to have a grid of windows that have the same dimensions, so
I am resizing windows with very looooong repeated keypresses until I'm at a
specific window size again.
So I took a look at the codebase and the config schema. Currently, it
seems that i3 supports only dimensions for resizes in px and pt, is that
correct?
To take resizing a bit further, I wanted to ask whether it's possible to
have something like a predefined grid that is defined in percentages (so
it's easier to apply to different monitor resolutions if you have more than
a single monitor), whereas the resize bindings would lead to resizing to
the "next" or "prev" dimension that is defined in the grid.
Imagine a config for it like so:
mode "resize" {
resize_grid_x = 100% 75% 66% 50% 33% 25%
resize_grid_y = 100% 75% 50% 25%
bindsym Left resize shrink grid x
bindsym Right resize grow grid y
(... etc...)
}
bindsym $mod+x resize grow grid x
bindsym $mod+Shift+x resize shrink grid x
bindsym $mod+y resize grow grid y
bindsym $mod+Shift+y resize shrink grid y
If there would be an additional way to trigger resizing on the grid via
the predefined values for the current window, it would allow to very
efficiently relayout the screen.
What do you think about this? Is this a good idea?
What would be the necessary steps to implement this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#4275>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMYM3JNAIWWZZGIKYNV6OBDSSDXJNANCNFSM4UFY4WDQ>
.
--
All the world's problems can be fixed in a garden - Geoff Lawton
|
You can try something like finding 0.25*<your monitor width> and putting that as a variable in your config. You can then use that in the resize commands. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey,
first off I wanted to say that i3 is amazing! I've been using it for a couple months now and I love it. The behavior is very predictable and it allows me to increase my productivity a lot! Thank you for your work on this! :)
Today I took the time and wanted to figure out how I can increase my productivity a bit further. I noticed that when it comes to resizing, I usually prefer to have a grid of windows that have the same dimensions, so I am resizing windows with very looooong repeated keypresses until I'm at a specific window size again.
So I took a look at the codebase and the config schema. Currently, it seems that i3 supports only dimensions for resizes in
px
andpt
, is that correct?To take resizing a bit further, I wanted to ask whether it's possible to have something like a predefined grid that is defined in percentages (so it's easier to apply to different monitor resolutions if you have more than a single monitor), whereas the resize bindings would lead to resizing to the "next" or "prev" dimension that is defined in the grid.
Imagine a config for it like so:
If there would be an additional way to trigger resizing on the grid via the predefined values for the current window, it would allow to very efficiently relayout the screen.
What do you think about this? Is this a good idea?
What would be the necessary steps to implement this?
The text was updated successfully, but these errors were encountered: