forked from extern/nix-config
bcf54f4cb4
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
117 lines
2.2 KiB
Nix
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";
|
|
};
|
|
};
|
|
};
|
|
}
|