Tested on: Arch Linux, EndeavourOS
- Keep every config — shell, terminals, desktop, editors — under version control.
- One-command bootstrap on a fresh Arch install: run
arch-setup.sh, thenstow.sh. - Modular by design: each app's config lives in its own folder, symlinked individually — remove what you don't need.
- Interactive, not intrusive:
arch-setup.shshows every step up front and lets you exclude what you don't want, instead of asking yes/no one function at a time. - No stray copies scattered around
$HOME— everything is a symlink back to this repo.
| Path | Description |
|---|---|
_dotfiles/ |
Base application configs (~/.config/). Theme sets for Alacritty and btop, Kitty and Rio terminal setups, Pipewire audio routing, and MangoHud performance overlay. |
_shell/ |
Shell configuration centered on Fish — modularized aliases, custom completions, fzf plugins via fisher, plus Tmux and Zellij multiplexer setups. |
_plasma/ |
KDE Plasma configuration: hardware profiles and default app behavior (dolphinrc, kwinrc, etc.). |
editors/ |
Editor setups for Zed (custom TSX/C snippets and themes) and standard Vim. |
-
Clone the repo:
git clone https://github.com/void-land/void-dots.git ~/.dotfiles cd ~/.dotfiles
-
Provision the system (fresh Arch/EndeavourOS install only):
chmod +x arch-setup.sh ./arch-setup.sh -s
-
Symlink the configs:
chmod +x stow.sh ./stow.sh -s
-
Log out and back in (or reboot) so shell, group membership, and service changes take effect.
Bootstraps a fresh Arch install: system update, multilib, package groups, services, AUR packages, locale, Fish shell, KWin tweaks, and gaming environment setup (GameMode group + NTSync).
./arch-setup.sh [-s | -a | -p | -m | -l | -f | -k | -g] [-h]| Flag | Action |
|---|---|
-s |
Full system setup (all steps below) |
-a |
Install AUR packages only |
-p |
Install pacman packages only |
-m |
Enable multilib repository |
-l |
Setup locales (Persian) |
-f |
Setup Fish shell as default |
-k |
Apply KWin / graphics performance tweaks |
-g |
Configure gaming environment (GameMode group, NTSync) |
-h |
Show help |
Running -s doesn't ask yes/no before every step. Instead it prints every step once, yay-style, and lets you exclude what you don't want:
:: Following steps will be executed:
1 Update system
2 Enable multilib repository
3 Install pacman packages
4 Enable system services
5 Enable user services
6 Install AUR packages
7 Setup Persian locale (fa_IR UTF-8)
8 Setup Fish shell as default
9 Configure gaming environment (GameMode group, NTSync)
==> Steps to exclude: (eg: "1 2 3", "1-3", "^4")
-> Excluding steps may result in a partial setup
==>
Type numbers, a range (7-9), or ^4, and press Enter — everything else runs without further prompts. The same exclude-style picker is used inside -p (package groups) and -a (individual AUR packages), so you can drop e.g. google-chrome or the whole GAMING_PACKAGES group on the fly.
-
Adds your user to the
gamemodegroup (skips if already a member; warns ifgamemodeisn't installed yet). -
Detects NTSync support (kernel ≥ 6.14 and built with
CONFIG_NTSYNC) before touching anything — if unsupported, it says so and skips cleanly. -
When supported: writes
/etc/modules-load.d/ntsync.confsontsyncpersists across reboots, then loads it for the current session. -
Verify anytime with:
gamemoded -t lsmod | grep -i ntsync
Symlinks the contents of _dotfiles/, _shell/, _plasma/, and editors/ into their target locations under $HOME and ~/.config/.
Link (stow) configurations:
./stow.sh -sCreates the necessary directories under ~/.config/ and symlinks every tracked file back into this repo.
Unlink (unstow) configurations:
./stow.sh -uRemoves the symlinks, detaching your system from the repo without deleting the source files.
| Category | Utilities Configured |
|---|---|
| Shell & Prompt | Fish Shell, Starship Prompt, Bash |
| Terminals | Alacritty, Kitty, Rio |
| Multiplexers | Tmux, Zellij |
| Editors | VsCode, Zed, Vim |
| System & Monitoring | btop, htop, MangoHud |
| Desktop Suite | KDE Plasma (KWin, Dolphin, Baloo, PowerDevil) |
| Audio | Pipewire + Wireplumber (DeepFilter & Echo-Canceling) |
| Media Player | vlc |
| Gaming | Steam, MangoHud, GameMode, NTSync |