mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 19:46:20 +00:00
refactor: make the whole thing more generic
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import App from "resource:///com/github/Aylur/ags/app.js";
|
||||
import Service from "resource:///com/github/Aylur/ags/service.js";
|
||||
|
||||
class PowerMenu extends Service {
|
||||
static {
|
||||
Service.register(
|
||||
this,
|
||||
{},
|
||||
{
|
||||
title: ["string"],
|
||||
cmd: ["string"],
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
#title = "";
|
||||
#cmd = "";
|
||||
|
||||
get title() {
|
||||
return this.#title;
|
||||
}
|
||||
get cmd() {
|
||||
return this.#cmd;
|
||||
}
|
||||
|
||||
/** @param {'sleep' | 'reboot' | 'logout' | 'shutdown'} action */
|
||||
action(action) {
|
||||
[this.#cmd, this.#title] = {
|
||||
sleep: ["systemctl suspend", "Sleep"],
|
||||
reboot: ["systemctl reboot", "Reboot"],
|
||||
logout: ["pkill Hyprland", "Log Out"],
|
||||
shutdown: ["shutdown now", "Shutdown"],
|
||||
}[action];
|
||||
|
||||
this.notify("cmd");
|
||||
this.notify("title");
|
||||
this.emit("changed");
|
||||
App.closeWindow("powermenu");
|
||||
App.openWindow("verification");
|
||||
}
|
||||
}
|
||||
|
||||
export default new PowerMenu();
|
||||
Reference in New Issue
Block a user