| assets/oh-my-posh | ||
| dotfiles | ||
| install | ||
| .chezmoiroot | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| install.sh | ||
| README.md | ||
| setup.sh | ||
Ariejan's System Setup (and dotfiles)
Personalized and highly opinionated dotfiles and installation scripts for macOS and Arch Linux, managed with chezmoi.
One-command system installer, going from a fresh install of macOS/Arch Linux to a fully setup development machine.
🚀 Quick Setup
One command to install everything on a fresh system:
curl -fsSL https://devroom.io/setup-dotfiles | bash
For self-hosted Bitwarden:
curl -fsSL https://devroom.io/setup-dotfiles | BW_SERVER=https://vault.example.com bash
For headless VMs (skip desktop packages):
curl -fsSL https://devroom.io/setup-dotfiles | INSTALL_DESKTOP=0 bash
The script automatically:
- Detects your OS (macOS or Arch Linux)
- Installs package managers (Homebrew/yay)
- Installs git, zsh, chezmoi, and bitwarden-cli
- Logs into Bitwarden (prompts for credentials)
- Applies dotfiles using chezmoi (which installs tools automatically)
🔧 What You Get
Shell Environment
- zsh with antidote plugin manager
- oh-my-posh with Catppuccin theme
- atuin for enhanced shell history
- mise for language runtime management
Development Tools
- neovim with LazyVim configuration
- git with modern configuration and delta diff viewer
- CLI tools: bat, eza, ag, gh, htop, and more
Applications (macOS)
- iTerm2 terminal
- Visual Studio Code
- SizeUp window manager
- Nerd Fonts for better terminal experience
🔒 Post-Setup
You'll probably want to restart your system, but mostly restart your terminal/reloading zsh should be enough.
🔄 Updating
Get System Updates
To update your entire system (packages, tools, and dotfiles), simply run the setup script again:
curl -fsSL https://devroom.io/setup-dotfiles | bash
Update Dotfiles Only
To update just your dotfiles from the repository:
chezmoi update
Update Packages Only
brew upgrade # macOS
yay -Syu # Arch Linux
📦 Language Runtimes
Use mise (installed automatically) for language management:
mise use ruby@latest
mise use rust@latest
mise use python@latest
mise use nodejs@latest
🔧 Managing Dotfiles
Adding New Dotfiles to Chezmoi
To add a new dotfile to be managed by chezmoi:
# Add a single file
chezmoi add ~/.zshrc
# Add a directory
chezmoi add ~/.config/nvim
# Add with template support (for files that need variables)
chezmoi add --template ~/.gitconfig
Editing Existing Dotfiles
# Edit a managed file
chezmoi edit ~/.zshrc
# Apply changes after editing
chezmoi apply
# Or edit and apply in one command
chezmoi edit --apply ~/.zshrc
Customization
- Shell: Edit
dotfiles/dot_zshrc.tmpl - Git: Edit
dotfiles/dot_gitconfig.tmpl - Packages: Edit
dotfiles/.chezmoidata/packages.yml - Neovim: Configure in
dotfiles/dot_config/nvim/
After making changes:
chezmoi apply
🖥️ Installing Arch Linux
The system setup assumes specific configurations during Arch Linux installation. Follow these steps for compatibility:
Prerequisites
- Disable Secure Boot in BIOS/UEFI settings
- Boot from Arch Linux installation media (USB/CD)
Network Setup
If using WiFi, configure it before starting the installer:
iwctl
device list # See available wifi devices
station wlan0 scan # Scan for networks
station wlan0 connect <network> # Connect (use tab for autocomplete)
exit
Installation Configuration
Use archinstall and configure the following options:
Required Settings
- Mirrors and repositories: Select your region/country
- Disk configuration:
- Partitioning → "Use a best-effort default partition layout"
- Select your target disk
- Disk encryption: Enable LUKS with a strong encryption password
- Filesystem:
- Use btrfs with default subvolume structure
- Enable compression
- Hostname: Choose a descriptive name for your system
- User account:
- Create a user account with superuser privileges
- Set a strong password
- Audio: Select Pipewire
- Network configuration: "Copy ISO network configuration to installation"
- Additional packages: Add
curl git(required for setup script) - Timezone: Select your timezone
Post-Installation
After installation completes:
- Reboot and log in with your user account
- Connect to internet (if using WiFi, use
nmtuioriwctl) - Run the setup script:
curl -fsSL https://devroom.io/setup-dotfiles | bash
Notes
- The setup script will install
yay(AUR helper) and configure the desktop environment - LUKS encryption is recommended for laptops and portable systems - it will also proxy as a login system, because we use auto-login after unlocking the disk.
- The btrfs filesystem provides snapshots and compression benefits