feat(pi-status): integrate desktop status bridge
Expose the persistent Pi session controls through the desktop launcher, Noctalia, and user service.
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
# Used by the Noctalia Pi Status Bridge adapter and the Hyprland launcher.
|
||||||
|
PI_STATUS_UI_BINARY=/home/alex/.local/bin/pi-status-ui
|
||||||
@@ -62,7 +62,7 @@ hl.workspace_rule({
|
|||||||
|
|
||||||
-- Application and session bindings.
|
-- Application and session bindings.
|
||||||
local noctalia_ipc = "noctalia msg "
|
local noctalia_ipc = "noctalia msg "
|
||||||
local pi_status_ui_toggle = 'ui="${PI_STATUS_UI_BINARY:-$HOME/projects/pi-status-bridge/ui/src-tauri/target/release/pi-status-ui}"; if test -x "$ui"; then setsid -f env TMPDIR=/tmp "$ui" --toggle >/tmp/pi-status-ui.log 2>&1; fi'
|
local pi_status_ui_toggle = 'ui="${PI_STATUS_UI_BINARY:-$HOME/.local/bin/pi-status-ui}"; if test -x "$ui"; then setsid -f env TMPDIR=/tmp "$ui" --toggle >/tmp/pi-status-ui.log 2>&1; fi'
|
||||||
-- Tap and release Super on its own to open Noctalia's control-center home.
|
-- Tap and release Super on its own to open Noctalia's control-center home.
|
||||||
hl.bind(main_mod .. " + SUPER_L", hl.dsp.exec_cmd(noctalia_ipc .. "panel-toggle control-center"), { release = true })
|
hl.bind(main_mod .. " + SUPER_L", hl.dsp.exec_cmd(noctalia_ipc .. "panel-toggle control-center"), { release = true })
|
||||||
hl.bind(main_mod .. " + RETURN", hl.dsp.exec_cmd(terminal))
|
hl.bind(main_mod .. " + RETURN", hl.dsp.exec_cmd(terminal))
|
||||||
@@ -139,7 +139,7 @@ local function float_rule(name, match, border_size)
|
|||||||
end
|
end
|
||||||
|
|
||||||
hl.window_rule({ name = "thunderbird-workspace", match = { class = "^Thunderbird$" }, workspace = "9" })
|
hl.window_rule({ name = "thunderbird-workspace", match = { class = "^Thunderbird$" }, workspace = "9" })
|
||||||
float_rule("pi-status-ui", { class = "^pi-status-ui$" }, 1)
|
float_rule("pi-status-ui", { class = "^(pi-status-ui|Pi-status-ui)$" }, 1)
|
||||||
float_rule("alsamixer", { title = "^alsamixer$" }, 1)
|
float_rule("alsamixer", { title = "^alsamixer$" }, 1)
|
||||||
float_rule("qalculate", { title = "^Qalculate!$" })
|
float_rule("qalculate", { title = "^Qalculate!$" })
|
||||||
float_rule("psensor", { class = "^Psensor$" })
|
float_rule("psensor", { class = "^Psensor$" })
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
# Desktop-specific shell layout and hardware telemetry.
|
# Desktop-specific shell layout and hardware telemetry.
|
||||||
|
# Pi Status Bridge is installed locally from ~/projects/pi-gui.
|
||||||
|
[plugins]
|
||||||
|
enabled = ["alex/system-status", "alex/pi-status-bridge"]
|
||||||
|
|
||||||
|
[widget.pi-status]
|
||||||
|
type = "alex/pi-status-bridge:bridge"
|
||||||
|
|
||||||
[bar.main]
|
[bar.main]
|
||||||
position = "bottom"
|
position = "bottom"
|
||||||
layer = "top"
|
layer = "top"
|
||||||
|
scale = 0.95
|
||||||
capsule_radius = 5
|
capsule_radius = 5
|
||||||
center = ["group:g3", "notifications"]
|
center = ["group:g3", "notifications"]
|
||||||
end = ["bluetooth", "input_volume", "volume", "control-center", "group:g1", "session"]
|
end = ["group:g2", "group:g6", "group:g1", "session"]
|
||||||
font_weight = 400
|
font_weight = 400
|
||||||
margin_ends = 0
|
margin_ends = 0
|
||||||
padding = 0
|
padding = 0
|
||||||
@@ -15,7 +23,7 @@ shadow = false
|
|||||||
auto_hide = false
|
auto_hide = false
|
||||||
smart_auto_hide = false
|
smart_auto_hide = false
|
||||||
reserve_space = true
|
reserve_space = true
|
||||||
start = ["tray", "group:g4", "group:g2", "privacy"]
|
start = ["tray", "group:g4", "privacy"]
|
||||||
thickness = 39
|
thickness = 39
|
||||||
widget_spacing = 10
|
widget_spacing = 10
|
||||||
|
|
||||||
@@ -31,7 +39,7 @@ padding = 6.0
|
|||||||
enabled = true
|
enabled = true
|
||||||
fill = "surface_variant"
|
fill = "surface_variant"
|
||||||
id = "g2"
|
id = "g2"
|
||||||
members = ["network_rx", "network_tx", "network"]
|
members = ["network", "bluetooth"]
|
||||||
opacity = 1.0
|
opacity = 1.0
|
||||||
padding = 6.0
|
padding = 6.0
|
||||||
|
|
||||||
@@ -48,10 +56,19 @@ radius = 5.0
|
|||||||
enabled = true
|
enabled = true
|
||||||
fill = "surface_variant"
|
fill = "surface_variant"
|
||||||
id = "g4"
|
id = "g4"
|
||||||
members = ["cpu", "temp", "ram", "gpu", "gpu_temp", "disk"]
|
members = ["pi-status", "cpu", "temp", "ram", "gpu", "gpu_temp", "disk"]
|
||||||
opacity = 1.0
|
opacity = 1.0
|
||||||
padding = 6.0
|
padding = 6.0
|
||||||
|
|
||||||
|
[[bar.main.capsule_group]]
|
||||||
|
enabled = true
|
||||||
|
fill = "surface_variant"
|
||||||
|
id = "g6"
|
||||||
|
members = ["input_volume", "volume"]
|
||||||
|
opacity = 1.0
|
||||||
|
padding = 6.0
|
||||||
|
radius = 5.0
|
||||||
|
|
||||||
[widget.gpu]
|
[widget.gpu]
|
||||||
type = "sysmon"
|
type = "sysmon"
|
||||||
stat = "gpu_usage"
|
stat = "gpu_usage"
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ padding = 6.0
|
|||||||
enabled = true
|
enabled = true
|
||||||
fill = "surface_variant"
|
fill = "surface_variant"
|
||||||
id = "g2"
|
id = "g2"
|
||||||
members = ["network-rate", "network", "bluetooth"]
|
members = ["network", "bluetooth"]
|
||||||
opacity = 1.0
|
opacity = 1.0
|
||||||
padding = 6.0
|
padding = 6.0
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Pi Status Bridge home agent
|
||||||
|
After=graphical-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Environment=PATH=/home/alex/.local/bin:/usr/local/bin:/usr/bin:/bin
|
||||||
|
ExecStart=/home/alex/.local/bin/pi-status-bridge --session-root %h/.local/state/pi-status-bridge/sessions
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=3
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# The opaque release window runs natively on Wayland; disable WebKit DMABUF,
|
||||||
|
# which is unreliable with this NVIDIA desktop's compositor path.
|
||||||
|
exec env WEBKIT_DISABLE_DMABUF_RENDERER=1 "$HOME/projects/pi-gui/ui/src-tauri/target/release/pi-status-ui" "$@"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
../../../../projects/pi-gui/noctalia-v5-plugin/pi-status-bridge
|
||||||
Reference in New Issue
Block a user