- modules/desktop-jovian.nix: shared Jovian deck-mode config (unfree predicate, jovian.steam, sddm, gamescope override, imports desktop-steam-update.nix) - home/progs/steam-shortcuts.nix: declarative non-Steam shortcuts (Prism Launcher); add new entries here for all Jovian hosts - hosts/yarn/default.nix: reduced to host-specific config only - hosts/patiodeck/default.nix: same
88 lines
2.0 KiB
Nix
88 lines
2.0 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
username,
|
|
inputs,
|
|
site_config,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
../../modules/desktop-common.nix
|
|
../../modules/desktop-jovian.nix
|
|
../../modules/no-rgb.nix
|
|
./disk.nix
|
|
./impermanence.nix
|
|
./vr.nix
|
|
|
|
inputs.impermanence.nixosModules.impermanence
|
|
];
|
|
|
|
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 = "${site_config.hosts.yarn.ip}/24,${site_config.lan.gateway}";
|
|
dns = lib.concatMapStrings (n: "${n};") site_config.dns_servers;
|
|
};
|
|
ipv6.method = "disabled";
|
|
};
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
ports = [ 22 ];
|
|
settings = {
|
|
PasswordAuthentication = false;
|
|
PermitRootLogin = "yes";
|
|
};
|
|
};
|
|
|
|
users.users.${username}.openssh.authorizedKeys.keys = [
|
|
site_config.ssh_keys.laptop
|
|
];
|
|
|
|
users.users.root.openssh.authorizedKeys.keys = [
|
|
site_config.ssh_keys.laptop
|
|
site_config.ssh_keys.ci_deploy
|
|
];
|
|
|
|
programs.steam = {
|
|
remotePlay.openFirewall = true;
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
};
|
|
|
|
# LACT (Linux AMDGPU Configuration Tool): https://github.com/ilya-zlobintsev/LACT
|
|
environment.systemPackages = with pkgs; [
|
|
lact
|
|
jovian-stubs
|
|
];
|
|
systemd.packages = with pkgs; [ lact ];
|
|
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
|
|
|
|
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
|
|
|
# yarn is not a Steam Deck
|
|
jovian.devices.steamdeck.enable = false;
|
|
}
|