Keybindings Reference

Complete keyboard reference for Railroad OS. All operations are accessible via keybindings with zero mouse required.

Mod = Super/Windows key  |  Mod1 = Alt key

Quick Reference Card

Most frequently used commands for daily workflow

Terminal Focus

Mod+F1-F5Focus Claude terminals by number
Mod+F7Focus ranger (file manager)
Mod+F8Focus docker monitor
Mod+F9Focus metrics
Mod+F10Focus cmd-terminal

Session Management

Mod+Shift+sLaunch multi-project session
Mod+Ctrl+aAdd terminals to session
Mod+Ctrl+cLaunch single Claude terminal
Mod+Ctrl+qClose terminal and renumber
Mod+TabCycle through Claude terminals

Quick Actions

Mod+`Toggle last window
Mod+bFocus browser window
Mod+hSearch hotkeys
Mod+Ctrl+Alt+hjklQuick resize (4K)
Mod+Shift+Ctrl+Alt+hjklMove window

Emergency

Mod+Shift+qKill window
Mod+Shift+rRestart i3
Mod+Shift+eExit i3

Terminal Focus (Function Keys)

Direct access to Claude Code terminals and utility windows. Terminals display title bars with <project>[<branch>] #N showing the project name, git branch, and terminal number.

KeyActionDescription
Mod+F1Focus Claude #1First Claude terminal
Mod+F2Focus Claude #2Second Claude terminal
Mod+F3Focus Claude #3Third Claude terminal
Mod+F4Focus Claude #4Fourth Claude terminal
Mod+F5Focus Claude #5Fifth Claude terminal
Mod+F6Focus Claude #6Reserved (manual use only)
Mod+F7Focus RangerFile manager utility
Mod+F8Focus DockerDocker container monitor
Mod+F9Focus MetricsSystem metrics display
Mod+F10Focus TerminalCommand terminal utility

Navigation & Focus

KeyActionDescription
Mod+TabNext Claude TerminalCycle forward through Claude-marked windows
Mod+Shift+TabPrevious Claude TerminalCycle backward through Claude-marked windows
Mod+`Toggle Last WindowSwitch to previously focused window (backtick key)
Mod+j/k/l/;Focus DirectionFocus left/down/up/right
Mod+ArrowFocus DirectionFocus using arrow keys

Window Movement

KeyActionDescription
Mod+Shift+Ctrl+Alt+hMove LeftSwap window with left neighbor
Mod+Shift+Ctrl+Alt+jMove DownSwap window with bottom neighbor
Mod+Shift+Ctrl+Alt+kMove UpSwap window with top neighbor
Mod+Shift+Ctrl+Alt+lMove RightSwap window with right neighbor
Mod+Shift+j/k/l/;Standard MoveMove using standard i3 bindings
Mod+Shift+ArrowStandard MoveMove using arrow keys

Window Resizing

Quick 4K Resize (100px increments)

KeyActionDescription
Mod+Ctrl+Alt+hShrink WidthMake window narrower
Mod+Ctrl+Alt+lGrow WidthMake window wider
Mod+Ctrl+Alt+jGrow HeightMake window taller
Mod+Ctrl+Alt+kShrink HeightMake window shorter
Mod+Ctrl+Alt+ArrowResizeArrow key alternatives

Standard Resize Mode (10px increments)

Press Mod+r to enter resize mode, then use the following keys. Exit with Esc, Enter, or Mod+r.

KeyAction
j / LeftShrink width
; / RightGrow width
k / DownGrow height
l / UpShrink height

Layout Control

KeyActionDescription
Mod+Shift+hSplit HorizontalNext window opens to the right
Mod+vSplit VerticalNext window opens below
Mod+sStacking LayoutWindows stack vertically
Mod+wTabbed LayoutWindows appear as tabs
Mod+eToggle SplitToggle between horizontal/vertical split
Mod+fFullscreenToggle fullscreen mode

Window State

KeyActionDescription
Mod+Shift+tFloat ToggleSwitch between tiling/floating
Mod+Ctrl+sSticky TogglePin window to all workspaces
Mod+Shift+qKill WindowClose focused window
Mod+spaceFocus Mode ToggleSwitch focus between tiling/floating

Workspace Management

KeyActionDescription
Mod+1 to Mod+0Switch WorkspaceGo to workspace 1-10
Mod+Ctrl+wRailroad WorkspaceGo to dedicated Railroad command center
Mod+Shift+1 to Mod+Shift+0Move to WorkspaceMove window to workspace 1-10
Mod+Shift+Ctrl+0Move to RailroadMove window to Railroad workspace

