Omarchy goes Quickshell#5856
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates Omarchy’s desktop UI stack from Waybar + Mako to a Quickshell-based “omarchy-shell” (bar + notifications + menu + settings), including a Noctalia plugin compatibility layer and updated CLI/install/migration flows to match.
Changes:
- Replace Waybar + Mako with
omarchy-shell(Quickshell): new shell IPC, bar widgets, settings panel, and notification integration. - Add a Noctalia plugin compat shim (
qs.*modules +pluginApi) so many upstream Noctalia widgets can load without modification. - Remove legacy Waybar/Mako configs and migrations; update toggles, first-run notifications, and various scripts to refresh the new shell.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
Reviewed changes
Copilot reviewed 157 out of 216 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/omarchy-cli-test.sh | Update CLI help expectation for toggle routes |
| migrations/1778743515.sh | Migrate running system from Waybar/Mako to omarchy-shell |
| migrations/1778539119.sh | Remove obsolete Waybar refresh migration |
| migrations/1778405462.sh | Stop creating mako toggle file (Walker only) |
| migrations/1778171768.sh | Remove Hypr autostart cleanup for swayosd-server |
| migrations/1778139028.sh | Remove obsolete Waybar weather widget migration |
| migrations/1778008689.sh | Remove obsolete Foot window rules migration |
| migrations/1777620904.sh | Remove obsolete cliamp TUI binding migration |
| migrations/1777578316.sh | Remove obsolete Waybar screencording rename migration |
| migrations/1777464602.sh | Remove obsolete Waybar screenrecord cmd migration |
| migrations/1777017528.sh | Remove obsolete Waybar battery right-click migration |
| migrations/1776781957.sh | Remove obsolete VRR monitor tweak migration |
| migrations/1776434586.sh | Drop obsolete Obsidian binding edits migration |
| migrations/1776410469.sh | Remove obsolete Hypr toggles sourcing migration |
| migrations/1775241210.sh | Stop restarting Waybar from voxtype migration |
| migrations/1775208227.sh | Remove obsolete Waybar network tooltip migration |
| migrations/1773506226.sh | Add migration to enable Voxtype GPU when Vulkan exists |
| migrations/1772293693.sh | Remove obsolete layout config migration |
| migrations/1771847961.sh | Remove obsolete tmux binding migration |
| migrations/1771602647.sh | Remove obsolete Waybar notification indicator migration |
| migrations/1771602477.sh | Remove obsolete Waybar idle indicator migration |
| migrations/1770375655.sh | Remove obsolete browser binding migration |
| migrations/1770159912.sh | Remove obsolete NVIDIA env migration |
| migrations/1769543550.sh | Remove obsolete nautilus CWD binding migration |
| migrations/1768270644.sh | Remove obsolete Waybar headset icon migration |
| migrations/1767716691.sh | Remove obsolete Waybar headphone icon migration |
| migrations/1767685679.sh | Remove obsolete Waybar voxtype widget migration |
| migrations/1767227973.sh | Remove obsolete Waybar wiremix launcher migration |
| migrations/1764067068.sh | Remove obsolete Waybar bluetooth off icon migration |
| migrations/1763653692.sh | Remove obsolete Waybar dock icon migration |
| migrations/1763634099.sh | Remove obsolete Waybar bluetooth icon migration |
| migrations/1763560161.sh | Remove obsolete Waybar no-controller migration |
| migrations/1763409505.sh | Remove obsolete Waybar 10th workspace migration |
| migrations/1763386443.sh | Remove obsolete terminal app-id / Waybar edits migration |
| migrations/1762417304.sh | Remove Waybar bluetooth launcher edit from bluetui migration |
| migrations/1762121828.sh | Remove Waybar edits from terminal/uwsm migration |
| migrations/1761269603.sh | Remove obsolete Waybar right-click terminal migration |
| migrations/1760787158.sh | Remove obsolete Waybar styles refresh migration |
| migrations/1760693222.sh | Remove obsolete Waybar tz right-click migration |
| migrations/1758019332.sh | Remove obsolete terminal/editor binding tweak migration |
| migrations/1757877852.sh | Remove obsolete launch-or-focus binding migration |
| migrations/1757877123.sh | Remove obsolete Obsidian IME binding migration |
| migrations/1757866485.sh | Remove obsolete private browser binding migration |
| migrations/1757511571.sh | Remove obsolete Waybar screen recording indicator migration |
| migrations/1757279511.sh | Remove obsolete Waybar locale format migration |
| migrations/1755870033.sh | Remove obsolete terminal CWD arg migration |
| migrations/1755507891.sh | Remove obsolete Hypr bindings browser/webapp rewrites migration |
| migrations/1754389057.sh | Remove obsolete hyprland.conf reorg migration |
| migrations/1754331529.sh | Remove obsolete Waybar menu refresh migration |
| migrations/1754228071.sh | Remove obsolete Waybar update icon migration |
| migrations/1753495989.sh | Stop refreshing Waybar when adding tzupdate |
| migrations/1752896442.sh | Stop refreshing Waybar when switching to wiremix |
| migrations/1752793122.sh | Remove obsolete Waybar config rename migration |
| migrations/1752725616.sh | Stop refreshing Waybar during blueberry removal |
| migrations/1751887718.sh | Stop refreshing Waybar during impala install |
| install/packaging/fonts.sh | Update comment to reflect shell bar usage |
| install/omarchy-base.packages | Drop mako and waybar from base package set |
| install/first-run/wifi.sh | Make first-run notifications clickable actions |
| install/first-run/welcome.sh | Add action button to keybindings notification |
| install/first-run/install-voxtype.hook | Make voxtype install notification actionable |
| install/config/toggles.sh | Stop creating mako toggle file |
| install/config/theme.sh | Remove mako theme symlink setup |
| default/themed/mako.ini.tpl | Remove mako theme template |
| default/themed/image-picker-colors.json.tpl | Add theme template for image picker colors |
| default/quickshell/omarchy-shell/Widgets/qmldir | Declare Widgets module exports |
| default/quickshell/omarchy-shell/Widgets/NToggle.qml | Add Noctalia-compatible toggle widget |
| default/quickshell/omarchy-shell/Widgets/NTextInput.qml | Add themed text input widget |
| default/quickshell/omarchy-shell/Widgets/NText.qml | Add Noctalia-compatible text shim |
| default/quickshell/omarchy-shell/Widgets/NTabButton.qml | Add tab button widget |
| default/quickshell/omarchy-shell/Widgets/NTabBar.qml | Add tab bar container widget |
| default/quickshell/omarchy-shell/Widgets/NSpinBox.qml | Add spinbox widget shim |
| default/quickshell/omarchy-shell/Widgets/NSlider.qml | Add slider widget shim |
| default/quickshell/omarchy-shell/Widgets/NScrollText.qml | Add scrolling text widget shim |
| default/quickshell/omarchy-shell/Widgets/NPopupContextMenu.qml | Add context menu shim for plugins |
| default/quickshell/omarchy-shell/Widgets/NIconButton.qml | Add icon button widget shim + tooltip hookup |
| default/quickshell/omarchy-shell/Widgets/NIcon.qml | Add icon widget shim |
| default/quickshell/omarchy-shell/Widgets/NDivider.qml | Add divider widget |
| default/quickshell/omarchy-shell/Widgets/NComboBox.qml | Add combobox shim w/ currentKey bridge |
| default/quickshell/omarchy-shell/Widgets/NCheckbox.qml | Add checkbox shim |
| default/quickshell/omarchy-shell/Widgets/NButton.qml | Add button shim |
| default/quickshell/omarchy-shell/Widgets/NBox.qml | Add box/container shim |
| default/quickshell/omarchy-shell/ui/settings/DynamicSettingsForm.qml | Add schema-driven settings form component |
| default/quickshell/omarchy-shell/shell-defaults.json | Add default shell config (bar layout etc.) |
| default/quickshell/omarchy-shell/Services/UI/TooltipService.qml | Add TooltipService compat singleton |
| default/quickshell/omarchy-shell/Services/UI/qmldir | Export UI service singletons |
| default/quickshell/omarchy-shell/Services/UI/PanelService.qml | Add PanelService compat singleton |
| default/quickshell/omarchy-shell/Services/UI/BarService.qml | Add BarService compat singleton |
| default/quickshell/omarchy-shell/Services/System/qmldir | Export system service singleton |
| default/quickshell/omarchy-shell/Services/System/HostService.qml | Add HostService compat singleton (os-release parsing) |
| default/quickshell/omarchy-shell/Services/Power/qmldir | Export power service singleton |
| default/quickshell/omarchy-shell/Services/Power/PowerProfileService.qml | Add PowerProfileService compat stub |
| default/quickshell/omarchy-shell/services/BarWidgetRegistry.qml | Add shared widget registry instance for plugins |
| default/quickshell/omarchy-shell/scripts/weather.sh | Add bar-friendly weather JSON helper |
| default/quickshell/omarchy-shell/scripts/indicators/screen-recording.sh | Add screen recording indicator helper |
| default/quickshell/omarchy-shell/scripts/indicators/notification-silencing.sh | Switch indicator to shell IPC DND state |
| default/quickshell/omarchy-shell/scripts/indicators/idle.sh | Add idle indicator helper |
| default/quickshell/omarchy-shell/plugins/settings/manifest.json | Add settings panel plugin manifest |
| default/quickshell/omarchy-shell/plugins/settings/components/NDropdown.qml | Add themed dropdown for settings UI |
| default/quickshell/omarchy-shell/plugins/README.md | Document first-party plugins + invocation |
| default/quickshell/omarchy-shell/plugins/notifications/manifest.json | Add notifications service plugin manifest |
| default/quickshell/omarchy-shell/plugins/menu/manifest.json | Add menu plugin manifest + summon IPC |
| default/quickshell/omarchy-shell/plugins/image-picker/manifest.json | Add image picker overlay plugin manifest |
| default/quickshell/omarchy-shell/plugins/image-picker/ImagePicker.qml | Convert selector to summonable plugin + new IPC |
| default/quickshell/omarchy-shell/plugins/bar/widgets/spacer.qml | Add spacer widget |
| default/quickshell/omarchy-shell/plugins/bar/widgets/microphone.qml | Add microphone widget (Pipewire) |
| default/quickshell/omarchy-shell/plugins/bar/widgets/lockKeys.qml | Add caps/num/scroll lock indicator widget |
| default/quickshell/omarchy-shell/plugins/bar/widgets/keyboardLayout.qml | Add keyboard layout widget (Hyprland) |
| default/quickshell/omarchy-shell/plugins/bar/widgets/idleInhibitor.qml | Add idle inhibitor widget |
| default/quickshell/omarchy-shell/plugins/bar/widgets/calendar.qml | Add calendar widget with popup month view |
| default/quickshell/omarchy-shell/plugins/bar/widgets/activeWindow.qml | Add active window title widget |
| default/quickshell/omarchy-shell/plugins/bar/manifest.json | Add bar plugin manifest |
| default/quickshell/omarchy-shell/plugins/bar/common/WidgetButton.qml | Add common clickable widget button |
| default/quickshell/omarchy-shell/plugins/bar/common/Slider.qml | Add custom slider component |
| default/quickshell/omarchy-shell/plugins/bar/common/PopupCard.qml | Add anchored popup window component |
| default/quickshell/omarchy-shell/plugins/bar/common/PillButton.qml | Add pill button component |
| default/quickshell/omarchy-shell/compat/noctalia/README.md | Document Noctalia compat surface and limits |
| default/quickshell/omarchy-shell/compat/noctalia/PluginApiFactory.qml | Add pluginApi factory for Noctalia plugins |
| default/quickshell/omarchy-shell/compat/noctalia/PanelWrapper.qml | Host Noctalia panels as anchored popups |
| default/quickshell/omarchy-shell/Commons/Time.qml | Add Time compat singleton |
| default/quickshell/omarchy-shell/Commons/ThemeIcons.qml | Add ThemeIcons stub singleton |
| default/quickshell/omarchy-shell/Commons/Style.qml | Add Style token compat singleton |
| default/quickshell/omarchy-shell/Commons/ShellState.qml | Add ShellState stub singleton |
| default/quickshell/omarchy-shell/Commons/Settings.qml | Add Settings compat singleton mapping shell.json |
| default/quickshell/omarchy-shell/Commons/qmldir | Export Commons singletons |
| default/quickshell/omarchy-shell/Commons/Logger.qml | Add Logger compat singleton |
| default/quickshell/omarchy-shell/Commons/Icons.qml | Add Icons map for common Tabler names |
| default/quickshell/omarchy-shell/Commons/I18n.qml | Add I18n stub singleton |
| default/quickshell/omarchy-shell/Commons/Color.qml | Add Color palette compat singleton + theme watchers |
| default/omarchy-skill/SKILL.md | Update docs from Waybar/Mako to omarchy-shell |
| default/mako/core.ini | Remove mako core config |
| default/hypr/autostart.lua | Autostart omarchy-shell instead of Waybar/Mako |
| default/hypr/apps/walker.lua | Ensure walker layer has no animation |
| default/hypr/apps/system.lua | Convert legacy window rules to hl.window_rule calls |
| default/hypr/apps/omarchy-shell.lua | Add shell-specific layer/window rules |
| default/hypr/apps/hyprshot.lua | Ensure hyprshot selection layer has no animation |
| config/waybar/style.css | Remove legacy Waybar style |
| config/waybar/config.jsonc | Remove legacy Waybar config |
| config/omarchy/extensions/omarchy-menu.jsonc | Add JSONC-based menu extension mechanism |
| config/omarchy/extensions/menu.sh | Remove legacy bash-based menu extension stub |
| config/omarchy/bar.json | Add placeholder bar config file |
| config/hypr/bindings.lua | Rewrite bindings to hl.bind + new menu/shell commands |
| bin/omarchy-windows-vm | Tag notification with app name for routing |
| bin/omarchy-voxtype-status | Stream status as JSON, safer process cleanup |
| bin/omarchy-voxtype-model | Restart shell after model changes |
| bin/omarchy-voxtype-install | Restart shell + tag ready notification |
| bin/omarchy-voxtype-config | Remove outdated Waybar-specific comment |
| bin/omarchy-update-available-reset | Switch update refresh from Waybar signal to shell IPC |
| bin/omarchy-tz-select | Stop restarting Waybar after tz change |
| bin/omarchy-toggle-waybar | Remove Waybar toggle command |
| bin/omarchy-toggle-notification-silencing | Toggle DND via shell IPC + refresh indicators |
| bin/omarchy-toggle-nightlight | Remove Waybar-specific restart logic; tag notifications |
| bin/omarchy-toggle-idle | Refresh indicators via shell IPC; tag notifications |
| bin/omarchy-toggle-bar | Add new bar visibility toggle (shell-friendly) |
| bin/omarchy-toggle | Tag toggle notifications with app name |
| bin/omarchy-theme-set | Stop restarting Waybar/Mako during theme set |
| bin/omarchy-theme-list-with-previews | Add helper to list themes with preview paths |
| bin/omarchy-style-waybar-position | Remove Waybar position styling command |
| bin/omarchy-style-corners-walker | Simplify walker corner toggles file write |
| bin/omarchy-style-corners-quickshell | Add corner radius toggle for shell UI |
| bin/omarchy-style-corners-mako | Remove mako corner styling command |
| bin/omarchy-style-corners | Update corner styling to include Quickshell instead of Mako |
| bin/omarchy-style-bar-position | Add bar position styling via shell.json |
| bin/omarchy-shell-ipc | Add canonical IPC wrapper that can start the shell |
| bin/omarchy-restart-waybar | Remove Waybar restart command |
| bin/omarchy-restart-shell | Add shell restart command |
| bin/omarchy-restart-mako | Remove mako reload command |
| bin/omarchy-remove-service-sunshine | Silence ufw delete noise |
| bin/omarchy-reminder-set-interactive | Add interactive reminder prompt command |
| bin/omarchy-refresh-waybar | Remove Waybar refresh command |
| bin/omarchy-refresh-shell | Add shell.json refresh (remove user override) |
| bin/omarchy-refresh-config | Use $OMARCHY_PATH for default config location |
| bin/omarchy-notification-send | Switch glyph handling to hints + tag app for DND rules |
| bin/omarchy-notification-dismiss | Dismiss notifications via shell IPC |
| bin/omarchy-menu-images | Switch selector transport to shell IPC + base64 args |
| bin/omarchy-launch-settings | Add launcher for settings panel via summon IPC |
| bin/omarchy-launch-screensaver | Tag notification with app name |
| bin/omarchy-launch-config-editor | Add helper to toast + open config file |
| bin/omarchy-install-service-sunshine | Silence ufw allow output |
| bin/omarchy-install-font | Add font install + switch helper |
| bin/omarchy-install-app | Add app install helper |
| bin/omarchy-install-and-launch | Add install-then-launch helper |
| bin/omarchy-hyprland-workspace-layout-toggle | Tag notification with app name |
| bin/omarchy-hyprland-toggle | Tag notifications with app name |
| bin/omarchy-hyprland-monitor-scaling-set | Add explicit monitor scaling setter + persistence |
| bin/omarchy-hyprland-monitor-scaling-cycle | Delegate scaling change to setter |
| bin/omarchy-font-set | Remove Waybar edits; use fontconfig as source of truth |
| bin/omarchy-font-current | Read font from fontconfig instead of Waybar CSS |
| bin/omarchy-default-terminal | Tag notification with app name |
| bin/omarchy-default-editor | Tag notification with app name |
| bin/omarchy-default-browser | Tag notification with app name |
| bin/omarchy-capture-text-extraction | Tag notification with app name |
| bin/omarchy-capture-screenshot | Tag notifications + use image-path hint for action |
| bin/omarchy-capture-screenrecording-with-webcam | Add webcam picker wrapper for recording |
| bin/omarchy-capture-screenrecording | Refresh shell indicators instead of Waybar signal |
| bin/omarchy | Remove mako command group description |
| AGENTS.md | Update contributor guidance for omarchy-shell + IPC contract |
Comments suppressed due to low confidence (1)
default/quickshell/omarchy-shell/plugins/image-picker/ImagePicker.qml:544
- The image delegate is created by a
Repeaterover the fullimageArray, so settingsourceunconditionally will attempt to load/decode every thumbnail even when the delegate is notnearby/visible. Combined withasynchronous: false, this can easily freeze the UI or spike memory/IO for large image directories (wallpaper/theme pickers). Consider restoring gating (e.g., only setsourcewhennearby/selected), or switch to a view type that only instantiates visible delegates (ListView/GridView), keeping async decoding enabled if possible.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Can we add privacy/permission indicators to dock too? |
|
quick heads-up cuz i read "noctalia" in some commits: noctalia is moving away from quickshell, so adding any compat is pointless i assume. |
CustomCommandModule.update() in Bar.qml called root.parseModuleJson(raw) but the function was removed in 3b97006 (the indicator split). Any custom command module emitting waybar-style JSON would have crashed on first poll. Hoist the helper into Util so both call sites — the bar's custom command module and BarIndicator.extractData — share one definition.
LockView hardcoded font.family to "monospace" in two places, ignoring the user's OMARCHY_MENU_FONT / fontconfig choice that every other summoned surface (menu, launcher, polkit, emojis, clipboard) respects. Bind to Style.font.family so a font change via omarchy-font-set or fontconfig propagates to the lock screen too.
Six widgets (clock, daytime, keyboardLayout, lockKeys, activeWindow, media) shipped identical copies of `function setting(name, fallback)`. Eight widgets reimplemented `readonly property bool vertical`, and three reimplemented `readonly property int barSize`. Move all three onto the BarWidget base so widgets read the same wiring everyone else gets for free. While in here, drop the dead `setting()` declaration on media.qml — it was defined but never called.
Matches the BarWidget extraction in the previous commit. The weather panel was the only panel reimplementing the helper inline; future panels with inline settings get it for free.
Five sites hardcoded "#cacccc" or "JetBrainsMono Nerd Font" as the fallback when no bar context was available. Those magic strings are the *current* palette defaults — they diverge silently when the theme changes. Bind to the Color / Style singletons so the fallback tracks whatever the theme says the foreground / monospace family should be. Color.qml itself keeps the literal "#cacccc" — that's the seed value the singleton is bootstrapped with before the theme loads.
Five plugins (menu, launcher, clipboard, emojis, polkit) each looked up OMARCHY_MENU_FONT with the same env-or-monospace fallback. Hoist the resolution into Style so plugins read one source of truth, and so the fallback follows the real fontconfig family Style already tracks instead of the literal string "monospace".
ModuleButton was a near-duplicate of WidgetButton with the same text / active / keepSpace / tooltip / fontSize / fixedWidth / fixedHeight / pressed signal surface, only differing in that it closed over the enclosing root via QML's scoping rules instead of taking `bar` as a property. Switch CustomCommandModule onto WidgetButton with `bar: root` so we have one bar button component to maintain.
OSD reimplemented clamp() inline when Util already has one. PanelSlider's knob-scale binding read `mouseArea.containsMouse` directly instead of going through a `_hot` like the other interactive controls (TextField, NumberField, Dropdown). Mirror them so future style work has a single property to override.
TextField, NumberField, Dropdown, SearchableDropdown, and Toggle all painted their background, border color, and border width with the same three-line ternary ladder (`_focused ? focusFill : _hot ? hoverFill : normalFill`). Five components × three properties × three branches is a lot of room for one of them to drift from the others when a new state ever gets added. Add controlFill / controlBorder / controlBorderWidth on Style and rewrite each call site as a single binding. No visual change.
Clock and daytime were near-duplicates with different click semantics (clock toggles between formats on left-click and opens the timezone selector on right-click; daytime was non-pressable with a hover tooltip). Standardize on clock, since it's the more capable of the two. - Delete widgets/daytime.qml and its FirstPartyWidgets entry. - Migrate shell-defaults.json, shell.qml's builtin fallback, Bar.qml's fallback bar config, and the settings panel's builtin defaults so the center anchor and center-section entry both reference "clock". - Rename the daytimeSettings form to clockSettings and rephrase "Tooltip format" → "Alternate format (click to toggle)" so the field label matches clock's actual behavior. - Update the gallery dropdown options and bar/README docs.
Set the default formatAlt to "dd MMMM 'W'ww yyyy" (was "dd MMMM yyyy") in shell-defaults.json, the bundled settings-panel defaults, and the form placeholder text — clock's own widget fallback already used this spec but the shipped config overrode it. Qt.formatDateTime doesn't recognize `ww` and renders it literally (`20 May Www 2026`), so add an `isoWeek` helper to clock.qml that pre-substitutes `ww` with a Qt-quoted literal of the ISO 8601 week number before handing the format off to Qt. Users get `20 May W21 2026` without anyone needing to know about the substitution.
Sit notifications closer to the top and right edges than the default gapsOut. The bar-height clearance still applies to the top — only the free gap portion is halved.
The Hyprland gaps_out value (10px out of the box) reads well as a window-to-window gap but felt cavernous when used as the screen-edge margin for panels and notifications. Halve it at the source — panels that anchor via PopupCard.margin, the launcher / clipboard / emojis / polkit / menu / settings card-width clamps, and the notification popup margins all read Style.gapsOut, so one tweak moves them in lockstep. Revert the per-call /2 in the notifications service, since Style.gapsOut now already encodes the smaller value.
| color13 = "#CE5D97" | ||
| color14 = "#3AA99F" | ||
| color15 = "#CECDC3" | ||
| bg = "#FFFCF0" |
There was a problem hiding this comment.
What I noticed now, after it was merged, is that, these already exists:
bg (background), selection (selection_background), fg (foreground). I'll look into a PR to align these.
Especially not on the notifications or lock screen
Download the current page's video with yt-dlp via Alt+Shift+D or a click on the toolbar icon. A native-messaging host runs the download, shows live progress on the Quickshell OSD, and posts a clickable "Download complete" toast that opens the file in mpv. - Extension: pinned key for a stable id, green download-video icon, keyboard command + toolbar action (reads the active tab URL). - Native host (omarchy-chromium-ytdlp-host): verifies the URL with yt-dlp --simulate (else "No video found"), streams progress to the OSD (time-throttled to ~4/s), saves to ~/Videos, opens mpv on click. - Installer (omarchy-install-chromium-ytdlp) writes the native-messaging manifest into installed Chromium/Chrome/Brave/Edge profiles; wired into browser install and chromium refresh, with a migration for existing users. - omarchy-osd: add -d/--duration so the OSD can persist during a download. - Add yt-dlp to base packages, load the extension via --load-extension, and document the Alt+Shift+D binding. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dimmed overlay with the dashboard's Music + New Music artwork grids. Arrow/hjkl nav, 1-0/A/B instant launch, Enter/click; opens albums in the Apple Music PWA via the local listener on :9111, no browser. album-picker-refresh caches slot data + artwork from the dashboard API (~/.cache/albums), runs on every summon and daily at 6:40 after album rotation; the picker live-reloads when the cache changes. Comments mark the Omarchy 4 port path: wrap the QML as an omarchy-shell menu plugin (basecamp/omarchy#5856) and drop the standalone daemon. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
It seems as though creating a noctalia compatibility layer as @abenz1267 mentioned will be somewhat "wasted effort" because as announced here, Noctalia is moving away from Quickshell unfortunately. |

All the way.