dynix/tests/dynix-vm-configuration.nix
2026-03-25 19:21:37 +01:00

94 lines
2.2 KiB
Nix

# SPDX-FileCopyrightText: 2026 Qyriad <qyriad@qyriad.me>
#
# SPDX-License-Identifier: EUPL-1.1
{ pkgs, lib, modulesPath, config, ... }:
let
moduleList = import (modulesPath + "/module-list.nix");
dynixFromSearchPath = let
res = builtins.tryEval <dynix>;
in lib.optional res.success res.value;
in
{
imports = [
(modulesPath + "/testing/test-instrumentation.nix")
] ++ lib.concatLists [
dynixFromSearchPath
moduleList
];
system.switch.enable = true;
documentation.enable = false;
boot.loader.grub = {
enable = true;
device = "/dev/vda";
forceInstall = true;
};
nix = {
package = pkgs.lixPackageSets.latest.lix;
nixPath = [
("nixpkgs=" + pkgs.path)
"/nix/var/nix/profiles/per-user/root/profile/share/nixos/modules"
];
settings = {
experimental-features = [ "nix-command" "pipe-operator" ];
substituters = lib.mkForce [ ];
hashed-mirrors = null;
connect-timeout = 1;
# For my debugging purposes.
show-trace = true;
};
};
# Setup XDG base directories for me.
security.pam.services.login = {
rules.session.xdg = {
enable = true;
control = "optional";
modulePath = "${pkgs.pam_xdg}/lib/security/pam_xdg.so";
args = [ ];
order = 10500;
};
};
environment.pathsToLink = [ "/share" ];
environment.extraOutputsToInstall = [ "modules" ];
environment.variables = {
"NIXOS_CONFIG" = "/etc/nixos/configuration.nix";
};
environment.sessionVariables = {
"NIXOS_CONFIG" = "/etc/nixos/configuration.nix";
};
systemd.services.dynix-daemon = {
enable = true;
path = [ config.nix.package ];
serviceConfig = {
Environment = [
"RUST_LOG=trace"
];
ExecSearchPath = [ "/run/current-system/sw/bin" ];
SuccessExitStatus = [ "0" "2" ];
# `bash -l` so XDG_RUNTIME_DIR is set correctly. lol.
ExecStart = "bash -l -c 'exec /root/.nix-profile/bin/dynix daemon --color=always'";
SyslogIdentifier = "dynix-daemon";
};
};
environment.shellAliases = {
ls = "eza --long --header --group --group-directories-first --classify --binary";
};
environment.systemPackages = with pkgs; [
eza
fd
ripgrep
netcat.nc
socat
python3
];
}