Default Workspaces

  • 1: term - Terminal workspace
  • 2: code - Code editors (Cursor, VS Code)
  • 3: web - Web browsers
  • 4: slack - Slack messaging
  • 5: chat - Communication apps
  • 6: media - Media applications
  • 7: misc - Miscellaneous
  • W: railroad - Railroad command center

Application Launchers

KeyActionDescription
Mod+ReturnTerminalLaunch Alacritty terminal
Mod+Shift+ReturnTerminalLaunch Alacritty terminal (alternate)
Mod+dApplication LauncherLaunch dmenu
Mod+cCode EditorLaunch Cursor/VSCode
Mod+Shift+wWeb BrowserLaunch Chrome/Firefox
Mod+Shift+fFile ManagerLaunch Nautilus
Mod+Ctrl+cClaude TerminalLaunch single Claude Code terminal
Mod+Ctrl+aAdd TerminalsAdd Claude terminals to existing session
Mod+Shift+sRailroad SessionLaunch multi-project development session

Scratchpad

KeyActionDescription
Mod+Shift+minusMove to ScratchpadSend focused window to scratchpad
Mod+minusShow ScratchpadToggle scratchpad visibility

Quick Focus

KeyActionDescription
Mod+bFocus BrowserJump to Chrome/Firefox/Brave window

Help

KeyActionDescription
Mod+hSearch HotkeysOpen searchable keybinding reference (type to filter, arrows to scroll)

System Control

KeyActionDescription
Mod+Shift+cReload ConfigReload i3 configuration
Mod+Shift+rRestart i3Restart i3 in-place
Mod+Shift+eExit i3Show exit confirmation

Media Keys

KeyAction
XF86AudioRaiseVolumeVolume up (+10%)
XF86AudioLowerVolumeVolume down (-10%)
XF86AudioMuteToggle mute
XF86AudioMicMuteToggle microphone mute

Tips & Best Practices

Keyboard-Only Workflow

  1. Start session: Mod+Shift+s to launch the multi-project picker
  2. Select projects: Choose one or more repos and assign terminal counts (up to 5 total)
  3. Navigate: Use Mod+F1 through Mod+F5 for direct access by number
  4. Cycle terminals: Mod+Tab / Mod+Shift+Tab
  5. Identify context: Each terminal title bar shows <project>[<branch>] #N
  6. Discover bindings: Press Mod+h to search all hotkeys by name

Terminal Numbering

Terminals are numbered sequentially (1-5) across all selected projects. For example, selecting pinpoint with 3 terminals and railroad with 2 yields:

  • F1: pinpoint[main] #1
  • F2: pinpoint[main] #2
  • F3: pinpoint[main] #3
  • F4: railroad[feature/xyz] #4
  • F5: railroad[feature/xyz] #5

Dynamic Layout

Terminals resize proportionally when added or removed:

  • 5 terminals: each gets approximately 20% width
  • 3 terminals: each gets approximately 33% width
  • 2 terminals: each gets approximately 50% width

The utility row (ranger, docker, metrics) remains fixed at 30% height.

4K Display Optimization

  • Standard resize mode (Mod+r) uses 10px increments - too small for 4K
  • Quick resize (Mod+Ctrl+Alt+hjkl) uses 100px increments - better for 4K
  • Use arrow key alternatives if Vim hjkl feels awkward

Focus Management

  • Mod+` (backtick) toggles between current and last window - fastest way to compare
  • Mod+Tab cycles only through Claude-marked terminals, ignoring utilities
  • Standard Mod+space toggles between tiling/floating layer

Conflict Resolutions

The following bindings were modified to avoid conflicts with standard i3 configuration:

Float toggle: Changed from Mod+Shift+f to Mod+Shift+t
Original conflict: Mod+Shift+f launches Nautilus file manager
Sticky toggle: Changed from Mod+Shift+s to Mod+Ctrl+s
Original conflict: Mod+Shift+s is stacking layout mode
Quick resize: Using Mod+Ctrl+Alt+hjkl instead of Mod+Ctrl+hjkl
Avoids potential conflicts and provides clear separation from standard resize mode
Window swap: Using Mod+Shift+Ctrl+Alt+hjkl
Maximum modifier combination to avoid any standard i3 binding conflicts
Split horizontal: Changed from Mod+h to Mod+Shift+h
Mod+h reassigned to searchable hotkey reference for discoverability

Configuration Files

Main config: ~/.config/i3/config

Source of truth: code/installer/i3/install.sh (heredoc)

To apply changes: Mod+Shift+c (reload) or Mod+Shift+r (restart)