The Ultimate Terminal Development Environment for Raspberry Pi & Debian/Ubuntu Systems.
rpi-setup is a comprehensive configuration suite that transforms a fresh Raspberry Pi (or any Debian-based Linux) into a powerful, terminal-centric Integrated Development Environment (IDE). It automates the installation and configuration of Vim, Tmux, Ranger, Docker, and Zsh/Bash, providing a seamless workflow for developers.
Setting up a comfortable development environment on a headless Raspberry Pi usually takes hours of installing packages, tweaking dotfiles, and fixing compatibility issues. rpi-setup does it in minutes.
-
** Vim as a Full IDE**:
-
Intelligent Completion: Powered by coc.nvim, providing full Language Server Protocol (LSP) support (VS Code-like experience) for Python, C++, and more.
-
Essential Tools: Pre-configured with NERDTree (file explorer) and CtrlP (fuzzy finder).
-
Beautiful Themes: unified
PaperColorscheme across Vim and Tmux. -
** Tmux Powerhouse**:
-
Seamless Navigation: Navigate between Vim splits and Tmux panes using the same hotkeys (
Ctrl+h/j/k/l) viavim-tmux-navigator. -
Custom Status Bar: Auto-synced with Vim's airline theme.
-
Tmuxinator: Manage complex session layouts easily.
-
** System Monitoring**:
-
Custom MOTD: A beautiful "Message of the Day" on login displaying real-time CPU temp, usage, memory, and disk space.
-
** Efficient Shell**:
-
Ranger: Console file manager with
raalias. -
Git Enhancements: Custom wrappers for recursive submodule management and visualization (
git-forest).
This project relies on git submodules. Clone it recursively to ensure all components are retrieved.
# 1. Clone the repository
git clone --recursive https://github.com/your-username/rpi-setup.git
cd rpi-setup
# 2. Run the installer
# This will install dependencies, compile Vim/Tmux from source, and link dotfiles.
./install.sh
Note: The script will modify your
~/.bashrcto source the project's configurations. A backup of your existing config is recommended.
The project is organized into modular components found in appconfig/.
A highly customized Vim setup compiled from source for performance.
-
Plugin Manager:
vim-plug -
Key Features:
-
LaTeX Support: via
vimtex. -
Wiki:
vimwikifor personal knowledge base. -
Snippets:
UltiSnipsengine. -
Config:
appconfig/vim/dotvimrc
Replaces the standard terminal multiplexer experience with a "vim-like" workflow.
-
Prefix Key: Remapped to
Ctrl + a(easier to reach). -
Splitting:
-
Ctrl + 9: Vertical Split -
Ctrl + 0: Horizontal Split -
Config:
appconfig/tmux/dottmux.conf
-
Aliases:
-
ra: Launch Ranger file manager. -
sb: Source.bashrc(reload config). -
gppl/gppo: Git pull/push local or origin. -
gr: Run command recursively in git submodules. -
FZF Integration: Fuzzy search for files and history (requires
fzfinstalled).
Custom scripts in 11-welcome and 15-system provide a dashboard view upon SSH login.
| Context | Keybinding | Action |
|---|---|---|
| Tmux | Ctrl+a |
Prefix key (replaces Ctrl+b) |
| Tmux | Ctrl+h/j/k/l |
Move focus (works across Vim & Tmux!) |
| Tmux | Ctrl+9 |
Split pane vertically |
| Tmux | Ctrl+0 |
Split pane horizontally |
| Vim | , (Comma) |
Leader key |
| Vim | ,n |
Toggle NERDTree file explorer |
| Vim | Ctrl+p |
Fuzzy find file (CtrlP) |
| Shell | Ctrl+r |
Reverse history search |
| Shell | ra |
Open Ranger |
The setup supports a "Profile Manager" to switch configurations (like color schemes) dynamically.
- Current Default:
COLORSCHEME_DARK(PaperColor Dark). - Switching: Usage of
deploy_configs.shallows deploying specific profile lists defined inappconfig/profile_manager/file_list.txt.
rpi-setup/
├── appconfig/ # Configuration modules
│ ├── bash/ # .bashrc and shell settings
│ ├── vim/ # Vim plugins, themes, and compile scripts
│ ├── tmux/ # Tmux conf and compilation
│ ├── ranger/ # File manager config
│ ├── docker/ # Docker setup
│ └── motd/ # Login message scripts
├── scripts/ # Utility scripts (git-forest, color tests)
├── install.sh # Main entry point
└── deploy_configs.sh # Symlink manager