Installation Guide
Complete setup for the Railroad i3 development environment on Ubuntu
Prerequisites
- Ubuntu 22.04 or later (tested on 24.04)
- Sudo access
- Internet connection
- Git installed
Quick Install
Clone the repository and run the automated setup script. All dependencies are installed automatically.
# Clone the repository
mkdir -p ~/Documents/code
cd ~/Documents/code
git clone https://gitlab.com/kenth56/railroad.git railroad
# Run the setup script
cd railroad
bash code/installer/setup-workstation.shEach component is skipped if already present on your system.
What Gets Installed
Core Window Manager
- i3 window manager with status bar and lock screen
- Alacritty terminal emulator
- i3status for status bar
- dmenu application launcher
- picom compositor for transparency and effects
Fonts
- JetBrains Mono (coding font)
- Font Awesome (icon font)
Development Tools
- Ranger file manager with preview support
- lazydocker for Docker container monitoring
- btop and htop for system monitoring
Applications
- Google Chrome browser
- Cursor IDE (AppImage with desktop integration)
- Claude Code CLI (native installer)
MCP Integration
- i3-mcp Python server for Claude Code integration
- Python 3 environment configuration
System Utilities
- Screenshot tools (maim, slop, xclip)
- System tray apps (network-manager, dunst, blueman)
Configuration
Project Directory
If your project is not located at ~/Documents/code/railroad, set the environment variable:
# Add to ~/.bashrc or ~/.profile
export RAILROAD_PROJECT_DIR="$HOME/path/to/your/project"Select i3 Window Manager
After installation, log out and select i3 from the login screen:
- Click the gear icon on the login screen
- Select "i3" from the session list
- Log in
Session Replay
On login, the autostart script replays your previous session from ~/.config/railroad/current-session. If no session file exists, it defaults to your configured project directory with all 5 terminal slots.
Usage
Key Bindings
| Keys | Action |
|---|---|
| Mod+Shift+s | Start multi-project Railroad session |
| Mod+Ctrl+a | Add Claude terminals to existing session |
| Mod+Ctrl+q | Close terminal from session |
| Mod+F1-F5 | Focus Claude terminal by number |
| Mod+Return | Open terminal (Alacritty) |
| Mod+d | Application launcher (dmenu) |
| Mod+h | Search hotkeys |
| Screenshot to clipboard |
Starting a Development Session
- Press
Mod+Shift+sto launch the multi-project picker- Select a git repository from
~/Documents/code/ - Choose how many terminals (1-5) to allocate for that project
- Optionally add more projects until all 5 slots are filled
- Press Escape after selecting at least one project to launch
- Select a git repository from
- Each Claude terminal displays a title bar:
<project>[<branch>] #N - Use
Mod+F1throughMod+F5to jump between terminals - Terminals tile proportionally — adding or removing terminals resizes others automatically
To add more terminals without restarting the session, press Mod+Ctrl+a.
Status Bar
The i3 status bar displays system information on the left:
- Claude Code usage: Shows 5-hour and 7-day utilization percentages plus time until reset. Displayed in gold to match the overall accent theme.
- GPU: Shows utilization percentage and VRAM (used/total in GB). Omitted if no NVIDIA GPU detected.
Git branch information appears in each terminal's title bar rather than the status bar, since terminals may span multiple repositories.
Troubleshooting
i3 doesn't start
# Check i3 config syntax
i3 -C
# View logs
cat ~/.xsession-errorsNo status bar showing
Ensure i3status is installed and the wrapper script is executable:
chmod +x ~/.local/bin/i3status-wrapper.shClaude Code MCP server not loading
Restart Claude Code after installation. Check your configuration:
cat ~/.claude.jsonFonts look wrong
Regenerate the font cache:
fc-cache -fvAudio keys don't work
Install PulseAudio utilities:
sudo apt install -y pulseaudio-utilsFiles Installed
| Location | Description |
|---|---|
| ~/.config/i3/config | Main i3 configuration |
| ~/.config/i3/i3status.conf | Status bar configuration |
| ~/.config/i3/autostart-railroad.sh | Startup script |
| ~/.config/alacritty/alacritty.toml | Terminal theme |
| ~/.config/ranger/rc.conf | File manager configuration |
| ~/.local/bin/railroad-*.sh | Utility scripts |
| ~/.local/bin/screenshot-*.sh | Screenshot scripts |
| ~/.local/share/i3-mcp/ | MCP server for Claude |
| ~/.claude.json | Claude Code MCP configuration |
| ~/Pictures/Screenshots/ | Screenshot save location |