My Nix Configuration
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.py.programs; 9 inherit (lib) mkEnableOption mkIf; 10in 11{ 12 options.py.programs = { 13 appimage.enable = mkEnableOption "Appimage"; 14 dconf.enable = mkEnableOption "dconf"; 15 fish.enable = mkEnableOption "fish shell"; 16 less.enable = mkEnableOption "less"; 17 noisetorch.enable = mkEnableOption "NoiseTorch"; 18 steam.enable = mkEnableOption "Steam"; 19 wireshark.enable = mkEnableOption "Wireshark"; 20 }; 21 config = { 22 programs = { 23 appimage = mkIf cfg.appimage.enable { 24 enable = true; 25 binfmt = true; 26 }; 27 dconf.enable = mkIf cfg.dconf.enable true; 28 fish.enable = mkIf cfg.fish.enable true; 29 less.enable = mkIf cfg.less.enable true; 30 noisetorch.enable = mkIf cfg.noisetorch.enable true; 31 steam = mkIf cfg.steam.enable { 32 enable = true; 33 protontricks.enable = true; 34 gamescopeSession.enable = true; 35 extraCompatPackages = with pkgs; [ 36 steamtinkerlaunch 37 ]; 38 }; 39 wireshark.enable = mkIf cfg.wireshark.enable true; 40 }; 41 environment.systemPackages = 42 [ ] 43 ++ lib.optionals cfg.steam.enable [ 44 pkgs.steamtinkerlaunch 45 pkgs.protonplus 46 ]; 47 }; 48}