85 lines
2.5 KiB
Markdown
85 lines
2.5 KiB
Markdown
# 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
|