From 7133dfb04ac843886739b16445bad6c34199e3ca Mon Sep 17 00:00:00 2001 From: avivbintangaringga Date: Tue, 14 Jul 2026 11:32:40 +0700 Subject: [PATCH] feat(nix-monitor): add nix-monitor plugin --- nix-monitor/README.md | 7 + nix-monitor/nix_monitor.luau | 55 ++++++++ nix-monitor/nix_monitor_service.luau | 111 ++++++++++++++++ nix-monitor/panel.luau | 186 +++++++++++++++++++++++++++ nix-monitor/plugin.toml | 164 +++++++++++++++++++++++ nix-monitor/thumbnail.webp | Bin 0 -> 51640 bytes nix-monitor/translations/en.json | 46 +++++++ 7 files changed, 569 insertions(+) create mode 100644 nix-monitor/README.md create mode 100644 nix-monitor/nix_monitor.luau create mode 100644 nix-monitor/nix_monitor_service.luau create mode 100644 nix-monitor/panel.luau create mode 100644 nix-monitor/plugin.toml create mode 100644 nix-monitor/thumbnail.webp create mode 100644 nix-monitor/translations/en.json diff --git a/nix-monitor/README.md b/nix-monitor/README.md new file mode 100644 index 0000000..c251f59 --- /dev/null +++ b/nix-monitor/README.md @@ -0,0 +1,7 @@ +# Nix Monitor + +![thumbnail](thumbnail.webp) + +*Nix Monitor* checks Nixpkgs update by comparing local nix hash and remote nixpkgs's hash. It also can run update and clean command. + +No AI is used here but this is my first time writing Luau and plugin in general, so expect some bug. PRs are welcomed! diff --git a/nix-monitor/nix_monitor.luau b/nix-monitor/nix_monitor.luau new file mode 100644 index 0000000..b65d110 --- /dev/null +++ b/nix-monitor/nix_monitor.luau @@ -0,0 +1,55 @@ + +function tr(key) + return noctalia.tr(key) +end + +function barCfg(key) + return barWidget.getConfig(key) +end + +function getState(key) + return noctalia.state.get(key) +end + +function displayWidget(glyph: string, text: string, color: string?) + if color == nil then + color = "on_surface" + end + + if barCfg("colorize_text") then + barWidget.setColor(color) + end + + if barCfg("colorize_glyph") then + barWidget.setGlyphColor(color) + end + + if barCfg("show_glyph") then + barWidget.setGlyph(glyph) + end + + if barCfg("show_text") then + barWidget.setText(text) + end +end + +function update() + if getState("isRunning") then + displayWidget(barCfg("checking_glyph"), tr("bar.checking"), barCfg("checking_color")) + else + if getState("isUpdateAvailable") then + displayWidget(barCfg("update_available_glyph"), tr("bar.update_available"), barCfg("update_available_color")) + else + if getState("localHash") == "n/a" or getState("remoteHash") == "n/a" then + displayWidget(barCfg("unknown_glyph"), tr("bar.unknown"), barCfg("unknown_color")) + else + displayWidget(barCfg("up_to_date_glyph"), tr("bar.up_to_date"), barCfg("up_to_date_color")) + end + end + end + +end + +function onClick() + noctalia.togglePanel("avivbintangaringga/nix-monitor:panel") +end diff --git a/nix-monitor/nix_monitor_service.luau b/nix-monitor/nix_monitor_service.luau new file mode 100644 index 0000000..a12fc66 --- /dev/null +++ b/nix-monitor/nix_monitor_service.luau @@ -0,0 +1,111 @@ +noctalia.setUpdateInterval(100) + +function tr(key) + return noctalia.tr(key) +end + +function cfg(key) + return noctalia.getConfig(key) +end + +function getState(key) + return noctalia.state.get(key) +end + +function setState(key, val) + noctalia.state.set(key, val) +end + +function watchState(key, cb) + noctalia.state.watch(key, cb) +end + +local branch = cfg("branch") +local updateCheckInterval = cfg("check_interval") +local localHashCmd = "nixos-version --hash 2> /dev/null | cut -c -7" +local remoteHashCmd = "git ls-remote https://github.com/NixOS/nixpkgs " .. branch .. " 2>/dev/null | cut -c 1-7" +local completedCommands = 0 + +setState("lastCheckTime", 0) +setState("lastCheckTimeStr", "n/a") +setState("localHash", "n/a") +setState("remoteHash", "n/a") +setState("isRunning", false) +setState("isUpdateAvailable", false) + +function update() + if (os.time() - getState("lastCheckTime")) >= 60 * updateCheckInterval then + checkUpdate() + end +end + +function checkUpdate() + if getState("isRunning") then + return + end + + setState("lastCheckTime", os.time()) + noctalia.runAsync("date", function(date) setState("lastCheckTimeStr", date.stdout) end) + + if cfg("show_checking_notification") then + noctalia.notify(tr("notification.checking_update")) + end + + setState("isRunning", true) + + completedCommands = 0 + + noctalia.runAsync(localHashCmd, getLocalHash) + noctalia.runStream(remoteHashCmd, getRemoteHash) +end + +function getLocalHash(result) + if getState("isRunning") ~= true then + return + end + + setState("localHash", result.stdout) + completedCommands += 1 + onHashCheckCompleted() +end + +function getRemoteHash(line) + if getState("isRunning") ~= true then + return + end + + setState("remoteHash", line) + completedCommands += 1 + onHashCheckCompleted() +end + +function onHashCheckCompleted() + if completedCommands < 2 then + return + end + + if getState("localHash") ~= getState("remoteHash") then + setState("isUpdateAvailable", true) + if cfg("show_update_notification") then + noctalia.notify(tr("notification.update_is_available")) + end + end + + if cfg("show_checking_notification") then + noctalia.notify(tr("notification.update_check_completed")) + end + + setState("isRunning", false) +end + +watchState("command", function(command) + if command == "check" then + checkUpdate() + end + + if command == "cancel" then + noctalia.runAsync(`kill $(ps -ef | grep "git ls-remote https://github.com/NixOS/nixpkgs" | grep -v grep | awk '\{print $2\}')`) + setState("isRunning", false) + completedCommands = 0 + end +end) diff --git a/nix-monitor/panel.luau b/nix-monitor/panel.luau new file mode 100644 index 0000000..2704d31 --- /dev/null +++ b/nix-monitor/panel.luau @@ -0,0 +1,186 @@ +function tr(key) + return noctalia.tr(key) +end + +function barCfg(key) + return barWidget.getConfig(key) +end + +function cfg(key) + return noctalia.getConfig(key) +end + +function getState(key) + return noctalia.state.get(key) +end + +function setState(key, val) + noctalia.state.set(key, val) +end + +function watchState(key, cb) + noctalia.state.watch(key, cb) +end + +local function labelBox(subtext, text, glyph) + return ui.column({ + fill = "surface/0.7", + flexGrow = 1, + height = 100, + radius = 8, + align = "center", + padding = 12, + justify = "space_between" + }, { + ui.glyph({ + name = glyph, + size = 30 + }), + ui.label({ + text = text, + fontWeight = "bold" + }), + ui.label({ + text = subtext, + fontSize = 12, + fontWeight = "medium" + }), + }) +end + +local function render() + local firstBtn = btnCheck + + if getState("isRunning") then + firstBtn = ui.button({ + text = tr("panel.cancel"), + glyph = "cancel", + flexGrow = 1, + variant = "destructive", + onClick = "onCancelClicked", + }) + else + if getState("isUpdateAvailable") then + firstBtn = ui.button({ + text = tr("panel.update"), + glyph = "progress-down", + flexGrow = 1, + variant = "primary", + onClick = "onUpdateClicked", + }) + else + firstBtn = ui.button({ + text = tr("panel.check"), + glyph = "search", + flexGrow = 1, + variant = "outline", + onClick = "onCheckClicked", + }) + end + end + + local lastCheckTimeStr = getState("lastCheckTimeStr") + + panel.render( + ui.column({ + gap = 8 + }, { + ui.row({ + justify = "space_between", + align = "center" + }, { + ui.label({ + text = tr("panel.title"), + fontSize = 20, + }), + + ui.label({ + text = cfg("branch"), + fontSize = 14, + }), + }), + ui.separator({ + thickness = 2, + orientation = "horizontal", + spacing = 4 + }), + ui.row({ + gap = 8, + align = "center", + justify = "space_between" + }, { + labelBox(tr("panel.local"), getState("localHash"), "devices-pc"), + labelBox(tr("panel.remote"), getState("remoteHash"), "world"), + }), + ui.separator({ + thickness = 2, + orientation = "horizontal", + spacing = 4 + }), + ui.label({ + text = `{tr("panel.last_checked")}: {lastCheckTimeStr}` + }), + ui.row({ + gap = 8, + align = "center", + justify = "space_between" + }, { + firstBtn, + ui.button({ + text = tr("panel.clean"), + glyph = "trash", + flexGrow = 1, + variant = "destructive", + onClick = "onCleanClicked", + }), + }) + }) + ) +end + +watchState("isRunning", render) +watchState("lastCheckTimeStr", render) +watchState("localHash", render) +watchState("remoteHash", render) + +function onOpen(_ctx) + render() +end + +function onCheckClicked() + setState("command", "check") +end + +function onCancelClicked() + setState("command", "cancel") +end + +function onUpdateClicked() + command = cfg("update_command") + if command == "" then + noctalia.notifyError(tr("notification.update_command_is_empty")) + return + end + + if cfg("close_on_enter") then + command = `{command} && echo && read -p "{tr("terminal.press_enter_to_exit")}"` + end + + panel.close() + noctalia.runInTerminal(command) +end + +function onCleanClicked() + command = cfg("clean_command") + if command == "" then + noctalia.notifyError(tr("notification.clean_command_is_empty")) + return + end + + if cfg("close_on_enter") then + command = `{command} && echo && read -p "{tr("terminal.press_enter_to_exit")}"` + end + + panel.close() + noctalia.runInTerminal(command) +end diff --git a/nix-monitor/plugin.toml b/nix-monitor/plugin.toml new file mode 100644 index 0000000..4e34514 --- /dev/null +++ b/nix-monitor/plugin.toml @@ -0,0 +1,164 @@ +id = "avivbintangaringga/nix-monitor" +name = "Nix Monitor" +version = "1.0.0" +min_noctalia = "5.0.0" +author = "avivbintangaringga" +description = "Nixpkgs update monitor" +tags = [ "nix", "utility" ] +dependencies = [ "nixos-version", "git", "pkill" ] + +[[widget]] +id = "Nix Monitor" +entry = "nix_monitor.luau" + +[[widget.setting]] +key = "show_text" +type = "boolean" +label_key = "setting.widget.show_text.label" +default = true + +[[widget.setting]] +key = "colorize_text" +type = "boolean" +label_key = "setting.widget.colorize_text.label" +default = false + +[[widget.setting]] +key = "show_glyph" +type = "boolean" +label_key = "setting.widget.show_glyph.label" +default = true + +[[widget.setting]] +key = "colorize_glyph" +type = "boolean" +label_key = "setting.widget.colorize_glyph.label" +default = true + +[[widget.setting]] +key = "up_to_date_glyph" +type = "glyph" +label_key = "setting.widget.up_to_date_glyph.label" +default = "rosette-discount-check" + +[[widget.setting]] +key = "up_to_date_color" +type = "color" +label_key = "setting.widget.up_to_date_color.label" +default = "#57ff57" + +[[widget.setting]] +key = "checking_glyph" +type = "glyph" +label_key = "setting.widget.checking_glyph.label" +default = "loader-3" + +[[widget.setting]] +key = "checking_color" +type = "color" +label_key = "setting.widget.checking_color.label" +default = "#ffeb57" + +[[widget.setting]] +key = "update_available_glyph" +type = "glyph" +label_key = "setting.widget.update_available_glyph.label" +default = "cloud-download" + +[[widget.setting]] +key = "update_available_color" +type = "color" +label_key = "setting.widget.update_available_color.label" +default = "#ff5757" + +[[widget.setting]] +key = "unknown_glyph" +type = "glyph" +label_key = "setting.widget.unknown_glyph.label" +default = "cloud-question" + +[[widget.setting]] +key = "unknown_color" +type = "color" +label_key = "setting.widget.unknown_color.label" +default = "on_surface" + +[[setting]] +key = "check_interval" +type = "int" +label_key = "setting.check_interval.label" +description_key = "setting.check_interval.description" +default = 60 +min = 10 + +[[setting]] +key = "show_checking_notification" +type = "boolean" +label_key = "setting.checking_notification.label" +description_key = "setting.checking_notification.description" +default = false + +[[setting]] +key = "show_update_notification" +type = "boolean" +label_key = "setting.show_update_notification.label" +description_key = "setting.show_update_notification.description" +default = true + +[[setting]] +key = "branch" +type = "select" +label_key = "setting.branch.label" +description_key = "setting.branch.description" +options = [ + { value = "master", label = "Master" }, + { value = "nixos-unstable", label = "NixOS Unstable" }, + { value = "nixos-unstable-small", label = "NixOS Unstable Small" }, + { value = "nixos-25.11", label = "NixOS 25.11" }, + { value = "nixos-25.05", label = "NixOS 25.05" }, + { value = "nixos-24.11", label = "NixOS 24.11" }, + { value = "nixos-24.05", label = "NixOS 24.05" }, + { value = "nixos-23.11", label = "NixOS 23.11" }, + { value = "nixos-23.05", label = "NixOS 23.05" }, + { value = "nixos-25.11-small", label = "NixOS 25.11 Small" }, + { value = "nixos-25.05-small", label = "NixOS 25.05 Small" }, + { value = "nixos-24.11-small", label = "NixOS 24.11 Small" }, + { value = "nixos-24.05-small", label = "NixOS 24.05 Small" }, + { value = "nixos-23.11-small", label = "NixOS 23.11 Small" }, + { value = "nixos-23.05-small", label = "NixOS 23.05 Small" }, +] +default = "nixos-unstable" + +[[setting]] +key = "update_command" +type = "string" +label_key = "setting.update_command.label" +description_key = "setting.update_command.description" +default = "" + +[[setting]] +key = "clean_command" +type = "string" +label_key = "setting.clean_command.label" +description_key = "setting.clean_command.description" +default = "nh clean all" + +[[setting]] +key = "close_on_enter" +type = "boolean" +label_key = "setting.close_on_enter.label" +description_key = "setting.close_on_enter.description" +default = true + +[[panel]] +id = "panel" +entry = "panel.luau" +placement = "attached" +position = "auto" +open_near_click = true +width = 420 +height = 290 + +[[service]] +id = "service" +entry = "nix_monitor_service.luau" diff --git a/nix-monitor/thumbnail.webp b/nix-monitor/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..a3137bd0aa0003e4807a073df328302213d2dc28 GIT binary patch literal 51640 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