# How the Omarchy Resync Command Resets User Configurations to Shipped Defaults

> Learn how the Omarchy resync command resets user configurations to shipped defaults by overwriting dotfiles with /etc/skel and refreshing themes. Discover the process now.

- Repository: [37signals/omarchy](https://github.com/basecamp/omarchy)
- Tags: how-to-guide
- Published: 2026-08-19

---

**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.

```bash

# 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`](https://github.com/basecamp/omarchy/blob/main/docs/file-layout.md), this step restores:
- `.bashrc` shell 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:

1. **Limine bootloader theme** refresh (line 21)
2. **Plymouth splash theme** refresh (line 22)
3. **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.

```bash

# 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`:

```bash
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/skel` directly into `$HOME`.
- It **refuses to run as root** (enforced by `EUID` check) to ensure it modifies the correct user's home directory.
- The operation uses `cp -af` to 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 pipefail` semantics.

## 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`](https://github.com/basecamp/omarchy/blob/main/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.