2
0
mirror of https://github.com/chubin/cheat.sheets synced 2024-11-03 15:40:17 +00:00
cheat.sheets/sheets/i3
terminalforlife 4df5219c66 Convert tabs to 4 spaces for consistency
This was probably my fault to begin with, as I'm a big fan of tabs.
My bad. It just occurred to that not only do I have my tabs set to 4
columns, but some people may have wonky formatting because of whichever
setting we have for our tabs.
2020-03-01 00:02:13 +00:00

121 lines
3.2 KiB
Plaintext

# Note: most i3 keybindings use ◆ mod key. This is `Alt` key by default,
# but is frequently swapped with Meta (windows) key.
# Open new terminal
◆ + Enter
# Open application launcher
◆ + d
# Change where new window is opened:
# Horizontal split
◆ + h
# Vertical split
◆ + v
# Movement
# (like in vim, but one key to right)
^
l
< j ; >
k
V
# Switch focus around windows in workspace
◆ + <movement key>
# Move windows around workspace
◆ + Shift + <movement key>
# Workspaces
# i3 has by default 10 workspaces, labeled 1,2,...,9,0
# Each opened window resides in one of the workspaces
# Change workspace
◆ + 0-9
# Send focused window to workspace
◆ + Shift + 0-9
# Toggle fullscreen
◆ + f
# Enter resize mode (resize with movement/arrow keys, exit with Esc)
◆ + r
# Change container layout
# default: next to each other
◆ + e
# stacked: all windows but one are minimized
◆ + s
# tabbed: like browser tabs
◆ + w
# floating window (drag with ◆ + LeftClick):
◆ + Shift + Space
# Guide: precise positioning of newly spawned windows
#
# When creating new window, currently focused window
# will be split in half and one half will be used by new window.
# You can control whether it will split horiontally or
# vertically with ◆+v or ◆+h.
# You can focus multiple windows at once.
# For example with this layout with two windows:
+-------+-------+
| . . . | . . . |
| . . . | . . . |
| . 1 . | . 2 . |
| . . . | . . . |
| . . . | . . . |
+-------+-------+
# One can select both windows at once and split them vertically,
# so the new window will take half of whole screen.
# Select parent container (both windows 1 and 2):
◆ + a
# Vertically spawn new terminal window: ◆+v, ◆+Enter
# Result:
+-------+-------+
| . . . | . . . |
| . 1 . | . 2 . |
+-------+-------+
| . . . 3 . . . |
| . . . . . . . |
+---------------+
# Whenever you split window in half by spawning new window,
# both windows will be placed in an invisible container.
# One can focus parent container with ◆+a.
# i3 configuration
# Configuration files can be found at following locations (ordered by priority):
~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config)
~/.i3/config
/etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config)
/etc/i3/config
# One can specify custom config file with -c option while starting i3
# Most configuration options can be inferred from default configuration
# Default configuration path:
/etc/i3/config
# Keys can be binded with bindsym like this:
bindsym $mod+4 workspace $ws4
bindsym $mod+Shift+R exec custom-script-in-path.sh --flag1 --flag2
bindcode 172 exec playerctl play-pause
# Execute code when i3 starts, but only once per session:
exec --no-startup-id ~/.config/polybar/launch.sh
# Always execute code when i3 starts, even if it's simply restarted:
exec_always --no-startup-id ~/.config/polybar/launch.sh
# One can make special modes (much like resize mode)
set $gamingMode "gaming_mode"
bindsym $mod+g mode $gamingMode
mode $gamingMode {
# Insert declarations for this mode. Useful when normal keybindings fight
# with keybindings of your games. Don't forget to add option to return from
# this mode!
bindsym $mod+Escape mode default
}
# Move workspace between multiple monitors
bindsym $mod+x move workspace to output right