118 lines
2.9 KiB
Nix

{ config, lib, ... }:
let
inherit (lib) mkEnableOption mkIf;
inherit (config.theme) colors fonts;
cfg = config.ataraxia.wayland.wlogout;
in
{
options.ataraxia.wayland.wlogout = {
enable = mkEnableOption "Enable wlogout";
};
config = mkIf cfg.enable {
programs.wlogout = {
enable = true;
layout = [
{
label = "lock";
action = "";
text = "Lock";
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
}
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
}
{
label = "logout";
action = "hyprctl dispatch exit 0";
text = "Logout";
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
}
];
style = mkIf (!config.catppuccin.wlogout.enable) ''
window {
font-family: "${fonts.mono.family}";
font-size: 18pt;
color: ${colors.color5};
background-color: alpha(${colors.color0}, 0.8);
}
button {
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
border: none;
background-color: alpha(${colors.color0}, 0);
color: ${colors.color14};
}
button:hover {
background-color: alpha(${colors.color2}, 0.1);
}
button:focus {
background-color: ${colors.color14};
color: ${colors.color0};
}
#lock {
background-image: image(url("${./lock.png}"));
padding: 35px;
}
#lock:focus {
background-image: image(url("${./lock-hover.png}"));
padding: 35px;
}
#logout {
background-image: image(url("${./logout.png}"));
padding: 30px;
}
#logout:focus {
background-image: image(url("${./logout-hover.png}"));
padding: 30px;
}
#suspend {
background-image: image(url("${./sleep.png}"));
padding: 30px;
}
#suspend:focus {
background-image: image(url("${./sleep-hover.png}"));
padding: 30px;
}
#shutdown {
background-image: image(url("${./power.png}"));
padding: 30px;
}
#shutdown:focus {
background-image: image(url("${./power-hover.png}"));
padding: 30px;
}
#reboot {
background-image: image(url("${./restart.png}"));
padding: 30px;
}
#reboot:focus {
background-image: image(url("${./restart-hover.png}"));
padding: 30px;
}
'';
};
catppuccin.wlogout = {
iconStyle = "wlogout";
extraStyle = ''
window {
font-family: "${fonts.mono.family}";
font-size: 18pt;
}
'';
};
};
}