## Mod
set $mod Mod4
floating_modifier $mod
## Font
font pango:monospace 10
## Wrapping
focus_wrapping no
## Focus window
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
## Move 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
## Resize window
bindsym $mod+Control+h resize shrink width 10 px or 10 ppt
bindsym $mod+Control+j resize grow height 10 px or 10 ppt
bindsym $mod+Control+k resize shrink height 10 px or 10 ppt
bindsym $mod+Control+l resize grow width 10 px or 10 ppt
## Focus parent
bindsym $mod+a focus parent
## Focus child
bindsym $mod+z focus child
## Split
bindsym $mod+v split h
bindsym $mod+s split v
## Layout
bindsym $mod+q layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
## Toggle fullscreen
bindsym $mod+f fullscreen toggle
## Toggle floating focus
bindsym $mod+Shift+f focus mode_toggle
## Toggle floating
bindsym $mod+Control+f floating toggle
## Automatic floating
for_window [instance="(^|-)floating(-|$)"] floating enable
## Kill
bindsym $mod+Shift+q kill
## Reload
bindsym $mod+Shift+r reload
## Restart
bindsym $mod+Control+r restart
## Exit
# bindsym $mod+Control+e exit
## Terminal
bindsym $mod+Return exec --no-startup-id $TERMINAL
## Launcher
bindsym $mod+d exec --no-startup-id rofi -show drun
## Rename workspace
bindsym $mod+x exec --no-startup-id i3-workspace-rename rofi -dmenu -l 0 -filter
## Switch workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
bindsym $mod+Tab workspace next
bindsym $mod+Shift+Tab workspace prev
bindsym $mod+Control+Tab workspace back_and_forth
## Move to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
## Move and switch to workspace
bindsym $mod+Control+1 move container to workspace number 1; workspace number 1
bindsym $mod+Control+2 move container to workspace number 2; workspace number 2
bindsym $mod+Control+3 move container to workspace number 3; workspace number 3
bindsym $mod+Control+4 move container to workspace number 4; workspace number 4
bindsym $mod+Control+5 move container to workspace number 5; workspace number 5
bindsym $mod+Control+6 move container to workspace number 6; workspace number 6
bindsym $mod+Control+7 move container to workspace number 7; workspace number 7
bindsym $mod+Control+8 move container to workspace number 8; workspace number 8
bindsym $mod+Control+9 move container to workspace number 9; workspace number 9
bindsym $mod+Control+0 move container to workspace number 10; workspace number 10
## Mark
bindsym $mod+m mode "mark"
mode "mark"
{
bindsym Escape mode "default"
bindsym Control+c mode "default"
bindsym $mod+a mark --add --toggle a; mode "default"
bindsym $mod+b mark --add --toggle b; mode "default"
bindsym $mod+c mark --add --toggle c; mode "default"
bindsym $mod+d mark --add --toggle d; mode "default"
bindsym $mod+e mark --add --toggle e; mode "default"
bindsym $mod+f mark --add --toggle f; mode "default"
bindsym $mod+g mark --add --toggle g; mode "default"
bindsym $mod+h mark --add --toggle h; mode "default"
bindsym $mod+i mark --add --toggle i; mode "default"
bindsym $mod+j mark --add --toggle j; mode "default"
bindsym $mod+k mark --add --toggle k; mode "default"
bindsym $mod+l mark --add --toggle l; mode "default"
bindsym $mod+m mark --add --toggle m; mode "default"
bindsym $mod+n mark --add --toggle n; mode "default"
bindsym $mod+o mark --add --toggle o; mode "default"
bindsym $mod+p mark --add --toggle p; mode "default"
bindsym $mod+q mark --add --toggle q; mode "default"
bindsym $mod+r mark --add --toggle r; mode "default"
bindsym $mod+s mark --add --toggle s; mode "default"
bindsym $mod+t mark --add --toggle t; mode "default"
bindsym $mod+u mark --add --toggle u; mode "default"
bindsym $mod+v mark --add --toggle v; mode "default"
bindsym $mod+w mark --add --toggle w; mode "default"
bindsym $mod+x mark --add --toggle x; mode "default"
bindsym $mod+y mark --add --toggle y; mode "default"
bindsym $mod+z mark --add --toggle z; mode "default"
bindsym $mod+1 mark --add --toggle 1; mode "default"
bindsym $mod+2 mark --add --toggle 2; mode "default"
bindsym $mod+3 mark --add --toggle 3; mode "default"
bindsym $mod+4 mark --add --toggle 4; mode "default"
bindsym $mod+5 mark --add --toggle 5; mode "default"
bindsym $mod+6 mark --add --toggle 6; mode "default"
bindsym $mod+7 mark --add --toggle 7; mode "default"
bindsym $mod+8 mark --add --toggle 8; mode "default"
bindsym $mod+9 mark --add --toggle 9; mode "default"
bindsym $mod+0 mark --add --toggle 0; mode "default"
bindsym a [con_mark="a"] focus; mode "default"
bindsym b [con_mark="b"] focus; mode "default"
bindsym c [con_mark="c"] focus; mode "default"
bindsym d [con_mark="d"] focus; mode "default"
bindsym e [con_mark="e"] focus; mode "default"
bindsym f [con_mark="f"] focus; mode "default"
bindsym g [con_mark="g"] focus; mode "default"
bindsym h [con_mark="h"] focus; mode "default"
bindsym i [con_mark="i"] focus; mode "default"
bindsym j [con_mark="j"] focus; mode "default"
bindsym k [con_mark="k"] focus; mode "default"
bindsym l [con_mark="l"] focus; mode "default"
bindsym m [con_mark="m"] focus; mode "default"
bindsym n [con_mark="n"] focus; mode "default"
bindsym o [con_mark="o"] focus; mode "default"
bindsym p [con_mark="p"] focus; mode "default"
bindsym q [con_mark="q"] focus; mode "default"
bindsym r [con_mark="r"] focus; mode "default"
bindsym s [con_mark="s"] focus; mode "default"
bindsym t [con_mark="t"] focus; mode "default"
bindsym u [con_mark="u"] focus; mode "default"
bindsym v [con_mark="v"] focus; mode "default"
bindsym w [con_mark="w"] focus; mode "default"
bindsym x [con_mark="x"] focus; mode "default"
bindsym y [con_mark="y"] focus; mode "default"
bindsym z [con_mark="z"] focus; mode "default"
bindsym 1 [con_mark="1"] focus; mode "default"
bindsym 2 [con_mark="2"] focus; mode "default"
bindsym 3 [con_mark="3"] focus; mode "default"
bindsym 4 [con_mark="4"] focus; mode "default"
bindsym 5 [con_mark="5"] focus; mode "default"
bindsym 6 [con_mark="6"] focus; mode "default"
bindsym 7 [con_mark="7"] focus; mode "default"
bindsym 8 [con_mark="8"] focus; mode "default"
bindsym 9 [con_mark="9"] focus; mode "default"
bindsym 0 [con_mark="0"] focus; mode "default"
}
## Floating
for_window [title="^xzoom x[0-9]+$"] floating enable
## Borders
default_border pixel 0
default_floating_border pixel 0
for_window [class=".*"] border pixel 0
## Gaps
gaps inner 10
gaps outer -5
# gaps top 21
# gaps bottom 21
## DEBUG
# bindsym $mod+Shift+w border pixel 1; gaps inner all set 0; gaps outer all set 0;
# bindsym $mod+Shift+e border pixel 0; gaps inner all set 10; gaps outer all set -5;
bindsym $mod+Shift+w border pixel 1
bindsym $mod+Shift+e border pixel 0
## Colors
# https://notes.rcrnstn.net/colors.md
# RGBA
# TODO: `set_from_resource` (with fallback)?
# hex(round(0xff*0.75)) = hex(floor(0xff*0.75)) = '0xbf'
# hex(round(0xff*0.75*0.90)) = hex(floor(0xff*0.75*0.90)) = '0xac'
set $bgnone #00000000
set $bginactive #000000bf
set $bgactive #000000ac
# OKLCH
# Lightness: 0.0, 0.3740, 0.5609, 0.7479
# Chroma 0.0, 0.0645, 0.1289
# Hue: 29.23, 89.23, 149.23, 209.23, 269.23, 329.23
set $bgblack #000000ff
set $bgred #5e332cff
set $bggreen #264a2eff
set $bgyellow #4e3f12ff
set $bgblue #333f63ff
set $bgmagenta #543451ff
set $bgcyan #004a53ff
set $bgwhite #414141ff
set $fgblack #757575ff
set $fgred #f48c7dff
set $fggreen #6ec480ff
set $fgyellow #cea93fff
set $fgblue #8ca9ffff
set $fgmagenta #da8fd5ff
set $fgcyan #01c3d9ff
set $fgwhite #adadadff
# Unkown (Lch_uv?)
# set $bgblack #000000ff
# set $bgred #553535ff
# set $bggreen #26442aff
# set $bgyellow #453d1eff
# set $bgblue #323e55ff
# set $bgmagenta #51344eff
# set $bgcyan #044545ff
# set $bgwhite #3e3e3eff
# set $fgblack #797979ff
# set $fgred #ffa6a7ff
# set $fggreen #7bd188ff
# set $fgyellow #d3be67ff
# set $fgblue #9dbfffff
# set $fgmagenta #f3a3ecff
# set $fgcyan #00d3d4ff
# set $fgwhite #bebebeff
# border background text indicator child_border
client.focused $fgwhite $bginactive $fgwhite $fgblack $fgwhite
client.focused_inactive $fgblack $bginactive $fgwhite $fgblack $fgblack
client.unfocused $fgblack $bginactive $fgblack $fgblack $fgblack
client.placeholder $fgblack $bginactive $fgblack $fgblack $fgblack
client.urgent $fgblack $bginactive $fgred $fgblack $fgblack
client.background $bgnone