diff --git a/flake.nix b/flake.nix index e9f85de..dc03265 100644 --- a/flake.nix +++ b/flake.nix @@ -58,6 +58,8 @@ manyfold.url = "github:mjallen18/manyfold-nixos"; + jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; + # cosmic = { # url = "github:lilyinstarlight/nixos-cosmic"; # inputs.nixpkgs.follows = "nixpkgs-unstable"; @@ -82,6 +84,7 @@ authentik-nix, sops-nix, manyfold, + jovian, }@inputs: let inherit (self) outputs; @@ -181,6 +184,35 @@ } ]; }; + + "steamdeck" = nixpkgs-unstable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit inputs outputs; + }; + modules = [ + impermanence.nixosModules.impermanence + lanzaboote.nixosModules.lanzaboote + ./hosts/deck/configuration.nix + ./share/impermanence + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.matt = import ./hosts/deck/home.nix; + home-manager.backupFileExtension = "backup"; + } + + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-gpu-amd + nixos-hardware.nixosModules.common-hidpi + nixos-hardware.nixosModules.common-pc + + sops-nix.nixosModules.sops + + jovian.nixosModules.jovian + ]; + }; }; darwinConfigurations = { diff --git a/hosts/deck/configuration.nix b/hosts/deck/configuration.nix index 736fa1f..08d9b3f 100644 --- a/hosts/deck/configuration.nix +++ b/hosts/deck/configuration.nix @@ -14,6 +14,14 @@ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; + jovian = { + steam = { + enable = true; + autoStart = true; + # desktopSession = "plasma5"; + }; + }; + # networking.hostName = "nixos"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. diff --git a/hosts/deck/home.nix b/hosts/deck/home.nix new file mode 100644 index 0000000..9d49abe --- /dev/null +++ b/hosts/deck/home.nix @@ -0,0 +1,125 @@ +{ lib, pkgs, ... }: +let + shellAliases = { + ll = "ls -alh"; + update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18"; + update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18"; + update-flake = "sudo nix flake update ~/nix-config"; + update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas"; + nas-ssh = "kitten ssh admin@10.0.1.18"; + ducks = "du -cksh * | sort -hr | head -n 15"; + }; + + gitAliases = { + co = "checkout"; + ci = "commit"; + cia = "commit --amend"; + s = "status"; + st = "status"; + b = "branch"; + p = "pull --rebase"; + pu = "push"; + }; +in +{ + + home.username = "deck"; + home.homeDirectory = "/home/deck"; + home.stateVersion = "23.11"; + programs.home-manager.enable = true; + + programs = { + fish.enable = false; + mangohud.enable = true; + java.enable = true; + + zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + + shellAliases = shellAliases; + + oh-my-zsh = { + enable = true; + plugins = [ "git" ]; + theme = "fishy"; + }; + }; + }; + + programs.git = { + enable = true; + userName = "mjallen18"; + userEmail = "matt.l.jallen@gmail.com"; + aliases = gitAliases; + }; + + programs.command-not-found.enable = true; + + # home.packages = with pkgs; [ + # age + # apple-cursor + # bottles + # chromium + # colloid-icon-theme + # colloid-gtk-theme + # unstable.compose2nix + # coolercontrol.coolercontrol-gui + # deadnix + # discord + # fastfetch + # firefox + # freerdp + # gamescope + # gamescope-wsi + # gnome-tweaks + # gnomeExtensions.appindicator + # gnomeExtensions.arcmenu + # gnomeExtensions.dash-to-dock + # gnomeExtensions.dash-to-panel + # gnomeExtensions.tiling-assistant + # google-chrome + # goverlay + # heroic + # home-manager + # jq + # libreoffice-qt6-fresh + # lm_sensors + # lutris + # mangohud + # morph + # nextcloud-client + # nixfmt-rfc-style + # orca-slicer + # papirus-icon-theme + # piper + # pop-gtk-theme + # prismlauncher + # protonup + # protontricks + # protonvpn-gui + # protonvpn-gui + # python3 + # python312Packages.tox + # python312Packages.setuptools + # python312Packages.pytest + # python312Packages.pytest-cov + # python312Packages.pyaml + # qmk + # remmina + # smile + # sops + # spotify + # ssh-to-pgp + # tree + # unigine-heaven + # vesktop + # via + # virt-manager + # vmware-horizon-client + # vorta + # vscode + # ]; +}