Omarchy Provision User vs Reinstall Configs: Scope and Use Cases Explained
While omarchy-provision-user performs runtime finalization for new users by creating skill symlinks and configuring system handlers, omarchy-reinstall-configs merely refreshes static configuration files from /etc/skel for existing users who need to resync with defaults.
The omacom/omarchy repository provides distinct utilities for managing user environments at different lifecycle stages. Understanding the difference between omarchy-provision-user and omarchy-reinstall-configs ensures proper automation of user onboarding and maintenance without disrupting runtime customizations.
What Is omarchy-provision-user?
Purpose and Runtime Finalization
The bin/omarchy-provision-user script executes per-user initialization steps that cannot be performed at the system level or via skeleton directories. According to the source implementation, it handles dynamic environment setup requiring an active $HOME context and running session.
Key Operations
- Skill symlink creation: Establishes development-aware symlinks in
~/.agents/skills,~/.claude/skills, and related directories - XDG directory setup: Configures
xdg-user-dirsand GTK bookmarks specific to the user's home path - Default handler installation: Registers the default web browser and
mailtoprotocol handler - User script execution: Runs
install/user/all.shfor additional runtime tweaks - Idempotency marking: Creates
~/.local/state/omarchy/done/finalize-userto prevent duplicate execution
What Is omarchy-reinstall-configs?
Configuration Resynchronization
Located at bin/omarchy-reinstall-configs, this utility addresses the need to restore or update default configuration files for existing users. As noted in the documentation, it serves users "explicitly resyncing" their configurations, unlike the skeleton-based setup for new accounts.
Core Functionality
- Skeleton file deployment: Copies configuration templates from
/etc/skelinto the user's home directory when files are missing or outdated - Explicit resync capability: Allows users to voluntarily refresh defaults without affecting runtime-generated files
- Non-destructive defaults: Preserves existing user customizations unless explicitly forced with command-line flags
Key Differences Between omarchy-provision-user and omarchy-reinstall-configs
Execution Context
omarchy-provision-user: Runs automatically on first login or via--first-installflag during ISO installation. It requires an active user session with$HOMEdefined and accessible.omarchy-reinstall-configs: Executed manually by existing users or administrative scripts when configuration drift occurs or defaults need restoration.
Scope of Changes
omarchy-provision-user: Creates dynamic runtime artifacts including symbolic links, XDG user directories, and desktop environment handlers. It modifies active session configurations that depend on runtime variables.omarchy-reinstall-configs: Handles static dotfiles and configuration templates only. It leaves runtime directories, symlinks, and session-specific settings untouched.
Idempotency Behavior
omarchy-provision-user: Strictly idempotent via marker file~/.local/state/omarchy/done/finalize-user. Requires--forceflag to rerun initialization steps.omarchy-reinstall-configs: Safe to run multiple times by design, with optional--forceto overwrite existing configuration files.
When to Use Each Command
Use omarchy-provision-user when:
- Provisioning new user accounts after system installation
- Running first-login initialization that requires
$HOMEcontext and active graphical session - Setting up development environments with skill symlinks in
~/.agents/and~/.claude/ - Executing per-user scripts located in
install/user/all.sh
Use omarchy-reinstall-configs when:
- Existing users need to restore default configuration files from
/etc/skel - Updating shipped configs after major Omarchy version upgrades
- Repairing corrupted or deleted default dotfiles without touching runtime data or skill configurations
Practical Usage Examples
# First-time user finalization (typically runs automatically on first login)
omarchy-provision-user
# Force re-provisioning for troubleshooting or after manual deletion of marker file
omarchy-provision-user --force
# Restore missing default configs for existing user
omarchy-reinstall-configs
# Force overwrite of existing config files with skeleton templates
omarchy-reinstall-configs --force
Implementation Details and File Locations
According to the source tree in omacom/omarchy:
bin/omarchy-provision-user: Implements the finalize-user logic with idempotency checks and runtime configuration stepsbin/omarchy-reinstall-configs: Handles the/etc/skelsynchronization workflow for explicit resynchronizationdocs/file-layout.md: Documents the relationship between these utilities, noting that shipped configs are handled via/etc/skelfor new users andomarchy-reinstall-configsfor existing userstest/shell.d/provision-user-test.sh: Provides automated test coverage for the provision-user script~/.local/state/omarchy/done/finalize-user: Marker file indicating successful completion of provision-user execution
Summary
omarchy-provision-userperforms runtime finalization for new users, creating dynamic symlinks, XDG directories, and executing user-specific installation scripts that require active session contextomarchy-reinstall-configsrefreshes static configuration files from/etc/skelfor existing users without modifying runtime environments or skill symlinks- The provision script uses
~/.local/state/omarchy/done/finalize-userfor strict idempotency, while the reinstall command is inherently safe to rerun without force flags - Choose provision-user for initial user setup and reinstall-configs for configuration recovery or updates after system upgrades
Frequently Asked Questions
Can I run omarchy-provision-user on an existing account without losing data?
Yes, but exercise caution. The script checks for ~/.local/state/omarchy/done/finalize-user and skips execution unless you provide the --force flag. Forcing a rerun recreates skill symlinks and executes install/user/all.sh, which may overwrite existing runtime customizations established after the initial setup.
Does omarchy-reinstall-configs overwrite my personal customizations?
By default, it only copies missing files from /etc/skel into your home directory. Existing files remain untouched unless you explicitly pass --force. This design preserves user modifications while allowing restoration of accidentally deleted default configurations.
Why can't omarchy-provision-user use /etc/skel for all its tasks?
The /etc/skel directory only supports static file copying during account creation at the system level. Operations like creating symlinks to skill directories, configuring XDG user paths, and registering default applications require runtime environment variables and active user context that are not available during system-level user creation.
Which command should I use after upgrading Omarchy to get new default configs?
Use omarchy-reinstall-configs. This command specifically refreshes your home directory with updated templates from /etc/skel without disrupting your existing runtime setup, skill configurations, or XDG directories established by omarchy-provision-user.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →