dotfiles

My PC Dotfiles & Website

wine.nix (1019B)


## Wine Configuration ##
_: {
  flake.modules = {
    nixos.wine = {
      config,
      lib,
      pkgs,
      ...
    }: let
      pkg = config.apps.wine;
    in {
      options.apps.wine = lib.mkOption {
        description = "Package to use for 'wine'";
        type = lib.types.package;
        default = pkgs.wineWow64Packages.stagingFull;
      };

      config = {
        services.samba.enable = true;
        hardware.xpadneo.enable = true;
        hardware.graphics.enable32Bit = true;

        environment.systemPackages = with pkgs.wine // pkgs; (
          builtins.map
          (
            name:
              if (name.override.__functionArgs ? wine)
              then name.override {wine = pkg;}
              else name
          )
          [
            pkg
            winetricks
            playonlinux
          ]
        );
      };
    };

    homeManager.wine = _: {
      home.persist.directories = [
        ".wine"
        ".cache/wine"
        ".cache/winetricks"
      ];
    };
  };
}