Personal configuration files for a minimalist development environment focused on visibility, flexibility, and efficiency.
- Philosophy
- Workflow
- What's Included
- Requirements
- Installation
- Configuration Details
- Keybindings Reference
This setup prioritizes:
- Visibility - Everything relevant should be visible at a glance, no hidden states
- Flexibility - Quick context switching without losing focus
- Minimalism - Only what's necessary, nothing more
My daily workflow revolves around tmux as the central hub for all terminal operations.
+------------------------------------------------------------------+
| ghostty (auto-attaches to tmux) |
| +------------------------------------------------------------+ |
| | nvim (LazyVim) | |
| | - Main editing area | |
| | - Oil.nvim for file navigation (-) | |
| | - CodeCompanion for AI assistance | |
| +------------------------------------------------------------+ |
| |
| Alt+G -> Floating scratch panel (servers: npm/go/python) |
| |
| +------------------------+ +-----------------------------+ |
| | Prefix + - | | Prefix + | | |
| | Additional server | | Free panel (commands, AI) | |
| +------------------------+ +-----------------------------+ |
+------------------------------------------------------------------+
- Open ghostty - automatically attaches to existing tmux session or creates new one
- Main pane runs nvim with the project
Alt+Gopens a floating scratch session for running dev servers- If more processes are needed:
Ctrl+a -splits horizontally for another server Ctrl+a |splits vertically for a free panel (git commands, claude-code, etc.)
This layout keeps all processes visible while maintaining focus on the code.
| Package | Description |
|---|---|
| zsh | Shell with oh-my-zsh, powerlevel10k, and plugins |
| tmux | Terminal multiplexer with catppuccin theme |
| nvim | LazyVim configuration |
| i3 | Tiling window manager with catppuccin |
| polybar | Status bar |
| rofi | Application launcher |
| ghostty | GPU-accelerated terminal |
| fzf | Fuzzy finder integration |
| lazygit | Terminal UI for git |
| btop | System monitor |
| cava | Audio visualizer |
| neofetch | System info display |
| zed | Code editor settings |
# Package manager
sudo apt install stow git zsh tmux
# Terminal
# Install ghostty from https://ghostty.org
# Window manager (optional, for i3 setup)
sudo apt install i3 polybar rofi feh# oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# zsh plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting# TPM (Tmux Plugin Manager)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Catppuccin theme
git clone https://github.com/catppuccin/tmux.git ~/.tmux/plugins/tmuxInstall a Nerd Font for icons to display correctly:
# Example: FiraCode Nerd Font
# Download from https://www.nerdfonts.com/font-downloadsClone and stow all packages:
git clone [email protected]:thewizardshell/dotfiles.git ~/dotfiles
cd ~/dotfiles
stow zsh tmux fzf nvim i3 polybar rofi ghostty cava btop lazygit neofetch zedInstall only specific packages:
cd ~/dotfiles
# Just shell configuration
stow zsh fzf
# Just tmux
stow tmux
# Just neovim
stow nvim
# Window manager setup
stow i3 polybar roficd ~/dotfiles
stow -D package_namePull changes and restow:
cd ~/dotfiles
git pull
stow -R zsh tmux nvim # restow packagesPrefix: Ctrl+a
Key features:
- Floating scratch session for running dev servers
- Catppuccin mocha theme
- Status bar showing application, session, and directory
- vim-tmux-navigator for seamless pane navigation
- Session persistence with tmux-resurrect and tmux-continuum
- Mouse support enabled
Plugins:
- tpm (plugin manager)
- tmux-sensible
- vim-tmux-navigator
- tmux-yank
- tmux-resurrect
- tmux-continuum
- tmux-plugin-sysstat
- tmux-prefix-highlight
- tmux-fzf
Configuration:
- Theme: powerlevel10k
- Framework: oh-my-zsh
Plugins:
- git
- zsh-autosuggestions
- zsh-syntax-highlighting
- fzf
- docker
- npm
- python
- z (directory jumping)
Based on LazyVim with additional customizations:
- Oil.nvim for file navigation
- CodeCompanion for AI assistance
- Minty color tools (Shades, Huefy)
- Mod key: Super (Windows key)
- Terminal: ghostty
- Launcher: rofi
- Theme: Catppuccin Mocha
- Status bar: polybar
- Theme: Catppuccin Mocha
- Font: FiraCode Nerd Font (size 12)
- Background opacity: 95%
- Auto-starts tmux on launch
- Theme: Custom dark with pink accents
- Modes: drun, run, window
- Font: JetBrains Mono 12
- Theme: Catppuccin Mocha
- Modules: workspaces, window title, filesystem, volume, memory, cpu, wifi, time
| Key | Action |
|---|---|
Alt+G |
Toggle floating scratch session |
Ctrl+a - |
Split pane horizontally |
Ctrl+a | |
Split pane vertically |
Ctrl+a c |
New window |
Ctrl+a x |
Kill pane |
Ctrl+a X |
Kill window |
Alt+h/j/k/l |
Navigate panes |
Ctrl+a > |
Swap pane right |
Ctrl+a < |
Swap pane left |
Ctrl+a S |
New named session |
Ctrl+a B |
List sessions |
Prefix+F |
tmux-fzf menu |
| Key | Action |
|---|---|
Super+Return |
Open terminal (ghostty) |
Super+d |
Open rofi launcher |
Super+Shift+q |
Kill focused window |
Super+h/v |
Split horizontal/vertical |
Super+f |
Toggle fullscreen |
Super+1-0 |
Switch to workspace |
Super+Shift+1-0 |
Move window to workspace |
Super+r |
Resize mode |
Super+Shift+r |
Restart i3 |
| Key | Action |
|---|---|
- |
Open Oil file browser |
<leader>ac |
Toggle AI chat |
<leader>an |
New AI chat |
<leader>aa |
AI actions menu |
<leader>ae |
AI explain selection |
<leader>cps |
Color shades picker |
<leader>cph |
Huefy color picker |
dotfiles/
├── btop/ # System monitor config
├── cava/ # Audio visualizer config
├── fzf/ # Fuzzy finder config
├── ghostty/ # Terminal config
├── i3/ # Window manager config
├── lazygit/ # Git TUI config
├── neofetch/ # System info config
├── nvim/ # Neovim config (LazyVim)
├── polybar/ # Status bar config
├── rofi/ # Launcher config
├── tmux/ # Terminal multiplexer config
├── zed/ # Zed editor config
└── zsh/ # Shell config
MIT
