# Omarchy Install Scripts: Pre‑install Hardware Fixes and Service Setup Explained

> Explore Omarchy install scripts for automated pre-install hardware fixes, package installation, user configuration, and service setup. Ensure a deterministic first boot.

- Repository: [Omacom/omarchy](https://github.com/omacom/omarchy)
- Tags: how-to-guide
- Published: 2026-09-10

---

**Omarchy install scripts automate hardware‑specific pre‑install fixes, package installation, user‑level configuration, and systemd service enablement to ensure a deterministic first boot without starting services during the installation process.**

Omarchy provides a structured Arch Linux installation framework that separates system preparation into distinct **pre‑install** and **service‑setup** phases. These scripts reside in the `omac/omarchy` repository and handle vendor‑specific hardware quirks, essential package provisioning, and systemd unit orchestration before the system reboots. Understanding the exact scope of these scripts allows administrators to debug installation failures or extend the framework for custom hardware.

## Pre‑install Phase: Hardware, Packages, and User Configuration

The pre‑install phase runs before the main system configuration is copied, targeting hardware detection, package installation, and user‑level customizations.

### Hardware‑Specific Fixes

Scripts under `install/hardware/` detect the platform and apply vendor‑specific kernel module adjustments, firmware updates, and udev rules. According to the omac/omarchy source code, these fixes resolve issues such as broken AMD audio inputs on Framework laptops, missing Wi‑Fi regulatory domains, and NVIDIA driver quirks.

Individual vendor directories contain targeted scripts—for example, [`install/user/hardware/framework/fix-f13-amd-audio-input.sh`](https://github.com/omacom/omarchy/blob/main/install/user/hardware/framework/fix-f13-amd-audio-input.sh) addresses specific audio input failures on Framework 13 AMD models. The aggregate script [`install/hardware/all.sh`](https://github.com/omacom/omarchy/blob/main/install/hardware/all.sh) sources each hardware‑specific fix in the correct order to ensure comprehensive coverage for Asus, Dell, Apple, and other supported platforms.

### Package Preparation

Before the main configuration phase, [`install/hardware/pacman.sh`](https://github.com/omacom/omarchy/blob/main/install/hardware/pacman.sh) installs the essential package set using the `omarchy-pkg-add` helper. This approach keeps the installation process distro‑agnostic while ensuring core utilities, drivers, and optional tools are present. The script handles pacman repository synchronization and AUR helper setup if required by the target environment.

### User‑Level Configuration

The [`install/user/all.sh`](https://github.com/omacom/omarchy/blob/main/install/user/all.sh) script aggregates one‑time user customizations that must occur before the desktop environment is fully configured. These adjustments include theme file deployment, SSH keep‑alive settings, and Chromium policy tweaks. By running these scripts as the target user rather than root, Omarchy ensures proper ownership and permissions for dotfiles and browser configurations.

## Service Setup Phase: Systemd Unit Management

After hardware and user preparation, the service‑setup phase configures systemd units to start automatically on the next boot.

### Enable‑Only Strategy

The [`install/config/enable-services.sh`](https://github.com/omacom/omarchy/blob/main/install/config/enable-services.sh) script **enables** required systemd services using `systemctl enable` without immediately starting them. This design prevents interference with the ongoing installation process while ensuring that core daemons such as `cups`, `avahi-daemon`, `power-profiles-daemon`, and the `sddm` display manager are active after the first reboot.

### Service Masking and Ancillary Sockets

To prevent boot stalls, the script **masks** `NetworkManager-wait-online.service`, which would otherwise block the boot target while waiting for network configuration. Additionally, it enables ancillary components such as `docker.socket` for container runtime availability and `systemd-oomd.service` to protect user sessions from runaway memory usage once the system boots.

## Running the Scripts Manually

While the main `omarchy-install` entry point executes these scripts automatically, administrators can invoke them directly for debugging or partial reconfiguration.

Run all hardware fixes as root:

```bash
sudo bash /usr/local/omarchy/install/hardware/all.sh

```

Apply user‑level configurations as the target user:

```bash
bash /usr/local/omarchy/install/user/all.sh

```

Enable systemd services after configuration changes:

```bash
sudo bash /usr/local/omarchy/install/config/enable-services.sh

```

## Summary

- **Hardware fixes** reside in `install/hardware/` and target specific vendors such as Framework, AMD, and Intel to resolve kernel module and firmware issues.
- **Package installation** occurs via [`install/hardware/pacman.sh`](https://github.com/omacom/omarchy/blob/main/install/hardware/pacman.sh) using the `omarchy-pkg-add` helper to maintain distro compatibility.
- **User configuration** is handled by [`install/user/all.sh`](https://github.com/omacom/omarchy/blob/main/install/user/all.sh), applying themes, SSH settings, and browser policies before the desktop environment loads.
- **Service setup** uses [`install/config/enable-services.sh`](https://github.com/omacom/omarchy/blob/main/install/config/enable-services.sh) to enable—but not start—systemd units, while masking `NetworkManager-wait-online.service` to prevent boot delays.
- **Key services** enabled include `sddm`, `cups`, `avahi-daemon`, `power-profiles-daemon`, `docker.socket`, and `systemd-oomd.service`.

## Frequently Asked Questions

### What hardware vendors does Omarchy support with pre‑install scripts?

Omarchy includes hardware‑specific scripts for vendors such as Asus, Dell, Apple, and Framework. These scripts reside in `install/hardware/` and address issues like Intel VA‑API acceleration via [`install/hardware/intel/video-acceleration.sh`](https://github.com/omacom/omarchy/blob/main/install/hardware/intel/video-acceleration.sh), NVIDIA driver quirks, and AMD audio input fixes on specific laptop models.

### Why does the service setup script use `systemctl enable` instead of `start`?

The [`install/config/enable-services.sh`](https://github.com/omacom/omarchy/blob/main/install/config/enable-services.sh) script only enables services to ensure they activate on the next boot. Starting services during installation could interfere with the setup process or cause resource conflicts before the system is fully configured.

### How can I add custom hardware fixes to an Omarchy installation?

Create a new shell script in the appropriate `install/hardware/` subdirectory following the naming conventions of existing fixes, then ensure it is sourced by [`install/hardware/all.sh`](https://github.com/omacom/omarchy/blob/main/install/hardware/all.sh). The script should use standard bash utilities to modify kernel modules, udev rules, or firmware configurations.

### What prevents the system from hanging during boot after Omarchy installation?

The service setup script masks `NetworkManager-wait-online.service`, which prevents the boot sequence from stalling while waiting for network connectivity. Additionally, it enables `systemd-oomd.service` to mitigate memory pressure that could otherwise freeze the system during the first boot.