aniketpant / dotfiles

dotfiles

Zsh, Ghostty and keyd, stowed onto a new machine.

publiczshgnu stowghosttykeyd
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.