Files
cnix/modules/home/programs/pkgs/default.nix
2025-07-23 13:41:46 +02:00

112 lines
2.4 KiB
Nix

{
pkgs,
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types mkMerge;
cfg = config.home.programs.pkgs;
in {
options = {
home.programs.pkgs = {
enable = mkEnableOption "Enables miscellaneous utility apps";
common.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to install common packages.";
};
desktop.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to install desktop-specific packages.";
};
laptop.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to install laptop-specific packages.";
};
server.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to install server-specific packages.";
};
dev.enable = mkOption {
type = types.bool;
default = false;
description = "Whether to install development-specific packages.";
};
};
};
config = mkIf cfg.enable {
programs = {
btop = {
enable = true;
package = pkgs.btop.override {rocmSupport = true;};
settings = {
color_theme = "gruvbox_material_dark";
};
};
};
home.packages = with pkgs;
mkMerge [
[
cmatrix
xcur2png
ripgrep
file
fd
gnused
nix-tree
wireguard-tools
unzip
zip
gnutar
p7zip
]
(mkIf cfg.common.enable [
keepassxc
usbimager
nwg-look
pavucontrol
gnome-calculator
slurp
grimblast
tesseract
calcurse
exiftool
hyprpicker
libnotify
pamixer
oculante
adwaita-icon-theme
qt5.qtwayland
qt6.qtwayland
wl-clipboard
wpa_supplicant
unrar
material-icons
material-symbols
feh
])
(mkIf cfg.desktop.enable [
protontricks
monero-gui
lutris
])
(mkIf cfg.laptop.enable [
])
(mkIf cfg.server.enable [
nvtopPackages.full
])
(mkIf cfg.dev.enable [
])
];
};
}