feat: add native Omarchy 4 controls and notification feedback#16
feat: add native Omarchy 4 controls and notification feedback#16k8rito01 wants to merge 7 commits into
Conversation
Add backend-neutral available/saved views, expandable actions and keyboard navigation for Wi-Fi while preserving NetworkManager on Omarchy 4 and the legacy iwd path. Enrich Bluetooth through one BlueZ ObjectManager snapshot with device type, signal, battery, reconnect and forget actions. Co-Authored-By: Codex <noreply@openai.com>
Monitor the default PipeWire source only while the volume panel is open, apply a conservative noise floor with smooth decay, use a backend-neutral wpctl/pamixer mute path, and emit a synchronous microphone state notification after successful toggles. Co-Authored-By: Codex <noreply@openai.com>
Make Quickshell the notification server, retain a bounded local history, debounce cache writes, throttle sounds and filter event streams from the app mixer. Add a bounded/coalescing toast queue with actionable timing, status OSD semantics and microphone state icons, rendered through the center pill. Co-Authored-By: Codex <noreply@openai.com>
Replace nested flyouts with one compact Control Center for Omarchy actions, bar appearance, widget visibility/compact modes and pickers. Embed a reusable searchable Omarchy menu view while keeping actions delegated to the installed Omarchy command surface. Co-Authored-By: Codex <noreply@openai.com>
Use Quickshell.Bluetooth for adapter and device state, consume the installed Omarchy 4 menu JSONC, dispatch its actions through Hyprland's Lua contract, and document replacement-shell ownership. Co-Authored-By: Codex <noreply@openai.com>
BluetoothPanel now uses Quickshell.Bluetooth directly, leaving the ObjectManager snapshot helper unused. Co-Authored-By: Codex <noreply@openai.com>
NetworkPanel: header comment describing the runtime backend split (NetworkManager via NetworkManagerAdapter on Omarchy 4 vs iwd/iwctl legacy, selected by root.useNM/nmAdapterReady), the shared action shape, the argv safety note and the rfkill-vs-adapter radio toggle. BluetoothPanel: header for the Quickshell.Bluetooth native model (what it replaces), plus comments on activateDevice's connect/pair/disconnect flow and syncBusyState's event-driven completion tracking (onDevicesChanged, no callbacks). Comments only; no behavior change. qmllint clean, git diff --check clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Thanks for the work in this PR. For V1, I am only considering three scoped parts: expanded Wi-Fi management, native Bluetooth management, and microphone metering/mute feedback. I do not plan to adopt the Dynamic Island/notification-server, Control Center, Omarchy menu, or other bundled changes into V1. Before those three parts can be adopted, I found the following points: Wi-Fi
Bluetooth
Microphone
I recommend splitting these into three independently reviewable commits or PRs, with runtime checks on Omarchy 3.8/iwd and Omarchy quattro/NetworkManager. The remaining PR features are out of scope for V1. |
|
Superseded by three independent PRs, split according to the maintainer review and each rebased on the latest main:
Each replacement PR contains one focused commit and only its relevant files. Closing this combined PR so every feature can be reviewed, runtime-tested, merged, or reverted independently. |
Summary
Quickshell.Bluetoothomarchy-menu.jsoncOmarchy 4 scope
Rise remains a replacement-shell configuration, not an
omarchy-shellplugin. The PR uses Omarchy 4's native NetworkManager, Bluetooth and PipeWire contracts and dispatches menu actions throughhl.dsp.exec_cmd, but it deliberately does not claim that two complete notification-owning shells can run simultaneously. The README documents that boundary and leaves plugin-mode integration as future work.Safety and behavior
Validation
qmllintpasses for every changed panel/component (Theme.qmlandshell.qmlretain the same silent exit 255 produced by the base branch with localqmllint 1.0).git diff --checkpasses.tests/qs-arch-update-regression.shpasses.tests/qs-theme-update-regression.shpasses.tests/qs-shell-update-regression.shpasses.Authored by Lito with implementation contributions co-authored by Codex.