omarchy-config/README.md
2026-07-17 20:25:09 +02:00

2.5 KiB

Milan's Omarchy Config

This repository is the source of truth for Milan's Omarchy workstation. Configs are restored with symlinks so future edits should happen here.

Fresh install

git clone https://git.ta52.dk/milan/omarchy-config.git

cd omarchy-config

./bootstrap.sh

Restore on an existing install

./install.sh

Installation options

The installer respects environment variables to customize behavior:

  • UPDATE_SYSTEM=1 - Update the system packages before installing (skipped by default on fresh Omarchy installs)
  • ENABLE_SYSTEM_SERVICES=1 - Enable system-level services (user services are enabled by default)
  • INSTALL_SMB=1 - Run the optional SMB automount installer

Example:

UPDATE_SYSTEM=1 ENABLE_SYSTEM_SERVICES=1 ./install.sh

Installer behavior

The installer is designed to be:

  • Idempotent - Safe to run multiple times
  • Robust - Continues after non-critical failures and reports them at the end
  • Fast - Does not update the system by default
  • Deterministic - Same results on each run
  • Minimal - Requires minimal user interaction

All configs are backed up before being replaced. Backups are stored in ~/.local/state/omarchy-config/backups/.

Configuration symlinking

Entire config directories are symlinked from this repository into ~/.config. This means:

  • Pro: Configs are centrally managed and changes propagate immediately
  • Con: New files added to managed directories in ~/.config will not automatically appear in git
    • Future Omarchy config additions inside symlinked directories must be committed manually from this repo
    • This is an intentional trade-off for centralized management

Fonts

Fonts from the fonts/ directory are symlinked to ~/.local/share/fonts/omarchy-config and the system font cache is updated automatically.

Update repository

After changing your setup:

./backup.sh

git add .

git commit -m "Update"

git push

Structure

  • tracked-configs.txt lists every managed config symlink
  • configs/ stores files that restore into ~/.config
  • bash/ stores .bashrc and .bash_aliases when enabled in tracked-configs.txt
  • scripts/ restores executable helpers into ~/.local/bin
  • applications/ restores custom launchers into ~/.local/share/applications
  • fonts/ symlinks into ~/.local/share/fonts/omarchy-config
  • system/ stores exported service and system package metadata
  • smb/ stores SMB automount templates without credentials