◆ Reference — Raspberry Pi 5

Dracula theme · alacritty· polybar · picom · ranger

Mod key = Super (Win key). Every binding below that says Mod means the Win/Super key.

Basics

KeybindAction
Mod+Return Open terminal (alacritty)
Mod+d App launcher (rofi)
Mod+b Open browser (Firefox ESR)
Mod+v Open ranger (file manager in terminal)
Mod+F3 Open Thunar (GUI file manager)
Mod+q Kill focused window
Mod+m Toggle polybar visibility
Mod+z Open Reference Page

Focus & Move Windows

Vim-style navigation throughout. hjkl = left/down/up/right. Arrow keys also work everywhere.

Focus (move cursor to window)

KeybindAction
Mod+h Focus left
Mod+j Focus down
Mod+k Focus up
Mod+l Focus right
Mod+a Focus parent container
Mod+Space Toggle focus: tiling ↔ floating

Move window

KeybindAction
Mod+Shift+h Move window left
Mod+Shift+j Move window down
Mod+Shift+k Move window up
Mod+Shift+l Move window right

Floating windows

KeybindAction
Mod+Shift+Space Toggle floating for focused window
Mod+Shift+s Toggle sticky (window follows all workspaces)
Mod+Mouse drag Drag floating window

Scratchpad (hidden window store)

KeybindAction
Mod+Shift+- Send window to scratchpad
Mod+- Show/cycle scratchpad windows

Workspaces

KeybindAction
Mod+1–8 Switch to workspace 1–8
Mod+Shift+1–8 Move window to workspace 1–8 (and follow it)
Mod+Ctrl+1–8 Move window to workspace 1–8 (stay on current)
Mod+Ctrl+ Next workspace
Mod+Ctrl+ Previous workspace
Mod+Shift+b Move window to last workspace (and follow)
Auto back-and-forth is on. Press Mod+N on your current workspace to jump back to the previous one instantly.

Layout & Splitting

KeybindAction
Mod+t Toggle split direction (horizontal ↔ vertical)
Mod+e Toggle split layout
Mod+s Stacking layout
Mod+w Tabbed layout
Mod+f Fullscreen toggle

Border style

KeybindAction
Mod+u No border
Mod+y Pixel border (2px)
Mod+n Normal border (with title bar)

Modes

Modes change what your keys do temporarily. Press Escape or Enter to exit any mode.

Resize mode RESIZE

Enter with Mod+r
Key (in resize mode)Action
hShrink width by 5px
lGrow width by 5px
kShrink height by 5px
jGrow height by 5px
←→↑↓Same but 10px steps

Gap mode GAPS

Enter with Mod+Shift+g
KeyAction
oEnter outer gaps sub-mode
iEnter inner gaps sub-mode
+ / - / 0Increase / decrease / remove gaps (current workspace)
Shift++/-/0Same but applies to ALL workspaces

System mode SYSTEM

Enter with Mod+0 — be careful in here!
KeyAction
lLock screen
sSuspend
eExit i3 (logout)
rReboot
Shift+sShutdown

Apps & Screenshots

KeybindAction
Mod+p Screenshot → ~/Pictures/Screenshots/
Mod+Print Screenshot of focused window
Mod+Shift+Print Screenshot of selected region (drag)
Mod+9 Lock screen (black)
Mod+Shift+c Reload i3 config (no restart)
Mod+Shift+r Restart i3 (preserves session)

alacritty Terminal

Tabs & Windows

KeybindAction
Ctrl+Shift+t New tab (opens in current directory)
Ctrl+Shift+w Close tab
Ctrl+Shift+ Next tab
Ctrl+Shift+ Previous tab
Ctrl+Shift+l Next window (split)
Ctrl+Shift+h Previous window (split)

Font size

KeybindAction
Ctrl+= Increase font size
Ctrl+- Decrease font size
Ctrl+Shift+0 Reset font size

Clipboard

KeybindAction
Ctrl+Shift+c Copy selection
Ctrl+Shift+v Paste

Ranger File Manager

Launch with Mod+v. Ranger uses vim-style navigation.

Navigation

KeyAction
h / lGo up / enter directory
j / kMove down / up
gg / GGo to top / bottom of list
J / KHalf page down / up
ghGo to home (~)
grGo to root (/)
gdGo to ~/Documents (custom)
gwGo to ~/Downloads (custom)
gcGo to ~/.config (custom)

