.hive/modules/home/wlogout/default.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;
};
};
};
}