From 084930518a48c84dd1438a6750575e8d441f3d6d Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Sat, 8 Feb 2025 16:01:16 -0600 Subject: [PATCH] enable steamdeck stuffs --- hosts/deck/configuration.nix | 37 +++++++- hosts/deck/hardware-configuration.nix | 128 +++++++++++++++++--------- hosts/deck/home.nix | 2 +- 3 files changed, 119 insertions(+), 48 deletions(-) diff --git a/hosts/deck/configuration.nix b/hosts/deck/configuration.nix index 0b69e6f..6f46c03 100644 --- a/hosts/deck/configuration.nix +++ b/hosts/deck/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, ... }: +{ lib, pkgs, ... }: { imports = @@ -15,14 +15,43 @@ boot.loader.efi.canTouchEfiVariables = true; nixpkgs.config.allowUnfree = true; + # Enable nix flakes and nix-command tools + nix = { + settings = { + warn-dirty = lib.mkForce false; + experimental-features = lib.mkForce [ + "nix-command" + "flakes" + ]; + }; + + # Garbage collect automatically every week + gc.automatic = lib.mkDefault true; + gc.options = lib.mkDefault "--delete-older-than 30d"; + + optimise.automatic = lib.mkDefault true; + }; jovian = { steam = { enable = true; autoStart = true; user = "deck"; - # desktopSession = "plasma5"; + desktopSession = "plasma6"; }; + + steamos = { + useSteamOSConfig = true; + }; + + devices = { + steamdeck = { + enable = true; + enableGyroDsuService = true; # If enabled, motion data from the gyroscope can be used in Cemu with Cemuhoo + }; + }; + + hardware.has.amd.gpu = true; }; # networking.hostName = "nixos"; # Define your hostname. @@ -52,6 +81,10 @@ services.xserver.displayManager.sddm.enable = false; services.xserver.desktopManager.plasma5.enable = false; + services.desktopManager.plasma6 = { + enable = true; + enableQt5Integration = true; + }; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; diff --git a/hosts/deck/hardware-configuration.nix b/hosts/deck/hardware-configuration.nix index 8c8f603..c32d5fb 100644 --- a/hosts/deck/hardware-configuration.nix +++ b/hosts/deck/hardware-configuration.nix @@ -1,61 +1,99 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "uas" "sd_mod" "sdhci_pci" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "usbhid" + "usb_storage" + "uas" + "sd_mod" + "sdhci_pci" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "none"; - fsType = "tmpfs"; - }; + fileSystems."/" = { + device = "none"; + fsType = "tmpfs"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/A06F-3014"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/A06F-3014"; + fsType = "vfat"; + }; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; - - fileSystems."/etc" = - { device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ "subvol=etc" ]; - }; - - fileSystems."/root" = - { device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; - - fileSystems."/var/log" = - { device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ "subvol=log" ]; - }; - - fileSystems."/home" = - { device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ "subvol=home" ]; - }; - - swapDevices = - [ { device = "/dev/disk/by-uuid/da9dfb00-c2ac-4105-a75f-f498973a32f0"; } + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; + fsType = "btrfs"; + options = [ + "subvol=nix" + "compress=zstd" + "noatime" + "autodefrag" ]; + }; + + fileSystems."/etc" = { + device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; + fsType = "btrfs"; + options = [ + "subvol=etc" + "compress=zstd" + "noatime" + "autodefrag" + ]; + }; + + fileSystems."/root" = { + device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; + fsType = "btrfs"; + options = [ + "subvol=root" + "compress=zstd" + "noatime" + "autodefrag" + ]; + }; + + fileSystems."/var/log" = { + device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; + fsType = "btrfs"; + options = [ + "subvol=log" + "compress=zstd" + "noatime" + "autodefrag" + ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; + fsType = "btrfs"; + options = [ + "subvol=home" + "compress=zstd" + "noatime" + "autodefrag" + ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/da9dfb00-c2ac-4105-a75f-f498973a32f0"; } + ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/deck/home.nix b/hosts/deck/home.nix index 9d49abe..f01c3f0 100644 --- a/hosts/deck/home.nix +++ b/hosts/deck/home.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ ... }: let shellAliases = { ll = "ls -alh";