File operations

KeyAction
yyCopy (yank) file
ddCut file
ppPaste
dDDelete (with confirmation)
cwRename file
aRename (append to end)
SpaceMark/select file
vInvert selection

View & search

KeyAction
zhToggle hidden files
ziToggle image previews
/Search in current directory
Ctrl+fFuzzy find (fzf)
fFilter files (type to filter)
iDisplay file info / preview
coOpen current dir in VS Code (custom)

Tabs

KeyAction
Ctrl+nNew tab
Ctrl+wClose tab
TabNext tab
Shift+TabPrevious tab

Bash Aliases

Defined in ~/.bashrc. All your original aliases are carried over.

General

AliasExpands to
cclear
llls -alF (long list, all files)
lals -A (all except . and ..)
lls -CF

Git shortcuts

AliasExpands to
gsgit status
gssgit status --short
gagit add
gaagit add .
gcgit commit
gcmgit commit --message
gcogit checkout
gcobgit checkout -b (new branch)
gpgit push
gplgit pull
gdgit diff
glggit log --graph --oneline --decorate --all
gstgit stash
gstpgit stash pop
gbgit branch
grgit rebase
glf "msg"Search git log by commit message (function)

System & Pi-specific

Check CPU temp

vcgencmd measure_temp
# or watch it live:
watch -n 1 vcgencmd measure_temp

Network interfaces

ip link
# To check your wifi/eth names
# for polybar config

Audio control

pavucontrol   # GUI mixer
alsamixer     # TUI mixer
amixer        # CLI control

Performance tips

If Pi feels slow, in picom.conf change:

backend = "xrender";
# and comment out blur:

Also lower gaps inner in i3 config.

Setup & Config Locations

Quick install: Run bash ~/rpi-setup/scripts/install.sh from the package you downloaded.

Config file locations

FileLocation
i3~/.config/i3/config
picom~/.config/picom/picom.conf
polybar~/.config/polybar/config.ini
alacritty~/.config/kitty/kitty.conf
ranger~/.config/ranger/rc.conf
flashfocus~/.config/flashfocus/flashfocus.yml
bash~/.bashrc

After changing i3 config

Mod + Shift + c   # Reload config (no restart)
Mod + Shift + r   # Full restart (if something breaks)

After changing polybar config

~/.config/polybar/launch.sh   # Re-run launch script

Fix polybar network module

# Find your interface names:
ip link

# Edit polybar config:
nano ~/.config/polybar/config.ini
# Change [module/wlan] interface = wlan0
# Change [module/eth]  interface = eth0

Set a wallpaper

# Put your image at e.g. ~/Pictures/wallpaper.jpg
nitrogen   # GUI picker — saves and auto-restores on login

Wallpaper command-line

feh --bg-scale ~/Pictures/wallpaper.jpg
# Add to ~/.config/i3/config to make permanent:
exec --no-startup-id feh --bg-scale ~/Pictures/wallpaper.jpg

Neovim (Coding Setup)

Embedded Linux / firmware dev setup (C, Python, Rust) using Neovim + LSP + Mason.

Core usage

Keybind / CommandAction
vim file.c Open file in Neovim (use instead of vim)
:q Quit Neovim
:w Save file
:Lazy Open plugin manager (lazy.nvim UI)
:Mason Open LSP/tool installer UI
:MasonLog View Mason install logs (debug failures)

LSP navigation (C / Python / Rust)

KeybindAction
gd Go to definition
gr Find references
K Hover documentation
Shift + p Fuzzy Find File
gf Format file (if configured)
:LspInfo Check active language servers

Insert mode improvements

KeybindAction
kj Exit insert mode (escape alternative)

Tooling (Mason installs)

ToolPurpose
clangd C / C++ language server (firmware dev)
pyright Python language server
black Python formatter (via conform.nvim)
clang-format C/C++ formatter
Note: If mason or treesitter fails, run :MasonLog and :checkhealth. On Raspberry Pi, some tools may fail due to architecture or missing binaries.

Important setup notes (Pi / embedded Linux)

# Install system deps (preferred over pip where possible)
sudo apt install clangd python3 python3-pip

# If pip blocks installs:
python3 -m pip install --user black

# Restart Neovim after installs:
nvim