Enhancement: Add an option to move window decorations to the bottom. #2747

Open
fknorr opened this Issue Apr 23, 2017 · 4 comments

Comments

Projects
None yet
5 participants
@fknorr

fknorr commented Apr 23, 2017

For some setups it might be desirable to have window decorations appear at the bottom of a window or container:

  • For mouse-heavy applications, the top of the window is usually a menu- or toolbar. It is easy to accidentally click on a titlebar, thereby switching to a different window inside a tabbed layout.
  • If i3bar is located at the top of the screen, having the decorations at the bottom reduces visual clutter.

I propose a configuration option

window_decorations top|bottom

to (globally) set the position of titlebars and tabs.

I would love to implement this feature myself, but I'll probably need assistance from somebody experienced with i3 internals.

@fknorr fknorr changed the title from Add an option to move window decorations to the bottom. to Enhancement: Add an option to move window decorations to the bottom. Apr 24, 2017

@Airblader

This comment has been minimized.

Show comment
Hide comment
@Airblader

Airblader Apr 25, 2017

Member

This request duplicates #2441, but the motivating usecase here is a different one, thus I think it deserves being reconsidered.

Member

Airblader commented Apr 25, 2017

This request duplicates #2441, but the motivating usecase here is a different one, thus I think it deserves being reconsidered.

@snippins

This comment has been minimized.

Show comment
Hide comment
@snippins

snippins Apr 28, 2017

These situations also happen a lot to me. I would love to have this feature added to i3.

These situations also happen a lot to me. I would love to have this feature added to i3.

@snippins

This comment has been minimized.

Show comment
Hide comment
@snippins

snippins May 23, 2017

@fknorr Hi, I have come up with a workaround for the first use-case. In stead of focus with one click, you can make it a double click to focus by putting this into the config file:

mode "m1_doubleclick" {
    bindsym button1 focus, mode "default"
    bindsym Mod2+button1 focus, mode "default"
    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym button1 mode "m1_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"
bindsym Mod2+button1 mode "m1_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"

Bonus: you could also use the same idea for to use double click to close tab:

mode "m2_doubleclick" {
    bindsym button2 kill, mode "default"
    bindsym Mod2+button2 kill, mode "default"
    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym button2 mode "m2_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"
bindsym Mod2+button2 mode "m2_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'" 

Hope it helps.

@fknorr Hi, I have come up with a workaround for the first use-case. In stead of focus with one click, you can make it a double click to focus by putting this into the config file:

mode "m1_doubleclick" {
    bindsym button1 focus, mode "default"
    bindsym Mod2+button1 focus, mode "default"
    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym button1 mode "m1_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"
bindsym Mod2+button1 mode "m1_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"

Bonus: you could also use the same idea for to use double click to close tab:

mode "m2_doubleclick" {
    bindsym button2 kill, mode "default"
    bindsym Mod2+button2 kill, mode "default"
    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym button2 mode "m2_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'"
bindsym Mod2+button2 mode "m2_doubleclick", exec --no-startup-id "sleep 0.3 && i3-msg mode 'default'" 

Hope it helps.

@Abnaxos

This comment has been minimized.

Show comment
Hide comment
@Abnaxos

Abnaxos Aug 1, 2017

+1 from me.

My mouse goes to the top border for accessing menus and the like. I usually disable title bars completely for that reason. However, with stacked or tabbed layout, there will be window decorations (for a good reason). These UI elements are rather unimportant (i3 being a keyboard-centric window manager), the top of the screen should be reserved for important UI elements.

Note that because I disable title bars by default for non-floating windows, I'm perfectly fine with the title bar (if present) being at the top if the window (I don't care, actually). The important thing for me is to move tabbed and stacked layout to the bottom.

Edit: Given that most screens nowadays are wide (16:9), we've usually got plenty of horizontal space, while vertical space is limited. Therefore, being able to put window decorations, tabs etc. to the left/right might also be a very valuable option.

Abnaxos commented Aug 1, 2017

+1 from me.

My mouse goes to the top border for accessing menus and the like. I usually disable title bars completely for that reason. However, with stacked or tabbed layout, there will be window decorations (for a good reason). These UI elements are rather unimportant (i3 being a keyboard-centric window manager), the top of the screen should be reserved for important UI elements.

Note that because I disable title bars by default for non-floating windows, I'm perfectly fine with the title bar (if present) being at the top if the window (I don't care, actually). The important thing for me is to move tabbed and stacked layout to the bottom.

Edit: Given that most screens nowadays are wide (16:9), we've usually got plenty of horizontal space, while vertical space is limited. Therefore, being able to put window decorations, tabs etc. to the left/right might also be a very valuable option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment