172 lines
4.4 KiB
Nix
172 lines
4.4 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
username,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
./disk_yarn.nix
|
|
./common.nix
|
|
./impermanence.nix
|
|
./no-rgb.nix
|
|
./vr.nix
|
|
|
|
inputs.impermanence.nixosModules.impermanence
|
|
inputs.jovian-nixos.nixosModules.default
|
|
];
|
|
|
|
fileSystems."/media/games" = {
|
|
device = "/dev/disk/by-uuid/1878136e-765d-4784-b204-3536ab4fdac8";
|
|
fsType = "f2fs";
|
|
options = [ "nofail" ];
|
|
};
|
|
|
|
systemd.targets = {
|
|
sleep.enable = false;
|
|
suspend.enable = false;
|
|
hibernate.enable = false;
|
|
hybrid-sleep.enable = false;
|
|
};
|
|
|
|
networking.hostId = "abf570f9";
|
|
|
|
# Static IP for consistent SSH access
|
|
networking.networkmanager.ensureProfiles.profiles.enp7s0-static = {
|
|
connection = {
|
|
id = "enp7s0-static";
|
|
type = "ethernet";
|
|
interface-name = "enp7s0";
|
|
autoconnect = true;
|
|
};
|
|
ipv4 = {
|
|
method = "manual";
|
|
address1 = "192.168.1.223/24,192.168.1.1";
|
|
dns = "1.1.1.1;9.9.9.9;";
|
|
};
|
|
ipv6.method = "disabled";
|
|
};
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
ports = [ 22 ];
|
|
settings = {
|
|
PasswordAuthentication = false;
|
|
PermitRootLogin = "yes";
|
|
};
|
|
};
|
|
|
|
users.users.${username}.openssh.authorizedKeys.keys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4jL6gYOunUlUtPvGdML0cpbKSsPNqQ1jit4E7U1RyH" # laptop
|
|
];
|
|
|
|
users.users.root.openssh.authorizedKeys.keys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4jL6gYOunUlUtPvGdML0cpbKSsPNqQ1jit4E7U1RyH" # laptop
|
|
];
|
|
|
|
programs.steam = {
|
|
remotePlay.openFirewall = true;
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
};
|
|
|
|
# LACT (Linux AMDGPU Configuration Tool): https://github.com/ilya-zlobintsev/LACT
|
|
environment.systemPackages = with pkgs; [
|
|
lact
|
|
];
|
|
systemd.packages = with pkgs; [ lact ];
|
|
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
|
|
|
|
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
|
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"steamdeck-hw-theme"
|
|
"steam-jupiter-unwrapped"
|
|
"steam"
|
|
"steam-original"
|
|
"steam-unwrapped"
|
|
"steam-run"
|
|
];
|
|
|
|
# Override jovian-stubs to disable steamos-update kernel check
|
|
# This prevents Steam from requesting reboots for "system updates"
|
|
# Steam client updates will still work normally
|
|
nixpkgs.overlays = [
|
|
(final: prev: {
|
|
jovian-stubs = prev.stdenv.mkDerivation {
|
|
name = "jovian-stubs-no-update";
|
|
dontUnpack = true;
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
|
|
# steamos-update: always report "no update available" (exit 7)
|
|
# This disables the kernel mismatch check that triggers reboot prompts
|
|
cat > $out/bin/steamos-update << 'STUB'
|
|
#!/bin/sh
|
|
>&2 echo "[JOVIAN] $0: stub called with: $* (system updates disabled)"
|
|
exit 7
|
|
STUB
|
|
|
|
# steamos-reboot: reboot the system
|
|
cat > $out/bin/steamos-reboot << 'STUB'
|
|
#!/bin/sh
|
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
|
systemctl reboot
|
|
STUB
|
|
|
|
# steamos-select-branch: no-op stub
|
|
cat > $out/bin/steamos-select-branch << 'STUB'
|
|
#!/bin/sh
|
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
|
exit 0
|
|
STUB
|
|
|
|
# steamos-factory-reset-config: no-op stub
|
|
cat > $out/bin/steamos-factory-reset-config << 'STUB'
|
|
#!/bin/sh
|
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
|
exit 0
|
|
STUB
|
|
|
|
# steamos-firmware-update: no-op stub
|
|
cat > $out/bin/steamos-firmware-update << 'STUB'
|
|
#!/bin/sh
|
|
>&2 echo "[JOVIAN] $0: stub called with: $*"
|
|
exit 0
|
|
STUB
|
|
|
|
# pkexec: pass through to real pkexec
|
|
cat > $out/bin/pkexec << 'STUB'
|
|
#!/bin/sh
|
|
exec /run/wrappers/bin/pkexec "$@"
|
|
STUB
|
|
|
|
# sudo: pass through to doas
|
|
cat > $out/bin/sudo << 'STUB'
|
|
#!/bin/sh
|
|
exec /run/wrappers/bin/doas "$@"
|
|
STUB
|
|
|
|
chmod 755 $out/bin/*
|
|
'';
|
|
};
|
|
})
|
|
];
|
|
|
|
jovian = {
|
|
devices.steamdeck.enable = false;
|
|
steam = {
|
|
enable = true;
|
|
autoStart = true;
|
|
desktopSession = "niri";
|
|
user = username;
|
|
};
|
|
};
|
|
|
|
# Disable gamescope from common.nix to avoid conflict with jovian-nixos
|
|
programs.gamescope.enable = lib.mkForce false;
|
|
}
|