yino/docs/Omarchy.md
Michael Smith eeee7ace7d Add comprehensive Omarchy analysis document
Reference document covering the upstream Omarchy project architecture,
installation process, package management, desktop stack, theming system,
boot management, ISO generation, omacom-io ecosystem, and Arch-to-Debian
mapping table for planning the Yino port.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:35:11 +01:00

37 KiB

Omarchy Analysis

A comprehensive reference document analyzing the upstream Omarchy project and its ecosystem, serving as a blueprint for the Yino (Debian-based) port.

1. Project Overview

Omarchy ("Beautiful, Modern & Opinionated Linux") is an omakase Linux distribution created by David Heinemeier Hansson (DHH), the creator of Ruby on Rails and co-founder of 37signals/Basecamp. The name derives from "omakase" -- a Japanese dining concept where a master chef prepares a curated selection rather than the diner choosing from a menu.

  • Repository: github.com/basecamp/omarchy
  • Website: omarchy.org
  • Manual: learn.omacom.io
  • License: MIT
  • Stars: ~20,100 | Forks: ~2,000 | Contributors: 333
  • Latest Release: v3.3.3 (2026-01-08) | Total Releases: 48 | Commits: 3,214
  • Default Branch: dev
  • Language: Shell (91.8%), CSS (3.1%), Go Template (3.1%), Lua (1.8%)
  • Sponsor: Cloudflare (provides CDN for ISO and package delivery)

DHH first built Omakub (an Ubuntu-based configuration) when he initially switched to Linux. After running it as his daily driver for over a year, he evolved to a more advanced Arch-based setup and published Omarchy on June 26, 2025 as "a love letter to Linux." 37signals subsequently announced going all-in on Omarchy, planning to switch everyone on their Ops and Ruby programming teams to it over three years. By October 2025, a petabyte of ISOs had been delivered in a single month (~150,000 installs).

Omarchy turns a fresh Arch Linux installation into a fully-configured, keyboard-driven desktop development system based on Hyprland. It ships with Neovim, Ghostty, Spotify, Chromium, Typora, LibreOffice, and more.

Key characteristics:

  • Mandatory full-disk LUKS encryption
  • UFW firewall enabled by default
  • Wayland-only (no X11)
  • Single-user auto-login (disk decryption authenticates the user)
  • Btrfs filesystem with Snapper snapshots
  • 14 built-in themes with atomic switching
  • Super key as the primary modifier

2. Repository Structure

basecamp/omarchy/
├── .github/ISSUE_TEMPLATE/
├── applications/        # Desktop entries, icons for TUIs and web apps
│   └── icons/
├── bin/                 # ~100+ executable scripts (omarchy-* commands)
├── config/              # Default config files for all components
│   ├── hypr/            # Hyprland, Hypridle, Hyprlock, Hyprsunset
│   ├── walker/          # Application launcher config
│   ├── waybar/          # Top bar config and indicators
│   ├── mako/            # Notification daemon
│   ├── swayosd/         # OSD overlay
│   ├── btop/            # System monitor
│   └── alacritty/       # Terminal emulator
├── default/             # Default/fallback configs and assets
│   ├── plymouth/        # Boot splash theme (script, images)
│   ├── hypr/            # Default Hyprland settings
│   ├── walker/          # Default Walker settings
│   └── waybar/          # Default Waybar settings and indicators
├── install/             # Installation system (5 phases)
│   ├── helpers/         # Shared functions (logging, guards, UI)
│   ├── preflight/       # Phase 1: Pre-install checks
│   ├── packaging/       # Phase 2: Package installation
│   ├── config/          # Phase 3: System configuration
│   │   └── hardware/    # Hardware-specific fixes
│   ├── login/           # Phase 4: Login/boot setup
│   └── post-install/    # Phase 5: Cleanup and reboot
├── migrations/          # Timestamped migration scripts
├── themes/              # Built-in theme configurations
├── .editorconfig
├── LICENSE
├── README.md
├── boot.sh              # Boot-time initialization script
├── icon.png / icon.txt  # Branding assets
├── install.sh           # Main install entry point
├── logo.svg / logo.txt  # Branding assets
└── version              # Current version string

