diff --git a/base/patio/configuration.nix b/base/patio/configuration.nix index 6152d20..db5da15 100644 --- a/base/patio/configuration.nix +++ b/base/patio/configuration.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, inputs, ... }: { imports = @@ -33,7 +33,7 @@ jovian.steam.autoStart = true; jovian.steam.enable = true; jovian.steam.user = "alyx"; - jovian.steam.desktopSession = "plasma"; + jovian.steam.desktopSession = "niri"; jovian.devices.steamdeck.autoUpdate = true; jovian.decky-loader.enable = true; @@ -42,6 +42,10 @@ security.sudo.package = pkgs.sudo.override { withInsults = true; }; programs = { + niri = { + enable = true; + package = inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.niri-unstable; + }; adb.enable = true; flashrom.enable = true; nix-ld.enable = true; @@ -166,6 +170,7 @@ cbfstool git keepassxc + inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.xwayland-satellite-stable pulseaudio steamdeck-firmware jupiter-dock-updater-bin diff --git a/base/patio/configuration.nix.save.1 b/base/patio/configuration.nix.save.1 new file mode 100644 index 0000000..2849445 --- /dev/null +++ b/base/patio/configuration.nix.save.1 @@ -0,0 +1,187 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, lib, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + nix.package = pkgs.lix; + nix.buildMachines = [ { + hostName = "alyx@192.168.1.146"; + system = "x86_64-linux"; + protocol = "ssh-ng"; + # if the builder supports building for multiple architectures, + # replace the previous line by, e.g. + # systems = ["x86_64-linux" "aarch64-linux"]; + maxJobs = 1; + speedFactor = 2; + supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; + mandatoryFeatures = [ ]; + }] ; + nix.distributedBuilds = true; + # optional, useful when the builder has a faster internet connection than yours + nix.extraOptions = '' + builders-use-substitutes = true + ''; + services.desktopManager.plasma6.enable = true; + jovian.devices.steamdeck.enable = true; + jovian.steam.autoStart = true; + jovian.steam.enable = true; + jovian.steam.user = "alyx"; + jovian.steam.desktopSession = "plasma"; + jovian.devices.steamdeck.autoUpdate = true; + jovian.decky-loader.enable = true; + + environment.pathsToLink = [ "/share/xdg-desktop-portal" ]; + + security.sudo.package = pkgs.sudo.override { withInsults = true; }; + + programs = { + niri.enable = true; + niri.package = + adb.enable = true; + flashrom.enable = true; + nix-ld.enable = true; + nix-ld.libraries = with pkgs; [xorg.libxcb libao xorg.libX11 libusb1 cargo rustc pkg-config cacert]; + }; + + services.journald.extraConfig = '' + SystemMaxUse=2G + ''; + + services.tailscale = { + enable = true; + useRoutingFeatures = "both"; + }; + + boot.supportedFilesystems = ["exfat" "ntfs" "xfs"]; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.initrd.systemd.enable = true; + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.loader.efi.efiSysMountPoint = "/boot/"; + + networking.hostName = "patio"; # Define your hostname. + + powerManagement.cpuFreqGovernor = "performance"; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + hardware.graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [mesa.opencl libvdpau-va-gl vaapiVdpau vulkan-validation-layers]; + extraPackages32 = with pkgs; [driversi686Linux.amdvlk driversi686Linux.mesa.opencl]; + }; + + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + networking.networkmanager = { + enable = true; + wifi.backend = "iwd"; + }; + + # Set your time zone. + time.timeZone = "Europe/London"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_GB.UTF-8"; + + services.udisks2.enable = true; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_GB.UTF-8"; + LC_IDENTIFICATION = "en_GB.UTF-8"; + LC_MEASUREMENT = "en_GB.UTF-8"; + LC_MONETARY = "en_GB.UTF-8"; + LC_NAME = "en_GB.UTF-8"; + LC_NUMERIC = "en_GB.UTF-8"; + LC_PAPER = "en_GB.UTF-8"; + LC_TELEPHONE = "en_GB.UTF-8"; + LC_TIME = "en_GB.UTF-8"; + }; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + + # Enable the X11 windowing system. + services.xserver.enable = true; + programs.dconf.enable = true; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + services.printing.drivers = [pkgs.gutenprint]; + + security = { + rtkit.enable = true; + }; + + # Enable sound with pipewire. + services.pulseaudio.enable = false; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + jack.enable = true; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + + users.users.alyx = { + isNormalUser = true; + description = "Alyx"; + extraGroups = [ "networkmanager" "wheel" "camera" ]; + packages = with pkgs; [ + ]; + }; + + services.libinput.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + wget + neovim + cbfstool + git + keepassxc + pulseaudio + steamdeck-firmware + jupiter-dock-updater-bin + maliit-keyboard + squeekboard + wvkbd + winetricks + p7zip + cabextract + unzip + wineWowPackages.stable + (pkgs.python3.withPackages (ps: with ps; [tkinter])) + ]; + + system.stateVersion = "24.11"; # Did you read the comment? + +} diff --git a/flake.nix b/flake.nix index 45a391f..41e5029 100644 --- a/flake.nix +++ b/flake.nix @@ -175,6 +175,7 @@ }; nixosConfigurations."patio" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; + specialArgs = { inherit inputs; }; modules = [ ./base/patio nixpkgs-xr.nixosModules.nixpkgs-xr diff --git a/home/default.nix b/home/default.nix index 4c5417d..d295226 100644 --- a/home/default.nix +++ b/home/default.nix @@ -32,13 +32,13 @@ }; programs.ncmpcpp = { - enable = (vars.class != "handheld"); + enable = true; settings = { tags_separator = ";"; }; }; services.mpd = { - enable = (vars.class != "handheld"); + enable = true; musicDirectory = "/home/${vars.user}/Music"; extraConfig = '' audio_output { @@ -48,7 +48,7 @@ ''; }; services.mpd-mpris = { - enable = (vars.class != "handheld"); + enable = true; }; services.mpd-discord-rpc.enable = true; @@ -56,7 +56,7 @@ services.syncthing.enable = (vars.useSyncthing); programs.waybar = { - enable = (vars.class != "handheld"); + enable = true; }; programs.git = { enable = true; @@ -104,6 +104,12 @@ { criteria = "Valve Corporation Index HMD 0xEDE55842"; status = "disable"; } ]; } + { + profile.name = "steamdeck"; + profile.outputs = [ + { criteria = "Valve Corporation ANX7530 U 0x00000001"; transform = "270"; } + ]; + } ]; };