80 lines
1.7 KiB
Nix
80 lines
1.7 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;
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|