3. Installation Process

The installation is orchestrated by install.sh which sources five phases sequentially:

export OMARCHY_PATH="$HOME/.local/share/omarchy"
export OMARCHY_INSTALL="$OMARCHY_PATH/install"

source "$OMARCHY_INSTALL/helpers/all.sh"
source "$OMARCHY_INSTALL/preflight/all.sh"
source "$OMARCHY_INSTALL/packaging/all.sh"
source "$OMARCHY_INSTALL/config/all.sh"
source "$OMARCHY_INSTALL/login/all.sh"
source "$OMARCHY_INSTALL/post-install/all.sh"

Phase 1: Preflight (install/preflight/)

Script Purpose
guard.sh Prevent re-running on already installed systems
begin.sh UI initialization, logo display
show-env.sh Log environment variables
pacman.sh Configure pacman repos and mirrors
migrations.sh Initialize migration tracking
first-run-mode.sh Set first-run flag
disable-mkinitcpio.sh Defer mkinitcpio rebuilds during install

Phase 2: Packaging (install/packaging/)

Installs packages in categories:

Script Purpose
base.sh Core packages from omarchy-base.packages (~150 packages)
fonts.sh Omarchy custom font for Waybar
icons.sh Application icons
tuis.sh TUI application desktop entries

The base package list (install/omarchy-base.packages) includes:

  • Desktop: hyprland, waybar, swaybg, mako, hypridle, hyprlock, hyprsunset, sddm, uwsm
  • Terminal: alacritty, ghostty
  • Editor: neovim (via custom omarchy-nvim package)
  • Browser: chromium (custom omarchy-chromium build)
  • Apps: spotify, typora, obsidian, signal-desktop, libreoffice-fresh, nautilus, evince, mpv
  • Dev tools: docker, docker-compose, lazygit, lazydocker, github-cli, mise, rust, ruby
  • Utilities: btop, fastfetch, ripgrep, fzf, bat, eza, zoxide, dust, jq, gum
  • System: pipewire, wireplumber, power-profiles-daemon, cups, avahi, iwd, ufw
  • Fonts: noto-fonts family, ttf-jetbrains-mono-nerd, ttf-cascadia-mono-nerd, fcitx5
  • AUR helper: yay

Phase 3: Configuration (install/config/)

Script Purpose
config.sh Deploy dotfiles (3-layer system)
theme.sh Set default theme
branding.sh Screensaver and about text
git.sh Set git user.name/email from install inputs
gpg.sh GPG agent configuration
timezones.sh Timezone setup
increase-sudo-tries.sh More sudo password attempts
increase-lockout-limit.sh Higher lockout threshold
ssh-flakiness.sh SSH connection stability tweaks
detect-keyboard-layout.sh Auto-detect keyboard layout
xcompose.sh XCompose for special characters
mise-work.sh mise (dev tool version manager) setup
docker.sh Docker service and user group
mimetypes.sh File type associations
localdb.sh Local database config
walker-elephant.sh Walker launcher configuration
fast-shutdown.sh Faster shutdown timeouts
sudoless-asdcontrol.sh Passwordless ASD control
input-group.sh Input device permissions
omarchy-ai-skill.sh AI tool integration
powerprofilesctl-rules.sh Power profile udev rules
wifi-powersave-rules.sh Wi-Fi power saving rules
hibernation.sh Hibernation support
fix-powerprofilesctl-shebang.sh Shebang fix for power profiles

Hardware-specific fixes in config/hardware/:

Script Purpose
network.sh Network manager config
set-wireless-regdom.sh Wireless regulatory domain
fix-fkeys.sh Function key behavior
bluetooth.sh Bluetooth service setup
printer.sh CUPS printing
usb-autosuspend.sh USB power management
ignore-power-button.sh Prevent accidental shutdowns
legacy-gpu-terminal.sh Older GPU terminal support
nvidia.sh NVIDIA driver configuration
fix-f13-amd-audio-input.sh Framework 13 AMD audio fix
fix-bcm43xx.sh Broadcom Wi-Fi fix
fix-apple-spi-keyboard.sh Apple SPI keyboard
fix-apple-suspend-nvme.sh Apple NVMe suspend fix
fix-apple-t2.sh Apple T2 chip support
fix-surface-keyboard.sh Surface keyboard fix
fix-asus-rog-audio-mixer.sh ASUS ROG audio fix
fix-asus-rog-mic.sh ASUS ROG microphone fix
fix-yt6801-ethernet-adapter.sh YT6801 ethernet driver
fix-synaptic-touchpad.sh Synaptics touchpad fix

