omarchy (4.0.3-28) unstable; urgency=medium

  * Resolve Debian, Homebrew and Flatpak package specs across the install
    rows, run macOS updates with an atomic lock, and seed migration
    baselines without replaying history (BASED-523, BASED-530).
  * Recognize installed vendor receipts and preserve the pre-upgrade
    migration baseline for existing Debian and Mac homes.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 04:47:15 +0000

omarchy (4.0.3-27) unstable; urgency=medium

  * Add application and cloud-tool install rows with editor defaults
    (BASED-524, patches 0065-0067).

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 04:05:45 +0000

omarchy (4.0.3-26) unstable; urgency=medium

  * Add the asdf development install rows and the shared per-platform asdf
    helper (BASED-524, patches 0060-0062). Include stubbed Debian and macOS
    regression coverage for each row.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 03:55:15 +0000

omarchy (4.0.3-25) unstable; urgency=medium

  * The Omarchy menu draws in the terminal where omarchy-shell is not
    (BASED-527, patch 0070). omarchy-menu only ever sent IPC to the shell, so
    the GNOME and KDE editions, ssh, tmux, a tty and a Mac had no menu.
    omarchy-menu-tui reads the same three files (the defaults, the system
    extension under /etc/omarchy/extensions, the user's), merges them the way
    the shell does, answers every when: and checked: in one batch shaped like
    the shell's guard script, drops a hidden row with its subtree, and draws
    a level at a time with gum: Enter opens or runs, Esc goes back. A row's
    action runs in that terminal, the window-opening wrappers shimmed so a
    flow lands there too. omarchy-menu asks the shell first inside a Wayland
    session, so with omarchy-shell running the Quickshell menu still opens,
    and hands over to the terminal menu when no shell answers. `omarchy menu
    tui` asks for it outright. test/shell.d/menu-tui-test.sh holds its rows
    to MenuModel.js under node.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 04:41:38 +0100

omarchy (4.0.3-24) unstable; urgency=medium

  * Applying a theme sets macOS's appearance and desktop picture (BASED-526,
    patch 0080). omarchy-theme-set-macos, hidden, runs from the post-theme
    commands after the GNOME setter: it reads the theme's mode through
    omarchy-theme-color, tells System Events to set dark mode, and puts the
    background just linked on every desktop; off Darwin it exits 0. The
    launchd agent darwin/com.basedlinux.desktop-sync.plist, which make
    install (patch 0050) fills and loads, keeps the darwin desktop-sync
    running so a toggle in System Settings switches the theme the other way.
    The plist is in no install list; the debs gain one no-op script.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 03:24:22 +0000

