feat(nix-monitor): add optimize store

This commit is contained in:
avivbintangaringga
2026-07-18 13:59:54 +07:00
parent f96cba053f
commit fd1014fc76
3 changed files with 48 additions and 0 deletions
+28
View File
@@ -119,6 +119,19 @@ local function render()
end
end
if not cfg("hide_optimize_button") then
table.insert(
buttons,
ui.button({
text = tr("panel.optimize"),
glyph = "database-cog",
flexGrow = 1,
variant = "primary",
onClick = "onOptimizeClicked",
})
)
end
if not cfg("hide_clean_button") then
table.insert(
buttons,
@@ -273,3 +286,18 @@ function onCleanClicked()
panel.close()
noctalia.runInTerminal(command)
end
function onOptimizeClicked()
local command = cfg("optimize_command")
if command == "" then
noctalia.notifyError(tr("notification.optimize_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
+14
View File
@@ -180,6 +180,13 @@ label_key = "setting.update_command.label"
description_key = "setting.update_command.description"
default = ""
[[setting]]
key = "optimize_command"
type = "string"
label_key = "setting.optimize_command.label"
description_key = "setting.optimize_command.description"
default = "nix-store --optimise -vv"
[[setting]]
key = "clean_command"
type = "string"
@@ -194,6 +201,13 @@ label_key = "setting.hide_update_button.label"
description_key = "setting.hide_update_button.description"
default = false
[[setting]]
key = "hide_optimize_button"
type = "bool"
label_key = "setting.hide_optimize_button.label"
description_key = "setting.hide_optimize_button.description"
default = false
[[setting]]
key = "hide_clean_button"
type = "bool"
+6
View File
@@ -7,11 +7,13 @@
"notification.update_is_available": "NixOS update is available!",
"notification.update_check_completed": "NixOS update check completed!",
"notification.update_command_is_empty": "Update command is empty!",
"notification.optimize_command_is_empty": "Optimize command is empty!",
"notification.clean_command_is_empty": "Clean command is empty!",
"panel.title": "Nix Monitor",
"panel.cancel": "Cancel",
"panel.update": "Update",
"panel.check": "Check",
"panel.optimize": "Optimize",
"panel.clean": "Clean",
"panel.local": "Local",
"panel.remote": "Remote",
@@ -50,10 +52,14 @@
"setting.branch.description": "Which nixpkgs branch to use",
"setting.update_command.label": "Update command",
"setting.update_command.description": "Command to run when clicking Update button",
"setting.optimize_command.label": "Optimize command",
"setting.optimize_command.description": "Command to run when clicking Optimize button",
"setting.clean_command.label": "Clean command",
"setting.clean_command.description": "Command to run when clicking Clean button",
"setting.hide_update_button.label": "Hide update button",
"setting.hide_update_button.description": "Whether to hide the update button on the panel",
"setting.hide_optimize_button.label": "Hide optimize button",
"setting.hide_optimize_button.description": "Whether to hide the optimize button on the panel",
"setting.hide_clean_button.label": "Hide clean button",
"setting.hide_clean_button.description": "Whether to hide the clean button on the panel",
"setting.close_on_enter.label": "Close on press Enter",