81 lines
1.9 KiB
Nix
81 lines
1.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
cfg = config.hive.wlogout;
|
|
in {
|
|
options.hive.wlogout = {
|
|
enable = lib.mkEnableOption "Enable Wlogout";
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
programs.wlogout.enable = true;
|
|
programs.wlogout.layout = [
|
|
{
|
|
label = "shutdown";
|
|
action = "systemctl poweroff";
|
|
text = "Shutdown";
|
|
keybind = "s";
|
|
}
|
|
{
|
|
label = "reboot";
|
|
action = "systemctl reboot";
|
|
text = "Reboot";
|
|
keybind = "r";
|
|
}
|
|
{
|
|
label = "logout";
|
|
action = "loginctl kill-session $XDG_SESSION_ID";
|
|
text = "Logout";
|
|
keybind = "e";
|
|
}
|
|
{
|
|
label = "hibernate";
|
|
action = "hyprlock --immediate & (sleep 1; systemctl hibernate -i)";
|
|
text = "Hibernate";
|
|
keybind = "h";
|
|
}
|
|
{
|
|
label = "lock";
|
|
action = "hyprlock";
|
|
text = "Lock";
|
|
keybind = "l";
|
|
}
|
|
];
|
|
programs.wlogout.style = builtins.readFile ./style.css;
|
|
xdg.enable = true;
|
|
xdg.configFile = {
|
|
"wlogout/icons/hibernate.png" = {
|
|
source = ./icons/hibernate.png;
|
|
};
|
|
"wlogout/icons/lock.png" = {
|
|
source = ./icons/lock.png;
|
|
};
|
|
"wlogout/icons/logout.png" = {
|
|
source = ./icons/logout.png;
|
|
};
|
|
"wlogout/icons/power.png" = {
|
|
source = ./icons/power.png;
|
|
};
|
|
"wlogout/icons/restart.png" = {
|
|
source = ./icons/restart.png;
|
|
};
|
|
"wlogout/icons/hibernate-hover.png" = {
|
|
source = ./icons/hibernate-hover.png;
|
|
};
|
|
"wlogout/icons/lock-hover.png" = {
|
|
source = ./icons/lock-hover.png;
|
|
};
|
|
"wlogout/icons/logout-hover.png" = {
|
|
source = ./icons/logout-hover.png;
|
|
};
|
|
"wlogout/icons/power-hover.png" = {
|
|
source = ./icons/power-hover.png;
|
|
};
|
|
"wlogout/icons/restart-hover.png" = {
|
|
source = ./icons/restart-hover.png;
|
|
};
|
|
};
|
|
};
|
|
}
|