Skip to content
WizardStarkPublic

About

dotfiles, currently for NeoVim and Tmux configuration

Resources

Stars

53 stars

Watchers

2 watching

Forks

Repository files navigation

WizardStark's dotfiles

This is a collection of configuration files for the tools that I like to use during software development: Neovim, Tmux (not so much anymore due to Neovide and my homegrown session management), Alacritty.

Dotfile management

This project uses GNU Stow to create symlinks from this repository to your $HOME directory.

Setup

NOTE:

  • This script will ask for sudo permissions, which are then used for brew and apt (if applicable) installs
  • This script will create symlinks to ~/.zshrc, ~/.config/nvim and ~/.config/tmux, see GNU Stow for how conflicts will be handled
git clone https://github.com/WizardStark/dotfiles.git
cd dotfiles
./setup.sh

Syncing an existing machine

Use ./sync.sh after changing dotfiles-managed scripts or adding dependencies.

That includes newly added CLI dependencies such as worktrunk: keep them in the repo-managed install sources (Brewfile or scripts/manifest.tsv) so setup.sh and sync.sh bootstrap them automatically.

Pi is part of that reproducible setup:

  • the Pi CLI is installed from scripts/manifest.tsv
  • repo-local Pi extensions live under home/.pi/agent/extensions/
  • public Pi packages/extensions are declared in home/.pi/agent/settings.json and ./sync.sh installs any missing entries via pi install
  • the repo-local Pi extensions include an edit tool override so edit diffs keep the customized full-width, syntax-highlighted TUI rendering without patching Pi’s installed files
  • <C-a> <C-o> opens the session-grouped Pi notification inbox in a tmux popup. Use j/k to move, Enter to expand a session or open a historical notification, o to open, r to mark through the selection read, R to mark the session read, Tab to change views, a to toggle the default seven-day window/all-time history, and / to search. Notifications show the session/directory and submitted Pi task; the durable log is ~/.pi/agent/notifications.jsonl.
./sync.sh

./sync.sh applies changes by default; use --check for verification only.

If Homebrew/Linuxbrew is missing or not executable on the current host, ./sync.sh now skips Brewfile-managed install/check steps and continues with the rest of the repo-managed sync work on a best-effort basis.

Useful variants:

./sync.sh --check      # verify Brewfile, extra tools, Pi packages, and stow state
./sync.sh --check --verbose
./sync.sh --with-sudo  # also update login shell with sudo-backed chsh

Setup script variants depending on machine state:

./setup.sh                    # new machine bootstrap
./setup.sh --post-brew       # brew already installed
./setup.sh --post-brew --no-sudo

Pi grill-me skill

home/.pi/agent/skills/grill-me/SKILL.md provides an opt-in design interview:

/skill:grill-me Build a notification preferences UI

The agent inspects relevant repository facts, asks focused rounds of questions, challenges assumptions, and follows consequential branches through scope, UX, interfaces, data, failure modes, security, operations, and validation. It keeps a working decision ledger and produces an implementation brief for your approval. No implementation changes happen before you explicitly approve the final brief. You can ask for interview-only output, shorten the interview, or stop at any time.

The skill is explicit-only, so ordinary implementation requests are unaffected. The stow-managed skills directory makes it available in Pi; run /reload in an existing session after adding or editing it. This is an instruction-based workflow, not a tool-level enforcement mechanism.

Run PI_OFFLINE=1 JITI_FS_CACHE=0 node --test tests/pi-grill-me-skill.test.mjs to check native Pi discovery, metadata, and exclusion from automatic invocation.

Pi compaction checkpoint

The GPT-6 models in home/.pi/agent/settings.json compact when context exceeds 272,000 tokens. Pi uses contextTokens > contextWindow - reserveTokens, so each exact model ID needs its own override calculated from its catalog context window:

  • GPT-6 Astra/Sol/Luna: 1,000,000 - 728,000 = 272,000.
  • GPT-6.1 Sol: 1,050,000 - 778,000 = 272,000.

The global 27,200-token reserve and 20,000 recent-token retention remain unchanged. Reserve tokens also influence summarization output limits, capped by the model's maximum output. After editing settings, run /reload in Pi.

Run PI_OFFLINE=1 JITI_FS_CACHE=0 node --test tests/pi-compaction-settings.test.mjs to verify native settings resolution and the checkpoint boundaries against the installed offline catalog. Run it after model/catalog upgrades or adding an enabled GPT-6 ID; a changed context window must not silently shift the checkpoint.

Mise tasks

The repo now uses a hybrid approach:

  • Homebrew still installs system packages from Brewfile
  • stow still manages the dotfiles under home/
  • mise runs the repo tasks declared in mise.toml
  • scripts/manifest.tsv tracks the non-brew extras managed by the sync flow

Common task entrypoints:

mise run bootstrap   # new machine after setup.sh bootstraps mise itself
mise run sync        # sync an existing machine
mise run sync-sudo   # sync and update login shell with sudo
mise run sync-adopt  # sync and let stow adopt existing unmanaged files
mise run sync-adopt-sudo
mise run check       # verify current machine state

Usage

The most important keybinds are <space><space> in Neovim for the command palette, wherein you can fuzzy find your way through most available commands, and <C-a>? for a list of tmux binds - this is much less nice to use as I have not found a way to add descriptions, but the commands are pretty self explanatory.

Tmux clipboard over SSH

The tmux config is set up to use OSC 52 clipboard sync so tmux -> ssh -> tmux copy operations update the local machine clipboard through the outer tmux client.

Requirements:

  • tmux 3.6 or newer on both the local and remote machine
  • a terminal that supports OSC 52 clipboard writes and clipboard reads; this is what tmux uses for set-clipboard, refresh-client -l, and nested passthrough
  • reload tmux or reattach clients after updating the config so the terminal feature detection is refreshed

Useful tmux clipboard actions:

  • copy from copy-mode updates the local clipboard through OSC 52
  • <C-a> y requests the current terminal clipboard and stores it in a new tmux paste buffer

Windows specific tips

To prevent the Hyper key in windows opening copilot, run the following reg-edit command:

REG ADD HKCU\Software\Classes\ms-officeapp\Shell\Open\Command /t REG_SZ /d rundll32

About

dotfiles, currently for NeoVim and Tmux configuration

Resources

Stars

53 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages