The Power of Arch.
The Polish of GNOME.
Gnomarchy takes Omarchy's developer tooling, theme engine and rolling Arch base, and replaces the Hyprland stack with a tuned GNOME 50 desktop on GDM and Wayland. One ISO, one CLI, and a config repository that keeps updating the machine long after the install.
Usage: gnomarchy <command> [subcommand] [arguments...]
Commands:
menu Open the Gnomarchy command center (Super+Alt+Space)
theme <set|list|current> Manage system and desktop color themes
tiling <enable|disable|status>
Dynamic auto-tiling (Hyprland-style) or manual grid
keymap <omarchy|gnome|status>
Switch between Omarchy and Gnomarchy key layouts
keybindings [--list] Search the keybindings that are actually active
manual [page|--grep <text>] Read the Gnomarchy manual
gaming <install|status|proton>
Steam, Proton-GE, Wine and launchers in one go
asus <status|charge|profile|keyboard|graphics>
Asus ROG/TUF laptop controls
snapshot <create|list> Manage Btrfs Snapper rollback snapshots
webapp <add|list|remove> Turn websites into isolated desktop applications
voxtype [toggle|start|stop] Speech-to-text AI dictation (Super+D)
windows <setup|start|stop> Manage accelerated Windows 11 KVM VM
update Perform system & Gnomarchy configuration updates
migrate [--list] Apply pending Gnomarchy migrationsgnomarchy help also lists backgrounds, gnome, agent, reminder,
capture, screensaver, hook, first-run and version.
GNOME, with the sharp edges filed down
A bare window manager asks you to rebuild display handling, portals and a lock screen yourself. Gnomarchy keeps Mutter and GDM, then configures the parts a tiling user actually misses.
Fractional scaling, one command
Mutter's fractional scaling is still behind an experimental flag, so it ships off
rather than pretending otherwise. gnomarchy gnome scaling enable sets
scale-monitor-framebuffer and 125% or 150% becomes available in Settings.
Two tiling models, one switch
Dynamic auto-tiling in the Hyprland sense, or a manual grid where nothing moves
unless you move it. Both are installed; gnomarchy tiling picks which one
is live, because with both enabled they fight over placement.
A snapshot before every upgrade
The installer lays out @, @home, @snapshots,
@var_log and @var_cache on Btrfs and configures Snapper on
root. snap-pac then takes a pre and post snapshot around every pacman
transaction, so a bad upgrade is something you can step back out of.
Dynamic tiling, or a grid you drive yourself
Pick the model rather than the compositor. One command switches between them and disables the other, and the keys follow.
Dynamic β Tiling Shell
New windows are placed into the layout automatically and their neighbours resize to fit. This is the Hyprland-style behaviour, and it is opt-in.
hjkl rather than the arrows, so Super + Up stays maximize and GNOME's edge tiling keeps working.
Manual β Tactile grid
Super + T opens a grid overlay and you pick the zone with a letter. Nothing is ever moved for you, which is what you want the moment a dialogue or a picture-in-picture window appears.
The grid is set up at install time: three columns with relative widths 1:2:1, two equal rows, 18 px gaps.
22 themes, applied everywhere at once
Each theme's alacritty.toml is the canonical 16-colour palette; everything
else is generated from it. Click any theme to repaint this page.
What a theme switch touches
- Alacritty β the palette is copied to
colors.toml, which the base config imports - GNOME Terminal β the same palette written into the profile's dconf keys
- GTK 3 and 4 β a generated
gnomarchy-theme.css, imported once from yourgtk.css - Neovim β the theme's lazy.nvim spec, plus a pin so LazyVim does not override it
- btop β the theme file, and
btop.confis edited to actually select it - GNOME accent and wallpaper β the accent is one of GNOME's named hues, not an arbitrary hex value
Every theme carries a small SVG wallpaper in the repository. The full photographic sets
are fetched per machine with gnomarchy backgrounds β they are not committed,
because the upstream collection ships no attribution. See
BACKGROUNDS.md.
The gnomarchy dispatcher
One command in front of the themes, the tiling mode, snapshots, web apps, the gaming stack and the update path. Every output below is what the scripts print.
Applied theme: nord
The block above is the command's real output. The grey line under it is this page talking, not the script.
A gaming stack and laptop controls, on demand
Neither is in the base image, because neither belongs on every machine. Both are one command when you want them.
Steam, Proton-GE and the rest
Enables multilib, detects the GPU vendor and installs only the matching 32-bit Vulkan driver, then pulls the stack from the official repositories.
Proton-GE, ProtonUp-Qt and Faugus Launcher are not in the official repositories, so
they come from the AUR, with a Flatpak fallback when no AUR helper is present.
gnomarchy gaming proton manages versions afterwards.
Asus ROG and TUF laptops
A front end over asusctl and supergfxctl for the settings
worth changing day to day, so the common cases are one obvious command.
Untested on real Asus hardware so far. It reports clearly when
asusctl is missing or asusd is not running rather than
failing quietly.
Voxtype: local dictation on Super + D
Press once to record, press again to transcribe and type the result into whatever has focus. Nothing leaves the machine.
How it actually runs
- Capture β 16 kHz mono, through
pw-record,soxorffmpeg, whichever is present - Model β Whisper
base.en, about 140 MB, downloaded once on first use - Inference β
whisper-cppon the CPU. A GPU backend means addingggml-vulkanyourself - Typing β
ydotool, withydotooldenabled and a uinput rule installed
The default layout
Applied at first login. Super + K searches whatever is actually bound on the machine in front of you, which is the only list that cannot go stale.
Prefer Omarchy's layout?
gnomarchy keymap omarchy moves the apps onto
Super + Shift + B / F / N, puts ten workspaces on Super + 1β¦0,
close on Super + W and Super + Q, and directional focus on the
arrows. A handful of Hyprland bindings have no GNOME equivalent β window groups, the
scratchpad, pseudo-tiling β and are left deliberately unbound rather than mapped to
something that does not match.
gnomarchy keymap gnome puts it back.
Install Gnomarchy
Expect a normal Arch install: partitioning is quick, then it spends a while pulling packages, extensions and Brave over the network.
Bootable ISO
Write the ISO to a USB stick and boot it. The installer partitions the Btrfs subvolumes, optionally sets up LUKS, installs Snapper and limine, and deploys the GNOME 50 desktop.
Deploy onto a minimal Arch install
Already have a clean Arch system? The same staged installer runs on top of it and installs the desktop, the tooling and the CLI without touching your partitions.
Prefer to try it first? Clone the repository and run ./run-vm.sh to boot
the ISO under QEMU. CI builds the ISO, installs from it in a QEMU virtual machine
and checks the result both offline and inside a real GNOME session.
gnomarchy update pulls the repo, then applies pending migrations
/var/log/gnomarchy-install.log carries per-stage markers