{ claus.conrad }

i3

https://i3wm.org/

Tiling [window manager](…/Window managers/) for Linux

(Default) Shortcuts

  • 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.
ShortcutFunction
Win+DStart launcher (dmenu)
Win+DownArrowFocus window below
Win+ESwitch container to split layout. If the container is already split, changes from horizontal to vertical split or vice-versa.
Win+EnterOpen terminal emulator
Win+HThe next window should be split horizontally (to the right)
Win+JSwitch between windows
Win+LeftArrowFocus window to the left
Win+RightArrowFocus window to the right
Win+Shift+EExit i3
Win+Shift+QClose current window
Win+Shift+RReload i3 (after changing configuration)
Win+UpArrowFocus window above
Win+VThe next window should be split vertically (below)
Win+SSwitch container to stacked layout
Win+WSwitch container to tabbed layout

Resources

Launchers

  • dmenu - simple launcher
  • davatorium/rofi - a themeable window switcher, application launcher and dmenu replacement

FAQ

for_window does not seem to target window by class

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

My old config file

  • 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