{ lib, config, ... }: let inherit (lib) mkIf mkEnableOption; inherit (builtins) concatStringsSep; cfg = config.horseman.dots.hypr.hypridle; username = config.horseman.username; hypr = config.horseman.wm.hyprland.config; in { options = { horseman.dots.hypr.hypridle = { enable = mkEnableOption "~/.config/hypr/hypridle.conf"; }; }; config = mkIf cfg.enable { home-manager.users.${username}.xdg.configFile."hypr/hypridle.conf".text = '' general { lock_cmd = ${hypr.sleep.lockCommand} } ${concatStringsSep "\n\n" (map (lis: '' listener { timeout = ${toString lis.timeout} on-timeout = ${lis.onTimeout} on-resume = ${lis.onResume} } '') hypr.sleep.listeners)} ''; }; }