Phase 4: Login (install/login/)

Script Purpose
plymouth.sh Install Omarchy Plymouth boot splash theme
default-keyring.sh GNOME keyring auto-unlock setup
sddm.sh SDDM display manager with auto-login
limine-snapper.sh Limine bootloader + Snapper snapshot integration

SDDM is configured for automatic login:

[Autologin]
User=$USER
Session=hyprland-uwsm

[Theme]
Current=breeze

Phase 5: Post-Install (install/post-install/)

Script Purpose
pacman.sh Final pacman cache cleanup and config
allow-reboot.sh Remove installer sudoers override
finished.sh Display completion screen, prompt for reboot

4. Package Management

Omarchy uses a three-tier package system:

4.1 Pacman (Official Arch Repos)

The standard Arch package manager. Omarchy's pacman.conf adds the custom Omarchy repo:

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

[omarchy]
SigLevel = Optional TrustAll
Server = https://pkgs.omarchy.org/stable/$arch

4.2 OPR (Omarchy Package Repository)

Custom packages built and hosted by the Omarchy team via the omarchy-pkgs repo. These include:

  • omarchy-nvim -- Bundled Neovim configuration
  • omarchy-walker -- Pre-configured Walker launcher
  • omarchy-chromium -- Custom Chromium with live theme switching
  • omarchy-zsh / omarchy-fish -- Shell configurations

The package build system (omarchy-pkgs) uses three tiers:

Tier Build Frequency Deployment Review
Stable Manual Stable repo only Manual
Edge Daily (6:00 AM UTC) Edge repo only PR review
Shared Every 6 hours Both repos Auto-merge

Multi-architecture: x86_64 (native) and aarch64 (QEMU-emulated).

4.3 AUR (Arch User Repository)

Community packages installed via yay. The omarchy-pkg-aur-add script wraps yay:

if omarchy-pkg-missing "$@"; then
  yay -S --noconfirm --needed "$@" || exit 1
fi

4.4 Omarchy Mirror

A dedicated mirror of Arch core/extra/multilib repos hosted on Cloudflare R2:

  • Stable: https://stable-mirror.omarchy.org/ -- runs ~1 month behind latest
  • Edge: https://mirror.omarchy.org/ -- tracks latest Arch repos hourly

5. Desktop Environment Stack

5.1 Compositor: Hyprland

Hyprland is the Wayland compositor and tiling window manager. It's launched via UWSM (Universal Wayland Session Manager) through SDDM. Key configuration files:

  • ~/.config/hypr/hyprland.conf -- Main config (sources others)
  • ~/.config/hypr/bindings.conf -- User key bindings
  • ~/.config/hypr/monitors.conf -- Monitor layout
  • ~/.config/hypr/input.conf -- Input device settings
  • ~/.config/hypr/looknfeel.conf -- Theme visual settings

Key bindings (Super = primary modifier):

Binding Action
Super + Return Terminal
Super + Space Application launcher
Super + Alt + Space Omarchy menu
Super + W Close window
Super + F Fullscreen
Super + Arrow Navigate windows
Super + Shift + B Browser
Super + Shift + N Editor (Neovim)
Super + Shift + F File manager (Nautilus)
Super + Shift + M Music (Spotify)
Super + K Show all keybindings
Super + Ctrl + E Emoji picker

5.2 Top Bar: Waybar

Waybar provides the status bar at the top of the screen. Configured in config/waybar/config.jsonc:

modules-left:   [custom/omarchy, hyprland/workspaces]
modules-center: [clock, custom/update, custom/voxtype, custom/screenrecording-indicator]
modules-right:  [group/tray-expander, bluetooth, network, pulseaudio, cpu, battery]

