Repository navigation
Sync upstream quattro through #18951 - #133
Merged
Merged
Conversation
* Show an OEM's branding and agreement in first-boot setup An OEM that prepares machines with the Omarchy ISO had no way to put its name on first-boot setup or to have the owner accept its terms. The ISO can now leave a bundle in /etc/omarchy/oem (omarchy-iso-make --oem-config in omarchy-iso), and install/provisioning/oem.sh reads it for omarchy-provision-owner: the OEM's logo, tagline and colour stand in for Omarchy's on the greeter, and under that logo again its agreement is the last question, asked after the review and before anything is created, so a machine whose owner declines is still as it left the factory. The steps of the form between the two stay under Omarchy's logo. The agreement is one screen: the text in a frame that scrolls, with gum confirm's question and buttons under it. gum has no widget that scrolls text above a question, so oem.sh draws this one and reads its keys itself. bash's read turns the console's signals back on, so Ctrl+C arrives there as SIGINT; it is trapped for as long as the agreement's screens are up and answered as the form's usual signal status. Declining offers to shut down with going back in focus. Accepting records the OEM, the text's hash, the account and the time in /var/lib/omarchy/oem/eula-accepted.json. A logo may be drawn in braille dots, which Terminus has none of. console-font.py takes the logo and the text shown with it and draws the patterns the logo uses into glyphs neither needs, and setup sets that font while a branded screen is up and the form's own again after it. The screen is cleared before either change, since the console draws what is on it from whichever font is set, and a console that cannot be given the dots shows Omarchy's logo. The logo's colour goes in the palette's bright red slot, which setup draws nothing else in, so the buttons and marks keep their own colours whatever the OEM picks. The logo reaches gum after an option terminator, since art may open with dashes. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Co-Authored-By: Codex XHigh <noreply@openai.com> * Stub the agreement in the re-key journal test luks-rekey-journal-test.sh lifts run_setup and run_provisioning out of omarchy-provision-owner and stubs the steps around the re-key. With no stub for the new agreement step, run_setup took the missing eula_form for an owner going back, returned to the keyboard step and came round again for ever, which is the test check running out its 1500 seconds. eula_form is stubbed with the other forms and record_eula with the other account steps. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com> Co-authored-by: Codex XHigh <noreply@openai.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
) * Wait out NetworkManager's passing Limited state on connect Every fresh link is reported as Limited until NetworkManager's first connectivity probe answers, so switching networks flashed the red limited internet access warning in the panel and bar for a moment. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> * Check the Limited wait restarts after a warning has shown Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
* Give themed Slack a profile of its own Slack 4.53 refuses a debugging pipe on its default profile, so the themed launcher's Slack exited before opening a window. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> * Revert "Give themed Slack a profile of its own" This reverts commit 54be7a5. * Remove Slack theme sync Slack 4.53 refuses the debugging pipe the theme launcher starts it with, so themed Slack no longer opens. This reverts omacom#17113 and returns existing installs to Slack's own launcher. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
New installs get an Activity Monitor launcher that opens btop the same way Super + Shift + T does, with a themed icon drawn like btop's own panels. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Set up a first local model entirely in the agents panel The panel's Download and Add another › Local AI no longer open a terminal. A detached setup missing Podman installs it through pkexec, and the panel runs the setup itself, showing an Installing line until the download takes over, the reason if it fails, and the offer again if the password dialog is dismissed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Queue a second local setup and keep Delete off one starting Choosing another model in Add another › Local AI while one setup was still installing Podman did nothing. It now waits on a line of its own and starts once the first hands off to the background; a failed or declined first setup drops it too. Delete on a setup the panel owns no longer offers to delete weights: it forgets a failure, drops one waiting, and leaves the one starting alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Ship Podman and the NVIDIA container toolkit in the install (omacom#18908) * Ship Podman in the base install Local models run in Podman, so a fresh install has it ready instead of asking for a password on the first model setup. It's about 26 MiB on the ISO with crun and its dependencies. Machines installed without it still get it on first setup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Install the NVIDIA container toolkit with the NVIDIA driver Local models reach the GPU through the CDI spec the toolkit writes, so an NVIDIA machine now gets it alongside its driver instead of behind a password prompt on the first model setup. The ISO's offline mirror and the N1x package set carry it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Drop the toolkit comment from the N1x package list Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Stop saying Podman comes on first model setup Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Mark Groves <mark-groves@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
… dock click answers (omacom#18909) * Add Herdr to the app launcher, focusing its window when it's open Herdr now opens under its own app id, org.omarchy.herdr, so the dock matches its window to the launcher, and both the launcher and Super + Ctrl + Return focus the open Herdr window instead of attaching another terminal. The icon is the ram from Herdr's logo, drawn in the theme's colors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add Agent to the app launcher It runs omarchy-agent --pick, like Super + Shift + Ctrl + A, and claims the org.omarchy.agent windows in the dock. The icon is a terminal window with sparks, drawn in the theme's colors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Bring the ChatGPT web app back to the app launcher It opens chatgpt.com like Super + Shift + A, with OpenAI's knot drawn in the theme's colors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Let desktop entries pick how a dock click answers X-Omarchy-Dock-Click=new opens a new window on every click, as Terminal and Agent now ask for, and =workspace brings back a window only from the workspace in front of the user. Quickshell doesn't parse custom keys, so the scan that already read hidden entries reads this one too, and becomes desktop-entries.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw ChatGPT's knot on its own, without a terminal tile It's a web app, not a TUI, so it stands alone like the Browser's globe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Bring a minimized window back before a dock click opens a new one With X-Omarchy-Dock-Click set to new or workspace, a minimized Terminal, Agent or Files window had no way back, since the dock is the only way to restore one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw the Agent icon as the agents panel's robot The same robot-excited mark the agents panel uses, from Material Design Icons, in the theme's colors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Put the Agent robot on a terminal tile, as Herdr's ram Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw Terminal, Herdr and Agent in cliamp's terminal window Every terminal icon now shares one window, 360 by 328 with a 22 radius, as cliamp, disktree and Activity Monitor already did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* End omarchy update when its terminal closes at a prompt * Record the update lock acquiring PID for diagnostics --------- Co-authored-by: Tobi Lutke <tobi@shopify.com>
…#18951) Its display driver binds only once every output's chain has loaded, which happens from the real root, so the screen stayed black at the unlock prompt. Load the panel, USB-C DisplayPort, retimer and HDMI bridge drivers with the IPC router and PD mapper in the initramfs, as for the Aspire 16 AI.
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.
What changes
Upstream
quattromoved past omacom#18831 (6baca275b), which is what #132 merged. Sixteen commits replayed onto current quattro, through6f646bc9d(ASUS Vivobook S 16 unlock prompt, omacom#18951). No merge commits. Nothing skipped. One conflict, in the agents panel. Fork delta vs6f646bc9dis 253 paths, the same set as quattro vs6baca275b. On the 195 paths upstream did not touch, the added and removed lines are unchanged. A three-way merge of the 58 paths both sides changed matches this branch, except the agents panel, resolved below. Face, Grok Bot, Cursor,linux/linux-headers, and the dropped translation-sync workflow stay./etc/omarchy/oem.install/provisioning/oem.shreads it for owner setup: the OEM's logo, tagline, and colour stand in for Omarchy's on the greeter, and again above the agreement, which is the last question, after the review and before anything is created. Declining leaves the machine as it left the factory and offers to shut down, with going back in focus. Accepting records the OEM, the text's hash, the account, and the time in/var/lib/omarchy/oem/eula-accepted.json. The agreement is one screen: the text in a frame that scrolls, with the question and buttons under it.console-font.pydraws the logo's braille patterns into glyphs the screen does not otherwise use, and setup sets that font only while a branded screen is up. A console that cannot be given the dots shows Omarchy's logo. The logo's colour goes in the palette's bright red slot, so the buttons and marks keep their own colours. A colour that is not#RRGGBBis ignored. The re-key journal test stubs the new agreement step so it does not loop.1794642577drops the themed launcher, the theme template, and the sync scripts. Install > Service > Slack, the package, stays.83ED), a system-sleep hook keeps that suspend from waking itself. Setup installs it, and migration1794609353installs it on an existing machine that does not have it yet. Other machines are untouched.linux-omarchynow runs USB4 on that port, and the port's router takes an image of its own. Migration1794594909copies it on a Surface Laptop 8 (microsoft,surface-laptop-8-13p8ormicrosoft,surface-laptop-8-15) whose support package is 1-7 or newer, then rebuilds the boot image and asks for a reboot. An older package leaves the migration pending. A machine whose Windows USB4 driver cannot be read is told how to copy the image later, and the other migrations continue.linuxandlinux-headersstay in the other-packages list beside it. The panel conflict keptshownProviders, so paused collectors and a duplicate unified pool stay hidden, and the new delete path uses that index.org.omarchy.herdr, so the dock matches its window, and the launcher and Super+Ctrl+Return focus the open window instead of attaching another terminal. Agent runsomarchy-agent --pick, like Super+Shift+Ctrl+A, and claimsorg.omarchy.agent. ChatGPT opens chatgpt.com, like Super+Shift+A, with OpenAI's knot on its own.X-Omarchy-Dock-Click=newopens a new window on every click, which Terminal and Agent ask for, and=workspacebrings back a window only from the workspace in front. A minimized window of those apps comes back before a new one opens. The scan that read hidden entries now also reads this key, and isdesktop-entries.sh. Terminal, Herdr, and Agent share cliamp's terminal window; ChatGPT's knot stands alone.omarchy updatekeeps an untrapped shell as the PTY session leader, so a hangup reaches the foreground prompt instead of waiting on the update's signal traps. The logger restores the caller'sSHELLinside that command, so hooks and package builds keep their environment, and the update's exit status is preserved. The update lock records the acquiring PID for the message a second update prints. The flock still decides the hold; a rejected contender leaves that PID in place, and a stale PID does not block the next acquisition. Grok Bot and Cursor still follow AUR and share the update's authorization, and the boot check stays the last sudo-capable step.X2P-42-100) trees are namedkalambo-*and their root names onlyqcom,kalambo. The UKI's tree list and the Glymur display setup for disk unlock now include them.1794526429applies it on an existing Aspire 16 AI.1794695964applies it on an existing Vivobook S 16.agents.helpStartToSeeLimitsand the power-profile menu strings stay out of the catalogs.Verification
2c8d93be0through6f646bc9dapplied onto quattro1141aef53.shell/plugins/agents/Panel.qmlconflicted and was resolved as above.git diff --name-onlyof HEAD vs upstream6f646bc9dis 253 paths, the same set as quattro vs6baca275b. On the paths upstream did not touch, the added and removed line counts match. The 58 paths both sides changed three-way merge to this branch, apart from the agents panel index.linuxandlinux-headersare still in the other-packages list. Face, Grok Bot, and Cursor are still in the menu. The translation-sync workflow is still absent.cursor-agentis still out of the mise tool list. Power profiles still write throughbusctl../test/clipassed (133)../test/shellwas not run as a whole. The files this sync covers passed:agents-panel-test.sh(113, including the in-panel setup, the queue, and a dismissed password),dock-test.sh(48, including new, workspace, and minimized dock clicks),desktop-entries-test.sh(2),i18n-test.sh(401, one structural skip),nvidia-install-packages-test.sh(4),network-captive-portal-test.sh(74),theme-staging-test.sh(8),launcher-remove-test.sh(5),yoga-slim7x-hardware-test.sh(2),hardware-quirks-test.sh(6),snapdragon-hardware-test.sh(3),luks-rekey-journal-test.sh(27).provision-owner-keyboard-test.shpassed (33, one skip) once this machine'skbd-model-maphad agerow bound over it. The host map is 72 lines and has nogerow, so the first run stopped on "the Georgian layout (ge) gets an XKB layout" before the OEM cases. The skip is no readable VT, so the console-font size choice was not built.network-panel-runtime-test.shskipped: no Wayland compositor, so the Limited wait was not drawn.update-hangup-test.shstopped on "close-terminal: gum survived terminal loss". Closing a PTY master in this sandbox leaves both a baregum confirmandscriptrunningsleepalive, so the hangup the test is watching for is not delivered here.update-lock-test.shstopped on "first omarchy-update reached snapshot under lock"./run/user/1000does not exist here, which is where that test puts the lock. The new PID checks sit after that and did not run.Screenshots
No visible change: this checkout has no Omarchy session, so nothing was drawn here. The OEM greeter and agreement, the Wi-Fi warning, the agents panel's Installing line, and the new launcher icons are visible on a machine; the tests above cover the behavior that can run here.