* Add pulsar-mouse plugin Battery/charging status and quick sensor/lighting/power controls for a Pulsar gaming mouse (bar widget, desktop/lock-screen widget, and a quick-controls panel), backed by the pulsar-mouse CLI from https://github.com/harveywuk/pulsar-mouse-linux. * pulsar-mouse: sync to v1.6.1 (three panel fixes) The plugin picked up four commits upstream after this PR's initial snapshot was taken. Three of them are bug fixes, two user-facing enough that installing the current snapshot gives a visibly broken panel: - Panel went permanently read-only after a successful profile switch. Every control is `enabled = not busy`, and the profile-switch path set busy = true then relied on readStatus() to clear it, which it did not do on any path. No error was shown, because from the user's point of view nothing had failed. - readStatus() did not guard decoded.dpi being absent, so a malformed response threw before clearing busy - the same lockup by another route. - The panel only re-synced to the mouse's real active profile on the first open of the process, because the profileSynced flag is module- scoped and survived the panel closing. Switching profiles by any other means afterwards (physical profile button, `pulsar-mouse --active-profile`, Fusion on another OS) left every later reopen showing, and writing to, a stale profile. The fourth renames "breath" to "breathe" so the LED effect naming matches the pulsar-mouse CLI's --breathe-speed flag; that accounts for the two README wording changes and part of the panel diff. plugin.toml's version goes 1.6.0 -> 1.6.1 per the contribution rules (patch: fixes and text only, no new capability). Its header comment also now describes the tabbed panel that shipped earlier rather than the original DPI/polling-only one. bar.luau, desktop.luau, translations/en.json and thumbnail.webp are unchanged and untouched. No change to what the plugin shells out to, writes, or reads: still only `pulsar-mouse` (declared in dependencies), still only reading ~/.cache/pulsar-mouse/battery.json. No network access. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
85 lines
2.4 KiB
TOML
85 lines
2.4 KiB
TOML
# Pulsar Mouse battery/charging status - bar widget and desktop widget - plus
|
|
# a quick-controls panel (profile switching, DPI/polling/lighting/power
|
|
# settings across Sensor/Advanced/Lighting/Power tabs) opened by clicking
|
|
# the bar widget.
|
|
#
|
|
# The battery-reading entries (bar, battery) read the reading pulsar-mouse-gui
|
|
# already writes on every poll (~/.cache/pulsar-mouse/battery.json) rather
|
|
# than doing their own USB read - avoids duplicate polling of the mouse's
|
|
# wireless link. Each falls back to invoking the `pulsar-mouse` CLI directly
|
|
# if that file is missing or stale (e.g. the GUI/tray isn't running, or was
|
|
# never installed at all - CLI-only setups just always take this path), so
|
|
# both still work standalone. The controls panel always talks to the CLI
|
|
# directly (DPI/polling rate aren't in that cached file, and writes can't be
|
|
# cached at all).
|
|
#
|
|
# Desktop widgets are shared with the lock screen (LockscreenWidgetsHost
|
|
# reuses the same widget type registry as the desktop), so the desktop_widget
|
|
# entry shows up in both places once added via the widget editor.
|
|
|
|
id = "harveywuk/pulsar-mouse"
|
|
name = "Pulsar Mouse"
|
|
version = "1.6.1"
|
|
plugin_api = 9
|
|
author = "harveywuk"
|
|
license = "MIT"
|
|
dependencies = ["pulsar-mouse"]
|
|
tags = ["hardware", "system"]
|
|
icon = "mouse"
|
|
description = "Battery status and quick sensor/lighting/power controls for a Pulsar gaming mouse - bar, desktop, and lock screen."
|
|
|
|
[[widget]]
|
|
id = "bar"
|
|
entry = "bar.luau"
|
|
|
|
[[widget.setting]]
|
|
key = "glyph_size"
|
|
type = "int"
|
|
label_key = "settings.glyph_size.label"
|
|
default = 16
|
|
min = 10
|
|
max = 32
|
|
step = 1
|
|
|
|
[[panel]]
|
|
id = "controls"
|
|
entry = "panel.luau"
|
|
width = 320
|
|
height = 380
|
|
placement = "attached"
|
|
position = "auto"
|
|
open_near_click = true
|
|
|
|
[[desktop_widget]]
|
|
id = "battery"
|
|
entry = "desktop.luau"
|
|
|
|
[[desktop_widget.setting]]
|
|
key = "color"
|
|
type = "color"
|
|
label_key = "settings.color.label"
|
|
description_key = "settings.color.description"
|
|
default = "primary"
|
|
|
|
[[desktop_widget.setting]]
|
|
key = "show_progress"
|
|
type = "bool"
|
|
label_key = "settings.show_progress.label"
|
|
default = true
|
|
|
|
[[desktop_widget.setting]]
|
|
key = "show_percent"
|
|
type = "bool"
|
|
label_key = "settings.show_percent.label"
|
|
description_key = "settings.show_percent.description"
|
|
default = true
|
|
|
|
[[desktop_widget.setting]]
|
|
key = "glyph_size"
|
|
type = "int"
|
|
label_key = "settings.glyph_size.label"
|
|
default = 28
|
|
min = 16
|
|
max = 64
|
|
step = 2
|