{
  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;
      };
    };
  };
}
