Skip to content

i3

https://i3wm.org/

Tiling window manager for Linux

  • The default modifier key is Win, also called Meta or Cmd. In the following I just call it Win, because that corresponds to the logo/icon this key has on most keyboards.
Shortcut Function
Win+D Start launcher (dmenu)
Win+DownArrow Focus window below
Win+E Switch container to split layout. If the container is already split, changes from horizontal to vertical split or vice-versa.
Win+Enter Open terminal emulator
Win+H The next window should be split horizontally (to the right)
Win+J Switch between windows
Win+LeftArrow Focus window to the left
Win+RightArrow Focus window to the right
Win+Shift+E Exit i3
Win+Shift+Q Close current window
Win+Shift+R Reload i3 (after changing configuration)
Win+UpArrow Focus window above
Win+V The next window should be split vertically (below)
Win+S Switch container to stacked layout
Win+W Switch container to tabbed layout
  • dmenu - simple launcher
  • davatorium/rofi - a themeable window switcher, application launcher and dmenu replacement

for_window does not seem to target window by class

Section titled “for_window does not seem to target window by class”

Make sure to use the second string displayed for WM_CLASS by xprop.

  • From the good old FreeBSD times:
    set $mod Mod4
    floating_modifier $mod
    bindsym $mod+Return exec ssh-agent lxterminal
    bindsym Mod1+F4 kill
    bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
    bindsym $mod+j focus left
    bindsym $mod+k focus down
    bindsym $mod+l focus up
    bindsym $mod+ae focus right
    bindsym $mod+ISO_Level3_Shift focus left
    bindsym $mod+Super_R focus down
    bindsym $mod+Print focus up
    bindsym $mod+(null) focus right
    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+ISO_Level3_Shift move left
    bindsym $mod+Shift+Super_R move down
    bindsym $mod+Shift+Print move up
    bindsym $mod+Shift+(null) move right
    bindsym $mod+h split h
    bindsym $mod+v split v
    bindsym $mod+f fullscreen
    bindsym $mod+s layout stacking
    bindsym $mod+w layout tabbed
    bindsym $mod+e layout toggle split
    bindsym $mod+Shift+space floating toggle
    bindsym $mod+space focus mode_toggle
    bindsym $mod+a focus parent
    #bindsym $mod+d focus child
    bindsym $mod+1 workspace 1
    bindsym $mod+2 workspace 2
    bindsym $mod+3 workspace 3
    bindsym $mod+4 workspace 4
    bindsym $mod+5 workspace 5
    bindsym $mod+6 workspace 6
    bindsym $mod+7 workspace 7
    bindsym $mod+8 workspace 8
    bindsym $mod+9 workspace 9
    bindsym $mod+0 workspace 10
    bindsym $mod+Shift+1 move container to workspace 1
    bindsym $mod+Shift+2 move container to workspace 2
    bindsym $mod+Shift+3 move container to workspace 3
    bindsym $mod+Shift+4 move container to workspace 4
    bindsym $mod+Shift+5 move container to workspace 5
    bindsym $mod+Shift+6 move container to workspace 6
    bindsym $mod+Shift+7 move container to workspace 7
    bindsym $mod+Shift+8 move container to workspace 8
    bindsym $mod+Shift+9 move container to workspace 9
    bindsym $mod+Shift+0 move container to workspace 10
    bindsym Mod1+Shift+Tab workspace prev
    bindsym Mod1+Tab workspace next
    bindsym $mod+Shift+c reload
    bindsym $mod+Shift+r restart
    bindsym $mod+q exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
    mode "resize" {
    bindsym j resize shrink width 10 px or 10 ppt
    bindsym k resize grow height 10 px or 10 ppt
    bindsym l resize shrink height 10 px or 10 ppt
    bindsym ae resize grow width 10 px or 10 ppt
    bindsym Left resize shrink width 10 px or 10 ppt
    bindsym Down resize grow height 10 px or 10 ppt
    bindsym Up resize shrink height 10 px or 10 ppt
    bindsym Right resize grow width 10 px or 10 ppt
    bindsym Return mode "default"
    bindsym Escape mode "default"
    }
    bindsym $mod+z mode "resize"
    bar {
    status_command i3status
    }
    new_window 1pixel
    hide_edge_borders both
    focus_follows_mouse no
    workspace_auto_back_and_forth yes
    exec_always --no-startup-id sleep 1 && xrandr --output LVDS1 --auto --rotate normal --pos 0x0 --output VGA1 --auto --rotate normal --right-of LVDS1
    exec_always --no-startup-id sleep 1 && xsetroot -bg '#101010' -fg '#000000' -mod 3 3