The Omarchy logo button in the top-left opens the Omarchy menu.

5.3 Application Launcher: Walker

Walker is the application launcher, opened with Super + Space. It provides fuzzy search across applications, files, and commands.

5.4 Notifications: Mako

Mako handles desktop notifications with theme-aware styling.

5.5 OSD: SwayOSD

SwayOSD provides on-screen display for volume, brightness, and caps lock changes.

5.6 Terminal: Ghostty / Alacritty

Ghostty is the default terminal. Alacritty is also pre-installed. Users can install Kitty as well.

5.7 Editor: Neovim

Custom omarchy-nvim package with a pre-configured setup including LSP, Treesitter, and the pixel.nvim colorscheme (adapts to terminal ANSI colors).

5.8 Lock Screen: Hyprlock

Hyprlock provides the lock screen with theme-aware styling and optional blurred background.

5.9 Idle Management: Hypridle

Hypridle manages screen dimming, locking, and suspend after configurable idle timeouts.

5.10 Night Light: Hyprsunset

Hyprsunset provides blue light filtering (night mode).

5.11 Omarchy Menu

A comprehensive shell script (bin/omarchy-menu) providing a hierarchical menu system via Walker:

Main Menu
├── Apps (Walker launcher)
├── Learn (keybindings reference)
├── Trigger (screenshot, screenrecord, share)
├── Style (theme, font, background)
├── Setup (audio, wifi, bluetooth, power, monitors, DNS, security, config)
├── Install (packages, AUR, web apps, TUIs, dev environments, editors, AI tools, gaming)
├── Remove (packages, web apps, dev environments, preinstalls)
├── Update (Omarchy, channel, config, themes, processes, hardware, firmware, password)
├── About (fastfetch system info)
└── System (lock, screensaver, suspend, hibernate, restart, shutdown)

6. Configuration / Dotfiles System

Omarchy uses a 3-layer configuration system with increasing priority:

Layer 1: Default (lowest priority)

Located in ~/.local/share/omarchy/default/. These are the factory defaults shipped with Omarchy. Users should never edit these directly. They are overwritten on every update.

Layer 2: Theme

Located in ~/.local/share/omarchy/themes/<theme-name>/. When a theme is activated, its config files override the defaults. Theme files cover: Hyprland, Hyprlock, Alacritty, Neovim, btop, Mako, Waybar, Walker, SwayOSD, and backgrounds.

Layer 3: User (highest priority)

Located in ~/.config/. User edits here take ultimate precedence. Files include:

  • ~/.config/hypr/bindings.conf -- Custom keybindings
  • ~/.config/hypr/input.conf -- Input settings
  • ~/.config/hypr/monitors.conf -- Monitor layout
  • ~/.config/hypr/looknfeel.conf -- Visual overrides
  • ~/.config/omarchy/hooks/ -- User hook scripts
  • ~/.config/omarchy/extensions/menu.sh -- Menu extensions

The config.sh install script deploys this layered system. The omarchy-refresh-* commands can reset specific configs back to defaults.

Hooks

Users can place scripts in ~/.config/omarchy/hooks/ to run at specific events. The omarchy-hook script dispatches named hooks:

HOOK_PATH="$HOME/.config/omarchy/hooks/$1"
if [[ -f $HOOK_PATH ]]; then
  bash "$HOOK_PATH" "$@"
fi

7. Theming System

Omarchy ships with 14 built-in themes. Each theme is a collection of config files that atomically restyle every themed component:

Component Config File
Alacritty alacritty.toml
btop btop.theme
Hyprland hyprland.conf
Hyprlock hyprlock.conf
Mako mako.ini
Neovim neovim.lua
SwayOSD swayosd.css
Walker walker.css
Waybar waybar.css
Backgrounds backgrounds/ directory

Theme Management

  • Switch theme: omarchy-theme-set <name> or via the Style menu
  • Install extra theme: omarchy-theme-install <git-url>
  • Remove theme: omarchy-theme-remove
  • Update themes: omarchy-theme-update
  • Browse themes: Walker menu with visual previews
  • Cycle background: omarchy-theme-bg-next

