nix-config/containers/default.nix
Donovan Glover bcf54f4cb4
wine: Downgrade from 9.0-rc1-staging to 8.2
Fixes an issue where the newer version of wine would cause my current
wine prefixes to crash with missing DLL errors. Might be fixable by
creating new prefixes with the new version, however it's much easier
for me to stick with what's known to work.

See: https://github.com/NixOS/nixpkgs/pull/273232
2023-12-15 02:31:32 -05:00

117 lines
2.2 KiB
Nix

{ stylix
, home-manager
, sakaya
, ...
}:
let
template = {
privateNetwork = true;
ephemeral = true;
autoStart = true;
restartIfChanged = false;
bindMounts = {
"/mnt" = {
hostPath = "/home/user/containers/wine";
isReadOnly = false;
};
waylandDisplay = rec {
hostPath = "/run/user/1000";
mountPoint = hostPath;
};
x11Display = rec {
hostPath = "/tmp/.X11-unix";
mountPoint = hostPath;
};
dri = rec {
hostPath = "/dev/dri";
mountPoint = hostPath;
};
};
allowedDevices = [
{
modifier = "rw";
node = "/dev/dri/renderD128";
}
];
};
in
{
systemd.tmpfiles.rules = [
"d /run/user/1000 0700 user users -"
];
containers.wine = template // {
hostAddress = "192.168.100.34";
localAddress = "192.168.100.49";
config = { lib, pkgs, ... }: {
imports = [
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
./shared.nix
];
networking.nat.forwardPorts = [
{
destination = "192.168.100.49:39493";
sourcePort = 39493;
}
{
destination = "192.168.100.49:5029";
sourcePort = 5029;
}
];
networking.firewall.allowedTCPPorts = [
39493
5029
];
systemd.services.sakaya = {
enable = true;
description = "sakaya server";
unitConfig = {
Type = "simple";
};
path = with pkgs; [
su
];
serviceConfig = {
ExecStart = "/usr/bin/env su user --command=${sakaya.packages.${pkgs.system}.sakaya}/bin/sakaya";
};
wantedBy = [ "multi-user.target" ];
};
environment.systemPackages = with pkgs; [
wineWowPackages.waylandFull
winetricks
sakaya.packages.${system}.sakaya
rar
unrar
iamb
srb2
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"rar"
"unrar"
];
environment.sessionVariables = {
LC_ALL = "ja_JP.UTF-8";
TZ = "Asia/Tokyo";
};
};
};
}