Files
community-plugins/arch-updater/plugin.toml
T
YuutoandGitHub 4fcd5f1686 fix(arch-updater): tighten package list UI and fix Dismiss/Update panel behavior (#289)
* fix(arch-updater): tighten package list spacing and icon size

* fix(arch-updater): make Dismiss actually clear the pending list

* fix(arch-updater): make hitting update close the panel

* feat(arch-updater): add per-source icons to the package list header

* feat(arch-updater): add an activity graph to the panel

Tracks the pending-update count across recent checks and when the last
update ran, persisted to disk so it survives restarts. Off also stops
recording history, not just hiding it.

* feat(arch-updater): show per-point detail on activity graph hover

ui.graph has no pointer props of its own, so a row of ghost buttons
sits under the line as per-point hit targets, each with a native
tooltip. History entries now carry a timestamp and whether the check
followed an update run, so hovering a point says when it happened and
either its pending count or "Updated".

* fix(arch-updater): load activity history at startup, not on first check

loadHistoryState() only ran lazily inside recordCheck/recordUpdateRun,
so a freshly started service published an empty history until a check
completed, hiding the graph even when prior sessions had data on disk.

* fix(arch-updater): render activity graph with sharp points, not curves
2026-08-07 22:27:08 -04:00

177 lines
4.9 KiB
TOML

id = "yuuto/arch-updater"
name = "Arch Updater"
version = "1.1.0"
plugin_api = 9
author = "yuuto"
license = "MIT"
icon = "package"
description = "Check pacman, AUR and Flatpak updates, get an Arch news and reboot heads-up, then upgrade from a terminal."
dependencies = ["pacman-contrib", "awk", "flatpak", "pacman", "paru", "sed", "sh", "sudo", "test", "uname", "xdg-open", "yay"]
tags = ["arch", "bar", "panel", "launcher", "system", "utility"]
# ── General ──────────────────────────────────────────────────────────────────
[[setting]]
key = "aur_helper"
type = "select"
label_key = "settings.aur_helper.label"
description_key = "settings.aur_helper.description"
default = "auto"
options = [
{ value = "auto", label_key = "settings.aur_helper.options.auto" },
{ value = "yay", label_key = "settings.aur_helper.options.yay" },
{ value = "paru", label_key = "settings.aur_helper.options.paru" },
{ value = "custom", label_key = "settings.aur_helper.options.custom" },
{ value = "off", label_key = "settings.aur_helper.options.off" },
]
[[setting]]
key = "aur_check_cmd"
type = "string"
label_key = "settings.aur_check_cmd.label"
description_key = "settings.aur_check_cmd.description"
default = ""
visible_when = { key = "aur_helper", values = ["custom"] }
[[setting]]
key = "flatpak_enabled"
type = "bool"
label_key = "settings.flatpak_enabled.label"
description_key = "settings.flatpak_enabled.description"
default = true
[[setting]]
key = "ignore_packages"
type = "string_list"
label_key = "settings.ignore_packages.label"
description_key = "settings.ignore_packages.description"
default = []
[[setting]]
key = "auto_check_hours"
type = "int"
label_key = "settings.auto_check_hours.label"
description_key = "settings.auto_check_hours.description"
default = 0
min = 0
max = 168
[[setting]]
key = "notify_on_updates"
type = "bool"
label_key = "settings.notify_on_updates.label"
description_key = "settings.notify_on_updates.description"
default = true
# ── Extras (not in the v4 plugin) ───────────────────────────────────────────
[[setting]]
key = "show_download_size"
type = "bool"
label_key = "settings.show_download_size.label"
description_key = "settings.show_download_size.description"
default = true
[[setting]]
key = "check_arch_news"
type = "bool"
label_key = "settings.check_arch_news.label"
description_key = "settings.check_arch_news.description"
default = true
[[setting]]
key = "check_reboot_needed"
type = "bool"
label_key = "settings.check_reboot_needed.label"
description_key = "settings.check_reboot_needed.description"
default = true
# ── Activity ─────────────────────────────────────────────────────────────────
[[setting]]
key = "show_activity_graph"
type = "bool"
label_key = "settings.show_activity_graph.label"
description_key = "settings.show_activity_graph.description"
default = true
[[setting]]
key = "activity_history_length"
type = "int"
label_key = "settings.activity_history_length.label"
description_key = "settings.activity_history_length.description"
default = 10
min = 3
max = 30
visible_when = { key = "show_activity_graph", values = ["true"] }
# ── Update run ───────────────────────────────────────────────────────────────
[[setting]]
key = "terminal"
type = "string"
label_key = "settings.terminal.label"
description_key = "settings.terminal.description"
default = ""
[[setting]]
key = "assume_yes"
type = "bool"
label_key = "settings.assume_yes.label"
description_key = "settings.assume_yes.description"
default = false
advanced = true
[[setting]]
key = "update_cmd"
type = "string"
label_key = "settings.update_cmd.label"
description_key = "settings.update_cmd.description"
default = ""
advanced = true
[[service]]
id = "service"
entry = "service.luau"
[[panel]]
id = "panel"
entry = "panel.luau"
width = 420
height = 540
placement = "attached"
position = "auto"
open_near_click = true
[[widget]]
id = "widget"
entry = "widget.luau"
[[widget.setting]]
key = "glyph"
type = "glyph"
label_key = "settings.glyph.label"
description_key = "settings.glyph.description"
default = "package"
[[widget.setting]]
key = "show_count"
type = "bool"
label_key = "settings.show_count.label"
description_key = "settings.show_count.description"
default = true
[[widget.setting]]
key = "hide_on_empty"
type = "bool"
label_key = "settings.hide_on_empty.label"
description_key = "settings.hide_on_empty.description"
default = false
[[launcher_provider]]
id = "launcher"
entry = "launcher.luau"
prefix = "arch"
glyph = "package"
include_in_global_search = false