64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{config, lib, ...}:
|
|
let
|
|
cfg = config.sharedPrograms;
|
|
in
|
|
{
|
|
options.sharedPrograms = {
|
|
enable = lib.mkEnableOption "enable all basic programs with Stylix auto-theming";
|
|
|
|
bat.enable = lib.mkEnableOption "enable bat (cat replacement)";
|
|
fzf.enable = lib.mkEnableOption "enable fzf (fuzzy finder)";
|
|
btop.enable = lib.mkEnableOption "enable btop (system monitor)";
|
|
mpv.enable = lib.mkEnableOption "enable mpv (media player)";
|
|
wofi.enable = lib.mkEnableOption "enable wofi (application launcher)";
|
|
foot.enable = lib.mkEnableOption "enable foot (terminal emulator)";
|
|
};
|
|
|
|
config = lib.mkMerge [
|
|
# When sharedPrograms.enable is true, enable all programs
|
|
(lib.mkIf cfg.enable {
|
|
sharedPrograms.bat.enable = lib.mkDefault true;
|
|
sharedPrograms.fzf.enable = lib.mkDefault true;
|
|
sharedPrograms.btop.enable = lib.mkDefault true;
|
|
sharedPrograms.mpv.enable = lib.mkDefault true;
|
|
sharedPrograms.wofi.enable = lib.mkDefault true;
|
|
sharedPrograms.foot.enable = lib.mkDefault true;
|
|
})
|
|
|
|
# Individual program configurations
|
|
(lib.mkIf cfg.bat.enable {
|
|
programs.bat.enable = true;
|
|
})
|
|
|
|
(lib.mkIf cfg.fzf.enable {
|
|
programs.fzf = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
})
|
|
|
|
(lib.mkIf cfg.btop.enable {
|
|
programs.btop.enable = true;
|
|
})
|
|
|
|
(lib.mkIf cfg.mpv.enable {
|
|
programs.mpv.enable = true;
|
|
})
|
|
|
|
(lib.mkIf cfg.wofi.enable {
|
|
programs.wofi.enable = true;
|
|
})
|
|
|
|
(lib.mkIf cfg.foot.enable {
|
|
programs.foot = {
|
|
enable = true;
|
|
settings = {
|
|
main = {
|
|
pad = "4x4";
|
|
};
|
|
};
|
|
};
|
|
})
|
|
];
|
|
}
|