This is my dotfile setup for my Pop!_OS linux machine Zephyrus G14. It started in Dec 2025 and I'm sure it will evolve over time. If you happen to visit and see some room for improvement, please feel free to open a PR, issue, or just reach out. Would be happy to learn! :)
- Shell: Zsh + Oh My Zsh + Powerlevel10k
- Terminal: Kitty (Dracula theme)
- CLI Tools: Modern replacements
eza(ls),zoxide(cd),fzf(fuzzy finder),ripgrep(grep),bat(cat)fd(find),btop(top),ncdu(disk usage),tldr(man pages)gh(GitHub CLI),tmux,direnv,uv(Python),delta(git diff)
- Desktop: COSMIC shortcut definitions
- VS Code:
settings.json+ extension list - System info: Fastfetch config + sample image logo
- Code Quality: EditorConfig, pre-commit hooks (Biome, Ruff, shellcheck)
- Documentation: Agent instructions for AI assistants (AGENTS.md)
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply gauravnv/dotfilesThis repo uses chezmoi run scripts to:
- Install baseline apt packages listed in
packages-apt.txt - Install
uv - Install Oh My Zsh + Powerlevel10k
- Install VS Code extensions listed in
vscode-extensions.txt - Install
deltaviacargo(best-effort; skipped ifcargois missing)
Run the helper script:
update-dotfilesCommon modes:
update-dotfiles --check
update-dotfiles -y --pull --apply --re-add --commit --push
update-dotfiles --commit --prIt:
- Shows remote ahead/behind (and can fast-forward pull)
- Shows
chezmoi diff(machine vs repo) - Optionally runs
chezmoi re-add(pull local changes into the repo) - Shows repo diffs (uses
deltaif installed) - Optionally commits
- Optionally pushes directly or opens a PR via
gh
z <partial-path>→ Jump to frequently visited directory (zoxide)fcd [depth]→ Fuzzy directory picker with preview (default depth: 6)fopen→ Fuzzy file picker with previewfh→ Fuzzy history search
rg→ ripgrep (smart-case search)fd→ fd-find (faster than find)bat→ batcat (syntax-highlighted cat)eza(viall,lt,lta) → Better ls with icons and git status
mkcd <dir>→ Make directory and cd into itextract <file>→ Extract any archive typegac <msg>→ Git add all + commitgacp <msg>→ Git add all + commit + pushgclone <url>→ Clone repo and cd into itpsg <name>→ Search processes by nameserve [port]→ Quick HTTP server (default: 8000)weather [city]→ Terminal weather forecastcheat <command>→ Quick cheat sheet from cheat.sh
ff→fastfetchshortcuts→ Shortcut reference outputreload→ Restart shellpath→ Show PATH entries one per linemyip→ Show public IPdisk→ Interactive disk usage (ncdu)top→ Better system monitor (btop)
tn/ta/tl→ tmux new/attach/listuvr/uvs/uva/uvp→uv run/uv sync/uv add/uv pip- Pre-commit hooks configured (Biome, Ruff, shellcheck)
This repo includes a sample image at ~/.config/fastfetch/images/cat-window.png.
To use a different image:
- Put a PNG at
~/.config/fastfetch/images/cat-window.png(or change the path). - Update
~/.config/fastfetch/config.jsonc.
The path in the fastfetch config is templated using chezmoi (no hardcoded username).
Hardware-specific notes and fixes (audio/Wi-Fi/asusd/supergfxctl) are documented in:
docs/system-setup.md
Some of these should not be auto-applied on other machines.
