Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 2.36 KB

File metadata and controls

51 lines (41 loc) · 2.36 KB

Development

BarWidget.qml owns the bar button and popup. Its two dimension fields share one component. Service.qml owns settings, binding discovery, and compositor requests once per plugin, including when the bar appears on several monitors.

lib/client.lua owns the runtime window rules, event subscriptions, launch guard, and geometry for org.omarchy.cliamp.quake. It sizes the window against its own monitor, including rotation, scaling, and reserved space. Ordinary CLIamp windows use a different app ID.

lib/bindings.lua evaluates the configured Lua bindings with a recording adapter because Hyprland exposes opaque dispatcher IDs. It recognizes CLIamp launch commands and preserves their binding options. The source configuration is not rewritten. scripts/launch_cliamp.sh uses Omarchy's TUI launcher and passes the optional thunder recording when present.

Window changes dispatch immediately. Typed values remain drafts until Enter or focus loss. Settings are saved through Omarchy's updateEntryInline API; the 250 ms save timer does not delay geometry. Empty widget snapshots during reload must not reset saved dimensions.

Cleanup remains embedded in the service so it can run after the checkout has been removed. It distinguishes reloads from disable/removal, restores native bindings, and closes only the managed window, including a pending launch. No external service, setup file, or window rule is installed on disk.

Checks

Validated runtime: Omarchy 4.0.2, Quickshell 0.3.1, Qt 6.11.2, and Hyprland 0.56.2. Use Qt 6 tools from /usr/lib/qt6/bin, not the Qt 5 tools on PATH.

omarchy plugin validate .
shellcheck scripts/*.sh tests/*.sh *.sh
luac -p lib/*.lua tests/*.lua
for test in tests/test_*.sh; do
  bash "$test" || exit
done

tests/test_qml.sh supplies the host imports and runs Qt Quick and Quickshell checks. It needs a Wayland session and OMARCHY_PATH=/usr/share/omarchy. Commands and host interfaces are mocked; it does not change desktop settings. Dynamic host properties and Quickshell's exit-status metadata produce known lint warnings. Imports alone do not establish runtime correctness.

Live checks cover typed and stepped dimensions, alignment, repeated toggles, workspace changes, rotated/scaled monitors, popup dismissal, reloads, and disable/removal. Preserve the user's configuration and keep interactive tests on the dedicated test host.