Migrated from GitLab - Project ID: 6
Find a file
2025-12-07 23:39:10 +01:00
assets/oh-my-posh Update catppuccin oh-my-posh theme 2025-12-04 22:39:19 +01:00
dotfiles Use pinentry via kwallet 2025-12-07 23:39:10 +01:00
install Use pinentry via kwallet 2025-12-07 23:39:10 +01:00
.chezmoiroot More cleanup 2025-08-14 12:37:25 +02:00
.gitignore Stow bundle, cargo, gh and yarn dotfiles 2025-08-06 15:32:35 +02:00
AGENTS.md Update AGENTS.md 2025-08-20 14:08:34 +02:00
CLAUDE.md Update AGENTS.md 2025-08-20 14:08:34 +02:00
install.sh Install Arch desktop apps 2025-12-07 20:45:45 +01:00
README.md Install Arch desktop apps 2025-12-07 20:45:45 +01:00
setup.sh Change repo url to git.devroom.io 2025-10-30 09:20:07 +01:00

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

  1. Disable Secure Boot in BIOS/UEFI settings
  2. 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:

  1. Reboot and log in with your user account
  2. Connect to internet (if using WiFi, use nmtui or iwctl)
  3. 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