The Neovim colorscheme (pixel.nvim) dynamically adapts to terminal ANSI colors (0-15), meaning theme changes in the terminal automatically propagate to the editor without any Neovim-specific theme logic.

Custom Chromium build (omarchy-chromium) supports live Material Design 3 theme switching without restarting the browser.

Community Themes

Third-party themes can be installed from any Git repository. Example: omarchy-theme-install https://github.com/omacom-io/omarchy-synthwave84-theme.git

8. Boot Management

8.1 Limine Bootloader

Omarchy uses Limine as its bootloader (not GRUB). Limine is configured to integrate with Snapper for bootable snapshot entries.

8.2 Plymouth Boot Splash

A custom Plymouth theme displays the Omarchy logo during boot with a progress bar animation. The theme uses a Tokyo Night color scheme (dark background: rgb(26, 27, 38)).

During boot:

  1. LUKS encryption password prompt appears over the Omarchy logo
  2. After password entry, a progress bar animates (fake progress with easing curve to 70%, then real boot progress takes over)
  3. On completion, SDDM auto-logs into Hyprland

8.3 Snapper Snapshots

Btrfs snapshots are managed by Snapper with these limits:

  • Maximum 30% of filesystem space for snapshots (SPACE_LIMIT=0.3)
  • Minimum 30% free space maintained (FREE_LIMIT=0.3)
  • Maximum 5 snapshots retained (NUMBER_LIMIT=5)

Snapshots are created automatically on every omarchy-update. Users can also create manual snapshots with omarchy-snapshot create.

To restore: select a snapshot from the Limine boot menu, choosing by date and version.

9. Security

Feature Implementation
Disk encryption LUKS (mandatory during install)
Firewall UFW (enabled by default)
GPG GPG agent configured for signing
Keyring GNOME keyring auto-unlocked on login
SSH Connection stability tweaks
Fingerprint Optional fprintd setup via omarchy-setup-fingerprint
FIDO2 Optional FIDO2 key setup via omarchy-setup-fido2
Sudo Increased retry limits, configurable lockout
No Secure Boot Explicitly not supported (Microsoft ecosystem)

10. Migration System

Omarchy uses timestamped migration scripts in the migrations/ directory. Each migration is a shell script named with a Unix timestamp (e.g., 1757861484.sh). Migrations run automatically during omarchy-update via install/preflight/migrations.sh.

Example migration:

echo "Add a blurred background to the lock screen"
omarchy-refresh-hyprlock

Migrations are tracked so they only run once per system. This allows Omarchy to evolve its configuration over time without users needing to manually apply changes.

11. Update System

Update Channels

Four update channels with different stability levels:

Channel Description
Stable Default. Mirrors ~1 month behind
RC Release candidates
Edge Latest packages, daily builds
Dev Development branch

Switch channels via omarchy-channel-set <channel> or the Omarchy menu.

Update Process (omarchy-update)

  1. Create a Btrfs snapshot (if Snapper is available)
  2. Pull latest Omarchy from git
  3. Run pending migrations
  4. Execute the install pipeline (re-runs all phases idempotently)
  5. Display update notification in Waybar

Waybar checks for updates every 6 hours and shows a notification icon.

12. ISO Generation

The ISO is built using the omarchy-iso repo (omacom-io/omarchy-iso).

Architecture

omacom-io/omarchy-iso/
├── archiso/          # Git submodule: gitlab.archlinux.org/archlinux/archiso.git
├── bin/              # Build and release scripts
│   ├── omarchy-iso-make       # Build the ISO
│   ├── omarchy-iso-boot       # Test via QEMU VM
│   ├── omarchy-iso-sign       # GPG sign the ISO
│   ├── omarchy-iso-upload     # Upload to Cloudflare R2
│   └── omarchy-iso-release    # Full build→sign→upload pipeline
├── builder/          # Build helpers and configs
└── configs/          # archiso profile configuration
    ├── airootfs/     # Files overlaid onto the live system
    │   ├── etc/      # System configs (mkinitcpio, Plymouth, pacman)
    │   └── root/     # Automated install script
    ├── efiboot/      # EFI boot loader entries
    ├── grub/         # GRUB config (for ISO boot)
    └── syslinux/     # Syslinux config (legacy BIOS)

