{ config, lib, pkgs, ... }: let inherit (lib) mkOption mkIf mkMerge types; cfg = config.utils; in { imports = [ ./subs/sxhkd.nix ../shared/hyprland.nix ]; options.utils = { rofi.enable = mkOption { default = true; type = types.bool; }; sxhkd.enable = mkOption { default = true; type = types.bool; }; flameshot.enable = mkOption { default = true; type = types.bool; }; mako.enable = mkOption { default = config.shared.hyprland.enable; type = types.bool; }; }; config = { programs = mkMerge [ { rofi.enable = cfg.rofi.enable; } (mkIf (!config.shared.hyprland.enable) { rofi.package = pkgs.rofi; }) (mkIf config.shared.hyprland.enable { rofi.package = pkgs.rofi-wayland; }) ]; subs.sxhkd = mkIf (!config.shared.hyprland.enable && cfg.sxhkd.enable) { enable = true; }; services.flameshot = { enable = cfg.flameshot.enable; package = pkgs.flameshot.override { enableWlrSupport = true; }; settings = { General = { savePathFixed = false; saveAfterCopy = true; showStartupLaunchMessage = false; useJpgForClipboard = true; }; }; }; services.mako = { enable = cfg.mako.enable; settings = { sort = "-time"; layer = "overlay"; background-color = "#1E1E1E"; border-color = "#838383"; border-size = 1; border-radius = 5; max-icon-size = 64; padding = 10; font = "Inter 10"; default-timeout = 5000; "urgency=high" = { background-color = "#EF5350"; border-color = "#22DA6E"; default-timeout = 0; }; }; }; }; }