# 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 ```bash git clone https://git.ta52.dk/milan/omarchy-config.git cd omarchy-config ./bootstrap.sh ``` ## Restore on an existing install ```bash ./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: ```bash 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: ```bash ./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