omarchy (4.0.3-23) unstable; urgency=medium

  * A top-level Makefile installs the applied tree on a Mac (BASED-522, patch
    0050). `git clone -b based <fork> && make install`: on Darwin it wants
    Homebrew's bash 4+, GNU sed, coreutils and flock, parses every script,
    links the checkout at ~/.local/share/omarchy, sources darwin/env.sh from
    the login shell's rc, marks the shipped migrations done, renders Tokyo
    Night once and loads darwin/*.plist as launchd agents; update runs
    omarchy update; uninstall takes it back. On Linux each says the deb is
    the path and exits 1. Neither file is in an install list, so the debs
    are unchanged; debian/rules overrides dh_auto_configure, build, test,
    install and clean, because dh takes a top-level Makefile for the build
    system and would run `make` into install.
  * desktop-sync on a Mac comes from the based release (BASED-522, patch
    0051): make install fetches the darwin binary by version, checked
    against the release's checksums, into ~/.local/bin before the plists
    load; make update fetches again after the pull; uninstall removes it.
  * publish:based in debian/gitlab-ci.yml publishes that applied tree as
    branch based on every debian/unstable push and every debian/<version>
    tag, which also tags based/<version>: one fast-forward commit per
    publish, while BASED_PUSH_TOKEN is set. README.source has the two views.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 03:14:35 +0000

omarchy (4.0.3-22) unstable; urgency=medium

  * Every script starts with #!/usr/bin/env bash (BASED-528, patch 0075).
    macOS ships bash 3.2 at /bin/bash and the tree is written for bash 4:
    declare -A in 12 scripts, mapfile or readarray in 23, and one file bash
    3.2 will not parse. With env resolving bash, brew's bash 5 on PATH runs
    the scripts on a Mac and Debian still lands on /bin/bash. The four test
    runners take the same line; the files under test/shell.d are started as
    `bash <file>` and keep theirs.
  * GNU sed -i, base64 -w and flock through one helper (BASED-528, patch
    0076). bin/omarchy-gnu <tool> runs gsed, gbase64 and brew's flock on
    Darwin and refuses on one line naming the formula to brew install when
    one is missing; anywhere else it runs the tool as named. Every sed -i,
    base64 -w and flock caller, the sudo ones included, goes through it.
  * A test for both (BASED-528, patch 0077): test/shell.d/gnu-tools-test.sh
    proves its scan on a planted offender, scans bin/ for the old shebang
    and raw calls, runs bash -n over every script under the running bash,
    and drives the helper under a faked Darwin.

 -- Clay Risser <clayrisser@gmail.com>  Wed, 16 Sep 2026 00:14:06 +0000

omarchy (4.0.3-21) unstable; urgency=medium

  * The banner is drawn at a width the terminal has (BASED-486, patch 0041).
    omarchy-show-logo cat logo.txt whatever the terminal was. That art is 81
    columns wide and every flow that shows it opens a window 80 columns wide,
    so each of its ten rows overflowed by one column and wrapped onto a line
    of its own, and the Omarchy wordmark arrived as a field of green blocks
    that do not join up. It draws the widest art that fits with two columns to
    spare now, and says the name in words below that: logo.txt on a wide
    terminal, a new three-row logo-compact.txt in the 80-column window these
    flows open in, and down to 31 columns. Hyprland and the Based sway shell
    both size that window in pixels (875x600), which came to 80 columns in
    Clay's frame, so the banner fits whatever the window comes to.
  * Installing a theme reports progress, not git's object counts (BASED-487,
    patch 0042). The flow showed a bare omarchy.org link, then git's object
    counts, delta counts and pack summary, then the config filenames our
    staging rules had dropped. The clone is quiet and shallow behind one
    "Downloading the <name> theme" line, a clone that fails says one sentence
    naming the URL instead of git's fatal, and omarchy-theme-set says how many
    of the theme's files did not land instead of naming them. The catalogue
    stays upstream's and is named as upstream's, the reading patch 0008 took
    for the Omarchy manual.
  * Cancelling the TUI shortcut flow says so, and never Done (BASED-488, patch
    0043). Escaping a prompt printed gum's "not submitted" and then "Done!",
    over a shortcut that was never created: gum exits 1 after saying its own
    piece, set -e ended the script with nothing to add, and the presentation
    wrapper shows omarchy-show-done after any exit that is not 130. Every
    prompt goes through one reader now, a cancel says "Cancelled. No shortcut
    was created." and leaves on 130, and Enter on an empty prompt lands there
    too. omarchy-show-done takes its message as an argument.

 -- Clay Risser <clayrisser@gmail.com>  Tue, 15 Sep 2026 17:40:00 +0100

omarchy (4.0.3-20) unstable; urgency=medium

  * Applying a theme opens it on its own background (BASED-474, patch 0040).
    omarchy-theme-set chose the background the way `omarchy theme bg next`
    does: find the one now showing in the new theme's list and take the one
    after it. The list is built from the staged theme,
    ~/.local/state/omarchy/current/theme/backgrounds, which is the same path
    for every theme, so a filename both themes use matched and the selector
    walked past the new theme's own art. Since patch 0038 draws a background
    into every theme there is always something next, so switching away from a
    theme and back landed on the drawn picture and a second set walked back to
    the art. It takes the match now instead of the one after it, so applying a
    theme is idempotent and cycling stays in omarchy-theme-bg-next.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 15 Sep 2026 07:20:00 +0000

omarchy (4.0.3-19) unstable; urgency=medium

  * omarchy-launch-browser runs the default browser's desktop entry wherever
    XDG_DATA_HOME and XDG_DATA_DIRS find it, with its whole Exec line
    (BASED-469, patch 0039). A Flatpak default browser (Zen on the Based
    tiling editions) is exported under /var/lib/flatpak/exports/share and
    its Exec is `flatpak run ... <app-id>`; the launcher looked in three
    fixed directories and ran the first Exec word, so $BROWSER, the
    clipboard opener and the Tailscale panel's login link launched nothing.

 -- Clay Risser <clayrisser@gmail.com>  Tue, 15 Sep 2026 04:15:00 +0000

omarchy (4.0.3-18) unstable; urgency=medium

  * Build on noble again (BASED-409). debian/gitlab-ci.yml disabled the
    xUbuntu_24.04 repository because omarchy-shell Depends on quickshell,
    which noble has not, and that kept the whole source off noble, omarchy
    with it. The Zorin edition carries the theme engine now, so omarchy has
    to reach based-udev: Build-Depends is debhelper-compat alone, both
    binaries are Architecture: all, and every one of omarchy's own Depends
    resolves on noble (measured in ubuntu:noble), gum and
    fonts-jetbrains-mono-nerd from based-udev. omarchy-shell still will not
    install there and nothing on noble composes it.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 20:10:00 +0100

omarchy (4.0.3-17) unstable; urgency=medium

  * Background templates and a system template layer under /etc (BASED-400).
    omarchy-theme-set-templates draws themed/backgrounds/NAME.svg.tpl from
    the palette into the staged theme's backgrounds/NAME.png with
    rsvg-convert, one more image in every theme's background switcher. The
    user's layer wins over /etc/omarchy/themed, which wins over Omarchy's
    own, and a theme that ships backgrounds/NAME.* keeps it. Omarchy ships no
    background template. librsvg2-bin joins Recommends. New patch 0038.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 17:45:00 +0100

omarchy (4.0.3-16) unstable; urgency=medium

  * Every row that edits a file opens an editor that is installed
    (BASED-373). omarchy-launch-editor fell back to nvim alone, so on a Based
    edition with vim and gnome-text-editor and no nvim, Style > Sway and the
    Screensaver and About Edit Text rows opened a terminal that could not
    start. It now takes the chosen editor, then nvim, then the first
    installed of vim, nano, micro, gnome-text-editor, gedit, kate and
    mousepad, and notifies when there is none. New patch 0037.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 17:30:00 +0100

omarchy (4.0.3-15) unstable; urgency=medium

  * Style > Unlock stays off where desktop-sync owns the boot splash
    (BASED-370). On a Based edition desktop-sync selects the Plymouth theme
    and boot follows the desktop theme through it. Unlock set Omarchy's own
    theme and rebuilt the initramfs, so one pick stopped boot following the
    theme. The row is gated on /etc/desktop-sync and stays on pure Omarchy.
    New patch 0036.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 15:31:46 +0100

omarchy (4.0.3-14) unstable; urgency=medium

  * Style > Menu Bar > Transparency applies on Debian (BASED-373).
    omarchy-bar-text-color parsed hex with gawk's strtonum. Debian's awk is
    mawk, which stops on it, so the script printed no text colour and the
    shell never turned the bar transparent. It reads the digits with index()
    now, and its test runs under every awk it finds. New patch 0026.
  * Style > Screensaver and Style > About work without the per-user copies
    upstream's installer makes (BASED-373). The branding scripts create
    ~/.config/omarchy/branding. Edit Text starts from the image's copy in
    /etc/skel or from Omarchy's own, Restore Default brings back the image's
    copy or drops the override, and the screensaver shows logo.txt while no
    per-user copy exists. New patch 0025.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 07:39:19 +0000

omarchy (4.0.3-13) unstable; urgency=medium

  * Omarchy's menus map to Debian (BASED-370). A system menu extension under
    /etc lets an edition hide rows and whole groups, Update > Channel
    switches between the Based stable and dev apt channels, and Install >
    Flatpak takes the AUR's slot, with the AUR browsers from Flathub. New
    patches 0031, 0032 and 0033.
  * Development installs through asdf where /etc/omarchy/dev-env-backend says
    so, adding plugins only through asdf-plugin-add, and mise activation and
    updates run only under mise, which stays the backend everywhere else.
    New patch 0034.
  * Install rows run what Debian and Flathub carry, and rows neither serves
    leave the menu. Style > Sway, a localsend guard on Share > Receive and
    Install > Service > Stirling PDF join. New patch 0035.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 07:33:05 +0000

omarchy (4.0.3-12) unstable; urgency=medium

  * Square corners reach the shell's sliders, meters and marks (BASED-382).
    With the compositor drawing square corners the shell's panels, menus and
    notifications were square, but panel sliders, the battery and agent
    meters, the open-panel mark, tray menu rows, the multi-select checkbox
    and the media widget kept a pill, circle or 2px radius of their own. They
    follow Style.cornerRadius now. New patch 0030, with
    test/shell.d/square-corners-test.sh.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 06:45:15 +0000

omarchy (4.0.3-11) unstable; urgency=medium

  * Terminal queries never launch a terminal (BASED-368). The shell's menu
    guards and the screensaver ask xdg-terminal-exec --print-id for the
    default terminal, an option trixie's 0.12.3 does not have: it drops the
    option and opens the terminal. A ghostty appeared at every shell start
    and screensaver launch and took the keyboard, and the caller waited on
    it until it closed. Both ask only a version that knows the option now.
    New patch 0019, with test/shell.d/terminal-query-test.sh.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 06:15:33 +0000

omarchy (4.0.3-10) unstable; urgency=medium

  * Dictation installs from the based channel (BASED-369). voxtype is in no
    Debian or Ubuntu suite; Based curates upstream's signed release deb, and
    omarchy-voxtype-install asks apt for wtype and voxtype, not the AUR's
    voxtype-bin. It refreshes apt first, and offline it says dictation needs
    the internet once. The model still downloads only when dictation is
    turned on. The menu's dictation guards name voxtype.
  * The Dictation indicator and omarchy-voxtype-model install voxtype when it
    is missing instead of opening a terminal on "command not found". Install
    and remove reload sway as well as Hyprland, which binds Super + Ctrl + X
    and F9 on sway, and install restarts the shell there too. New patch 0018.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 05:50:36 +0000

omarchy (4.0.3-9) unstable; urgency=medium

  * The shell runs on sway and SwayFX (BASED-218). A Compositor singleton
    picks Hyprland when HYPRLAND_INSTANCE_SIGNATURE is set and sway when
    SWAYSOCK or I3SOCK is, so neither IPC connects in the other's session.
    Workspaces, the focused output, the keyboard layout, idle's screensaver
    tracking and SwayFX's corner radius read Quickshell.I3 or swaymsg;
    popups keep Hyprland's focus grab and nightlight stays Hyprland-only.
  * launch-shell and restart-shell run on sway. New omarchy-compositor,
    omarchy-session-locked, omarchy-focus-app, omarchy-monitor-scaling and
    omarchy-sway-rounding; monitor-state reads swaymsg on sway. New patch
    0017. 0013, 0014 and 0016 unchanged.
  * Brightness keys reach the backlight outside Hyprland (BASED-218). 0015's
    gate made omarchy-hyprland-monitor-focused-apple succeed without a
    Hyprland session, so omarchy-brightness-display sent every key on sway
    to asdcontrol, which found no Apple display and changed nothing. The
    predicate fails there now. 0015 refreshed.

 -- Clay Risser <clayrisser@gmail.com>  Mon, 14 Sep 2026 00:39:43 +0000

omarchy (4.0.3-8) unstable; urgency=medium

  * The lock screen's PAM stacks include Debian's common-auth and
    common-account (BASED-340). omarchy-apply-lock wrote Arch's pam_unix
    stack, which never asks SSSD, so directory users could not unlock, and
    both it and fingerprint setup ended in system-local-login, which Debian
    does not have. New patch 0016.

 -- Clay Risser <clayrisser@gmail.com>  Sun, 13 Sep 2026 23:15:44 +0000

omarchy (4.0.3-7) unstable; urgency=medium

  * Named gate for the remaining hyprctl callers (BASED-219).
    omarchy-on-hyprland is true only with a live Hyprland instance, not
    merely hyprctl on PATH; omarchy-on-sway is the pair. Hyprland-only
    scripts and menu rows stay off without one; launch-or-focus, capture,
    brightness DPMS and the rest twin through swaymsg or skip the call.
    New patch 0015. 0013 and 0014 unchanged.

 -- Clay Risser <clayrisser@gmail.com>  Sun, 13 Sep 2026 16:05:00 +0000

omarchy (4.0.3-6) unstable; urgency=medium

  * omarchy no longer Depends on uwsm (BASED-283). Debian ships uwsm only in
    trixie-backports, so 4.0.3-5 would not install on an image without that
    suite: in a clean trixie with based-ddev, apt reported "omarchy Depends
    uwsm but none of the choices are installable". omarchy-shell still
    Depends on it, and the uwsm-app callers belong to that session.

 -- Clay Risser <clayrisser@gmail.com>  Sat, 12 Sep 2026 23:53:36 +0000

omarchy (4.0.3-5) unstable; urgency=medium

  * Theme set leaves the GTK theme and icon theme to desktop-sync where it
    is installed (BASED-283). With /etc/desktop-sync present only
    color-scheme is written; without it every gsettings call is upstream's.
    New patch 0013.
  * sway and SwayFX in the theme engine (BASED-283): sway.conf, swayfx.conf,
    waybar.css and swaylock.conf templates, a corners key for SwayFX's corner
    radius, and omarchy-restart-sway. Theme set stops calling hyprctl outside
    Hyprland and the shell's IPC while no shell runs. New patch 0014.
  * Depends on the commands the scripts run unconditionally (BASED-283):
    libgtk-3-bin for gtk-launch, rfkill, iw, file, v4l-utils, ddcutil, tmux,
    libvips-tools and uwsm; omarchy-shell on libxkbcommon-tools. ddcutil and
    tmux move up from Suggests.

 -- Clay Risser <clayrisser@gmail.com>  Sat, 12 Sep 2026 23:15:26 +0000

omarchy (4.0.3-4) unstable; urgency=medium

  * About's theme line prints through printf instead of echo -e
    (BASED-264). fastfetch runs its command modules with /bin/sh, which
    is dash on Debian, and dash's echo prints the -e as text: About read
    "-e Tokyo Night". New patch 0012; the colour escapes are unchanged.

 -- Clay Risser <clayrisser@gmail.com>  Sat, 12 Sep 2026 20:49:25 +0000

omarchy (4.0.3-3) unstable; urgency=medium

  * The four etc/sudoers.d grants are installed, and they name %sudo
    instead of %wheel, which Debian has no group for (BASED-266). Until
    now they only rode along under /usr/share/omarchy/etc, so omarchy-
    theme-set-browser-policy, the DNS toggle and the timezone setter all
    fell through to pkexec and a password prompt on every theme switch
    from the menu. Mode 0440, as sudo requires.

 -- Clay Risser <clayrisser@gmail.com>  Sat, 12 Sep 2026 18:25:57 +0000

omarchy (4.0.3-2) unstable; urgency=medium

  * Two QML identifiers Qt 6.8 reserves (BASED-249). trixie's Qt is
    6.8.2, whose QML/JS parser treats transient and byte as reserved
    words, so plugins/notifications/Service.qml did not parse at all and
    nothing owned org.freedesktop.Notifications — every notification on
    the edition was lost. plugins/panels/network/Model.js had the same
    problem one file behind it. Renamed to isTransient and byteValue;
    the freedesktop hint name notification.hints["transient"] is
    untouched, since a reserved word is still legal as a bracketed
    member name. Verified with qmllint 6.8.2: both files error before
    the patch and are clean after.

 -- Clay Risser <clayrisser@gmail.com>  Sat, 12 Sep 2026 05:00:09 +0000

omarchy (4.0.3-1) unstable; urgency=medium

  * Initial release (BASED-218). Omarchy v4.0.3, the quattro line, as a
    tracked soft fork: upstream's history on the upstream branch, GitHub's
    tag archive as the orig tarball, patches only where Arch leaks through.
  * Two binaries. omarchy is the tree at /usr/share/omarchy (bin, default,
    config, themes, migrations, applications, install, the etc drop-ins as
    data) with every script in /usr/bin and OMARCHY_PATH exported through
    /etc/profile.d and the uwsm env.d upstream ships. omarchy-shell is the
    Quickshell shell tree, its launcher and restart script, the SDDM theme
    and greeter config, the Wayland session and the plymouth theme.
  * The Arch-leak series maps the package primitives (omarchy-pkg-*) and the
    menu's package guards onto dpkg and apt, the update pipeline onto
    apt-get, version and channel onto dpkg-query and the apt sources, and
    turns the limine, snapper, mkinitcpio, archinstall and AUR callers into
    a one-line notice that exits cleanly. Nothing else changes; the rest of
    the tree is byte-identical to the tag.
  * Not activated here, by design: /etc/skel seeding, the etc drop-ins
    (sysctl, logind, sddm.conf.d, sudoers.d, ...), os-release, mimeapps and
    the systemd user units. Those are the image overlay's, the Debian twin
    of upstream's omarchy-settings package.

 -- Clay Risser <clayrisser@gmail.com>  Fri, 11 Sep 2026 22:30:00 +0000
