Cross-platform developer environment for Windows and Linux (Fedora, Debian, Ubuntu).
Configs live in this repo. Symlink scripts deploy them to the paths each app expects. Bootstrap scripts handle one-time machine setup.
configs/ Source of truth (mirrors $HOME layout)
scripts/link Deploy configs via symlinks (run after every pull)
bootstrap/ Install packages and tools (run once per machine)
templates/ Machine-specific stubs (PowerShell profile, gitconfig.local)
flowchart LR
clone["git clone"] --> bootstrap["bootstrap/ once"]
bootstrap --> link["scripts/link"]
link --> done["Open new terminal"]
git clone https://github.com/gherbetto/dotfiles.git ~/dev/dotfiles
cd ~/dev/dotfiles
pwsh -File bootstrap/windows.ps1git clone https://github.com/gherbetto/dotfiles.git ~/dev/dotfiles
cd ~/dev/dotfiles
bash bootstrap/linux.shAfter bootstrap, customize ~/.gitconfig.local with your preferred editor path.
Edit configs in this repo, commit, push. On another machine:
# Windows
git pull
pwsh -File scripts/link.ps1# Linux
git pull
bash scripts/link.sh| Tool | Config path | Platforms |
|---|---|---|
| WezTerm | ~/.wezterm.lua |
Windows, Linux |
| Starship | ~/.config/starship.toml |
Windows, Linux |
| Git | ~/.gitconfig + ~/.gitconfig.local |
Windows, Linux |
| PowerShell | ~/.config/powershell/user_profile.ps1 |
Windows |
| Bash | ~/.bashrc.dotfiles (hooked from ~/.bashrc) |
Linux |
| whkd | ~/.config/whkdrc |
Windows |
| yasb | ~/.config/yasb/ |
Windows |
| komorebi-ui | ~/.config/komorebi-ui/ |
Windows |
| Scoop | ~/.config/scoop/ |
Windows |
| OS | Package manager | Bootstrap script |
|---|---|---|
| Windows 10/11 | Scoop | bootstrap/windows.ps1 |
| Fedora / RHEL | dnf | bootstrap/linux.sh |
| Debian / Ubuntu | apt | bootstrap/linux.sh |
PowerShell expects a profile in Documents (or OneDrive-redirected Documents). Instead of storing your config there, scripts/link.ps1 writes a one-line stub that loads ~/.config/powershell/user_profile.ps1. Your real config lives in the repo — no OneDrive needed for backup.
WezTerm is configured to use Lilex Nerd Font. Install it manually from Nerd Fonts releases.
If you previously kept PowerShell configs in OneDrive-synced Documents, you can stop syncing that folder after running bootstrap/windows.ps1. The profile stub is recreated from this repo at whatever path $PROFILE resolves to.
For live sync between the repo and $HOME, enable Developer Mode in Windows Settings (System → For developers). Without it, scripts/link.ps1 falls back to directory junctions and file copies.
MIT — see LICENSE.