i3: use dynamic layouts with i3-layouts

This commit is contained in:
Julian Mutter 2022-06-17 10:24:19 +00:00
parent 5377574b86
commit 5b0960b26b

View File

@ -13,17 +13,13 @@ set $mod Mod4
set $scripts ~/.config/i3/scripts
set $lock "i3lock --ignore-empty-password --color=000000"
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 12
# Font for window titles
font pango:FuraCode Nerd Font 12
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 12
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
@ -76,30 +72,28 @@ bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
bindsym $mod+Shift+h exec i3l move left
bindsym $mod+Shift+j exec i3l move down
bindsym $mod+Shift+k exec i3l move up
bindsym $mod+Shift+l exec i3l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
bindsym $mod+Shift+Left exec i3l move left
bindsym $mod+Shift+Down exec i3l move down
bindsym $mod+Shift+Up exec i3l move up
bindsym $mod+Shift+Right exec i3l move right
# split in horizontal orientation
bindsym $mod+Shift+v split h
# split in vertical orientation
bindsym $mod+v split v
# split in horizontal / vertical orientation
# bindsym $mod+Shift+v split h
# bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+Shift+w layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# bindsym $mod+Shift+w layout stacking
# bindsym $mod+w layout tabbed
# bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
@ -108,11 +102,14 @@ bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# The middle button over a titlebar kills the window
bindsym --release button2 kill
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
@ -126,6 +123,17 @@ set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
set $i3l vstack to workspace $ws1
set $i3l vstack to workspace $ws2
set $i3l vstack to workspace $ws3
set $i3l vstack to workspace $ws4
set $i3l vstack to workspace $ws5
set $i3l vstack to workspace $ws6
set $i3l vstack to workspace $ws7
set $i3l vstack to workspace $ws8
set $i3l vstack to workspace $ws9
set $i3l vstack to workspace $ws10
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
@ -198,12 +206,12 @@ bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3blocks
position bottom
i3bar_command i3bar --transparency
bindsym button3 exec --no-startup-id jgmenu_run
}
#bar {
# status_command i3blocks
# position bottom
# i3bar_command i3bar --transparency
# bindsym button3 exec --no-startup-id jgmenu_run
#}
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
@ -243,30 +251,65 @@ mode "$mode_screenshot_clipboard" {
}
bindsym $mod+Print mode "$mode_screenshot_clipboard"
bindsym $mod+Ctrl+Right move workspace to output right
bindsym $mod+Ctrl+Left move workspace to output right
set $mode_choose_layout Layout (h) vstack-left, (l) vstack-right, (k) hstack-top, (j) hstack-bottom, (c) 2columns
mode "$mode_choose_layout" {
bindsym h exec i3l vstack 0.5 right, mode "default"
bindsym l exec i3l vstack 0.5 left, mode "default"
bindsym j exec i3l hstack 0.5 up, mode "default"
bindsym k exec i3l hstack 0.5 down, mode "default"
bindsym c exec i3l 2columns left, mode "default"
# back to normal: Escape
bindsym Escape mode "default"
}
bindsym $mod+G mode "$mode_choose_layout"
bindsym $mod+Ctrl+h exec i3l vstack 0.5 right, mode "default"
bindsym $mod+Ctrl+l exec i3l vstack 0.5 left, mode "default"
bindsym $mod+Ctrl+j exec i3l hstack 0.5 up, mode "default"
bindsym $mod+Ctrl+k exec i3l hstack 0.5 down, mode "default"
bindsym $mod+Ctrl+Left exec i3l vstack 0.5 right, mode "default"
bindsym $mod+Ctrl+Right exec i3l vstack 0.5 left, mode "default"
bindsym $mod+Ctrl+Down exec i3l hstack 0.5 up, mode "default"
bindsym $mod+Ctrl+Up exec i3l hstack 0.5 down, mode "default"
#bindsym $mod+Ctrl+Right move workspace to output right
#bindsym $mod+Ctrl+Left move workspace to output right
#bindsym $mod+c exec xfce4-terminal --role floating --hide-scrollbar --title Calculator -e qalc
bindsym $mod+c exec qalculate-gtk
bindsym $mod+p exec xwacomcalibrate
bindsym $mod+t exec thunar
# bindsym $mod+p exec xwacomcalibrate
# bindsym $mod+t exec thunar
bindsym $mod+t exec krusader
#bindsym $mod+m exec xfce4-terminal -x mc
bindsym $mod+Shift+c exec $scripts/jupyter-calculator
bindsym $mod+b exec firefox
bindsym $mod+s exec pavucontrol
#bindsym $mod+s exec pavucontrol
bindsym $mod+u exec pamac-manager
bindsym $mod+p [con_mark="i3l::previous"] focus
bindsym $mod+m [con_mark="i3l:[^:]+:main" workspace="__focused__"] focus
# bindsym $mod+Shift+m [con_mark="i3l:[^:]+:main" workspace="__focused__"] focus; exec i3l swap container with mark "i3l::previous"
#exec $scripts/i3l-swap-master
# bindsym $mod+Shift+m exec i3l [con_mark="i3l:[^:]+:main" workspace="__focused__"] swap container with mark "i3l::current"
# bindsym $mod+Shift+m exec i3l swap container with mark "__focused__:main"
# read 1 character and mark the current window with this character
bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '
# bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '
# read 1 character and go to the window with the character
bindsym $mod+Shift+m exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
# bindsym $mod+Shift+m exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
workspace_auto_back_and_forth yes
default_border pixel
# default_border pixel
default_border normal
default_floating_border normal
hide_edge_borders smart
focus_on_window_activation focus
show_marks no
focus_on_window_activation smart
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
assign [class="TelegramDesktop"] workspace $ws9
@ -276,7 +319,7 @@ assign [class="Element"] workspace $ws9
assign [class="Thunderbird"] workspace $ws10
assign [class="zoom"] workspace $ws5
for_window [class="firefox"] focus
for_window [class="firefox" urgent="latest"] focus
#for_window [class="Thunderbird"] focus
#for_window [class="TelegramDesktop"] no_focus
#for_window [class="Rocket.Chat"] no_focus
@ -307,7 +350,9 @@ exec_always ~/.screenlayout/one-screen.sh
#exec element-desktop no_focus
#exec telegram-desktop no_focus
exec_always --no-startup-id i3-layouts
# Rightclick menu
exec_always --no-startup-id ~/.config/polybar/startup.sh
exec --no-startup-id jgmenu --at-pointer --hide-on-startup
exec --no-startup-id nm-applet
exec --no-startup-id blueman-applet
@ -332,3 +377,9 @@ exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
#exec --no-startup-id i3-msg workspace $ws1
#exec --no-startup-id i3-msg workspace $ws10
#bindsym $mod+Ctrl+q exec i3l 'vstack right' && notify-send 'Layout vstack right'
#bindsym $mod+Ctrl+w exec i3l 'vstack left' && notify-send 'Layout vstack left'
#bindsym $mod+Ctrl+e exec 'i3l hstack down' && notify-send 'Layout hstack down'
#bindsym $mod+Ctrl+r exec 'i3l hstack up' && notify-send 'Layout hstack up'
#bindsym $mod+Ctrl+t exec i3l 3columns right && notify-send 'Layout 3columns'
#bindsym $mod+Ctrl+z exec i3l 2columns left && notify-send 'Layout 2columns'