ISO Build Process

  1. The archiso submodule provides the ISO creation framework
  2. omarchy-iso-make wraps archiso's mkarchiso command
  3. The profile in configs/ defines what goes into the ISO:
    • Base packages from omarchy-other.packages (base, base-devel, drivers, audio stack)
    • Omarchy repo packages from omarchy-base.packages
    • Plymouth with Omarchy theme
    • Automated installer script
  4. The ISO includes offline package mirrors (no internet needed during install)

Automated Install Script

configs/airootfs/root/.automated_script.sh runs on first boot from the ISO (on /dev/tty1):

  1. use_omarchy_helpers() -- Set up environment and source helpers
  2. run_configurator() -- Launch the Omarchy Configurator (user credentials, disk selection)
  3. install_arch() -- Run archinstall with the configured settings (base system, partitioning, LUKS encryption, Btrfs, user creation)
  4. install_omarchy() -- Chroot into the new system and run install.sh
  5. Reboot into the installed system

Configurable Build

The ISO build supports:

  • OMARCHY_INSTALLER_REPO -- default: basecamp/omarchy
  • OMARCHY_INSTALLER_REF -- default: master
  • --local-source -- build from local repo copy
  • --dev -- build development ISO

Distribution

ISOs are GPG-signed and uploaded to Cloudflare R2 via rclone. The omarchy-iso-release script runs the full pipeline: build → sign → upload.

13. omacom-io Ecosystem

The omacom-io GitHub organization maintains 20 repositories.

Core Infrastructure

Repository Stars Description
omarchy-iso 176 ISO builder wrapping archiso
omarchy-pkgs 13 Package build system (PKGBUILDs, signing, sync)
omarchy-mirror 3 Arch repo mirror on Cloudflare R2 (stable + edge)
omarchy-chromium 26 Custom Chromium with live theme switching (0BSD license)

Shell & Editor

Repository Stars Description
omarchy-zsh 43 Zsh config with fzf, starship, eza, zoxide
omarchy-fish 33 Fish config with fzf.fish, starship, eza, zoxide
pixel.nvim 2 Terminal ANSI color-adaptive Neovim colorscheme (fork)

Themes

Repository Stars Description
omarchy-synthwave84-theme 26 Example community-style theme

Sibling Products

Repository Stars Description
omaterm 26 Headless/terminal-only Arch setup (no GUI)
omamac 17 macOS setup mimicking Omarchy workflow
omadots 10 Shared dotfiles across Omarchy, Omaterm, Omamac

Websites

Repository Stars URL
omarchy-site 10 omarchy.org
omaterm-site 8 omaterm.org
omamac-site 3 omamac.org
website 2 omacom.io
omacon 18 Conference landing page

Archived

Repository Note
omarchy-configurator Rolled into omarchy-iso
omarchy-lazyvim Superseded by omarchy-nvim
asdcontrol-git ASD control package build

Notable Community Projects

Repository Stars Description
goodroot/hyprwhspr 809 Native speech-to-text for Linux
henrysipp/omarchy-nix 657 Omarchy ported to NixOS
malik-na/omarchy-mac 530 Omarchy for Apple Silicon Macs
devmobasa/wayscriber 430 Live annotation overlay for Wayland
erans/hyprmon 385 TUI monitor config for Hyprland
bjarneo/aether 346 Easy Omarchy theme creator
aorumbayev/awesome-omarchy 259 Curated list of Omarchy resources
elpritchos/omadora 70 Minimal Fedora + Hyprland (Omarchy-like)

14. Arch to Debian Mapping

This section maps Omarchy's Arch-specific components to their Debian equivalents for the Yino port.

Package Management

