Compare commits

...

4 Commits

Author SHA1 Message Date
e01c50fdde Inprove hosts 2025-09-02 22:45:34 +03:00
8b220c3657 Fix xdg-portals 2025-09-02 22:44:10 +03:00
9710fbf69c Fix ricoh printing 2025-09-02 22:43:40 +03:00
1bf68ee9bf Add steamos role 2025-09-02 22:42:43 +03:00
9 changed files with 115 additions and 4 deletions

View File

@@ -60,6 +60,8 @@ in
"video"
"pipewire"
"wheel"
"input"
"audio"
];
});

View File

@@ -4,6 +4,7 @@
boot = {
resumeDevice = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
plymouth.enable = true;
initrd = {
verbose = true;
@@ -37,6 +38,7 @@
kernelParams = [
"usbcore.autosuspend=-1"
"quiet"
"splash"
"modeset"
];
};

View File

@@ -38,6 +38,9 @@ in
services = {
printing.ricoh.enable = true;
printing.enable = false;
printing.cups-pdf.enable = false;
calibre-web = {
enable = true;
user = "fenix";
@@ -64,6 +67,8 @@ in
"video"
"pipewire"
"wheel"
"input"
"audio"
];
});
groups = {

View File

@@ -5,6 +5,7 @@
boot = {
binfmt.emulatedSystems = [ "aarch64-linux" ];
resumeDevice = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
plymouth.enable = true;
initrd = {
verbose = true;
@@ -35,6 +36,7 @@
kernelParams = [
"usbcore.autosuspend=-1"
"quiet"
"splash"
"modeset"
];
};
@@ -150,4 +152,5 @@
}
];
hardware.amdgpu.initrd.enable = true;
}

View File

@@ -13,7 +13,7 @@
};
};
config = lib.mkIf config.services.printing.enable {
config = {
virtualisation.oci-containers.containers = lib.mkIf config.services.printing.ricoh.enable {
ricoh = {
image = "ricoh-cups:latest";

View File

@@ -5,6 +5,7 @@
enable32Bit = true;
};
};
fonts.fontconfig.cache32Bit = true;
services.pipewire.alsa.support32Bit = true;
}

View File

@@ -122,7 +122,7 @@ in
drivers = with pkgs; [
gutenprint
];
cups-pdf.enable = true;
cups-pdf.enable = lib.mkDefault true;
browsing = lib.mkDefault true;
};
@@ -192,5 +192,10 @@ in
};
};
xdg.portal.enable = true;
xdg.portal.enable = lib.mkDefault true;
xdg.portal.extraPortals = lib.mkDefault [
pkgs.kdePackages.xdg-desktop-portal-kde
pkgs.xdg-desktop-portal-gnome
];
xdg.portal.config.common.default = lib.mkDefault "*";
}

93
roles/steamos.nix Normal file
View File

@@ -0,0 +1,93 @@
{
pkgs,
lib,
config,
...
}:
{
options = {
steamos = {
amdvlk = lib.mkOption {
type = lib.types.bool;
default = false;
};
};
};
config = {
users.users.steam = {
isNormalUser = true;
uid = 1010;
password = "steam";
extraGroups = [
"video"
"input"
"audio"
"networkmanager"
];
shell = pkgs.bash;
};
services.xserver.enable = false;
# Современные видеодрайверы
hardware = {
graphics = {
enable = true;
enable32Bit = true;
};
amdgpu.amdvlk = lib.mkIf config.steamos.amdvlk {
enable = true;
support32Bit.enable = true;
};
};
programs = {
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
gamescopeSession.enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true;
};
};
services.getty.autologinUser = "steam";
environment = {
loginShellInit = ''
[[ "$(tty)" = "/dev/tty1" ]] && ./gs.sh
'';
};
home-manager.users.steam = {
home.file."gs.sh" = {
text = ''
#!/usr/bin/env bash
set -xeuo pipefail
gamescopeArgs=(
--adaptive-sync # VRR support
--hdr-enabled
--rt
--steam
-S DP-1
)
steamArgs=(
-pipewire-dmabuf
-tenfoot
--console
)
exec gamescope "$${gamescopeArgs[@]}" -- steam "$${steamArgs[@]}"
'';
executable = true;
};
};
};
}

View File

@@ -54,7 +54,7 @@
];
};
extraPortals = lib.mkForce [
pkgs.kdePackages.xdg-desktop-portal-kde
pkgs.xdg-desktop-portal-gnome
];
};
};