Start Arch
A configured Arch + Hyprland desktop, installed from one image — without replacing how Arch manages packages or how Hyprland is configured.
Arch gives you a great deal: a current system, an honest package manager and the best documentation in Linux. What it does not give you is a desktop. You are handed a console and the job of assembling one.
Hyprland is the same trade one level up. It is an excellent compositor and it ships almost no opinions — a bar, a launcher, notifications, a lock screen, idle handling, screenshots, clipboard history and audio are all separate programs you choose, install and wire together yourself. That assembly is the work, and it is much the same every time.
starch does the assembly. It boots a desktop that is already wired together, writes it to your disk, and leaves the system working the way Arch and Hyprland normally do.
starch is a starting point, not a layer. It sets the desktop up; it does not stand between you and the system afterwards.
starch stays on the machine — the desktop it configured is yours to keep, change or throw away. What it does not do is replace how Arch and Hyprland already work:
Every package comes from the official Arch repositories.
Nothing runs that you did not put there. No self-updates.
Updates are pacman -Syu, the same as any Arch install,
and the Arch wiki is the documentation.
The desktop it leaves is a set of plain files in ~/.config,
where Hyprland and everything else already look for them. You can read,
edit or delete any of it, and the comments in those files explain what
each choice does and why — a starting point you can learn from rather
than a black box you maintain around.
Packages are still pacman's. Configuration is still
Hyprland's own files. Nothing was wrapped, and nothing needs starch to
keep running.
A Wayland desktop that is configured rather than assembled — 136 packages from the official repositories, wired together and commented.
| Compositor | hyprland, launched through uwsm |
|---|---|
| Login | greetd + tuigreet |
| Bar | waybar |
| Launcher | wofi |
| Notifications | mako |
| Terminal | kitty |
| Browser | firefox |
| Editors | neovim, vim |
| Files | thunar + gvfs + udiskie |
| Lock, idle, wallpaper | hyprlock, hypridle, hyprpaper |
| Audio | PipeWire + WirePlumber |
| Graphics | Mesa, plus the driver for your detected card |
| Screenshots | grim + slurp + swappy |
| Clipboard | wl-clipboard + cliphist |
| On-screen display | swayosd, for volume and brightness |
| Settings | starch-config — scale, idle, input, theme |
| Themes | 14, switched live with SUPER+SHIFT+T |
Hyprland is configured in files, and starch does not hide that. It also
ships starch-config, a settings app on
SUPER + I, covering the settings that are
genuinely awkward to hand-edit: display scale, resolution and refresh
rate, idle and lock timeouts, what the lid does, keyboard and touchpad
behaviour, and the theme, wallpaper, cursor and font.
Both routes are first-class, because they are the same files. The app writes ordinary Hyprland configuration you can open, read and change by hand afterwards — and if you would rather never open it, nothing needs it.
monitors.lua, hypridle.conf and
settings.lua — generated, rewritten whole, previous
version kept as .bak.
input.lua, theme.lua,
keybinds.lua and the rest are hand-written and stay that
way. Edit them freely.
settings.lua loads last, so it overrides the defaults.
Remove it and you are back to the shipped configuration.
One setting is worth the app on its own. A display scale is legal only if it divides the resolution into whole pixels; Hyprland accepts any number and then quietly snaps to one that does, so a config can say 1.5 while the session runs at 1.6. The scale menu lists only the values that are actually legal for your mode.
Replace /dev/sdX with your stick, and check it is a block
device before you write to it — the guard below is not decoration, it is
the difference between writing to a disk and writing to a file.
# confirm which device is the stick lsblk -o NAME,SIZE,TYPE,RM,MODEL DEV=/dev/sdX # refuse to continue unless that really is a block device [ -b "$DEV" ] || { echo "REFUSING: $DEV is not a block device"; exit 1; } sudo dd if=starch-x86_64.iso of="$DEV" bs=4M status=progress oflag=direct conv=fsync sync
Boot it, and the desktop comes up with the installer on top of it.
One file. Write it to a stick, boot it, and decide whether you like the desktop before you install anything.