Personal configuration files managed with GNU Stow for a clean, reproducible Linux setup.
| Package | Description | Config Path |
|---|---|---|
ghostty |
Ghostty terminal | ~/.config/ghostty/config |
kitty |
Kitty terminal | ~/.config/kitty/kitty.conf |
p10k |
Powerlevel10k prompt theme | ~/.p10k.zsh |
zed |
Zed editor | ~/.config/zed/settings.json, ~/.config/zed/keymap.json |
zsh |
Zsh shell configuration | ~/.zshrc |
A GPU-accelerated terminal configured with:
- Font — JetBrainsMono Nerd Font (size 18)
- Appearance — Semi-transparent background (opacity 0.8), blur, dark theme, no window decorations, bar cursor
- Tabs — Bottom tab bar with compact styling
- Keybindings —
Super+Bleader key for tab management, splits, and vim-style (hjkl) split navigation - Color scheme — Kitty default palette on black background
A feature-rich GPU terminal configured with:
- Font — JetBrainsMono Nerd Font (size 16)
- Appearance — Transparent background (opacity 0.7), blur, no window decorations
- Tab bar — Powerline-style slanted tabs
- Keybindings — Same
Super+Bleader key convention as Ghostty for consistent muscle memory - Splits —
Super+B > \for vertical,Super+B > -for horizontal, vim-style navigation
Both terminals share the same keybinding scheme so you can switch between them seamlessly.
The .zshrc is organized into clean sections and uses Zinit as the plugin manager.
| Plugin | Purpose |
|---|---|
| Powerlevel10k | Fast, customizable prompt |
| zsh-autosuggestions | Fish-like inline suggestions |
| fast-syntax-highlighting | Real-time command highlighting |
| fzf-tab | Fuzzy completion with fzf |
| Oh My Zsh Git | Git aliases and helpers |
| Tool | Usage |
|---|---|
| Pyenv + Conda (Miniconda) | Python version & environment management |
| NVM (lazy-loaded) | Node.js version management |
| Bun | Fast JS runtime & package manager |
| pnpm | Efficient Node package manager |
| Rust / Cargo | Rust toolchain |
| CUDA 12.6 | NVIDIA GPU development |
| Neovim | Editor (vim aliased to nvim) |
| Zoxide | Smarter cd with z |
| Docker | Container runtime |
| GitHub CLI | gh-switch function for multi-account auth |
- Vi mode enabled (
set -o vi) - Ctrl+Space / Ctrl+F to accept autosuggestions
- History — 10,000 lines, shared across sessions, deduped
- Global
.envfile auto-loaded from~/.env - Chrome launched via Flatpak (
alias chrome)
Shell startup benchmarked at ~37ms average:
zsh -i -c exit 0.03s user 0.01s system 101% cpu 0.041 total
zsh -i -c exit 0.03s user 0.00s system 101% cpu 0.035 total
zsh -i -c exit 0.03s user 0.01s system 101% cpu 0.040 total
zsh -i -c exit 0.03s user 0.01s system 101% cpu 0.034 total
zsh -i -c exit 0.03s user 0.01s system 99% cpu 0.037 total
- Powerlevel10k instant prompt — renders prompt before
.zshrcfinishes - Zinit turbo mode — defers syntax highlighting, fzf-tab, and OMZ git plugins
- Lazy-loaded toolchains — Pyenv, Conda, and NVM initialize only on first use
- Cached zoxide — pre-generated init script sourced as a static file
- Inlined cargo PATH — direct
exportinstead of sourcing.cargo/env - Auto-zcompile —
.zshrccompiles itself for faster subsequent loads
- Zsh as your default shell
- GNU Stow for symlink management
- A Nerd Font installed (JetBrainsMono Nerd Font recommended)
# Clone the repo to your home directory
git clone https://github.com/vrathikshenoy/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Stow individual packages (creates symlinks to ~/)
stow zsh # → ~/.zshrc
stow p10k # → ~/.p10k.zsh
stow ghostty # → ~/.config/ghostty/config
stow kitty # → ~/.config/kitty/kitty.conf
# Or stow everything at once
stow */- Restart your shell or run
source ~/.zshrc - Zinit will auto-install on first launch and pull all plugins
- Powerlevel10k — run
p10k configureif you want to customize the prompt - Install the dev tools referenced in
.zshrcas needed:# Pyenv curl https://pyenv.run | bash # NVM curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash # Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Zoxide curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh # Bun curl -fsSL https://bun.sh/install | bash
All keybindings use the Super+B leader key (works in both Ghostty and Kitty):
| Keybinding | Action |
|---|---|
Super+B > c |
New tab |
Super+B > x |
Close tab/surface |
Super+B > 1–9 |
Go to tab 1–9 |
Super+B > n |
New window |
Super+B > \ |
Vertical split |
Super+B > - |
Horizontal split |
Super+h/j/k/l |
Navigate splits (vim-style) |
dotfiles/
├── ghostty/
│ └── .config/ghostty/config
├── kitty/
│ └── .config/kitty/kitty.conf
├── p10k/
│ └── .p10k.zsh
├── zed/
│ └── .config/zed/
│ ├── settings.json
│ └── keymap.json
├── zsh/
│ └── .zshrc
└── README.md