nix-config/containers/wine.nix
Donovan Glover 8e5d3c77c7
containers(wine): simplify networking
It turns out that having to do the `nat` shenanigans is no longer
necessary or was never necessary to begin with.

In either case, the simplified result is much easier to work with
due to no dependency on the localAddress.
2024-10-11 16:59:13 -04:00

88 lines
1.6 KiB
Nix

{
nix-config,
config,
lib,
pkgs,
...
}:
let
inherit (nix-config.inputs.sakaya.packages.${pkgs.system}) sakaya;
inherit (config.modules.system) username;
inherit (lib) getExe;
sakayaPort = 39493;
in
{
imports = with nix-config.nixosModules; [
shell
desktop
system
stylix
fonts
];
home-manager.sharedModules = with nix-config.homeModules; [
fish
git
gtk
kitty
neovim
xresources
yazi
];
nixpkgs.overlays = builtins.attrValues nix-config.overlays;
environment = {
systemPackages =
(with pkgs; [
wineWowPackages.waylandFull
winetricks
])
++ [ sakaya ];
variables = {
TERM = "xterm-kitty";
};
sessionVariables = {
WAYLAND_DISPLAY = "wayland-1";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
MOZ_ENABLE_WAYLAND = "1";
XDG_RUNTIME_DIR = "/run/user/1000";
DISPLAY = ":0";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
SDL_IM_MODULE = "fcitx";
GLFW_IM_MODULE = "ibus";
LC_ALL = "ja_JP.UTF-8";
TZ = "Asia/Tokyo";
};
};
hardware.graphics.enable = true;
networking.firewall.allowedTCPPorts = [ sakayaPort ];
systemd.services.sakaya = {
enable = true;
description = "sakaya server";
unitConfig = {
Type = "simple";
};
path = with pkgs; [ su ];
serviceConfig = {
ExecStart = "/usr/bin/env su ${username} --command=${getExe sakaya}";
};
wantedBy = [ "multi-user.target" ];
};
}