## Variables
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

## 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

## Resize
bindsym $mod+r mode "resize"
mode "resize"
{
    bindsym Escape    mode "default"
    bindsym Control+c mode "default"
    bindsym h resize shrink width  10 px or 10 ppt
    bindsym j resize grow   height 10 px or 10 ppt
    bindsym k resize shrink height 10 px or 10 ppt
    bindsym l resize grow   width  10 px or 10 ppt
}

## 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"
}

## Borders
default_border          pixel 0
default_floating_border pixel 0

## Colors
# https://notes.rcrnstn.net/colors.md
#                       border    background text      indicator child_border
client.focused          #c6c6c6ff #000000ad  #c6c6c6ff #00000000 #00000000
client.focused_inactive #c6c6c6ff #000000c0  #919191ff #00000000 #00000000
client.placeholder      #919191ff #000000c0  #919191ff #00000000 #00000000
client.unfocused        #919191ff #000000c0  #919191ff #00000000 #00000000
client.urgent           #919191ff #000000c0  #ffb3b3ff #ffb3b3ff #00000000
client.background       #00000000

## Gaps
gaps inner 10
gaps outer -5