snowflake/user/utils.nix
2025-06-05 00:28:43 +08:00

81 lines
1.8 KiB
Nix

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