mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 08:14:00 +01:00
b368817c52
This change makes it possible to import the modules that are required from the flake inputs in the output modules themselves, thus preventing users from having to manually import those modules. This simplifies things overall and was made possible by the specialArgs option that allowed these flake inputs to be passed into our container.
118 lines
2.3 KiB
Nix
118 lines
2.3 KiB
Nix
{ config, stylix, home-manager, sakaya, ... }:
|
|
|
|
let
|
|
inherit (config.modules.system) username;
|
|
|
|
template = {
|
|
privateNetwork = true;
|
|
ephemeral = true;
|
|
autoStart = true;
|
|
restartIfChanged = false;
|
|
|
|
bindMounts = {
|
|
"/mnt" = {
|
|
hostPath = "/home/${username}/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";
|
|
}
|
|
];
|
|
|
|
specialArgs = {
|
|
inherit home-manager;
|
|
inherit stylix;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
systemd.tmpfiles.rules = [
|
|
"d /run/user/1000 0700 ${username} users -"
|
|
];
|
|
|
|
containers.wine = template // {
|
|
hostAddress = "192.168.100.34";
|
|
localAddress = "192.168.100.49";
|
|
|
|
config = { lib, pkgs, ... }: {
|
|
imports = [
|
|
../containers/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 ${username} --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";
|
|
};
|
|
};
|
|
};
|
|
}
|