This kit installs your preferred tools on a fresh Arch Linux KDE VM using pacman (for official repos) and yay (for AUR). Package names are grouped by category (one file per category) and you can freely mix repo + AUR entries; the script auto-detects which backend to use per package.
# 1) Extract this zip and cd into the folder
cd arch-kde-bootstrap
# 2) Run the bootstrap (no need to run as root; it will sudo when needed)
bash bootstrap.sh
- Edit the package lists in
lists/
before running if you want. - The script will:
- Ensure pacman is tuned (color + parallel downloads)
- Install
yay
(AUR helper) if missing - Install everything from the lists (each list may contain both repo and AUR packages)
- Configure Ghostty, Starship (catppuccin-powerline), Oh My Zsh plugins, fonts
- Apply your provided
.zshrc
- Apply your global git config
- Create
~/.scripts/update.sh
and an aliasu
to run it
Note: Lists are unified now (no
.pacman
/.aur
split). For each package the script first checks if it's in the official repos (fast pacman path) and otherwise installs it viayay
from AUR.
Current category files (repo + AUR mixed):
lists/01-fonts
lists/02-cli
lists/03-shell
lists/04-terminal
lists/05-dev
lists/06-browsers
lists/07-apps
You can add/remove packages line-by-line. Lines starting with #
are ignored.
Simple webapp installer available as a shell function:
- Prefers Brave browser for better privacy
- Available as
webapp-install
command after bootstrap
Install webapps from your terminal:
# Interactive mode
webapp-install
# Direct installation
webapp-install "GitHub" "https://github.com" "https://icon-url.png"
Preview actions without installing:
bash bootstrap.sh --dry-run
Preview actions without installing:
bash bootstrap.sh --dry-run
Advanced usage options:
# Normal installation
./bootstrap.sh
# Dry run to see what would be done
./bootstrap.sh --dry-run
# Verbose output for debugging
./bootstrap.sh --verbose
# Dry run with verbose output
./bootstrap.sh --dry-run --verbose
# Show help
./bootstrap.sh --help
The bootstrap automatically sets up a Node.js development environment using nvm
. After installation:
- Node.js LTS is installed via
nvm
- nvm is configured for your shell and initialized in
.zshrc
- Python is available from the system (with
uv
for package management)
Node.js can be managed using nvm commands:
# Use the installed Node.js version
nvm use node
# Install a specific version
nvm install 18.20.0
# List installed versions
nvm list
- Ghostty config at
~/.config/ghostty/config
(catppuccin-mocha, dark, 0.9 opacity) - Starship theme preset written to
~/.config/starship.toml
- Oh My Zsh with plugins:
git
,git-prompt
,zsh-autosuggestions
,zsh-syntax-highlighting
,python
- Your .zshrc (from this repo) copied to
~
(existing one is backed up) - Git globals (name, email, editor)
- Fonts are refreshed with
fc-cache -fv
- Node.js LTS via
nvm
for development - Development tools including VS Code, Neovim, and various CLI tools
- Safety: Added dry-run validation and environment checks
- Debugging: Verbose mode for troubleshooting
- Reliability: Better error handling and recovery
- User Experience: Clear progress phases and better messaging
- Maintainability: Cleaner code structure and documentation
- Modern tooling: Uses
nvm
for Node.js version management