{ config, nix-config, lib, pkgs, ... }: let inherit (lib) mkIf; inherit (config.modules.system) username; inherit (config.boot) enableContainers; template = { privateNetwork = true; ephemeral = 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 nix-config; }; }; in { environment.systemPackages = mkIf (pkgs.system == "x86_64-linux") ( with nix-config.inputs.sakaya.packages.${pkgs.system}; [ sakaya ] ); containers = mkIf enableContainers { wine = template // { hostAddress = "192.168.100.34"; localAddress = "192.168.100.49"; config = ../containers/wine.nix; }; wordpress = { privateNetwork = true; ephemeral = true; autoStart = true; hostAddress = "192.168.100.24"; localAddress = "192.168.100.39"; specialArgs = { inherit nix-config; }; config = ../containers/wordpress.nix; }; }; }