Conversation
Adapt the fix from PR #6161 to Quattro's per-user hardware setup and add coverage for detection, idempotency, and proprietary-driver handling.
Bundling vconsole.conf makes Plymouth apply the user's layout at the LUKS prompt, but for layouts whose letter keys aren't Latin (Hebrew, Greek, Cyrillic, Arabic, ...) that makes the necessarily-Latin passphrase untypeable and locks the user out of their machine. mkinitcpio sources its conf.d drop-ins as shell, so omarchy_hooks.conf now checks XKBLAYOUT at every rebuild and only bundles the file for Latin layouts; non-Latin layouts keep the US fallback the passphrase was set under. A migration strips the unconditional line and rebuilds the UKI on affected installs. Closes #6229. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Hyprland can report a scale set to 3 as something like 3.0000000000000004. The previous directional comparison treated that as above the 3 preset, so Super+Alt+Slash (scale down) would stay at 3 instead of reaching 2. Snap the reported scale to the nearest preset first, then step up/down. Add a regression test for the floating-point case.
Explicit profile selections from the power panel or menu are now saved under an ac/battery key in ~/.local/state/omarchy/powerprofiles and reapplied on boot and on plug/unplug. Only successful, user-made selections are persisted, so the performance/balanced defaults still apply when nothing has been chosen. All entry points key off the same power signal, UPower's OnBattery: the shell reads it natively and omarchy-powerprofiles-set autodetect queries it via busctl. This replaces the sysfs online checks, which disagreed with the shell on desktops without power_supply entries and lagged behind plug events on some USB-C laptops. Plug/unplug switching moves from the udev rule into the shell's battery service, which already receives UPower's debounced state changes, so the udev rule and its settle-sleep workaround are gone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Use tmux to list keybindings * Annotate tmux keybindings * List unannotated bindings too and let the isolated server exit on its own list-keys -aN falls back to the raw command when a binding has no note, so user-added bindings in an existing tmux.conf still show up. Dropping exit-empty off means the throwaway server exits when the client disconnects instead of relying solely on the trap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: David Heinemeier Hansson <david@hey.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Restore the key translation the awk parser used to do (C-M-S-Left → CTRL + ALT + SHIFT + LEFT, PPage → PAGE UP, etc) as a display pass over the tmux list-keys output, along with the PREFIX header line and the COPY MODE table label. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
omarchy-restart-shell now kills by config dir via quickshell kill and relaunches with --no-duplicate, polling kill until every instance is gone since kill returns without waiting and -n silently exits if one remains. The locked-session refusal reads Hyprland monitor state alone, which covers a hung shell holding the lock; the redundant shell IPC probe, availability guards, and omarchy-shell path indirection are gone. Shell IPC calls now time out (2s default, OMARCHY_SHELL_IPC_TIMEOUT to override) so probing an unresponsive shell fails fast instead of hanging the caller. omarchy-hyprland-launch checks dispatch output for "ok" rather than the exit code, which is 0 even on Lua errors, so a failed dispatch falls through to the bash -lc fallback instead of silently launching nothing. The Quattro upgrade cutover delegates to omarchy-restart-shell instead of carrying its own copy of the lock check, pkill, and readiness loop. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The skill still described pre-Quattro .conf files and workflows, sending agents to inactive config files and stale commands. Now covers the Lua config layout, o.bind/hl.unbind/hl.monitor forms, .d hook directories with omarchy hook install, plugin cloning, and corrected command routes. Distilled from #6310. Co-Authored-By: ssupt <149246609+ssupt@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Jon Kinney <jonkinney@gmail.com>
Long passwords used to overflow the input field and clip with no feedback that typing was still registering. Scale the dot size and letter spacing down as the password grows, like macOS, so every keystroke stays visible. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dialogs) (#6317) Set misc:initial_workspace_tracking = 0 so new windows appear on the currently active workspace rather than the one their process was first launched on. Without this, file-picker dialogs drawn by xdg-desktop-portal-gtk (browser Open/Save, GTK app choosers, etc.) always open on the workspace where the portal process started at login (typically workspace 1) instead of following the app that requested them. So a Save dialog triggered from a browser on workspace 2 pops up on workspace 1, out of view. Trade-off: an app launched on one workspace that switches away before its window maps will now open on the new active workspace. In practice the dialog-follows-app behavior is the more intuitive default. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
With initial workspace tracking disabled, windows naturally open on the active workspace. Remove the explicit Hyprland workspace dispatch and let shell actions, shell restarts, and presentation terminals launch directly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* emoji panel: handle CTRL+BACKSPACE to clear filter
* shell: handle CTRL+BACKSPACE to clear filter in all search overlays
* Indentation fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* menu filters: align keyboard editing with Qt standard shortcuts
* menu filters: extract shared filter-editing helpers
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* potential fix for pull request findings
* Only treat filter edit keys as edits when they change the text
Backspace/Ctrl+U on an empty filter no longer calls setFilter(""),
which was resetting the list selection back to the top. This also lets
the menu's empty-filter Backspace fall through to goBack() with any
modifier held, as it did before the Util extraction.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Chromium-based browsers auto-detect their os_crypt backend at launch. On Hyprland the xdg-desktop-portal Secret backend has no provider, so the autodetect can fall back to the 'basic' (v10) store, making previously v11-encrypted cookies and saved passwords undecryptable — the user is silently logged out of everything. Pin gnome-libsecret (the stock omarchy keyring) so the backend is deterministic, matching what we already do for VSCode. Migration covers chromium, brave, chrome, and edge flags confs for existing installs. Co-authored-by: Niklas Tscheppe <ntscheppe@drgt.net> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ports #6092 from master: the video-app opacity opt-out only matched Chrome/Chromium on the default profile, so Brave, Edge, and non-default profiles kept the translucent default-opacity styling. Co-Authored-By: Zeus-Deus <github.commits@widow.cc> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tuned muted, dark_foreground, and lighter_background to the tiers the explicit themes used, which also fixes muted falling back to pure white in the generated terminal configs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brave now publishes brave-origin-bin on AUR, so use it instead of brave-origin-beta-bin. The stable wrapper also parses flags files correctly, so Brave Origin can use the normal chromium flags like the other Chromium-based browsers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The stable Brave Origin's process is named plain "brave" (the wrapper execs /opt/brave-origin-bin/brave), so pgrep -x brave-origin never matches, and pgrep -f brave-origin also matches the installer's own floating terminal - which made omarchy-install-browser launch a headless browser and hang on first install. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The colorset is the Monokai Pro Ristretto palette, so the generated themes keep all the accent colors. Brightened muted to Monokai Pro's actual comment color, since comments sit on that key. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The lock service arms a 5s blank timer whenever the screen locks, and input at the lock screen re-arms it. Closing the lid sprays pointer noise over the lock surface, so the timer was routinely armed right before suspend, froze mid-countdown, and fired moments after resume -- blanking the freshly woken unlock screen under the user. Guard the timer with a wall-clock check: if far more time elapsed than the interval, the countdown slept through a suspend, so take a fresh run-up instead of blanking. This also blanks the lock screen 5s after an untouched resume. Two accomplices made the flash worse and hid the real bug: - The clamshell watcher's 2s poll fired an unconditional global DPMS enable whenever no external monitor was active, relighting any blank within 2 seconds (lock-screen blanking never stuck on undocked laptops) and racing the resume modeset. Recovery now only wakes displays when it actually re-enables one. - Every keystroke at the lock screen dispatched a redundant DPMS enable via omarchy-system-wake, forcing extra modesets in the fragile just-resumed DRM state. Brightness "on" now skips the dispatch when every active display is already lit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixing to screenrecording instead screenrecord that works only when using the alias
Adds shift:both_capslock alongside compose:caps so pressing both Shift keys together toggles real Caps Lock. Caps Lock alone remains the Compose key, and single-Shift behavior is unchanged. Provides an escape hatch when Caps Lock gets stuck on (e.g. after an fcitx5 desync). Closes #5981 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Quattro Alpha
Omarchy 4 aka Quattro is the biggest release since the project started. The entire desktop shell has been reimagined in Quickshell: the bar, launcher, menus, notifications, on-screen displays, control panels, lock screen, and polkit agent now all live inside a single long-running shell process with a plugin architecture. That means Waybar, Walker, Mako, SwayOSD, hyprlock, hypridle, swaybg, and polkit-gnome are all gone, replaced by one coherent, fully-themed, IPC-scriptable shell.
You can upgrade an existing Omarchy installation to Quattro with the following command:
curl -fsSL https://omarchy.org/upgrade-to-quattro-dev | bashThis will put you on the alpha development version. So not something that's recommended for production systems. Ensure you have a good backup first!
Headline Features
The Shell
SUPER + SHIFT + CTRL + arrowsworks too)omarchy plugin add <git-url>(landing disabled for code review first) by @ryanrhughesSUPER + SPACE)SUPER + SHIFT + ALT + ,), do-not-disturb, deduping, and replay of recent history after restartsSUPER + CTRL + V)SUPER + CTRL + E) and native volume/brightness/media OSDsSUPER + CTRL + A), Bluetooth (SUPER + CTRL + B), Network (SUPER + CTRL + W), Display (SUPER + CTRL + D), and Power (SUPER + CTRL + P)~/.config/omarchy/extensions/omarchy-menu.jsonc)Theming & Aesthetics
SUPER + SHIFT + CTRL + SPACE)SUPER + CTRL + SPACE)Apps & Defaults
SUPER + SHIFT + W)Capture
SUPER + ALT + [ / ].RETURNwhile the region picker is open.rsw/lsw/dswcommands.Controls
o.bind("SUPER + SHIFT + W", "Omawrite", { launch = "omawrite" })) by @ryanrhughesSUPER + ALT + HOME/SUPER + HOMESUPER + ALT + K) and new-pane/split bindings for tmux, kitty, ghostty, and alacritty by @ryanrhughes, @vtmx, @heymaikol, and @dhhNetworking/Connections
System & Upgrade
/etc, so updates flow through pacman by @ryanrhughesomarchy update(bypassable viaOMARCHY_ALLOW_DIRECT_PACMAN=1) by @ryanrhughesmupalias to get instant updates) by @dhhpre-refresh-pacman.dhooks for custom repository support by @tyvsmithFixes
fipand friends misparsing under zsh by @pkwagnerCTRL + BACKSPACEby @RushiChagantiFeature presentations
The theme switcher
Switching themes is now a more visual affair: a filterable carousel of live previews for every installed theme, opened with
SUPER + SHIFT + CTRL + SPACEor via Style > Theme. You can see the new bar riding on top too.The background switcher
Backgrounds get the same treatment on
SUPER + CTRL + SPACE: flip through the current theme's backgrounds (plus any you've added) and see exactly what you're picking.The launcher
Walker has been replaced by a native launcher with fuzzy and acronym matching, live icon indexing (freshly-installed apps show up with their icons immediately), and the ability to hide entries you never use. Still on
SUPER + SPACE.The Omarchy menu
The menu is now a native, filterable command palette living inside the shell. Same
SUPER + ALT + SPACEmuscle memory, instant response, and extensible through a JSONC file if you want to add your own entries.Control panels
The bar widgets now open real control panels. Audio (
SUPER + CTRL + A) has output/input device switching and volume control:Network (
SUPER + CTRL + W) shows live throughput, ping, packet loss, a one-click speed test, DNS provider selection, and nearby networks:And weather now has a proper forecast panel, which can be pinned to a chosen location instead of following your IP around:
A bar you can grab
There's no settings panel for the bar — you just grab it. Click and hold any empty stretch of bar and drag it toward a screen edge, and a ghost slab previews where it will dock. Drop it on the left or right and it turns into a vertical bar. Double-click empty bar space to toggle transparency. Widgets are added, removed, and rearranged with
omarchy bar plugin, and third-party widgets install straight from git.Privilege escalation with context
Omarchy now uses pkexec/polkit for privileged operations, with a themed prompt that tells you exactly what command you're authorizing before you type your password.
Omawrite
Typora is out, and Omawrite is in. A dead-simple Markdown writing app that opens in a blink, autosaves as you type, and stays out of the way. Bound to
SUPER + SHIFT + W. Free software.Omacut
A dead-simple video trimmer to go with it. Drop in a clip — like the screen recordings Omarchy takes — drag the handles on the filmstrip, and export the cut with ffmpeg doing the heavy lifting.