{ config, lib, pkgs, ... }: with lib; let cfg = config.gaming; in { options.gaming = { enable = mkEnableOption "Enable gaming stuff"; newWine = mkOption { type = types.bool; default = false; description = "If you want to include wine-staging as new-wine"; }; }; config = mkIf cfg.enable { home.packages = let newwine = (pkgs.wineFull.override { wineBuild = "wineWow"; wineRelease = "staging"; }); newwinetricks = pkgs.winetricks.override { wine = newwine; }; oldwine = pkgs.wineWowPackages.full; oldwinetricks = pkgs.winetricks.override { wine = oldwine; }; in with pkgs; [ oldwine oldwinetricks sc-controller ] ++ lib.optionals cfg.newWine [ ( pkgs.runCommand "new-wine-stuff" { } '' mkdir -p $out/bin ln -s ${newwine}/bin/wine $out/bin/new-wine ln -s ${newwine}/bin/winecfg $out/bin/new-winecfg ln -s ${newwinetricks}/bin/winetricks $out/bin/new-winetricks '' ) ]; }; }