Add initial Steam Deck fongi
This commit is contained in:
parent
66efa565af
commit
28de149b9c
5 changed files with 94 additions and 0 deletions
|
@ -33,6 +33,7 @@ nix develop -c /etc/nixos/git/docs/setup.sh
|
||||||
| quitman-rpi4 | Raspberry Pi at my parents house. Headscale Exit Node | On Hold |
|
| quitman-rpi4 | Raspberry Pi at my parents house. Headscale Exit Node | On Hold |
|
||||||
| bakersfield-rpi4 | Raspberry Pi at my brothers house. Headscale Exit Node | Complete |
|
| bakersfield-rpi4 | Raspberry Pi at my brothers house. Headscale Exit Node | Complete |
|
||||||
| nuc-server | Second NUC server at my brothers house | On Hold |
|
| nuc-server | Second NUC server at my brothers house | On Hold |
|
||||||
|
| steamdeck | Valve Steam Deck, handheld gaming console | In Work |
|
||||||
|
|
||||||
# Images
|
# Images
|
||||||
| Name | Description | Build Commands |
|
| Name | Description | Build Commands |
|
||||||
|
|
|
@ -47,6 +47,8 @@
|
||||||
compose2nix.inputs.nixpkgs.follows = "nixpkgs";
|
compose2nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
# Hyprland Flake
|
# Hyprland Flake
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
# Steam Deck configs for NixOS
|
||||||
|
jovain.url = "github:Jovian-Experiments/Jovian-NixOS"
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, nixpkgs-wayland, home-manager, lanzaboote, nur, sops-nix, doom-emacs, nixos-generators, deploy-rs, ... } @inputs:
|
outputs = { self, nixpkgs, nixpkgs-wayland, home-manager, lanzaboote, nur, sops-nix, doom-emacs, nixos-generators, deploy-rs, ... } @inputs:
|
||||||
let
|
let
|
||||||
|
@ -66,6 +68,7 @@
|
||||||
piaware-rpi4 = libx.mkHost { hostname = "piaware-rpi4"; system = "aarch64-linux"; type = "small"; };
|
piaware-rpi4 = libx.mkHost { hostname = "piaware-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
quitman-rpi4 = libx.mkHost { hostname = "quitman-rpi4"; system = "aarch64-linux"; type = "small"; };
|
quitman-rpi4 = libx.mkHost { hostname = "quitman-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
bakersfield-rpi4 = libx.mkHost { hostname = "bakersfield-rpi4"; system = "aarch64-linux"; type = "small"; };
|
bakersfield-rpi4 = libx.mkHost { hostname = "bakersfield-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
|
steamdeck = libx.mkHost { hostname = "steamdeck"; unfree = true; desktop = "plasma6"; repo = "nixpkgs-unfree"; };
|
||||||
};
|
};
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"albert@osaka-linode-01" = libx.mkHome { hostname = "osaka-linode-01"; type = "small"; };
|
"albert@osaka-linode-01" = libx.mkHome { hostname = "osaka-linode-01"; type = "small"; };
|
||||||
|
@ -78,6 +81,7 @@
|
||||||
"albert@piaware-rpi4" = libx.mkHome { hostname = "piaware-rpi4"; system = "aarch64-linux"; type = "small"; };
|
"albert@piaware-rpi4" = libx.mkHome { hostname = "piaware-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
"albert@quitman-rpi4" = libx.mkHome { hostname = "quitman-rpi4"; system = "aarch64-linux"; type = "small"; };
|
"albert@quitman-rpi4" = libx.mkHome { hostname = "quitman-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
"albert@bakersfield-rpi4" = libx.mkHome { hostname = "bakersfield-rpi4"; system = "aarch64-linux"; type = "small"; };
|
"albert@bakersfield-rpi4" = libx.mkHome { hostname = "bakersfield-rpi4"; system = "aarch64-linux"; type = "small"; };
|
||||||
|
"albert@steamdeck" = libx.mkHome { hostname = "steamdeck"; desktop = "plasma6"; };
|
||||||
# Containers
|
# Containers
|
||||||
"albert@rdesktop" = libx.mkHome { hostname = "rdesktop"; desktop = "xfce"; };
|
"albert@rdesktop" = libx.mkHome { hostname = "rdesktop"; desktop = "xfce"; };
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
36
nixos/hosts/steamdeck/default.nix
Normal file
36
nixos/hosts/steamdeck/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ inputs, config, lib, username, pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
inputs.jovian.nixosModules
|
||||||
|
./disks.nix
|
||||||
|
../../common/modules/boot.nix
|
||||||
|
../../common/services/tailscale-autoconnect.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" "acpi_call" ];
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "Asia/Tokyo";
|
||||||
|
# Set the networking hostname:
|
||||||
|
networking.hostName = "steamdeck";
|
||||||
|
|
||||||
|
jovian = {
|
||||||
|
decky-loader.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
steam.autoStart = true;
|
||||||
|
steam.user = username;
|
||||||
|
steamos.useSteamOSConfig = true;
|
||||||
|
devices.steamdeck.enable = true;
|
||||||
|
hardwarhas.amd.gpu = true;
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
jupiter-dock-updater-bin
|
||||||
|
steamdeck-firmware
|
||||||
|
];
|
||||||
|
}
|
50
nixos/hosts/steamdeck/disks.nix
Normal file
50
nixos/hosts/steamdeck/disks.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
services.btrfs.autoScrub.enable = true;
|
||||||
|
services.btrfs.autoScrub.interval = "weekly";
|
||||||
|
|
||||||
|
disko.devices.disk.nvme0 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
BOOT = {
|
||||||
|
priority = 1;
|
||||||
|
name = "BOOT";
|
||||||
|
start = "0%";
|
||||||
|
end = "550MiB";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
# https://github.com/nix-community/disko/issues/527
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
mountpoint = "/boot";
|
||||||
|
};
|
||||||
|
}; # partition 1 (ESP)
|
||||||
|
ROOT = {
|
||||||
|
start = "550MiB";
|
||||||
|
end = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"/root" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
}; # root
|
||||||
|
"/home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
}; # home
|
||||||
|
"/nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" ];
|
||||||
|
}; # nix
|
||||||
|
}; # subvolumes
|
||||||
|
}; # content
|
||||||
|
}; # partition 2 (/ BTRFS)
|
||||||
|
}; # partitions
|
||||||
|
}; # content
|
||||||
|
}; # disko.devices.disk.nvme0
|
||||||
|
} # root
|
Loading…
Reference in a new issue