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 = lib.optionals cfg.steam.enable [
42 pkgs.steamtinkerlaunch
43 pkgs.protonplus
44 ];
45 };
46}