Personal dotfiles managed with GNU stow.
Each top-level directory is a stow package that mirrors the home directory layout:
| Package | Contents | Target |
|---|---|---|
bin/ |
Shell scripts | ~/.local/bin/ |
fish/ |
Fish shell config, functions, aliases | ~/.config/fish/ |
# From the repo root, stow any package into $HOME
stow -t $HOME bin
stow -t $HOME fish
# Or stow everything at once
stow -t $HOME */Make sure ~/.local/bin is on your PATH and aliases are sourced. Add to ~/.config/fish/config.fish:
fish_add_path ~/.local/bin
source ~/.config/fish/aliases.fishUtils and aliases management is inspired by Evan Hahn's approach: prefer scripts in ~/.local/bin over aliases — no shell reload needed, any language, works across all shells.
| Script | Description |
|---|---|
alphabet |
Print the alphabet in lower and uppercase |
batman |
Fetch and browse GitHub README docs for CLI tools |
boop |
Notify success/failure of the previous command |
copy |
Pipe stdin to clipboard |
cpwd |
Copy current directory path to clipboard |
getsubs |
Extract English subtitles from a video URL (requires yt-dlp) |
hey |
HTTP load tester — send traffic and benchmark response times |
httpstatus |
List HTTP status codes; optionally filter by code or phrase |
ipy |
Python 3 REPL |
isql |
SQLite in-memory REPL |
line |
Output line N from stdin |
lowered |
Convert stdin to lowercase |
mkcd |
Create a directory and cd into it |
mksh |
Scaffold a new executable bash script and open in $EDITOR |
notify |
Send a desktop notification |
pasta |
Print clipboard contents to stdout |
pastas |
Watch clipboard and print on change |
scratch |
Open a throwaway temp file in $EDITOR |
snippets |
Retrieve stored text snippets from ~/.config/snippets/ |
tempe |
cd into a new temporary directory |
timer |
Countdown timer with notification (timer 10m) |
trash |
Move files to trash instead of deleting |
uppered |
Convert stdin to uppercase |
url |
Parse a URL into its components |
utils |
List all available utils with descriptions |
uuid |
Generate a v4 UUID |
ymd |
Print today's date as YYYY-MM-DD |
- Clipboard (
copy/pasta/pastas/cpwd) auto-detects the environment:clip.exeon WSL2,pbcopy/pbpasteon macOS,wl-copy/wl-pasteon Wayland,xclip/xselon X11, PowerShellGet-Clipboardon native Windows, tmux buffer inside tmux, and OSC 52 escape sequence as a last resort (works over SSH in modern terminals). snippetsreads from~/.config/snippets/. Create that directory and add plain text files as snippets.timeruses GNUsleepduration syntax:30s,10m,1h,1h30m.