From 1ceb9a55ece0e08503b8d8feff738b8f45737e9a Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Fri, 24 Jul 2026 16:17:00 +0200 Subject: [PATCH 1/8] Add battery status widget with power-profile switch and charge-limit controls (ported from Noctalia 4.x) --- battery-power-management/README.md | 102 +++++++ battery-power-management/panel.luau | 177 ++++++++++++ battery-power-management/plugin.toml | 83 ++++++ .../scripts/setup-threshold-permissions.sh | 48 ++++ battery-power-management/service.luau | 264 ++++++++++++++++++ battery-power-management/thumbnail.webp | Bin 0 -> 13100 bytes battery-power-management/translations/en.json | 48 ++++ battery-power-management/translations/it.json | 48 ++++ battery-power-management/widget.luau | 122 ++++++++ 9 files changed, 892 insertions(+) create mode 100644 battery-power-management/README.md create mode 100644 battery-power-management/panel.luau create mode 100644 battery-power-management/plugin.toml create mode 100755 battery-power-management/scripts/setup-threshold-permissions.sh create mode 100644 battery-power-management/service.luau create mode 100644 battery-power-management/thumbnail.webp create mode 100644 battery-power-management/translations/en.json create mode 100644 battery-power-management/translations/it.json create mode 100644 battery-power-management/widget.luau diff --git a/battery-power-management/README.md b/battery-power-management/README.md new file mode 100644 index 00000000..c2a924a1 --- /dev/null +++ b/battery-power-management/README.md @@ -0,0 +1,102 @@ +# Battery & Power Management + +A battery status widget and control panel for **Noctalia v5**. The bar widget +shows charge percentage, live power draw in watts, and the active power profile. +Clicking it opens a panel to switch the system power profile and set the battery +charge-stop threshold — no root needed at runtime. + +> Ported from the Noctalia v4 (Quickshell/QML) plugin of the same name to the v5 +> Luau plugin runtime. + +## Plugin + +Manifest id `piero-93/battery-power-management`. It ships three entries that +share one state snapshot (no Lua memory is shared between them): + +- `service` — the headless entry: polls the battery, power profile, and charge + threshold, and performs every system read/write. +- `widget` — the bar widget: battery glyph, `NN% ±W.W`, and an optional profile + glyph. Click it to open the panel. +- `panel` — the control surface: power-profile switch and charge-limit slider. + Toggle it from a keybind with: + + ```sh + noctalia msg panel-toggle piero-93/battery-power-management:panel + ``` + +## Features + +- **Live bar widget** — battery glyph, `NN% ±W.W`, and an optional profile glyph + (leaf / scale / gauge), tinted by charge and profile state. +- **Power profiles** — one-tap switch between Power-saver / Balanced / Performance + via `powerprofilesctl`. +- **Charge threshold** — a slider to cap charging (50–100%) on hardware that + exposes `charge_control_end_threshold` (ThinkPad, ASUS, and others). +- **Time remaining** — time-to-empty / time-to-full via `upower`. + +## Requirements + +| Tool | Used for | If missing | +|------|----------|------------| +| `powerprofilesctl` | read/set power profile | profile controls are hidden | +| `upower` | time-to-empty/full | time remaining is hidden (watts shown instead) | + +`powerprofilesctl` ships with +[power-profiles-daemon](https://gitlab.freedesktop.org/upower/power-profiles-daemon); +`upower` is packaged as `upower` on every major distro. + +The charge-threshold slider additionally needs the sysfs attribute +`charge_control_end_threshold` to be present **and writable by your user** — see +Usage. + +## Usage + +Install this checkout as a development source and enable the plugin: + +```sh +noctalia msg plugins source add dev path ~/Documents/Projects/community-plugins +noctalia msg plugins enable piero-93/battery-power-management +``` + +Then add the **Battery & Power Management** widget from the bar's Add-widget +picker. `.luau` edits hot-reload; `plugin.toml` changes apply on the next config +reload. + +**Charge-threshold permissions (optional).** Writing the charge limit needs +write access to a root-owned sysfs file. The included script sets that up once, +without giving the plugin root at runtime: + +```sh +cd ~/Documents/Projects/community-plugins/battery-power-management/scripts +sudo ./setup-threshold-permissions.sh BAT0 # use your battery, e.g. BAT1 +``` + +Then **log out and back in**. If you skip this, everything else still works; only +the threshold slider is affected (it shows a notification on write failure). + +## Settings + +| Setting | Type | Default | Description | +|---------|------|---------|-------------| +| Colorize by profile | bool | `true` | Tint the widget by active profile | +| Power-saver color | color | `secondary` | Accent for the Power-saver profile | +| Performance color | color | `error` | Accent for the Performance profile | +| Show profile icon | bool | `true` | Show the profile glyph in the widget | +| Show balanced icon | bool | `false` | Also show the glyph on Balanced | +| Battery device | string | `BAT0` | sysfs battery name (`BAT0`, `BAT1`, …) | + +## What it does to your system + +For review transparency (this plugin is trusted, unsandboxed Luau): + +- **Reads** `/sys/class/power_supply//uevent` and + `/sys/class/power_supply//charge_control_end_threshold` (poll ~2 s). +- **Runs** `powerprofilesctl get` / `powerprofilesctl set ` and + `upower -i /org/freedesktop/UPower/devices/battery_`. +- **Writes** ` > /sys/class/power_supply//charge_control_end_threshold` + only when you move the slider (guarded by `commandExists` and permissions). +- **No network access.** + +## License + +GPL-3.0 diff --git a/battery-power-management/panel.luau b/battery-power-management/panel.luau new file mode 100644 index 00000000..c419fd16 --- /dev/null +++ b/battery-power-management/panel.luau @@ -0,0 +1,177 @@ +--!nonstrict +-- Battery & Power Management — [[panel]] entry. +-- +-- Interactive surface: battery summary, power-profile switch, and charge-stop +-- threshold slider. All controls send commands to the service via +-- noctalia.state; the panel never touches the system directly. Pointer/onChange +-- props use *named global handlers* (plugin_api 5 does not allow closures). + +local SNAPSHOT = "battery.snapshot" +local COMMAND = "battery.command" + +local snap = noctalia.state.get(SNAPSHOT) or { + percent = 0, + status = "Unknown", + watt = 0, + eta = "", + profile = "balanced", + threshold = 80, + hasThreshold = false, + hasProfile = false, +} + +-- Live slider value while dragging; committed to the service on drag end. +local thresholdDraft = nil +local reqId = 0 + +local STATUS_KEY = { + Charging = "status.charging", + Discharging = "status.discharging", + Full = "status.full", + ["Not charging"] = "status.not_charging", + Unknown = "status.unknown", +} + +local function dispatch(action, value) + reqId += 1 + noctalia.state.set(COMMAND, { + action = action, + value = value, + requestId = tostring(os.time()) .. "-" .. tostring(reqId), + }) +end + +local function batteryGlyph() + local s = snap.status + if s == "Charging" then + return "battery-charging" + elseif s == "Full" then + return "battery-charging-2" + end + local p = snap.percent or 0 + if p >= 86 then + return "battery-4" + elseif p >= 56 then + return "battery-3" + elseif p >= 31 then + return "battery-2" + elseif p >= 11 then + return "battery-1" + end + return "battery" +end + +local function subLine() + if snap.status == "Charging" and snap.eta ~= "" then + return noctalia.tr("panel.time_to_full", { time = snap.eta }) + elseif snap.status == "Discharging" and snap.eta ~= "" then + return noctalia.tr("panel.remaining", { time = snap.eta }) + end + return string.format("%.1f W", snap.watt or 0) +end + +local function profileButton(profile, glyph, handler) + return ui.button({ + glyph = glyph, + tooltip = noctalia.tr("panel.profile_" .. profile), + variant = (snap.profile == profile) and "primary" or "secondary", + onClick = handler, + }) +end + +local function render() + local status = STATUS_KEY[snap.status] or "status.unknown" + local threshold = thresholdDraft or snap.threshold or 80 + + local sections = { + -- Battery summary + ui.row({ gap = 12, align = "center", padding = 12, fill = "surface_variant/0.4", radius = 8 }, { + ui.column({ align = "center", gap = 2 }, { + ui.glyph({ name = batteryGlyph(), size = 28, color = "primary" }), + ui.label({ text = (snap.percent or 0) .. "%", fontWeight = "bold" }), + }), + ui.separator({ orientation = "vertical" }), + ui.column({ gap = 2, flexGrow = 1 }, { + ui.label({ text = noctalia.tr(status), fontWeight = "bold" }), + ui.label({ text = subLine(), fontSize = 12, color = "on_surface_variant" }), + }), + }), + } + + -- Power profiles (only when powerprofilesctl is available) + if snap.hasProfile then + table.insert(sections, ui.label({ + text = noctalia.tr("panel.power_profile"), + fontSize = 12, + color = "on_surface_variant", + })) + table.insert(sections, ui.row({ gap = 8, justify = "center" }, { + profileButton("power-saver", "leaf", "onProfilePowerSaver"), + profileButton("balanced", "scale", "onProfileBalanced"), + profileButton("performance", "gauge", "onProfilePerformance"), + })) + end + + -- Charge-stop threshold (only when the sysfs attribute exists) + if snap.hasThreshold then + table.insert(sections, ui.label({ + text = noctalia.tr("panel.charge_threshold"), + fontSize = 12, + color = "on_surface_variant", + })) + table.insert(sections, ui.row({ gap = 10, align = "center" }, { + ui.glyph({ name = "shield-heart", color = "on_surface_variant" }), + ui.slider({ + min = 50, + max = 100, + step = 5, + value = threshold, + flexGrow = 1, + onChange = "onThresholdChange", + onDragEnd = "onThresholdCommit", + }), + ui.label({ text = threshold .. "%", fontWeight = "bold" }), + })) + end + + panel.render(ui.column({ gap = 12, padding = 16 }, sections)) +end + +-- ── Lifecycle & handlers ───────────────────────────────────────────────────── + +function onOpen(_context) + snap = noctalia.state.get(SNAPSHOT) or snap + thresholdDraft = nil + render() +end + +noctalia.state.watch(SNAPSHOT, function(value) + if type(value) == "table" then + snap = value + render() + end +end) + +function onProfilePowerSaver() + dispatch("set_profile", "power-saver") +end + +function onProfileBalanced() + dispatch("set_profile", "balanced") +end + +function onProfilePerformance() + dispatch("set_profile", "performance") +end + +function onThresholdChange(value) + thresholdDraft = tonumber(value) + render() +end + +function onThresholdCommit() + if thresholdDraft then + dispatch("set_threshold", thresholdDraft) + thresholdDraft = nil + end +end diff --git a/battery-power-management/plugin.toml b/battery-power-management/plugin.toml new file mode 100644 index 00000000..a5a98651 --- /dev/null +++ b/battery-power-management/plugin.toml @@ -0,0 +1,83 @@ +# Battery & Power Management — Noctalia v5 plugin. +# +# Architecture (mirrors the official `timer` plugin): one headless [[service]] +# owns all polling + system calls and publishes a single state snapshot; the +# [[widget]] and [[panel]] are thin UI clients that read that snapshot and send +# commands back through noctalia.state. No Lua memory is shared between entries. + +id = "piero-93/battery-power-management" +name = "Battery & Power Management" +version = "1.0.0" +min_noctalia = "5.0.0" +author = "piero-93" +license = "GPL-3.0" +icon = "battery-charging" +description = "Battery widget with live power draw, power-profile switching, and charge-limit control — no root at runtime." +tags = ["bar", "panel", "system", "hardware", "indicator", "utility"] + +# Runtime dependencies the service shells out to. Both are optional: the plugin +# degrades gracefully (commandExists gates each). See README for what runs. +dependencies = ["powerprofilesctl", "upower"] + +# ── Plugin-level settings (shared by every entry; edited in Settings GUI) ── + +[[setting]] +key = "colorize_by_profile" +type = "bool" +label_key = "settings.colorize_by_profile.label" +description_key = "settings.colorize_by_profile.description" +default = true + +[[setting]] +key = "color_power_saver" +type = "color" +label_key = "settings.color_power_saver.label" +description_key = "settings.color_power_saver.description" +default = "secondary" + +[[setting]] +key = "color_performance" +type = "color" +label_key = "settings.color_performance.label" +description_key = "settings.color_performance.description" +default = "error" + +[[setting]] +key = "show_profile" +type = "bool" +label_key = "settings.show_profile.label" +description_key = "settings.show_profile.description" +default = true + +[[setting]] +key = "show_balanced_icon" +type = "bool" +label_key = "settings.show_balanced_icon.label" +description_key = "settings.show_balanced_icon.description" +default = false + +[[setting]] +key = "battery_device" +type = "string" +label_key = "settings.battery_device.label" +description_key = "settings.battery_device.description" +default = "BAT0" + +# ── Entries ── + +[[widget]] +id = "widget" +entry = "widget.luau" + +[[panel]] +id = "panel" +entry = "panel.luau" +width = 340 +height = 300 +placement = "attached" +position = "auto" +open_near_click = true + +[[service]] +id = "service" +entry = "service.luau" diff --git a/battery-power-management/scripts/setup-threshold-permissions.sh b/battery-power-management/scripts/setup-threshold-permissions.sh new file mode 100755 index 00000000..ded5a897 --- /dev/null +++ b/battery-power-management/scripts/setup-threshold-permissions.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# --------------------------------------------------------------------------- +# Battery charge-threshold udev setup. +# +# Lets the plugin write /sys/class/power_supply//charge_control_end_threshold +# at runtime WITHOUT root: it creates a `battery_ctl` group, adds you to it, and +# grants that group write access to the attribute via a udev rule. +# +# Usage: sudo ./setup-threshold-permissions.sh [BATTERY_DEVICE] +# BATTERY_DEVICE defaults to BAT0 (match the plugin's "Battery device" setting). +# +# Run once, then log out and back in for the group change to take effect. +# --------------------------------------------------------------------------- +set -euo pipefail + +BAT="${1:-BAT0}" +RULE_FILE="/etc/udev/rules.d/99-battery-threshold.rules" + +if [ "${EUID}" -ne 0 ]; then + echo "Error: run as root, e.g. sudo $0 ${BAT}" >&2 + exit 1 +fi + +TARGET_USER="${SUDO_USER:-}" +if [ -z "${TARGET_USER}" ]; then + echo "Error: could not determine the target user (run via sudo, not as raw root)." >&2 + exit 1 +fi + +if ! getent group battery_ctl >/dev/null; then + echo "Creating group battery_ctl..." + groupadd battery_ctl +fi + +echo "Adding ${TARGET_USER} to battery_ctl..." +usermod -aG battery_ctl "${TARGET_USER}" + +echo "Writing ${RULE_FILE} for ${BAT}..." +cat >"${RULE_FILE}" < "1h 12m" / "34m". +local function formatUpowerTime(value) + local numStr, unit = value:match("^(%S+)%s*(%S*)") + local num = tonumber(numStr) + if not num then + return "" + end + local minutes + if unit:sub(1, 4) == "hour" then + minutes = num * 60 + elseif unit:sub(1, 6) == "minute" then + minutes = num + elseif unit:sub(1, 6) == "second" then + minutes = num / 60 + elseif unit:sub(1, 3) == "day" then + minutes = num * 1440 + else + return value + end + local total = math.floor(minutes + 0.5) + local h = total // 60 + local m = total % 60 + if h > 0 then + return string.format("%dh %dm", h, m) + end + return string.format("%dm", m) +end + +-- ── Synchronous sysfs reads ────────────────────────────────────────────────── + +local function pollBattery() + local content = noctalia.readFile(sysfsBase() .. "/uevent") + if not content then + return + end + local cap = snapshot.percent + local powerNow, currentNow, voltageNow + local status = snapshot.status + for line in content:gmatch("[^\n]+") do + local k, v = line:match("^([%w_]+)=(.*)$") + if k == "POWER_SUPPLY_CAPACITY" then + cap = tonumber(v) or cap + elseif k == "POWER_SUPPLY_POWER_NOW" then + powerNow = tonumber(v) + elseif k == "POWER_SUPPLY_CURRENT_NOW" then + currentNow = tonumber(v) + elseif k == "POWER_SUPPLY_VOLTAGE_NOW" then + voltageNow = tonumber(v) + elseif k == "POWER_SUPPLY_STATUS" then + status = noctalia.string.trim(v) + end + end + -- POWER_NOW is microwatts; some drivers only expose CURRENT_NOW (µA) + VOLTAGE_NOW (µV). + local watt = 0.0 + if powerNow then + watt = math.abs(powerNow) / 1000000.0 + elseif currentNow and voltageNow then + watt = math.abs(currentNow * voltageNow) / 1000000000000.0 + end + snapshot.percent = cap + snapshot.status = status + snapshot.watt = watt +end + +local function pollThreshold() + local content = noctalia.readFile(sysfsBase() .. "/charge_control_end_threshold") + if content then + local v = tonumber(noctalia.string.trim(content)) + if v and v >= 50 and v <= 100 then + snapshot.threshold = v + snapshot.hasThreshold = true + return + end + end + snapshot.hasThreshold = false +end + +-- ── Async system calls ─────────────────────────────────────────────────────── + +local function pollProfile() + if not HAS_PPD then + return + end + noctalia.runAsync("powerprofilesctl get", function(res) + if res.exitCode == 0 then + local p = noctalia.string.trim(res.stdout) + if p ~= "" and p ~= snapshot.profile then + snapshot.profile = p + publish() + end + end + end) +end + +local function pollEta() + if not HAS_UPOWER then + return + end + local dev = deviceName() + noctalia.runAsync("upower -i /org/freedesktop/UPower/devices/battery_" .. dev, function(res) + local eta = "" + if res.exitCode == 0 then + for line in res.stdout:gmatch("[^\n]+") do + local l = noctalia.string.trim(line) + local val = l:match("^time to empty:%s*(.+)$") or l:match("^time to full:%s*(.+)$") + if val then + eta = formatUpowerTime(val) + break + end + end + end + if eta ~= snapshot.eta then + snapshot.eta = eta + publish() + end + end) +end + +-- ── Commands from the UI entries ───────────────────────────────────────────── + +noctalia.state.watch(COMMAND, function(cmd) + if type(cmd) ~= "table" then + return + end + + if cmd.action == "set_profile" then + if not HAS_PPD then + return + end + local p = tostring(cmd.value or "") + if p == "" then + return + end + snapshot.profile = p -- optimistic; pollProfile confirms + publish() + noctalia.runAsync("powerprofilesctl set " .. shellQuote(p), function(res) + if res.exitCode ~= 0 then + noctalia.log("powerprofilesctl set failed: " .. (res.stderr or "")) + end + pollProfile() + end) + elseif cmd.action == "set_threshold" then + local v = tonumber(cmd.value) + if not v then + return + end + v = math.max(50, math.min(100, math.floor(v + 0.5))) + snapshot.threshold = v -- optimistic; pollThreshold confirms + publish() + local path = sysfsBase() .. "/charge_control_end_threshold" + noctalia.runAsync("echo " .. v .. " > " .. shellQuote(path), function(res) + if res.exitCode ~= 0 then + noctalia.notifyError( + noctalia.tr("notify.threshold_error_title"), + noctalia.tr("notify.threshold_error_body") + ) + noctalia.log("threshold write failed: " .. (res.stderr or "")) + end + pollThreshold() + publish() + end) + end +end) + +-- ── Lifecycle ──────────────────────────────────────────────────────────────── + +function update() + pollBattery() + pollThreshold() + if tick % ETA_EVERY == 0 then + pollProfile() + pollEta() + end + tick += 1 + publish() +end + +function onConfigChanged() + -- battery_device may have changed; re-read immediately. + tick = 0 + pollBattery() + pollThreshold() + pollProfile() + pollEta() + publish() +end + +noctalia.setUpdateInterval(POLL_MS) + +-- Seed state so the widget/panel have data before the first tick. +pollBattery() +pollThreshold() +pollProfile() +pollEta() +publish() diff --git a/battery-power-management/thumbnail.webp b/battery-power-management/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..3eabd035fb61757fe75f08ba4afc3c91c93eba80 GIT binary patch literal 13100 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 tC&7ZG?2#?c!+YejK;uht= 86 then + return "battery-4" + elseif p >= 56 then + return "battery-3" + elseif p >= 31 then + return "battery-2" + elseif p >= 11 then + return "battery-1" + end + return "battery" +end + +local function profileGlyph() + if snap.profile == "power-saver" then + return "leaf" + elseif snap.profile == "performance" then + return "gauge" + elseif noctalia.getConfig("show_balanced_icon") == true then + return "scale" + end + return "" +end + +local function tooltipText() + local statusText = noctalia.tr("status." .. (snap.status or "Unknown"):lower():gsub("%s", "_")) + local line = string.format("%d%% • %s • %.1f W", snap.percent or 0, statusText, snap.watt or 0) + if snap.eta and snap.eta ~= "" then + line = line .. " • " .. snap.eta + end + return line +end + +local function render() + local color = accent() + local children = { ui.glyph({ name = batteryGlyph(), color = color }) } + + if not isVertical then + local sign = snap.status == "Charging" and "+" or "-" + table.insert(children, ui.label({ + text = string.format("%d%% %s%.1fW", snap.percent or 0, sign, snap.watt or 0), + fontWeight = "bold", + color = color, + })) + end + + if noctalia.getConfig("show_profile") ~= false and snap.hasProfile then + local pg = profileGlyph() + if pg ~= "" then + table.insert(children, ui.glyph({ name = pg, color = color })) + end + end + + local container = isVertical and ui.column or ui.row + barWidget.render(container({ gap = 6, align = "center" }, children)) + barWidget.setTooltip(tooltipText()) +end + +noctalia.state.watch(SNAPSHOT, function(value) + if type(value) == "table" then + snap = value + render() + end +end) + +function update() + isVertical = barWidget.isVertical() + render() +end + +function onConfigChanged() + render() +end + +function onClick() + noctalia.togglePanel(PANEL_ID) +end + +noctalia.setUpdateInterval(30000) +render() From 0c7069fa534bff557b213dce4aa7458ad4b099c9 Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Fri, 24 Jul 2026 17:02:20 +0200 Subject: [PATCH 2/8] Fix service update() timeout --- battery-power-management/panel.luau | 12 --- battery-power-management/plugin.toml | 13 --- battery-power-management/service.luau | 113 ++++++++++++-------------- battery-power-management/widget.luau | 7 -- 4 files changed, 50 insertions(+), 95 deletions(-) diff --git a/battery-power-management/panel.luau b/battery-power-management/panel.luau index c419fd16..4319cc5b 100644 --- a/battery-power-management/panel.luau +++ b/battery-power-management/panel.luau @@ -1,10 +1,4 @@ --!nonstrict --- Battery & Power Management — [[panel]] entry. --- --- Interactive surface: battery summary, power-profile switch, and charge-stop --- threshold slider. All controls send commands to the service via --- noctalia.state; the panel never touches the system directly. Pointer/onChange --- props use *named global handlers* (plugin_api 5 does not allow closures). local SNAPSHOT = "battery.snapshot" local COMMAND = "battery.command" @@ -73,7 +67,6 @@ end local function profileButton(profile, glyph, handler) return ui.button({ glyph = glyph, - tooltip = noctalia.tr("panel.profile_" .. profile), variant = (snap.profile == profile) and "primary" or "secondary", onClick = handler, }) @@ -84,7 +77,6 @@ local function render() local threshold = thresholdDraft or snap.threshold or 80 local sections = { - -- Battery summary ui.row({ gap = 12, align = "center", padding = 12, fill = "surface_variant/0.4", radius = 8 }, { ui.column({ align = "center", gap = 2 }, { ui.glyph({ name = batteryGlyph(), size = 28, color = "primary" }), @@ -98,7 +90,6 @@ local function render() }), } - -- Power profiles (only when powerprofilesctl is available) if snap.hasProfile then table.insert(sections, ui.label({ text = noctalia.tr("panel.power_profile"), @@ -112,7 +103,6 @@ local function render() })) end - -- Charge-stop threshold (only when the sysfs attribute exists) if snap.hasThreshold then table.insert(sections, ui.label({ text = noctalia.tr("panel.charge_threshold"), @@ -137,8 +127,6 @@ local function render() panel.render(ui.column({ gap = 12, padding = 16 }, sections)) end --- ── Lifecycle & handlers ───────────────────────────────────────────────────── - function onOpen(_context) snap = noctalia.state.get(SNAPSHOT) or snap thresholdDraft = nil diff --git a/battery-power-management/plugin.toml b/battery-power-management/plugin.toml index a5a98651..69ee3d4c 100644 --- a/battery-power-management/plugin.toml +++ b/battery-power-management/plugin.toml @@ -1,10 +1,3 @@ -# Battery & Power Management — Noctalia v5 plugin. -# -# Architecture (mirrors the official `timer` plugin): one headless [[service]] -# owns all polling + system calls and publishes a single state snapshot; the -# [[widget]] and [[panel]] are thin UI clients that read that snapshot and send -# commands back through noctalia.state. No Lua memory is shared between entries. - id = "piero-93/battery-power-management" name = "Battery & Power Management" version = "1.0.0" @@ -15,12 +8,8 @@ icon = "battery-charging" description = "Battery widget with live power draw, power-profile switching, and charge-limit control — no root at runtime." tags = ["bar", "panel", "system", "hardware", "indicator", "utility"] -# Runtime dependencies the service shells out to. Both are optional: the plugin -# degrades gracefully (commandExists gates each). See README for what runs. dependencies = ["powerprofilesctl", "upower"] -# ── Plugin-level settings (shared by every entry; edited in Settings GUI) ── - [[setting]] key = "colorize_by_profile" type = "bool" @@ -63,8 +52,6 @@ label_key = "settings.battery_device.label" description_key = "settings.battery_device.description" default = "BAT0" -# ── Entries ── - [[widget]] id = "widget" entry = "widget.luau" diff --git a/battery-power-management/service.luau b/battery-power-management/service.luau index 71686d46..81b7f9cb 100644 --- a/battery-power-management/service.luau +++ b/battery-power-management/service.luau @@ -1,22 +1,12 @@ --!nonstrict --- Battery & Power Management — headless [[service]] entry. --- --- Owns every read and write to the system and publishes one immutable snapshot --- table on "battery.snapshot". UI entries (widget, panel) read that snapshot and --- push commands back on "battery.command" ({ action, value, requestId }); the --- requestId nonce guarantees even a repeated identical command re-fires watch. --- --- noctalia.readFile(path) sysfs battery uevent / charge threshold --- noctalia.runAsync(cmd, cb) powerprofilesctl / upower / sysfs write --- noctalia.commandExists(name) feature-gate optional tools --- noctalia.state.set/watch publish snapshot / receive commands --- noctalia.setUpdateInterval(ms) poll cadence local SNAPSHOT = "battery.snapshot" local COMMAND = "battery.command" -local POLL_MS = 2000 -local ETA_EVERY = 5 -- poll upower every 5 ticks (~10s); it spawns a process +local POLL_MS = 5000 -- sysfs battery/threshold cadence +local PROBE_EVERY = 3 -- powerprofilesctl+upower round every Nth tick (~15s) +local PROBE_TIMEOUT_MS = 5000 +local SEP = "__NBPM_SEP__" -- separates the two command outputs in one shell run local HAS_PPD = noctalia.commandExists("powerprofilesctl") local HAS_UPOWER = noctalia.commandExists("upower") @@ -25,7 +15,7 @@ local snapshot = { percent = 0, status = "Unknown", -- raw sysfs status: Charging / Discharging / Full / Not charging / Unknown watt = 0.0, - eta = "", -- pre-formatted "1h 20m" / "" when unknown + eta = "", -- pre-formatted "1h 20m", "" when unknown profile = "balanced", threshold = 80, hasThreshold = false, @@ -33,13 +23,13 @@ local snapshot = { } local tick = 0 +local probing = false -- true while a profile/eta subprocess round is in flight --- Wrap a value for safe use inside a shell command string (runAsync runs a shell). local function shellQuote(s) return "'" .. tostring(s):gsub("'", "'\\''") .. "'" end --- Accept a bare device ("BAT0") or a full path; keep only the trailing name. +-- Accept "BAT0" or a full sysfs path. local function deviceName() local d = noctalia.getConfig("battery_device") if type(d) ~= "string" or d == "" then @@ -53,7 +43,7 @@ local function sysfsBase() return "/sys/class/power_supply/" .. deviceName() end --- Publish a fresh copy so watchers always see a distinct value and re-render. +-- Fresh copy each publish so watchers see a distinct value. local function publish() noctalia.state.set(SNAPSHOT, { percent = snapshot.percent, @@ -67,7 +57,7 @@ local function publish() }) end --- "1.2 hours" / "34 minutes" (upower units) -> "1h 12m" / "34m". +-- upower units ("1.2 hours" / "34 minutes") -> "1h 12m" / "34m". local function formatUpowerTime(value) local numStr, unit = value:match("^(%S+)%s*(%S*)") local num = tonumber(numStr) @@ -95,8 +85,6 @@ local function formatUpowerTime(value) return string.format("%dm", m) end --- ── Synchronous sysfs reads ────────────────────────────────────────────────── - local function pollBattery() local content = noctalia.readFile(sysfsBase() .. "/uevent") if not content then @@ -144,32 +132,36 @@ local function pollThreshold() snapshot.hasThreshold = false end --- ── Async system calls ─────────────────────────────────────────────────────── - -local function pollProfile() - if not HAS_PPD then +-- Profile + ETA in one guarded shell call, so update() never overruns its budget. +local function probeProfileAndEta() + if probing or not (HAS_PPD or HAS_UPOWER) then return end - noctalia.runAsync("powerprofilesctl get", function(res) - if res.exitCode == 0 then - local p = noctalia.string.trim(res.stdout) - if p ~= "" and p ~= snapshot.profile then + probing = true + + local profileCmd = HAS_PPD and "powerprofilesctl get" or "true" + local etaCmd = HAS_UPOWER + and ("upower -i /org/freedesktop/UPower/devices/battery_" .. deviceName()) + or "true" + local cmd = profileCmd .. "; echo " .. SEP .. "; " .. etaCmd + + local launched = noctalia.runAsync(cmd, function(res) + probing = false + local out = res.stdout or "" + local sepAt = out:find(SEP, 1, true) + local profOut = sepAt and out:sub(1, sepAt - 1) or "" + local etaOut = sepAt and out:sub(sepAt + #SEP) or out + + if HAS_PPD then + local p = noctalia.string.trim(profOut) + if p ~= "" then snapshot.profile = p - publish() end end - end) -end -local function pollEta() - if not HAS_UPOWER then - return - end - local dev = deviceName() - noctalia.runAsync("upower -i /org/freedesktop/UPower/devices/battery_" .. dev, function(res) local eta = "" - if res.exitCode == 0 then - for line in res.stdout:gmatch("[^\n]+") do + if HAS_UPOWER then + for line in etaOut:gmatch("[^\n]+") do local l = noctalia.string.trim(line) local val = l:match("^time to empty:%s*(.+)$") or l:match("^time to full:%s*(.+)$") if val then @@ -178,14 +170,14 @@ local function pollEta() end end end - if eta ~= snapshot.eta then - snapshot.eta = eta - publish() - end - end) -end + snapshot.eta = eta + publish() + end, PROBE_TIMEOUT_MS) --- ── Commands from the UI entries ───────────────────────────────────────────── + if not launched then + probing = false + end +end noctalia.state.watch(COMMAND, function(cmd) if type(cmd) ~= "table" then @@ -200,21 +192,20 @@ noctalia.state.watch(COMMAND, function(cmd) if p == "" then return end - snapshot.profile = p -- optimistic; pollProfile confirms + snapshot.profile = p -- optimistic; confirmed by the next probe publish() noctalia.runAsync("powerprofilesctl set " .. shellQuote(p), function(res) if res.exitCode ~= 0 then noctalia.log("powerprofilesctl set failed: " .. (res.stderr or "")) end - pollProfile() - end) + end, PROBE_TIMEOUT_MS) elseif cmd.action == "set_threshold" then local v = tonumber(cmd.value) if not v then return end v = math.max(50, math.min(100, math.floor(v + 0.5))) - snapshot.threshold = v -- optimistic; pollThreshold confirms + snapshot.threshold = v -- optimistic; confirmed by pollThreshold publish() local path = sysfsBase() .. "/charge_control_end_threshold" noctalia.runAsync("echo " .. v .. " > " .. shellQuote(path), function(res) @@ -227,38 +218,34 @@ noctalia.state.watch(COMMAND, function(cmd) end pollThreshold() publish() - end) + end, PROBE_TIMEOUT_MS) end end) --- ── Lifecycle ──────────────────────────────────────────────────────────────── - function update() pollBattery() pollThreshold() - if tick % ETA_EVERY == 0 then - pollProfile() - pollEta() + if tick % PROBE_EVERY == 0 then + probeProfileAndEta() end tick += 1 publish() end function onConfigChanged() - -- battery_device may have changed; re-read immediately. + -- battery_device may have changed; re-read now. tick = 0 + probing = false pollBattery() pollThreshold() - pollProfile() - pollEta() + probeProfileAndEta() publish() end noctalia.setUpdateInterval(POLL_MS) --- Seed state so the widget/panel have data before the first tick. +-- Seed state before the first tick. pollBattery() pollThreshold() -pollProfile() -pollEta() +probeProfileAndEta() publish() diff --git a/battery-power-management/widget.luau b/battery-power-management/widget.luau index ba110b72..91847a67 100644 --- a/battery-power-management/widget.luau +++ b/battery-power-management/widget.luau @@ -1,10 +1,4 @@ --!nonstrict --- Battery & Power Management — [[widget]] bar entry. --- --- A thin client of the service snapshot. Renders a battery glyph + "NN% ±W.W" --- and (optionally) a power-profile glyph, tinted by charge/profile state. Click --- opens the panel. Data is state-driven (state.watch); update() only refreshes --- orientation and re-renders as a safety tick. local SNAPSHOT = "battery.snapshot" local PANEL_ID = "piero-93/battery-power-management:panel" @@ -18,7 +12,6 @@ local snap = noctalia.state.get(SNAPSHOT) or { } local isVertical = false --- Accent color role/hex shared by glyph + text. local function accent() if snap.status == "Charging" then return "primary" From a051aa1b2f8ee160245d426659f126f162852af9 Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Wed, 29 Jul 2026 06:48:38 +0200 Subject: [PATCH 3/8] Tighten panel layout and make the selected power profile stand out --- battery-power-management/panel.luau | 8 ++++---- battery-power-management/plugin.toml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/battery-power-management/panel.luau b/battery-power-management/panel.luau index 4319cc5b..3f5b4399 100644 --- a/battery-power-management/panel.luau +++ b/battery-power-management/panel.luau @@ -67,7 +67,7 @@ end local function profileButton(profile, glyph, handler) return ui.button({ glyph = glyph, - variant = (snap.profile == profile) and "primary" or "secondary", + variant = (snap.profile == profile) and "primary" or "ghost", onClick = handler, }) end @@ -77,9 +77,9 @@ local function render() local threshold = thresholdDraft or snap.threshold or 80 local sections = { - ui.row({ gap = 12, align = "center", padding = 12, fill = "surface_variant/0.4", radius = 8 }, { + ui.row({ gap = 10, align = "center", padding = 8, fill = "surface_variant/0.4", radius = 8 }, { ui.column({ align = "center", gap = 2 }, { - ui.glyph({ name = batteryGlyph(), size = 28, color = "primary" }), + ui.glyph({ name = batteryGlyph(), size = 22, color = "primary" }), ui.label({ text = (snap.percent or 0) .. "%", fontWeight = "bold" }), }), ui.separator({ orientation = "vertical" }), @@ -124,7 +124,7 @@ local function render() })) end - panel.render(ui.column({ gap = 12, padding = 16 }, sections)) + panel.render(ui.column({ gap = 6, padding = 10 }, sections)) end function onOpen(_context) diff --git a/battery-power-management/plugin.toml b/battery-power-management/plugin.toml index 69ee3d4c..b2e9122e 100644 --- a/battery-power-management/plugin.toml +++ b/battery-power-management/plugin.toml @@ -59,8 +59,8 @@ entry = "widget.luau" [[panel]] id = "panel" entry = "panel.luau" -width = 340 -height = 300 +width = 270 +height = 220 placement = "attached" position = "auto" open_near_click = true From b9f4a47c4bde1e0b2a072159e0f9cc229b926ead Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Wed, 29 Jul 2026 07:12:30 +0200 Subject: [PATCH 4/8] Convert the battery widget tooltip to a native multi-row key/value layout --- battery-power-management/translations/en.json | 8 ++++++++ battery-power-management/translations/it.json | 8 ++++++++ battery-power-management/widget.luau | 18 +++++++++++++----- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/battery-power-management/translations/en.json b/battery-power-management/translations/en.json index 7e73681c..1f640cf4 100644 --- a/battery-power-management/translations/en.json +++ b/battery-power-management/translations/en.json @@ -6,6 +6,14 @@ "not_charging": "Not charging", "unknown": "Unknown" }, + "tooltip": { + "level": "Level", + "status": "Status", + "power": "Power", + "remaining": "Remaining", + "to_full": "To full", + "profile": "Profile" + }, "panel": { "power_profile": "Power profile", "charge_threshold": "Charge limit", diff --git a/battery-power-management/translations/it.json b/battery-power-management/translations/it.json index e7f91a18..9e70edc3 100644 --- a/battery-power-management/translations/it.json +++ b/battery-power-management/translations/it.json @@ -6,6 +6,14 @@ "not_charging": "Non in carica", "unknown": "Sconosciuto" }, + "tooltip": { + "level": "Livello", + "status": "Stato", + "power": "Potenza", + "remaining": "Rimanente", + "to_full": "Alla carica", + "profile": "Profilo" + }, "panel": { "power_profile": "Profilo energetico", "charge_threshold": "Limite di carica", diff --git a/battery-power-management/widget.luau b/battery-power-management/widget.luau index 91847a67..05eae71d 100644 --- a/battery-power-management/widget.luau +++ b/battery-power-management/widget.luau @@ -57,13 +57,21 @@ local function profileGlyph() return "" end -local function tooltipText() +local function tooltipRows() local statusText = noctalia.tr("status." .. (snap.status or "Unknown"):lower():gsub("%s", "_")) - local line = string.format("%d%% • %s • %.1f W", snap.percent or 0, statusText, snap.watt or 0) + local rows = { + { key = noctalia.tr("tooltip.level"), value = (snap.percent or 0) .. "%" }, + { key = noctalia.tr("tooltip.status"), value = statusText }, + { key = noctalia.tr("tooltip.power"), value = string.format("%.1f W", snap.watt or 0) }, + } if snap.eta and snap.eta ~= "" then - line = line .. " • " .. snap.eta + local timeKey = snap.status == "Charging" and "tooltip.to_full" or "tooltip.remaining" + table.insert(rows, { key = noctalia.tr(timeKey), value = snap.eta }) end - return line + if snap.hasProfile then + table.insert(rows, { key = noctalia.tr("tooltip.profile"), value = noctalia.tr("panel.profile_" .. snap.profile) }) + end + return rows end local function render() @@ -88,7 +96,7 @@ local function render() local container = isVertical and ui.column or ui.row barWidget.render(container({ gap = 6, align = "center" }, children)) - barWidget.setTooltip(tooltipText()) + barWidget.setTooltip(tooltipRows()) end noctalia.state.watch(SNAPSHOT, function(value) From 287e2d1d1a166e18ee72e902c01c65fdb2a815ef Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Wed, 29 Jul 2026 19:12:37 +0200 Subject: [PATCH 5/8] Fix service update() timeout by reading sysfs asynchronously --- battery-power-management/service.luau | 75 ++++++++++++++++----------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/battery-power-management/service.luau b/battery-power-management/service.luau index 81b7f9cb..e5af5701 100644 --- a/battery-power-management/service.luau +++ b/battery-power-management/service.luau @@ -3,10 +3,11 @@ local SNAPSHOT = "battery.snapshot" local COMMAND = "battery.command" -local POLL_MS = 5000 -- sysfs battery/threshold cadence +local POLL_MS = 5000 local PROBE_EVERY = 3 -- powerprofilesctl+upower round every Nth tick (~15s) +local READ_TIMEOUT_MS = 4000 local PROBE_TIMEOUT_MS = 5000 -local SEP = "__NBPM_SEP__" -- separates the two command outputs in one shell run +local SEP = "__NBPM_SEP__" -- separates command outputs in one shell run local HAS_PPD = noctalia.commandExists("powerprofilesctl") local HAS_UPOWER = noctalia.commandExists("upower") @@ -23,7 +24,8 @@ local snapshot = { } local tick = 0 -local probing = false -- true while a profile/eta subprocess round is in flight +local reading = false -- sysfs read in flight +local probing = false -- profile/eta round in flight local function shellQuote(s) return "'" .. tostring(s):gsub("'", "'\\''") .. "'" @@ -85,9 +87,8 @@ local function formatUpowerTime(value) return string.format("%dm", m) end -local function pollBattery() - local content = noctalia.readFile(sysfsBase() .. "/uevent") - if not content then +local function parseBattery(content) + if not content or content == "" then return end local cap = snapshot.percent @@ -119,20 +120,39 @@ local function pollBattery() snapshot.watt = watt end -local function pollThreshold() - local content = noctalia.readFile(sysfsBase() .. "/charge_control_end_threshold") - if content then - local v = tonumber(noctalia.string.trim(content)) - if v and v >= 50 and v <= 100 then - snapshot.threshold = v - snapshot.hasThreshold = true - return - end +local function parseThreshold(content) + local v = content and tonumber(noctalia.string.trim(content)) + if v and v >= 50 and v <= 100 then + snapshot.threshold = v + snapshot.hasThreshold = true + else + snapshot.hasThreshold = false + end +end + +-- Read battery uevent + charge threshold asynchronously so update() never blocks +-- on a slow sysfs/EC access. +local function readSysfs() + if reading then + return + end + reading = true + local base = sysfsBase() + local cmd = "cat " .. shellQuote(base .. "/uevent") .. "; echo " .. SEP + .. "; cat " .. shellQuote(base .. "/charge_control_end_threshold") .. " 2>/dev/null" + local launched = noctalia.runAsync(cmd, function(res) + reading = false + local out = res.stdout or "" + local sepAt = out:find(SEP, 1, true) + parseBattery(sepAt and out:sub(1, sepAt - 1) or out) + parseThreshold(sepAt and out:sub(sepAt + #SEP) or "") + publish() + end, READ_TIMEOUT_MS) + if not launched then + reading = false end - snapshot.hasThreshold = false end --- Profile + ETA in one guarded shell call, so update() never overruns its budget. local function probeProfileAndEta() if probing or not (HAS_PPD or HAS_UPOWER) then return @@ -205,7 +225,7 @@ noctalia.state.watch(COMMAND, function(cmd) return end v = math.max(50, math.min(100, math.floor(v + 0.5))) - snapshot.threshold = v -- optimistic; confirmed by pollThreshold + snapshot.threshold = v -- optimistic; confirmed by the next read publish() local path = sysfsBase() .. "/charge_control_end_threshold" noctalia.runAsync("echo " .. v .. " > " .. shellQuote(path), function(res) @@ -216,36 +236,31 @@ noctalia.state.watch(COMMAND, function(cmd) ) noctalia.log("threshold write failed: " .. (res.stderr or "")) end - pollThreshold() - publish() + readSysfs() end, PROBE_TIMEOUT_MS) end end) function update() - pollBattery() - pollThreshold() + readSysfs() if tick % PROBE_EVERY == 0 then probeProfileAndEta() end tick += 1 - publish() end function onConfigChanged() -- battery_device may have changed; re-read now. tick = 0 + reading = false probing = false - pollBattery() - pollThreshold() + readSysfs() probeProfileAndEta() - publish() end noctalia.setUpdateInterval(POLL_MS) --- Seed state before the first tick. -pollBattery() -pollThreshold() -probeProfileAndEta() +-- Seed state before the first async read completes. publish() +readSysfs() +probeProfileAndEta() From 28811607eb5d3fa4c144b3f9d670b387cd21ce9c Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Wed, 29 Jul 2026 20:51:53 +0200 Subject: [PATCH 6/8] Add thumbnail.webp --- battery-power-management/thumbnail.webp | Bin 13100 -> 50736 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/battery-power-management/thumbnail.webp b/battery-power-management/thumbnail.webp index 3eabd035fb61757fe75f08ba4afc3c91c93eba80..4b68364457ef2a554b923b74c71a366805a4cbf6 100644 GIT binary patch literal 50736 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 YW8>0xBohydUHHEf#16W(qj10g01B+#F#rGn literal 13100 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 tC&7ZG?2#?c!+YejK;uht Date: Thu, 30 Jul 2026 08:47:52 +0200 Subject: [PATCH 7/8] Finalize for submission: plugin_api, GPL-3.0 LICENSE, thumbnail, README screenshot --- battery-power-management/LICENSE | 674 ++++++++++++++++++++++++ battery-power-management/README.md | 2 + battery-power-management/plugin.toml | 2 +- battery-power-management/screenshot.png | Bin 0 -> 32741 bytes battery-power-management/thumbnail.webp | Bin 50736 -> 62850 bytes 5 files changed, 677 insertions(+), 1 deletion(-) create mode 100644 battery-power-management/LICENSE create mode 100644 battery-power-management/screenshot.png diff --git a/battery-power-management/LICENSE b/battery-power-management/LICENSE new file mode 100644 index 00000000..f288702d --- /dev/null +++ b/battery-power-management/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/battery-power-management/README.md b/battery-power-management/README.md index c2a924a1..f0c23b9b 100644 --- a/battery-power-management/README.md +++ b/battery-power-management/README.md @@ -8,6 +8,8 @@ charge-stop threshold — no root needed at runtime. > Ported from the Noctalia v4 (Quickshell/QML) plugin of the same name to the v5 > Luau plugin runtime. +![Battery & Power Management widget and panel](screenshot.png) + ## Plugin Manifest id `piero-93/battery-power-management`. It ships three entries that diff --git a/battery-power-management/plugin.toml b/battery-power-management/plugin.toml index b2e9122e..e0182119 100644 --- a/battery-power-management/plugin.toml +++ b/battery-power-management/plugin.toml @@ -1,7 +1,7 @@ id = "piero-93/battery-power-management" name = "Battery & Power Management" version = "1.0.0" -min_noctalia = "5.0.0" +plugin_api = 3 author = "piero-93" license = "GPL-3.0" icon = "battery-charging" diff --git a/battery-power-management/screenshot.png b/battery-power-management/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7ef4bdfc6f9a3e939aceafb8db34fbe9be8759 GIT binary patch literal 32741 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 X)#{oFS~}llP;+>Z)jegFRhMCub- literal 0 HcmV?d00001 diff --git a/battery-power-management/thumbnail.webp b/battery-power-management/thumbnail.webp index 4b68364457ef2a554b923b74c71a366805a4cbf6..28aff4544dd3ef9b39b79c780d06af44f739a88c 100644 GIT binary patch literal 62850 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≀knK}gTos@Ea97Uz;#|0mt#)wbfeBx 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 YW8>0xBohydUHHEf#16W(qj10g01B+#F#rGn From d31022055178bdbbb1f4e89c99ea59cd8f3e8637 Mon Sep 17 00:00:00 2001 From: Piero-93 Date: Fri, 31 Jul 2026 07:06:53 +0200 Subject: [PATCH 8/8] Ship en.json only; other locales are handled via Noctalia Translate --- battery-power-management/translations/it.json | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 battery-power-management/translations/it.json diff --git a/battery-power-management/translations/it.json b/battery-power-management/translations/it.json deleted file mode 100644 index 9e70edc3..00000000 --- a/battery-power-management/translations/it.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "status": { - "charging": "In carica", - "discharging": "In scarica", - "full": "Carica", - "not_charging": "Non in carica", - "unknown": "Sconosciuto" - }, - "tooltip": { - "level": "Livello", - "status": "Stato", - "power": "Potenza", - "remaining": "Rimanente", - "to_full": "Alla carica", - "profile": "Profilo" - }, - "panel": { - "power_profile": "Profilo energetico", - "charge_threshold": "Limite di carica", - "time_to_full": "Completa tra {time}", - "remaining": "{time} rimanenti", - "profile_power-saver": "Risparmio energetico", - "profile_balanced": "Bilanciato", - "profile_performance": "Prestazioni" - }, - "notify": { - "threshold_error_title": "Soglia di carica", - "threshold_error_body": "Impossibile scrivere il limite di carica. Controlla i permessi udev (vedi il README del plugin)." - }, - "settings": { - "colorize_by_profile": { - "label": "Colora in base al profilo", - "description": "Cambia il colore del widget a seconda del profilo energetico attivo" - }, - "color_power_saver": { - "label": "Colore Risparmio energetico", - "description": "Colore usato quando è attivo il profilo Risparmio energetico" - }, - "color_performance": { - "label": "Colore Prestazioni", - "description": "Colore usato quando è attivo il profilo Prestazioni" - }, - "show_profile": { - "label": "Mostra icona profilo", - "description": "Mostra l'icona del profilo energetico attivo nel widget" - }, - "show_balanced_icon": { - "label": "Mostra icona bilanciato", - "description": "Mostra l'icona del profilo anche quando è impostato su Bilanciato (solo se \"Mostra icona profilo\" è attivo)" - }, - "battery_device": { - "label": "Dispositivo batteria", - "description": "Nome sysfs della batteria, es. BAT0 o BAT1" - } - } -}