From b05864573da65c0e330500b7f6c5f8c22e077a34 Mon Sep 17 00:00:00 2001
From: matt1432 <matt@nelim.org>
Date: Wed, 10 Jul 2024 20:38:03 -0400
Subject: [PATCH] feat: add plymouth to bbsteamie

---
 devices/bbsteamie/default.nix |  8 ++++++++
 devices/wim/default.nix       |  7 ++++++-
 flake.in.nix                  |  1 +
 modules/plymouth.nix          | 22 +++++++++++++++-------
 4 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/devices/bbsteamie/default.nix b/devices/bbsteamie/default.nix
index d04e9e64..6a22b4e9 100644
--- a/devices/bbsteamie/default.nix
+++ b/devices/bbsteamie/default.nix
@@ -1,6 +1,7 @@
 {
   config,
   jovian,
+  self,
   ...
 }: let
   inherit (config.vars) mainUser hostName;
@@ -13,6 +14,8 @@ in {
     ./hardware-configuration.nix
 
     ./modules/desktop.nix
+
+    self.nixosModules.plymouth
   ];
 
   vars = {
@@ -21,6 +24,11 @@ in {
     promptMainColor = "pink";
   };
 
+  boot.plymouth = {
+    enable = true;
+    theme = "steamos";
+  };
+
   users.users.${mainUser} = {
     isNormalUser = true;
     extraGroups = [
diff --git a/devices/wim/default.nix b/devices/wim/default.nix
index e4ecdc0e..ebff4191 100644
--- a/devices/wim/default.nix
+++ b/devices/wim/default.nix
@@ -12,13 +12,13 @@ in {
     ../../modules/ags
     ../../modules/audio.nix
     ../../modules/kmscon.nix
-    ../../modules/plymouth.nix
     ../../modules/printer.nix
     ../../modules/tailscale.nix
 
     ./modules/security.nix
 
     self.nixosModules.desktop
+    self.nixosModules.plymouth
   ];
 
   vars = {
@@ -37,6 +37,11 @@ in {
     fontSize = 12.5;
   };
 
+  boot.plymouth = {
+    enable = true;
+    theme = "dracula";
+  };
+
   users.users.${mainUser} = {
     isNormalUser = true;
     extraGroups = [
diff --git a/flake.in.nix b/flake.in.nix
index 7d0a4695..c41e5b9a 100644
--- a/flake.in.nix
+++ b/flake.in.nix
@@ -58,6 +58,7 @@
     nixosModules = {
       desktop = import ./modules/desktop;
       nvidia = import ./modules/nvidia.nix;
+      plymouth = import ./modules/plymouth.nix;
     };
 
     nixosConfigurations = {
diff --git a/modules/plymouth.nix b/modules/plymouth.nix
index dc1febd8..1d5941a7 100644
--- a/modules/plymouth.nix
+++ b/modules/plymouth.nix
@@ -1,9 +1,15 @@
 {
+  config,
+  lib,
   pkgs,
   self,
   ...
-}: {
-  boot = {
+}: let
+  inherit (lib) hasAttr mkIf optionals;
+
+  cfg = config.boot.plymouth;
+in {
+  boot = mkIf cfg.enable {
     initrd = {
       verbose = false;
       systemd.enable = true;
@@ -22,10 +28,12 @@
       "udev.log_priority=3"
     ];
 
-    plymouth = {
-      enable = true;
-      themePackages = [self.legacyPackages.${pkgs.system}.dracula.plymouth];
-      theme = "dracula";
-    };
+    plymouth.themePackages =
+      [
+        self.legacyPackages.${pkgs.system}.dracula.plymouth
+      ]
+      ++ optionals (hasAttr "steamdeck-hw-theme" pkgs) [
+        pkgs.steamdeck-hw-theme
+      ];
   };
 }