diff options
| author | Leander Scherer <leander@schererleander.de> | 2026-06-14 23:55:47 +0200 |
|---|---|---|
| committer | Leander Scherer <leander@schererleander.de> | 2026-06-14 23:55:47 +0200 |
| commit | 3cda79c0b4174ef7b7aec80c5f4eb1fc080d4dfb (patch) | |
| tree | 084d22d8c6678f7e8126a51dbc2930a47b79a2db | |
| parent | d461eff888927a190eeedee5df6716f68e42c9c2 (diff) | |
fix(wine): fix issues with win64 and win32
| -rw-r--r-- | modules/system/wine.nix | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/modules/system/wine.nix b/modules/system/wine.nix index e78dbed..ac5074b 100644 --- a/modules/system/wine.nix +++ b/modules/system/wine.nix @@ -1,17 +1,43 @@ { flake.modules.homeManager.wine = - { pkgs, ... }: + { pkgs, config, ... }: + let + wine = pkgs.wineWow64Packages.waylandFull; + + wineForWinetricks = pkgs.runCommand "wine-for-winetricks" {} '' + mkdir -p $out/bin + + ln -s ${wine}/bin/wine $out/bin/wine + ln -s ${wine}/bin/wine $out/bin/wine64 + ln -s ${wine}/bin/wineserver $out/bin/wineserver + ''; + + winetricksFixed = pkgs.writeShellScriptBin "winetricks" '' + export WINE="${wineForWinetricks}/bin/wine" + export WINELOADER="${wineForWinetricks}/bin/wine" + export WINESERVER="${wineForWinetricks}/bin/wineserver" + + # NixOS WoW64 wrapper fix. + export WINE_BIN="${wine}/bin/.wine" + export WINESERVER_BIN="${wine}/bin/wineserver" + + export WINEPREFIX="${config.home.homeDirectory}/.wine" + export PATH="${wineForWinetricks}/bin:$PATH" + + exec ${pkgs.winetricks}/bin/winetricks "$@" + ''; + + q4wineFixed = pkgs.q4wine.override { + inherit wine; + }; + in { - home.packages = with pkgs; [ - q4wine - winetricks - unzip - cabextract - wineWow64Packages.waylandFull + home.packages = [ + wine + q4wineFixed + winetricksFixed + pkgs.unzip + pkgs.cabextract ]; - home.sessionVariables = { - WINEARCH = "win64"; - WINEPREFIX = "$HOME/.wine"; - }; }; } |
