2026-06-27 16:41:35 -04:00
2026-06-26 20:03:25 -04:00
2026-06-26 22:40:34 -04:00
2026-06-27 16:41:35 -04:00
2026-06-26 22:05:27 -04:00
2026-06-26 20:23:03 -04:00
2026-06-26 21:43:43 -04:00
2026-06-26 22:25:01 -04:00
2026-06-26 19:53:35 -04:00
2026-06-26 22:25:01 -04:00
2026-06-27 16:41:35 -04:00
2026-06-27 16:41:35 -04:00
2026-06-27 00:17:56 -04:00

dotfiles

built with Grok

Personal dotfiles managed with GNU Stow. Each top-level directory is a stow package that mirrors files into $HOME.

Quick start

git clone <repo-url> ~/.dotfiles
cd ~/.dotfiles

# Arch
sudo pacman -S stow

# Fedora
# sudo dnf install stow

stow bash git nvim vim python ghostty mangohud konsole kde-themes dolphin agents vscode vscode-server

To stow all packages at once (excludes arch/, which is not a stow package):

stow agents bash dolphin ghostty git kde-themes konsole mangohud nvim python vim vscode vscode-server

arch/ holds standalone helper scripts — see Scripts below.

Packages

Package Symlinks
bash ~/.bashrc, ~/.bashrc.d/*, ~/.editorconfig
git ~/.gitconfig, ~/.gitignore_global
nvim ~/.config/nvim/
vim ~/.vimrc
python ~/.ruff.toml
ghostty ~/.config/ghostty/
mangohud ~/.config/MangoHud/ (base, custom, and FFXIV wine configs)
konsole ~/.config/konsolerc, ~/.local/share/konsole/ (Catppuccin themes, bash profile)
kde-themes ~/.local/share/color-schemes/ (Catppuccin Mocha Teal/Blue)
dolphin ~/.config/dolphinrc, ~/.config/dolphin/, ~/.local/share/dolphin/
agents ~/.grok/ (Grok CLI config, rules, skills path)
vscode ~/.config/Code/User/settings.json → shared with vscode-server
vscode-server ~/.vscode-server/data/Machine/settings.json

Bash modules

~/.bashrc.d/ is sourced automatically. Modules:

  • alias.bash — general aliases
  • git.bash — git helpers
  • fonts.bash — font paths
  • ruff.bash — Ruff integration
  • mango.bash — MangoHud env vars
  • vscode.bash — VS Code helpers
  • wsl.bash — WSL ssh-agent interop (loaded only when /mnt/c is present)
  • apt.bash — Debian/Ubuntu helpers

Scripts

Script Purpose
arch/update.sh Update uv, pacman, and flatpak
arch/fix_vscode.sh Create VS Code desktop entry and icon symlinks for /opt/vscode
dolphin.sh Copy live Dolphin config into the repo and stow dolphin
vscode-server/install-vscode-extensions.sh Install extensions from extensions.txt (local, remote, or both)
vscode-server/install-fira-code-fonts.sh Install Fira Code fonts for VS Code

VS Code extensions

# Install remote (WSL) extensions from extensions.txt
bash ~/.dotfiles/vscode-server/install-vscode-extensions.sh

# Export currently installed extensions back to extensions.txt
bash ~/.dotfiles/vscode-server/install-vscode-extensions.sh --export

Grok agents

The agents package stows ~/.grok/ with global agent configuration:

  • config.toml — CLI settings, marketplace, and skills path
  • rules/ — global rules (e.g. american-english.md)
  • AGENTS.md — pointer to project-specific rules in .grok/rules/

Skills are loaded from ~/.dotfiles/agents/.grok/.skills (configured in config.toml).

Stow layout

Each package follows the standard stow convention — files live under the home-directory paths they should symlink to:

~/.dotfiles/
├── bash/
│   ├── .bashrc
│   └── .bashrc.d/
├── nvim/
│   └── .config/nvim/
├── git/
│   └── .gitconfig
├── agents/
│   └── .grok/
└── ...

Stow creates symlinks from $HOME back into the repo and handles conflicts cleanly.

WSL

Resources:

Install OpenSSH

OpenSSH

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
Set-Service -Name 'ssh-agent' -StartupType Automatic
Start-Service ssh-agent

Once ssh-agent is running, wsl.bash aliases ssh and ssh-add to their Windows .exe counterparts so keys persist across WSL sessions.

S
Description
My settings
Readme
332 KiB
Languages
Shell 95.7%
Lua 4.3%