Focus
Mod+Arrows
Focus left / down / up / right
Default config also binds Mod+j, k, l, ; for left, down,
up, right.
Mod+a
Focus parent container
Press again to climb further; focus child steps back down.
Mod+Space
Toggle focus tiling / floating
Mod+Shift+q
Kill focused window
[class="<name>"] focus
Jump to a window by criteria
Use inside a bindsym or i3-msg.
Workspaces
Mod+1-9
Switch to workspace N
workspace back_and_forth
Toggle with previous workspace
Set workspace_auto_back_and_forth yes so repeating Mod+N
flips back.
workspace next / workspace prev
Cycle through used workspaces
workspace number "<n>: <name>"
Switch to a named workspace
move workspace to output <dir>
Send workspace to another monitor
workspace <ws> output <output>
Pin a workspace to a monitor (config)
assign [class="<name>"] → <ws>
Always open an app on a workspace (config)
Session and Config
Mod+d
Open launcher (dmenu)
Bound to dmenu_run by default; swap in rofi if you prefer.
Mod+Shift+c
Reload config
Applies most changes without touching windows.
Mod+Shift+r
Restart i3 in place
Keeps your windows; needed after upgrading i3.
i3 -C
Check the config for errors
i3-msg <command>
Run any i3 command from a shell
i3-msg -t get_tree
Dump the window tree as JSON
bindsym $mod+<key> <command>
Bind a key to a command (config)
exec --no-startup-id <command>
Start once at login (config)
exec_always --no-startup-id <command>
Also run on restart (config)
Good for wallpaper and bar helpers; they restart with i3.
mode "<name>" { ... }
Define a binding mode (config)
set $mod Mod4
Use Super as the modifier (config)