Personal dotfiles managed with GNU Stow and automated with Nushell scripts.
stow,nushell,fzf,gitleaks(install via homebrew)
The nushell-mcp.json file uses ~ for home directory paths. If your MCP client doesn't support tilde expansion, you'll need to replace ~ with your actual home directory path (e.g., /Users/yourusername) after installation.
nu import-config.nuInteractive script that lets you select configs with fzf, copies them to the repo, and handles sensitive configs automatically.
nu apply-symlinks.nuShows status of all configs, creates backups, and runs stow . to create symlinks.
stow .import-config.nu - Finds configs in ~/.config that aren't already managed, lets you multi-select with fzf, copies them to .config/, and optionally runs the symlink script.
apply-symlinks.nu - Shows which configs are linked (🔗), new (🆕), or need backup (📦). Creates timestamped backups in backups/ before running stow.
fix-macos-path.nu - Generates a macOS LaunchAgent plist file to set XDG environment variables system-wide. This fixes GUI apps that don't respect XDG config directories on macOS.
Many GUI apps on macOS don't respect XDG config directories and save configs in ~/Library/Application Support. To fix this system-wide:
# Generate and install the LaunchAgent
nu fix-macos-path.nu
# Activate it (will run on every login)
launchctl load ~/Library/LaunchAgents/me.greg.environment.plistThis sets the following environment variables for all GUI applications:
XDG_CONFIG_HOME→~/.configXDG_CACHE_HOME→~/.cacheXDG_DATA_HOME→~/.local/shareXDG_STATE_HOME→~/.local/stateXDG_RUNTIME_DIR→~/.local/runXDG_BIN_HOME→~/.local/bin
Pre-commit hook with gitleaks prevents committing secrets. Sensitive configs (raycast, ssh, etc.) are automatically added to .gitignore.
- fuzzy search in hidden files in vim
- file search in hidden files in vim
- configure sketchybar
- change tmux navigator vim plugin to work with aerospace detection
- add a script to quickly add new line to nav