How the Omarchy Resync Command Resets User Configurations to Shipped Defaults
The Omarchy resync command runs the omarchy-reinstall-configs script, which destructively copies the entire /etc/skel directory into the user's home using cp -af, overwriting existing dotfiles with shipped defaults before refreshing bootloader and desktop themes.
The Omarchy resync command provides a nuclear restoration mechanism for the basecamp/omarchy Linux distribution. When user configurations drift from upstream defaults or break entirely, this utility—located at bin/omarchy-reinstall-configs—clobbers your $HOME directory with pristine skeleton files, mirroring the behavior of useradd -m for brand-new accounts.
Step-by-Step Execution in omarchy-reinstall-configs
The script executes a strict sequence defined in bin/omarchy-reinstall-configs, beginning with safety checks and culminating in a full filesystem reset.
Root User Prevention
The script immediately verifies it is not running as root. If the effective user ID (EUID) equals 0, the operation aborts to prevent permission disasters.
# From bin/omarchy-reinstall-configs (lines 7-10)
if [[ "$EUID" -eq 0 ]]; then
echo "This script should not be run as root"
exit 1
fi
Destructive Copy of /etc/skel
The core operation copies the distribution's skeleton directory into the user's home. The cp -af /etc/skel/. ~/ command preserves all attributes (-a) and forces overwriting (-f) without prompting.
According to docs/file-layout.md, this step restores:
.bashrcshell configuration.config/**application settings.local/share/applications/desktop entries- Nautilus-Python extensions
- Hyprland toggle configurations
- Branding and migration marker files
Post-Copy Theme Refreshes
After clobbering user configs, the script invokes runtime refresh helpers to synchronize system-wide themes:
- Limine bootloader theme refresh (line 21)
- Plymouth splash theme refresh (line 22)
- Neovim configuration setup via conditional helper (lines 24-28)
The script uses set -euo pipefail in its header, ensuring any failure during these steps aborts the entire process immediately.
Configuration Files Restored
The resync operation targets specific paths within /etc/skel that define the Omarchy desktop experience. When executed, these locations in your $HOME are reset to their factory state:
- Shell initialization:
.bashrc - Application configs:
.config/ - Desktop integration:
.local/share/applications/ - Window manager toggles: Hyprland-specific configuration files
- System markers: Migration and branding files used by the Omarchy update system
Running the Resync Command
Execute the resync to restore defaults. Warning: This operation is destructive and provides no backup mechanism.
# Run the resync (destructive!)
omarchy-reinstall-configs
# Expected output:
# Resetting Omarchy user configs to shipped defaults...
# (followed by theme refresh messages)
To preview which files would be overwritten without actually changing them, simulate the copy using rsync:
rsync -avn /etc/skel/ ~/
Unlike the actual script's atomic cp -af approach, this dry-run displays the potential overwrites while preserving your current modifications.
Summary
- The Omarchy resync command (
omarchy-reinstall-configs) restores shipped defaults by copying/etc/skeldirectly into$HOME. - It refuses to run as root (enforced by
EUIDcheck) to ensure it modifies the correct user's home directory. - The operation uses
cp -afto forcibly overwrite existing dotfiles, making it destructive with no automatic backup. - After file restoration, it refreshes Limine, Plymouth, and Neovim configurations to maintain system consistency.
- The script aborts on any error due to
set -euo pipefailsemantics.
Frequently Asked Questions
What happens to my custom dotfiles when I run the Omarchy resync command?
Any file in your home directory that exists within /etc/skel will be overwritten with the shipped version. As documented in docs/file-layout.md, the resync is explicitly destructive—user-customized files clash with defaults and are replaced without creating backups. Files not present in /etc/skel remain untouched.
Can I run omarchy-reinstall-configs as root?
No. The script contains an explicit guard clause (lines 7-10 of bin/omarchy-reinstall-configs) that checks if EUID equals 0 and aborts if true. Running as root would copy skeleton files into /root rather than the intended user's home directory, potentially breaking privileged account configurations.
How can I preview what the resync command will change?
Since the script itself offers no dry-run flag, use rsync with the -n (dry-run) flag to simulate the cp -af /etc/skel/. ~/ operation safely. This lists every file that would be overwritten or added without modifying your actual configuration. Alternatively, manually inspect /etc/skel to compare against your current $HOME dotfiles.
Does the resync command affect Neovim plugins and themes?
Yes. The script specifically checks for a Neovim refresh helper (lines 24-28) and executes it if available, otherwise falling back to a forced setup routine. This ensures editor configurations synchronized with the rest of the desktop environment, completing the full restoration of user-space defaults.
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 →