chore(sync): land leftover #18 commits without the PTL hop - #24
Merged
Merged
Conversation
Size it from leftover workspace gaps so it refits per monitor, and let omarchy_qconsole_ratio change the width.
The scratchpad spanned the whole screen whatever was on it, which reads as a band rather than a console when it holds the single agent it is usually opened for. It now sizes to a centered panel twice as wide as it is tall, and hands the full width back as soon as a second app is on the scratchpad: two windows splitting a half-width column is worse than the band this replaced. The panel is still drawn with workspace gaps rather than a window rule, because Hyprland resolves a rule's size once as the window maps and the console has to survive a rescale. It is always flush with the top and always centered, so two numbers describe it, and the memo that suppresses no-op rewrites compares those rather than four edges. The window count is read on window.open and window.destroy, the two events that run after the workspace's count has settled; window.close and window.move_to_workspace both still count the window on its way out, so refitting from either reads one too many and strands the console at full width. The count is only chased while the console is on screen, since a hidden one is refitted on its way in by workspace.special_active, and every window opened anywhere on the desktop would otherwise rewrite the rule. Monitor width and height are the panel's own pixels, so an output turned on its side still reports them the way the panel is built rather than the way it hangs. The odd transforms are the quarter turns and those swap the work area: without that a rotated 1920x1080 sized its console from 1920x1080 instead of 1080x1920 and left a 214x1367 sliver. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: Codex XHigh <noreply@openai.com>
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
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
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
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 Co-authored-by: Mark Groves <mark-groves@users.noreply.github.com>
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>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Why
Draft #18 still carries the Panther Lake kernel hop and a
1789095456.shthat would collide with the mise PATH fix already on quattro from #23. This branch cherry-picks only the leftover unique commits onto current quattro.Fork-only Cursor decisions stay as they are. The official-tarball Agent, vendor updates, usage panel, glyph U+E90D, Cloud Agent env, Claude wait-then-kill, and the no-Cursor-theming rule are unchanged.
Scope
In:
omarchy-update-pacmansystemd-run--scope, plus the failure prompt, channel-set resume trap, and conflict-test stubsetc/udev/rules.d/60-omarchy-io-scheduler.ruleskyber on whole disksdefault/hypr/qconsole.lua,box = 2) and the tiled-window refitSetRefreshFunctionre-centernpm:cfwrapper andmigrations/1789310715.shcom.onepassword.OnePasswordomacom/omarchyURL rewrites.github/CODEOWNERSOut:
linux-omarchy-ptl-novrr-mm1789095456.shfrom Merge upstream quattro (PTL kernel, kyber, pacman scope, qconsole, Cloudflare CLI) #18Tradeoffs
One leftover PR instead of five narrow ones, because this replaces a single stale sync vehicle.
Blast Radius
Update, channel switch, qconsole, Plymouth passphrase layout, disk I/O scheduler at next boot, 1Password window rules, and clone/release URLs. Kernel package selection and the mise PATH migration are untouched. Safer than merging #18 as-is.
Verification
Focused tests passed in the leftover worktree with
OMARCHY_PATHpointed at that tree.test/shell.d/update-pacman-test.shtest/shell.d/update-file-conflict-test.shtest/shell.d/update-package-conflict-test.shtest/shell.d/channel-test.shtest/shell.d/hyprland-qconsole-test.shtest/shell.d/mise-install-test.shtest/shell.d/default-agent-test.sh./test/climigrations/1789095456.shstill starts with the mise PATH fix.bin/omarchy-theme-set-vscodestill says this fork does not theme Cursor.install/user/mise.shhasnpm:cfand no Cursor wrapper.Visual check of qconsole and Plymouth was not done. This session has no compositor.