Arch (Omarchy) Debian (Yino) Notes
pacman apt Core package manager
pacman.conf + repos sources.list + repos Repository configuration
yay (AUR helper) N/A or build from source No AUR equivalent; use custom .deb repo, PPAs, or Flatpak
OPR (pkgs.omarchy.org) Custom APT repo Need to build .deb packages
omarchy-pkgs (PKGBUILD system) .deb packaging (dpkg-buildpackage) Build system needs rewrite
omarchy-mirror (Arch mirror) Debian mirror / snapshot.debian.org Debian is already stable
pacman -S --needed apt install Idempotent install
pacman -Q dpkg -l / apt list --installed Query installed packages

Boot & Init

Arch (Omarchy) Debian (Yino) Notes
archinstall debian-installer / preseed Automated installation
archiso (ISO framework) live-build or simple-cdd ISO generation
mkinitcpio initramfs-tools or dracut Initramfs generation
Limine bootloader GRUB2 or systemd-boot Consider: Limine works on Debian too
mkinitcpio.conf hooks initramfs-tools hooks/scripts Different hook system
Plymouth Plymouth Same -- available in Debian
Snapper Snapper Same -- available in Debian
SDDM SDDM Same -- available in Debian

Desktop Environment

Arch (Omarchy) Debian (Yino) Notes
Hyprland Hyprland Not in Debian stable; needs backport/build
Waybar Waybar Available in Debian, may need newer version
Walker Walker Needs manual build/packaging
Mako Mako Available in Debian
SwayOSD SwayOSD Needs manual build/packaging
Hypridle Hypridle Needs manual build/packaging
Hyprlock Hyprlock Needs manual build/packaging
Hyprsunset Hyprsunset Needs manual build/packaging
UWSM UWSM Needs manual build/packaging

Applications

Arch (Omarchy) Debian (Yino) Notes
Ghostty Ghostty Needs manual build/packaging
Alacritty Alacritty Available in Debian
Neovim Neovim Available; may need newer version
Chromium Chromium Available; omarchy-chromium needs rebuild
Nautilus Nautilus Available in Debian
Spotify Spotify Snap/Flatpak or official .deb
1Password 1Password Official .deb available
Docker Docker Official .deb repo available
mise mise Install script or manual build

System Utilities

Arch (Omarchy) Debian (Yino) Notes
gum gum Needs manual install (Go binary)
tte tte Needs manual install (tte-go in omacom-io)
fzf fzf Available in Debian
bat bat Available in Debian (may be named batcat)
eza eza Needs manual install or cargo
zoxide zoxide Available in newer Debian or manual install
ripgrep ripgrep Available in Debian
dust dust Needs manual install or cargo
lazygit lazygit Needs manual install (Go binary)
lazydocker lazydocker Needs manual install (Go binary)
fastfetch fastfetch Available in newer Debian or manual build
btop btop Available in Debian
ufw ufw Available in Debian

Things to Remove / Simplify for Yino

Since Debian is a stable release (not rolling), several Omarchy mechanisms become unnecessary or simpler:

Omarchy Feature Yino Approach
Arch mirror with 1-month lag Not needed -- Debian stable is already conservative
disable-mkinitcpio.sh Not needed -- Debian uses initramfs-tools
Edge/Dev update channels Simpler: just stable + backports
Frequent migrations Fewer needed -- stable base changes less
AUR Not applicable -- use custom .deb repo or Flatpak
omarchy-pkgs build system Rewrite for .deb packaging if custom packages are needed
Apple T2 support Optional -- evaluate if needed for target hardware
NVIDIA-specific fixes Keep but adapt for Debian's nvidia packaging

Key Porting Challenges

  1. Hyprland and related tools -- Not in Debian stable; need to either:

    • Build from source and package as .deb
    • Use a PPA or third-party repo
    • Backport from Debian unstable/experimental
  2. ISO generation -- Replace archiso with live-build or simple-cdd; rewrite the automated installer to use debian-installer with preseed or a custom script

  3. Package repository -- Replace PKGBUILD-based omarchy-pkgs with .deb packaging if custom packages are needed

  4. Walker -- Not packaged for Debian; needs manual build

  5. Ghostty -- Not packaged for Debian; needs manual build

  6. omarchy-chromium -- Significant effort to rebuild custom Chromium for Debian; consider whether the live theme switching is worth the build complexity, or use standard Chromium