---
title: New Machine Checklist
description: Step-by-step setup for a new Omarchy machine.
sidebar:
  order: 3
---

A clean, end-to-end walkthrough for setting up a new machine.

1. Clone `dotfiles` to `~/.config/dotfiles`.
2. If you want private dotfiles, confirm `gh auth status` works before `dot init`; init clones `dotfiles-private` to `~/.config/dotfiles-private` automatically when auth is available.
3. Install bootstrap build prerequisites:

   ```bash title="Install bootstrap prerequisites"
   yay -S --needed git mise-bin
   ```

4. Build the `dot` binary (mise trusts and installs the pinned toolchain, then the build task installs dependencies and compiles it):

   ```bash title="Build dot"
   cd ~/.config/dotfiles
   mise trust
   mise install
   mise run dot:build
   ```

5. Run first-use setup using the mode that matches this machine.
6. UWSM, Hyprland, and Ghostty customisations are stowed from their public packages. Init removes only the retired `timmo001/omarchy-uwsm` checkout before linking the Quattro-compatible override.
7. `dot init` verifies the pinned public package signing fingerprint, registers the signed `timmo` repository before the standard repositories, and retains AUR as the fallback for packages not published there.
8. `dot init` opens the managed [firewall rules](/dot/utilities/#firewall-rules) (KDE Connect, Home Assistant, the OpenCode server, LocalSend, and the libvirt NAT network) when `ufw` is installed.
9. Restart your shell and confirm `dot help` is on `PATH`.
10. Run `dot git-diff` and verify the expected repo state.
11. Reboot so the Omarchy session picks up `OMARCHY_HOST`, then run `dot doctor` to verify the setup. Use `dot update` for ongoing sync, stow refreshes, and rebuilds.

**Desktop / VM**

```bash title="First-use setup"
~/.config/dotfiles/scripts/.local/bin/dot init --noninteractive
```

**Laptop**

```bash title="First-use setup"
dot init --host laptop --noninteractive
```

**Interactive**

```bash title="First-use setup"
dot init
```

`--noninteractive` skips the Hypr host questionnaire; elevation and package tools may still prompt. The accepted `--confirm` compatibility flag does not suppress those prompts.

:::tip[Hypr host and mise tools]
`dot init` selects the Hypr host early and creates `~/.config/hypr/host`. Reboot after init so Hyprland, the Omarchy shell, launchers, services, and new shells inherit `OMARCHY_HOST` from the stowed host config. Init runs `mise install` immediately after stowing dotfiles and before installing managed Arch/AUR package lists, so Bun, Node, pnpm, and similar tools come from the stowed mise config rather than global pacman packages. Later full `dot update` runs repo pulls, rebuilds, mise trust refreshes, MCP sync, and stow without checking or installing packages.
:::

:::note[GNOME Boxes shared folders]
Arch provides `spice-webdavd` in the `phodav` package. Share a host folder from Boxes and pass `--log <shared-path>/dot-init.log` when you want init output written somewhere visible from the host.
:::
