A fully riced terminal dev environment for Ubuntu featuring NvChad + tmux + Nerd Fonts. Clone it, follow the steps, and go from stock terminal to elite dev cockpit in under 30 minutes.
Already done this before? Here's the full setup in one shot:
# 1. Install dependencies
sudo apt install -y git curl unzip ripgrep gcc make nodejs npm
# 2. Install Nerd Font
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/AnonymousPro.tar.xz
mkdir -p ~/.local/share/fonts/AnonymousPro
tar -xf AnonymousPro.tar.xz -C ~/.local/share/fonts/AnonymousPro
fc-cache -fv && rm AnonymousPro.tar.xz
# 3. Install TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# 4. Install latest Neovim
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
rm nvim-linux-x86_64.tar.gz
# 5. Clone and apply dotfiles
git clone git@github.com:ktroach/elite-dev-setup.git
cp -r elite-dev-setup/nvim ~/.config/
cp elite-dev-setup/.tmux.conf ~/
# 6. Set up tmux (then press Ctrl+a I to install plugins)
tmux source ~/.tmux.conf
# 7. Open nvim — lazy.nvim will auto-install everything
nvim
⚠️ Don't forget to set AnonymicePro Nerd Font Mono in your terminal font preferences!
- NvChad — blazing fast Neovim config with catppuccin theme, NvDash dashboard, 27 plugins, ~9ms startup
- tmux — catppuccin status bar with live CPU/RAM stats, session persistence, vim keybindings
- AnonymicePro Nerd Font Mono — icons rendering perfectly across tmux and nvim
- Full LSP stack — TypeScript, Rust, Tailwind, ESLint, Prettier, CSS, HTML via Mason
- Treesitter — rich syntax highlighting for your whole stack
sudo apt install -y git curl unzip ripgrep gcc make nodejs npmNerd Fonts patch developer fonts with thousands of icons. Without them, tmux and NvChad will show broken placeholder squares instead of icons.
Install AnonymicePro Nerd Font Mono (recommended):
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/AnonymousPro.tar.xz
mkdir -p ~/.local/share/fonts/AnonymousPro
tar -xf AnonymousPro.tar.xz -C ~/.local/share/fonts/AnonymousPro
fc-cache -fv
rm AnonymousPro.tar.xzOther great options:
# 0xProto (clean, modern, great for code)
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/0xProto.tar.xz
mkdir -p ~/.local/share/fonts/0xProto
tar -xf 0xProto.tar.xz -C ~/.local/share/fonts/0xProto
fc-cache -fv && rm 0xProto.tar.xz
# FiraCode (ligatures!)
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraCode.tar.xz
mkdir -p ~/.local/share/fonts/FiraCode
tar -xf FiraCode.tar.xz -C ~/.local/share/fonts/FiraCode
fc-cache -fv && rm FiraCode.tar.xz
# CascadiaCode
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaCode.tar.xz
mkdir -p ~/.local/share/fonts/CascadiaCode
tar -xf CascadiaCode.tar.xz -C ~/.local/share/fonts/CascadiaCode
fc-cache -fv && rm CascadiaCode.tar.xzAnonymicePro Nerd Font Mono not AnonymicePro Nerd Font). The Mono variant ensures icon widths align correctly in the terminal grid.
Set the font in GNOME Terminal:
- Open terminal → hamburger menu (≡) → Preferences
- Select your profile → Text tab
- Toggle "Use custom font" on
- Search for your font and select the Mono variant
- Close and reopen the terminal
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmgit clone git@github.com:ktroach/elite-dev-setup.git
cp -r elite-dev-setup/nvim ~/.config/
cp elite-dev-setup/.tmux.conf ~/tmux source ~/.tmux.confOpen tmux and install plugins:
Ctrl+a then I (capital i)
Let TPM install all plugins. Your status bar should now show CPU%, RAM%, and the time with catppuccin colors.
tmux prefix is Ctrl+a (remapped from default Ctrl+b).
| Shortcut | Action |
|---|---|
Ctrl+a | |
Split pane vertically |
Ctrl+a - |
Split pane horizontally |
Ctrl+a h/j/k/l |
Navigate panes (vim-style) |
Ctrl+a z |
Zoom pane fullscreen |
Ctrl+a s |
Switch sessions |
Ctrl+a $ |
Rename session |
Ctrl+a Ctrl+s |
Save session (resurrect) |
Ctrl+a Ctrl+r |
Restore session |
Ubuntu's apt version of Neovim is too old. Install the latest:
sudo apt-get install -y ninja-build gettext cmake unzip curl build-essential
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
rm nvim-linux-x86_64.tar.gznvimOn first launch, lazy.nvim will auto-install all 27 plugins. Let it finish, then run:
:MasonInstallAll
Then install LSP servers for the full dev stack:
:MasonInstall typescript-language-server rust-analyzer tailwindcss-language-server prettier eslint-lsp
Fix treesitter parsers:
:TSInstall lua javascript typescript tsx rust
| Shortcut | Action |
|---|---|
Space f f |
Find files |
Space f g |
Live grep / search in files |
Space e |
Toggle file tree |
Space t h |
Theme switcher (68 themes!) |
Space c h |
Cheatsheet |
g d |
Go to definition |
K |
Hover docs |
Space x x |
Diagnostics panel |
Space g g |
LazyGit (if installed) |
| Server | Language |
|---|---|
ts_ls |
TypeScript / JavaScript |
rust_analyzer |
Rust |
tailwindcss |
Tailwind CSS |
eslint |
ESLint |
prettier |
Formatting |
cssls |
CSS |
html |
HTML |
lua_ls |
Lua |
stylua |
Lua formatting |
Update tmux plugins:
Ctrl+a then U
Update NvChad plugins:
:Lazy update
Update LSP servers:
:MasonUpdate
elite-dev-setup/
├── nvim/ # NvChad config
│ ├── init.lua # Entry point
│ └── lua/
│ ├── chadrc.lua # Theme & UI config
│ ├── mappings.lua
│ ├── options.lua
│ ├── plugins/
│ │ └── init.lua
│ └── configs/
│ ├── lspconfig.lua
│ └── conform.lua
└── .tmux.conf # tmux config
- NvChad — Neovim config framework
- Nerd Fonts — Patched fonts with icons
- TPM — tmux plugin manager
- Catppuccin — The GOAT color scheme 🐱