{ config, lib, pkgs, ... }: let cfg = config.py.programs; inherit (lib) mkEnableOption mkIf; in { options.py.programs = { appimage.enable = mkEnableOption "Appimage"; dconf.enable = mkEnableOption "dconf"; fish.enable = mkEnableOption "fish shell"; less.enable = mkEnableOption "less"; noisetorch.enable = mkEnableOption "NoiseTorch"; steam.enable = mkEnableOption "Steam"; wireshark.enable = mkEnableOption "Wireshark"; }; config = { programs = { appimage = mkIf cfg.appimage.enable { enable = true; binfmt = true; }; dconf.enable = mkIf cfg.dconf.enable true; fish.enable = mkIf cfg.fish.enable true; less.enable = mkIf cfg.less.enable true; noisetorch.enable = mkIf cfg.noisetorch.enable true; steam = mkIf cfg.steam.enable { enable = true; protontricks.enable = true; gamescopeSession.enable = true; extraCompatPackages = with pkgs; [ steamtinkerlaunch ]; }; wireshark.enable = mkIf cfg.wireshark.enable true; }; environment.systemPackages = [ ] ++ lib.optionals cfg.steam.enable [ pkgs.steamtinkerlaunch pkgs.protonplus ]; }; }