aniketpant / dotfiles
dotfiles
Zsh, Ghostty and keyd, stowed onto a new machine.
- Role
- Shell and terminal setup — on Ubuntu
- Runs on
- Ubuntu, with a macOS key layer
- Built with
- Zsh, GNU Stow, a Makefile
01Background
My shell and terminal setup, kept in a repository so a reinstall does not erase it.
Zsh with a fast startup, a terminal configured the same way on each machine, and a Cmd key layer for Linux. droidfiles is the phone; botfiles is the agent.
02Shape
zsh/Options, aliases, functions, zinit in turbo mode
ghostty/Terminal config and themes, light and dark
keyd/A global Cmd layer and per-app masks
git/Global config, ignore file, commit message template
bin/Git helper scripts, stowed into ~/bin
starship/Prompt config
pi/ opencode/TUI settings
scripts/Package, keybinding and keyd installers
03Design ideas
Stow, one folder per tool
Each tool has a folder that mirrors its path in the home directory. make install stows them, make clean unstows them. System packages are installed by scripts, not by stow.
One palette for shell and TUI
Ghostty, pi and opencode all follow the system theme. The terminal themes are generated from pi’s bundled colours, so the two use the same values.
Cmd on Linux, and what breaks
A keyd layer maps Cmd to Ctrl globally, with a per-app mask so the terminal keeps its own shortcuts. Redefining Super replaces GNOME’s chords. The README lists the bindings that do not fire.
Startup measured
Plugins load through zinit in turbo mode and are deferred until first use. Shell startup stays near 0.6 seconds.
The repository is public: github.com/aniketpant/dotfiles. The README has the install steps and the known trade-offs.