Conversation
| function isMullvadPeer(peer) { | ||
| var hostName = String((peer && peer.HostName) || "").toLowerCase() | ||
| var dnsName = cleanDnsName((peer && peer.DNSName) || "").toLowerCase() | ||
| return dnsName.indexOf(".mullvad.ts.net") !== -1 || hostName.indexOf(".mullvad.ts.net") !== -1 |
| function isMullvadPeer(peer) { | ||
| var hostName = String((peer && peer.HostName) || "").toLowerCase() | ||
| var dnsName = cleanDnsName((peer && peer.DNSName) || "").toLowerCase() | ||
| return dnsName.indexOf(".mullvad.ts.net") !== -1 || hostName.indexOf(".mullvad.ts.net") !== -1 |
| var country = sliceTableColumn(line, countryStart, cityStart) | ||
| var city = sliceTableColumn(line, cityStart, statusStart) | ||
| var status = sliceTableColumn(line, statusStart, -1) | ||
| if (host.indexOf(".mullvad.ts.net") === -1) continue |
|
Great work!!! SUPER + ALT + [ / ] Can we have a different key to / as in german / swiss keyboards, this is available via shift. So it would be SUPER+ALT+SHIFT+7. Usually having / and \ are not working keyboard shortcuts and need manual fixing. |
|
BTW: I can suggest alternatives and provide an MR if we're open to this change incl. past shortcuts... |
|
I just YOLO'd my 3.8... Workin like a boss. Nothing but what was expecting and a few pleasant surprises. Much appreciation to all of ya'll who made this happen! |
|
Running Quattro as my daily driver (upgraded an existing install, large 4K display (LG 48GQ900-B 48” OLED) at scale 1). The unified text-size knob is a great idea, but it hard-links three surfaces that don't always want to move together, and there's no way to express "just the shell" for example. Concrete case: I wanted the shell components (bar, menus, notifications) larger. Moving the display-panel slider did that, but it also:
There's also a small legibility trap in the mapping: because of the 12px→9pt anchor, the number you pick is never the number that lands in your terminal — e.g. the slider stop labeled "16" writes 12pt into terminal configs. The three legs are already independently settable underneath ([font] base-size in ~/.config/omarchy/shell.toml, gsettings, terminal configs), so I got what I wanted manually. But that means the knob is unusable for anyone tuning per-surface, one touch of the slider re-links everything. Proposal: scope flags on omarchy-display-text-size, something like --shell, --gtk, --terminals, defaulting to all three so the one-knob behavior is unchanged. The panel slider keeps calling it with no flags. Happy to submit this as a follow-up PR if there's interest. |
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell configured through shell.json, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, waybar becomes a shell.json carrying only the clock format and Berkeley Mono, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run omarchy-upgrade-to-quattro, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, and reload Hyprland. Quattro is still alpha, so re-verify the hook names and shell.json schema against upstream first. Tested: chezmoi execute-template renders input/monitors for every dpi/mousedpi branch and luac -p passes on all of them plus bindings.lua and looknfeel.lua; shell.json validates; chezmoi status shows the expected adds/deletes. NOT TESTED on a real Quattro install. The monitor-relative floating window size in looknfeel.lua needs checking against hl.window_rule serialization on a live system. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-fable-5
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" alias, so Berkeley Mono now lives in ~/.config/fontconfig/fonts.conf, the file `omarchy font set` owns and the shell, Qt apps, and everything resolving "monospace" read. Berkeley Mono has no Nerd glyphs, so fonts.conf adds a Nerd Font to the monospace fallback to keep bar and TUI icons rendering; upstream needs no such entry because its monospace alias is itself a Nerd Font. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. xmllint validates fonts.conf, and fc-match against the rendered fonts.conf resolves monospace to Berkeley Mono Variable and falls back to an installed Nerd Font (JetBrainsMono/Caskaydia) for glyphs Berkeley lacks. chezmoi status shows the expected fontconfig modify plus the hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating window size in looknfeel.lua still needs checking against hl.window_rule serialization on a live system. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-4.8
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" fontconfig alias. Berkeley Mono is installed out of band (it's paid, so unlike my other fonts it isn't committed here), and the alias is set with `omarchy font set "Berkeley Mono Variable"`, which rewrites ~/.config/fontconfig/fonts.conf from the current package default. I don't manage that file in chezmoi for the same reason I dropped shell.json: omarchy owns and rewrites it, so a committed copy would both fork an upstream file that still gains fixes (the recent Arabic Naskh fallback) and fight the next `omarchy font set`. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, run `omarchy font set "Berkeley Mono Variable"` to point the monospace alias (and thus the bar) at Berkeley Mono, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. Confirmed against upstream Style.qml that the bar's font.family binds to the "monospace" alias (so shell.json's fontFamily was dead) and that `omarchy font set` is what writes fonts.conf. chezmoi status shows only the expected hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating window size in looknfeel.lua still needs checking against hl.window_rule serialization on a live system. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-4.8
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" fontconfig alias. Berkeley Mono is installed out of band (it's paid, so unlike my other fonts it isn't committed here), and the alias is set with `omarchy font set "Berkeley Mono Variable"`, which rewrites ~/.config/fontconfig/fonts.conf from the current package default. I don't manage that file in chezmoi for the same reason I dropped shell.json: omarchy owns and rewrites it, so a committed copy would both fork an upstream file that still gains fixes (the recent Arabic Naskh fallback) and fight the next `omarchy font set`. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, run `omarchy font set "Berkeley Mono Variable"` to point the monospace alias (and thus the bar) at Berkeley Mono, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. Confirmed against upstream Style.qml that the bar's font.family binds to the "monospace" alias (so shell.json's fontFamily was dead) and that `omarchy font set` is what writes fonts.conf. chezmoi status shows only the expected hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating window size in looknfeel.lua still needs checking against hl.window_rule serialization on a live system. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-4.8
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" fontconfig alias. Berkeley Mono is installed out of band (it's paid, so unlike my other fonts it isn't committed here), and the alias is set with `omarchy font set "Berkeley Mono Variable"`, which rewrites ~/.config/fontconfig/fonts.conf from the current package default. I don't manage that file in chezmoi for the same reason I dropped shell.json: omarchy owns and rewrites it, so a committed copy would both fork an upstream file that still gains fixes (the recent Arabic Naskh fallback) and fight the next `omarchy font set`. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, run `omarchy font set "Berkeley Mono Variable"` to point the monospace alias (and thus the bar) at Berkeley Mono, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. Confirmed against upstream Style.qml that the bar's font.family binds to the "monospace" alias (so shell.json's fontFamily was dead) and that `omarchy font set` is what writes fonts.conf. chezmoi status shows only the expected hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating window size in looknfeel.lua still needs checking against hl.window_rule serialization on a live system. Re-checked the overlay against upstream quattro at f4e8470c3a1b: the theme-set and post-update hook dirs, the themed template renderer's legacy colorN aliases, the `o.bind` dispatcher tables, `o.window`, and the floating-window tag all still behave as this patch assumes, and the state dir the symlinks point at is unchanged. The uwsm/default override survives too: quattro moved the file into the package, but /usr/share/uwsm/env.d/10-omarchy still sources ~/.config/uwsm/default, and the upgrade keeps hash-mismatched user copies active, so EDITOR stays helix. Worth knowing for upgrade day: the upgrade's always-copy list rewrites all four hypr .lua files with quattro skeletons, which is why chezmoi apply has to run after the upgrade rather than before. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-4.8 Assisted-by: Claude:claude-opus-5
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" fontconfig alias. Berkeley Mono is installed out of band (it's paid, so unlike my other fonts it isn't committed here), and the alias is set with `omarchy font set "Berkeley Mono Variable"`, which rewrites ~/.config/fontconfig/fonts.conf from the current package default. I don't manage that file in chezmoi for the same reason I dropped shell.json: omarchy owns and rewrites it, so a committed copy would both fork an upstream file that still gains fixes (the recent Arabic Naskh fallback) and fight the next `omarchy font set`. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, run `omarchy font set "Berkeley Mono Variable"` to point the monospace alias (and thus the bar) at Berkeley Mono, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. Confirmed against upstream Style.qml that the bar's font.family binds to the "monospace" alias (so shell.json's fontFamily was dead) and that `omarchy font set` is what writes fonts.conf. chezmoi status shows only the expected hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating size in looknfeel.lua is now verified on Hyprland 0.56.0: a probe window took 1654x1016 on a 3008x1692 logical monitor, so monitor_w/monitor_h resolve against logical and not physical pixels, which is what makes 55%/60% right on a retina display. The percentage form (size 55% 60%) is not a substitute: hyprctl accepts it and then silently ignores it, leaving the app's own default. What remains unproven is only the Lua table to rule-string serialization, and upstream ships that same shape in webcam-overlay.lua. Re-checked the overlay against upstream quattro at f4e8470c3a1b: the theme-set and post-update hook dirs, the themed template renderer's legacy colorN aliases, the `o.bind` dispatcher tables, `o.window`, and the floating-window tag all still behave as this patch assumes, and the state dir the symlinks point at is unchanged. The uwsm/default override survives too: quattro moved the file into the package, but /usr/share/uwsm/env.d/10-omarchy still sources ~/.config/uwsm/default, and the upgrade keeps hash-mismatched user copies active, so EDITOR stays helix. Worth knowing for upgrade day: the upgrade's always-copy list rewrites all four hypr .lua files with quattro skeletons, which is why chezmoi apply has to run after the upgrade rather than before. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-4.8 Assisted-by: Claude:claude-opus-5
Quattro (Omarchy 4) breaks every hook this repo has into Omarchy: the git checkout at ~/.local/share/omarchy becomes a pacman-owned symlink, Hyprland config converts from .conf to Lua, Waybar is replaced by a Quickshell shell, and generated theme state moves from ~/.config/omarchy/current to ~/.local/state/omarchy/current. This patch rewrites the overlays quattro-native. The theme-set and update-perform script overrides shrink to two hooks (zellij retint on theme-set, rustup/cargo on post-update) because user themed templates, helix restarts, cwd-aware terminal launches, mise updates, and persistent workspaces 1-5 are now stock. The hypr .conf files become Lua unbind/rebind overrides, and the theme symlinks plus alacritty/ghostty imports re-point at the new state dir. My themed/*.tpl files survive untouched since upstream kept legacy colorN aliases. The Quickshell bar carries no user config. shell.json's clock keys are gone (upstream's stock layout and ISO-week clock are fine), and its fontFamily key never fed the bar anyway: the bar binds font.family to the "monospace" fontconfig alias. Berkeley Mono is installed out of band (it's paid, so unlike my other fonts it isn't committed here), and the alias is set with `omarchy font set "Berkeley Mono Variable"`, which rewrites ~/.config/fontconfig/fonts.conf from the current package default. I don't manage that file in chezmoi for the same reason I dropped shell.json: omarchy owns and rewrites it, so a committed copy would both fork an upstream file that still gains fixes (the recent Arabic Naskh fallback) and fight the next `omarchy font set`. Do NOT merge or apply this on a machine still running Omarchy 3.x; it deletes the .conf and waybar files the live session reads. Upgrade day: run the quattro upgrade, reboot, merge this bookmark, then chezmoi apply (accepting the .chezmoiremove deletions), re-run omarchy-theme-set, run `omarchy font set "Berkeley Mono Variable"` to point the monospace alias (and thus the bar) at Berkeley Mono, and reload Hyprland. Quattro is still alpha, so re-verify the hook names against upstream first. Tested: chezmoi execute-template plus luac -p pass on bindings.lua, looknfeel.lua, and input.lua/monitors.lua rendered across every mousedpi (high/mid/low) and dpi (retina/mid/low) branch. Confirmed against upstream Style.qml that the bar's font.family binds to the "monospace" alias (so shell.json's fontFamily was dead) and that `omarchy font set` is what writes fonts.conf. chezmoi status shows only the expected hypr .conf->.lua swaps. NOT TESTED on a real Quattro install. The monitor-relative floating size in looknfeel.lua is now verified on Hyprland 0.56.0: a probe window took 1654x1016 on a 3008x1692 logical monitor, so monitor_w/monitor_h resolve against logical and not physical pixels, which is what makes 55%/60% right on a retina display. The percentage form (size 55% 60%) is not a substitute: hyprctl accepts it and then silently ignores it, leaving the app's own default. What remains unproven is only the Lua table to rule-string serialization, and upstream ships that same shape in webcam-overlay.lua. Re-checked the overlay against upstream quattro at f4e8470c3a1b: the theme-set and post-update hook dirs, the themed template renderer's legacy colorN aliases, the `o.bind` dispatcher tables, `o.window`, and the floating-window tag all still behave as this patch assumes, and the state dir the symlinks point at is unchanged. The uwsm/default override survives too: quattro moved the file into the package, but /usr/share/uwsm/env.d/10-omarchy still sources ~/.config/uwsm/default, and the upgrade keeps hash-mismatched user copies active, so EDITOR stays helix. Worth knowing for upgrade day: the upgrade's always-copy list rewrites all four hypr .lua files with quattro skeletons, which is why chezmoi apply has to run after the upgrade rather than before. Ref: omacom/omarchy#6231 Assisted-by: Claude:claude-opus-5
Omarchy 4 "Quattro" (PR omacom/omarchy#6231) baut seine ganze Shell auf Quickshell um -- also dasselbe Fundament wie hier. Aus der Liste uebernommen, was fuer einen niri-Laptop Sinn ergibt: Zwei Loecher zuerst: * Die Zwischenablage sperrt Passwoerter aus. Wer ein Geheimnis kopiert, haengt dem Angebot `x-kde-passwordManagerHint` an; der Wachhund fragt die Typen ab und schweigt dann. Vorher lag jedes kopierte Passwort im Klartext in clipboard.json -- dauerhaft, waehrend es in der echten Ablage nach Sekunden verfaellt. * Rechteabfragen: polkitd fragt niemanden, es erwartet einen Agenten in der Sitzung. Unter niri bringt ihn keiner mit, und man merkt es erst, wenn ein Programm scheinbar wortlos scheitert. `nbshell polkit [on]` schaltet einen vorhandenen ein, `switch on` nimmt ihn mit, `install.sh` warnt, `setup.sh` holt hyprpolkitagent. Der Starter ist jetzt zugleich Befehlspalette (Services/Commands.qml): Mod+Space sucht in Anwendungen UND in allem, was die Shell kann; ">" nur Befehle (Mod+Shift+Space), "!" nur Anwendungen. Was sich nicht zurueckdrehen laesst, fragt nach -- in einer Suchpalette liegt der Feierabend sonst einen Tippfehler entfernt. Eigene Eintraege in commands.json, dazu `nbshell befehle|befehl|find`. Ausserdem: * Benachrichtigungen ueberleben den Neustart der Shell -- den macht jedes install.sh. Der Eintrag ist eine flache Kopie; gesucht wird ueber `key` aus Zeit und id, weil der Server nach einem Neustart wieder bei 1 anfaengt. * Jede Anwendung startet in ihrem eigenen systemd-Scope, damit systemd-oomd den Uebeltaeter holt und nicht die Sitzung. * Rechtsklick auf die Uhr wechselt das Format (auch Kalenderwoche, 12 Stunden); isoWeek wandert dafuer in den Kalenderdienst. * Klick ohne Ziehen heisst "ganzer Bildschirm" im Aufnahme-Regionswaehler. * Das Mausrad auf der Lautstaerke rechnet mit angleDelta: Rad 5 %, Touchpad 1 %. * `nbshell plugin add|update|remove` holt fremde Bar-Widgets aus git -- flach geklont, geprueft, dann erst verschoben, und mit der Warnung davor, dass ein Plugin QML IN der Shell ist. * `nbshell text <n>` bewegt Shell, GTK und Terminal zusammen. Das Terminal rechnet in Punkt: das Verhaeltnis wird einmal gemessen statt stumpf umgerechnet, GTK rastet auf eine ganze Punktgroesse ein. * install.sh holt die Leiste per trap zurueck, wenn es zwischen "gestoppt" und "gestartet" abbricht -- etwa an einem SIGPIPE, weil die Ausgabe nach head ging. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Wow, it looks amazing! I can't wait to update my Omarchy! |
|
Looks cool, LGTM! 🚀 |
|
Would it be possible to release Quattro as a standalone package so that I can use it on other Linux distributions? I have my own favorite Linux distribution, but would luv to use Quattro. |
No. Everything is tightly integrated. |
|
I tested the remote-desktop approach on Omarchy Quattro with an AMD Radeon 780M. The existing |
The battery service ran `powerprofilesctl get` every two seconds to keep the active profile visible to the wallpaper and lock services. That command is a PyGObject script, so the shell spawned a Python interpreter for it tens of thousands of times a day. Roughly once a day one of those exits into a CPython 3.14 finalization race (python/cpython#124619): the GLib D-Bus worker thread calls PyGILState_Ensure after the interpreter is torn down and the process dies with SIGSEGV, leaving a core dump and a crash notification behind. Read the ActiveProfile property straight from power-profiles-daemon with busctl, the same way omarchy-powerprofiles-set already reads UPower. The output is JSON, so an empty or malformed reply when the daemon is not running still reads as no active profile, matching the previous behaviour. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gbfh4Mi9dK6SAd1P2xMTi
The theme laid out the logo, password entry and progress bar once, when the script first ran. Plymouth sizes its window to the largest display present, so a monitor that comes up after plymouthd starts (a Thunderbolt display whose DisplayPort tunnel is established about a second after the kernel's display driver loads, a dock, an MST hub) got the prompt drawn at the internal panel's coordinates: off-center on the external display and partly off-screen on the panel. With the lid closed the passphrase box was effectively invisible. Move the layout into a function and re-run it from the refresh callback whenever Window.GetWidth/GetHeight change, which is how Plymouth's script plugin exposes a display being added or removed. Existing bullets are repositioned too. Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Upgrading systemd runs its post_upgrade scriptlet mid-transaction, which reexecs both the system manager and every user manager. When pacman runs inside a user-session scope (the floating update terminal), that reexec can SIGKILL it and abandon the transaction halfway, with packages upgraded but none of the post-transaction hooks run. Route every Omarchy-owned system mutation through a new hidden omarchy-update-pacman helper that registers the transaction as a PID 1 scope via systemd-run, keeping it out of the user manager's cgroups. System scopes survive the system manager's own reexec, and as a bonus the transaction now also survives its terminal window closing. On unbooted systems (the installer chroot) the helper runs pacman directly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The floating-terminal presentation wrapper showed the green "Done!" prompt for every exit code except Ctrl-C, so a failed update or channel switch closed looking like a success. Pass the command's exit code through to omarchy-show-done and render a red "Failed (exit code N)!" prompt when it is non-zero. The pkg install/remove pickers get the same treatment. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
omarchy-channel-set runs under set -e, so a failure after it has begun mutating the system (dev link, pacman channel, packages) died silently with the switch half-applied. Trap ERR once the mutation phase starts and say how to pick the switch back up. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The update conflict tests stub sudo and pacman, but omarchy-update-pacman now puts systemd-run between them, so on a systemd-booted host the tests would reach for the real system manager. Stub systemd-run to drop the wrapper's options and run the command, and cover the helper's own invocation composition in a new test. Raised by codex review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015zcqENR1UbhuwC1v5u3Wop
…down Shield pacman transactions from desktop session teardown
The kernel leaves NVMe on none and everything else on mq-deadline. Neither bounds latency once the device queue fills, so a large build, copy, or package upgrade can make the desktop sluggish while reads wait behind a wall of writes. Kyber keeps separate read and sync-write queues and throttles the depth it submits to hit a 2ms read target, which keeps interactive reads flowing under heavy writes at negligible CPU cost. The trade is a small ceiling on peak throughput on very fast devices, which matters for a storage server chasing IOPS but not for a desktop. Ships as a package-owned udev rule in /etc so it applies at boot and on hot-plug. Existing installs pick it up at the next boot. zram is left alone since it has nothing to schedule. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
udev patterns are shell globs, so nvme[0-9]*n[0-9]* also matched every partition. Partitions have no queue/scheduler, and udev logged a "Could not chase sysfs attribute" for each one at boot. Restrict the match to SUBSYSTEM block with DEVTYPE disk, which also keeps mmcblk boot areas and NVMe multipath nodes out. Reword the comment: kyber targets a read latency rather than bounding it, and the kernel's default choice depends on the device rather than being a fixed NVMe versus everything-else split. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A floating window on the console is not laid out by the gaps, so it no longer stretches the panel to full width. Moving an app onto or off the scratchpad and toggling floating now refit too, via window.move_to_workspace and window.update_rules; both were measured on Hyprland 0.56.2 to carry the settled count. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012UyVoFTM98Tduoxg7qZax7
Center the Quake console in a 2:1 panel instead of spanning the screen.
Fix typo in manual
Use the kyber I/O scheduler on real disks
1Password 8.12 changed its app id from "1Password" to "com.onepassword.OnePassword" (its .desktop file now declares that as StartupWMClass). Our window rule only matched the old name, so the main window came up tiled and lost the no_screen_share protection. Match both forms so older installs keep working. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSFKDatumRZHB8zqk5CP5C
Match 1Password's new window class so it floats again
The repo moved to the omacom org. GitHub redirects the old URLs, but `omarchy channel set dev` was still cloning from basecamp/omarchy, which left every dev checkout with a stale origin remote that confuses gh (pr create fails with "No commits between omacom:quattro and basecamp:<branch>"). Update the clone URL, the quattro upgrade tarball, the update-confirm release link, the systemd Documentation link, and the manual. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSFKDatumRZHB8zqk5CP5C
Add Cloudflare CLI lazy wrapper
Point GitHub URLs at omacom/omarchy instead of basecamp/omarchy
No branch on the repo is protected and there are no rulesets, so the file never enforced owner review. Its only effect was auto-requesting a review from the other owner on every PR, which nobody acted on. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Remove CODEOWNERS
Poll the active power profile over D-Bus instead of powerprofilesctl
Migrate Panther Lake systems to the Omarchy PTL kernel
Migrate to linux-omarchy except on T2 Macs
Omarchy Quattro: Release Candidate
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 by first
Update > Omarchy, thenUpdate > Channel > RC, thenUpdate > Omarchy to Quattro. Just remember toUpdate > Channel > Stableafter the final release!Or install it fresh on a secondary machine using the ISO: https://iso.omarchy.org/omarchy-4.0.0.rc4-2.iso
Always take a backup of important data!
Headline Features
Setup > Reset Computer) from new Quattro installs for safe resale/gifting of your machine.Super + Space).The Shell
Setup > Menu Barin the Omarchy menu)omarchy plugin add <git-url>, and managed fromSetup > Plugins(add, clone, enable, disable, remove) by @ryanrhughes and @dhhSUPER + SPACEsearches apps and commands from one surfaceSUPER + ALT + SPACESUPER + SHIFT + ALT + ,brings back the last ten notifications exactly as they were shown, including the ones do-not-disturb silenced — and popups on screen survive shell restarts (like the one every update performs), so critical alerts always make it across by @ryanrhughes and @dhhSUPER + CTRL + V)SUPER + CTRL + E) replacing Walker pickerSUPER + CTRL + A), Bluetooth (SUPER + CTRL + B), Network (SUPER + CTRL + W), Display (SUPER + CTRL + D), and Power (SUPER + CTRL + P) replacing bluetui, impala by @dhh and @ryanrhughes~/.config/omarchy/extensions/omarchy-menu.jsonc) by @ryanrhughes and @dhhSUPER + CTRL + 1through9, counted left to right — rearranging the section or adding a widget renumbers them with no binding to rewrite by @dhhTheming & Aesthetics
SUPER + SHIFT + CTRL + SPACE) by @dhhSUPER + CTRL + SPACE) by @dhh~/.config/omarchy/shell.tomlas a machine-level override merged over the active theme, so a personal font, spacing, or bar tweak survives theme switching — and it's watched, so edits re-flow the shell liveomarchy display text size: one knob, 9–20px, that moves the shell font, GTK's text-scaling-factor, and the terminal point size in lockstep, with a notched slider in the display panelApps & Defaults
SUPER + SHIFT + W) by @dhhSUPER + CTRL + Q) by @dhhSetup > Defaults > Agent, then launch it withSUPER + SHIFT + CTRL + Aor theaterminal alias — lazy-installed on first use, opened as its ownorg.omarchy.agentapp, and started in~/Workwhen summoned from home so trust actually sticks by @dhhAlt + Shift + D) by @dhhInstall > AI, dropping the web app from the defaults so the launcher can't show two identical entries by @dhhfindof the whole home directory in a terminal by @dhhCapture
SUPER + ALT + [ / ]) by @dhh (on request from @jasonfried)RETURNcaptures the highlighted window,CTRL + RETURNthe whole display, andTABand the arrow keys move the selection through the workspace's windows by @jzimdars and @dhhotpauth://setup code on screen no longer needs a phone. The decoded value never touches disk and is marked sensitive, so clipboard history skips it by @dhh and @WondertanControls
o.bind("SUPER + SHIFT + W", "Omawrite", { launch = "omawrite" })) by @ryanrhughesSUPER + ALT + HOME/SUPER + HOMEby @dhhhdl/hds/hdlm/hsldevelopment-layout helpers by @dhhSUPER + ALT + K) and new-pane/split bindings for tmux, kitty, ghostty, and alacritty by @ryanrhughes, @vtmx, @heymaikol, and @dhhSUPER + CTRL + RETURNand its keybindings viewer withSUPER + CTRL + K, mirroring the tmux pair — plus tmux's tab moves, zoom flag, hostname in the window title, and hidden outer pane frame carried over by @dhhNetworking/Connections
System & Upgrade
/etc, so updates flow through pacman by @ryanrhughesomarchy update(bypassable viaOMARCHY_ALLOW_DIRECT_PACMAN=1) by @ryanrhughesomarchy updateon current releases instead of waiting out the release cooldown by @dhhpre-refresh-pacman.dhooks for custom repository support by @tyvsmithTrigger > Speed Test, sharing the live dial interface with the network test by @dhhSetup > Reset Computer: swap the running root for a fresh clone of the@factorysnapshot the ISO takes at install time, scrub machine identity, accounts, and fingerprint enrollments, and hand the machine back in that untouched first-boot state. A machine with no factory snapshot is turned away with an explanation rather than given a partial wipe by @dhhdiagnose-crashskill that covers symbolizing the backtrace and — only with your agreement, and after a duplicate search — reporting a confirmed Omarchy bug upstream by @dhhpaccache -rk2as the first step of an update, before the snapshot so the space is actually reclaimed, and keeping one spare version so the offline downgrade path survives by @dhhFixes
fipand friends misparsing under zsh by @pkwagnerpipefail, rerun the T2 defaults migration they skipped, and choose the gmux display backlight instead of the Touch Bar on T2 Macs/booton encrypted installs, fixing direct-boot setup and stale-UKI cleanupeflag, an unescaped VS Code theme name, unvalidated keyboard RGB), and drop the unconstrained tzupdate sudoers grant that let any wheel user write a root-owned symlink anywhere by @KazeTachinuu\uescapes instead of characters by @dhh~, which cost btop, Helix, and VS Code their theme while the migration reported success by @shrijit37--helpbeing ignored for commands that resolve with arguments left over, likeomarchy update aur --helpby @EFrMG and @dhhThanks also to @AksharP5, @artfwo, @dalmasluca, @DataDave-Dev, @DiegoMirner, @flavorjones, @franciscoaccabral, @GebaRoanoke, @glafeara, @grantwiley, @heyssh, @JustMrMendez, @kevinmcconnell, @lukehsiao, @lukewalker2010, @markbus-ai, @meirdick, @monorkin, @richardlences, @RushiChaganti, @s-gato, @setiapam, @Vtorrealba, and @vivek7405 for fixes and polish to the new Quattro features during the beta itself.
Feature 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 and the menu, together
Walker is gone, and
SUPER + SPACEnow opens the Omarchy menu itself: a native, filterable command palette living inside the shell. Once the menu could search its own nested entries, there was no reason to keep two palettes with two shortcuts around — so one box now finds your apps and every Omarchy command, with instant response, and it's extensible through a JSONC file if you want to add your own entries.The app-launching side lost nothing in the merge: 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. And when you want a launcher scoped to just your apps,
SUPER + ALT + SPACEopens exactly that.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, Wi-Fi QR sharing, 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 putandomarchy bar move, and third-party widgets install straight from git withomarchy plugin add.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.
Pick your coding agent
Omarchy no longer picks a coding agent for you — it asks. Choose Claude Code, Codex, OpenCode, Pi, Oh My Pi, Gemini, Grok, Copilot, or Crush under Setup > Defaults > Agent, and it's lazy-installed the first time you use it. From then on,
SUPER + SHIFT + CTRL + A(or justain any terminal) summons your agent in its own window, started in~/Workso trust actually sticks. The model-usage bar widget keeps an eye on your Claude and Codex spend, and when a process crashes, one click on the toast briefs your agent on the core dump for a diagnosis.The new default apps
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.It's joined by Omacut, a dead-simple video trimmer. 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.
Omacalc completes the trio: a dead-simple calculator replacing GNOME Calculator, on
SUPER + CTRL + Q.And the defaults have been refreshed elsewhere too: Foot is the new default terminal, Tensaku replaces Satty for image annotation, Moonlight ships for Sunshine game/desktop streaming, and dua handles disk usage.
Install it for someone else
An install can now finish with no user at all. Deferred first-boot provisioning means you can set up a machine — for a family member, a colleague, a whole classroom — and hand it over untouched. On the first boot, the owner picks their keyboard, account, hostname, and timezone behind the same logo, progress bar, and rotating tips the ISO installer uses. On an encrypted disk, the LUKS volume is re-keyed from the throwaway install passphrase to the owner's password, all-or-nothing.
And when the machine comes back,
Setup > Reset Computerhands it over again: the running root is swapped for a fresh clone of the@factorysnapshot the ISO takes at install time, with machine identity, accounts, and fingerprint enrollments scrubbed — back to that untouched first-boot state.This PR description is up to date as of
144f4d1e; next time, review commits after this one.