diff --git a/devices/bbsteamie/default.nix b/devices/bbsteamie/default.nix
index 78eff425..a7230a4f 100644
--- a/devices/bbsteamie/default.nix
+++ b/devices/bbsteamie/default.nix
@@ -1,6 +1,5 @@
 {
   config,
-  pkgs,
   self,
   ...
 }: let
@@ -57,8 +56,7 @@ in {
 
   boot.plymouth = {
     enable = true;
-    theme = "steamos";
-    themePackages = [pkgs.steamdeck-hw-theme];
+    theme = "bgrt";
   };
 
   services.kmscon.enable = true;
diff --git a/devices/bbsteamie/modules/desktop/default.nix b/devices/bbsteamie/modules/desktop/default.nix
index 11e7ba92..90fc512d 100644
--- a/devices/bbsteamie/modules/desktop/default.nix
+++ b/devices/bbsteamie/modules/desktop/default.nix
@@ -1,5 +1,4 @@
 {pkgs, ...}: let
-  # switch to wayland when possible
   defaultSession = "plasma";
 in {
   imports = [
diff --git a/devices/bbsteamie/modules/desktop/session-switching.nix b/devices/bbsteamie/modules/desktop/session-switching.nix
index 8c191783..8e628647 100644
--- a/devices/bbsteamie/modules/desktop/session-switching.nix
+++ b/devices/bbsteamie/modules/desktop/session-switching.nix
@@ -3,108 +3,113 @@ defaultSession: {
   lib,
   pkgs,
   ...
-}: let
-  inherit (lib) findFirst getExe mkForce;
+}: {
+  config = let
+    inherit (lib) findFirst getExe mkForce;
 
-  inherit (config.vars) mainUser;
+    inherit (config.vars) mainUser;
 
-  switch-session = pkgs.writeShellApplication {
-    name = "switch-session";
+    switch-session = pkgs.writeShellApplication {
+      name = "switch-session";
 
-    text = ''
-      mkdir -p /etc/sddm.conf.d
+      text = ''
+        mkdir -p /etc/sddm.conf.d
 
-      cat <<EOF | tee /etc/sddm.conf.d/autologin.conf
-      [Autologin]
-      User=${mainUser}
-      Session=$1
-      Relogin=true
-      EOF
+        cat <<EOF | tee /etc/sddm.conf.d/autologin.conf
+        [Autologin]
+        User=${mainUser}
+        Session=$1
+        Relogin=true
+        EOF
+      '';
+    };
+
+    gaming-mode = pkgs.writeShellScriptBin "gaming-mode" ''
+      sudo ${pkgs.systemd}/bin/systemctl start to-gaming-mode.service
     '';
-  };
-
-  gaming-mode = pkgs.writeShellScriptBin "gaming-mode" ''
-    sudo ${pkgs.systemd}/bin/systemctl start to-gaming-mode.service
-  '';
-in {
-  services.displayManager.sddm = {
-    enable = true;
-    autoLogin.relogin = true;
-
-    wayland = {
+  in {
+    services.displayManager.sddm = {
       enable = true;
-      compositorCommand = "kwin";
-    };
-  };
+      autoLogin.relogin = true;
 
-  # Sets the default session at launch
-  systemd.services."set-session" = {
-    wantedBy = ["multi-user.target"];
-    before = ["display-manager.service"];
-
-    path = [switch-session];
-
-    script = ''
-      switch-session "${defaultSession}"
-    '';
-  };
-
-  # Allows switching to gaming mode
-  systemd.services."to-gaming-mode" = {
-    wantedBy = mkForce [];
-
-    path = [switch-session];
-
-    script = ''
-      switch-session "gamescope-wayland"
-      systemctl restart display-manager
-      sleep 10
-      switch-session "${defaultSession}"
-    '';
-  };
-
-  # Make it so we don't need root to switch to gaming mode
-  security.sudo.extraRules = [
-    {
-      users = [mainUser];
-      groups = [100];
-      commands = [
-        {
-          command = "${pkgs.systemd}/bin/systemctl start to-gaming-mode.service";
-          options = ["SETENV" "NOPASSWD"];
-        }
-      ];
-    }
-  ];
-
-  home-manager.users.${mainUser} = {
-    # Add desktop entry to make it GUI friendly
-    xdg.desktopEntries."Gaming Mode" = {
-      name = "Gaming Mode";
-      exec = getExe gaming-mode;
-      icon = "steam";
-      terminal = false;
-      type = "Application";
-    };
-
-    home.file."Desktop/Gaming Mode.desktop".source =
-      (
-        findFirst
-        (x: x.meta.name == "Gaming Mode.desktop") {}
-        config.home-manager.users.mariah.home.packages
-      )
-      + "/share/applications/Gaming Mode.desktop";
-
-    # Fix remote control prompt showing up everytime
-    xdg.configFile = let
-      mkAutostart = name: flags: {
-        "autostart/${name}.desktop".text = "[Desktop Entry]\nType=Application\nExec=${name} ${flags}";
+      wayland = {
+        enable = true;
+        compositorCommand = "kwin";
       };
-    in (
-      # Needs xdg-desktop-portal-kde patch provided by `self.overlays.xdg-desktop-portal-kde`
-      {"plasmaremotedesktoprc".text = "[Sharing]\nUnattended=true";}
-      // (mkAutostart "krfb" "--nodialog %c")
-      // (mkAutostart "steam" "-silent %U")
-    );
+    };
+
+    # Sets the default session at launch
+    systemd.services."set-session" = {
+      wantedBy = ["multi-user.target"];
+      before = ["display-manager.service"];
+
+      path = [switch-session];
+
+      script = ''
+        switch-session "${defaultSession}"
+      '';
+    };
+
+    # Allows switching to gaming mode
+    systemd.services."to-gaming-mode" = {
+      wantedBy = mkForce [];
+
+      path = [switch-session];
+
+      script = ''
+        switch-session "gamescope-wayland"
+        systemctl restart display-manager
+        sleep 10
+        switch-session "${defaultSession}"
+      '';
+    };
+
+    # Make it so we don't need root to switch to gaming mode
+    security.sudo.extraRules = [
+      {
+        users = [mainUser];
+        groups = [100];
+        commands = [
+          {
+            command = "${pkgs.systemd}/bin/systemctl start to-gaming-mode.service";
+            options = ["SETENV" "NOPASSWD"];
+          }
+        ];
+      }
+    ];
+
+    home-manager.users.${mainUser} = {
+      # Add desktop entry to make it GUI friendly
+      xdg.desktopEntries."Gaming Mode" = {
+        name = "Gaming Mode";
+        exec = getExe gaming-mode;
+        icon = "steam";
+        terminal = false;
+        type = "Application";
+      };
+
+      home.file."Desktop/Gaming Mode.desktop".source =
+        (
+          findFirst
+          (x: x.meta.name == "Gaming Mode.desktop") {}
+          config.home-manager.users.mariah.home.packages
+        )
+        + "/share/applications/Gaming Mode.desktop";
+
+      # Fix remote control prompt showing up everytime
+      xdg.configFile = let
+        mkAutostart = name: flags: {
+          "autostart/${name}.desktop".text = "[Desktop Entry]\nType=Application\nExec=${name} ${flags}";
+        };
+      in (
+        # Needs xdg-desktop-portal-kde patch provided by `self.overlays.xdg-desktop-portal-kde`
+        {"plasmaremotedesktoprc".text = "[Sharing]\nUnattended=true";}
+        // (mkAutostart "krfb" "--nodialog %c")
+        // (mkAutostart "steam" "-silent %U")
+      );
+    };
   };
+
+  # For accurate stack trace
+  _file = ./session-switching.nix;
 }
diff --git a/devices/bbsteamie/modules/desktop/steam.nix b/devices/bbsteamie/modules/desktop/steam.nix
index 2afdb132..1fa80913 100644
--- a/devices/bbsteamie/modules/desktop/steam.nix
+++ b/devices/bbsteamie/modules/desktop/steam.nix
@@ -4,72 +4,77 @@ defaultSession: {
   pkgs,
   self,
   ...
-}: let
-  inherit (config.vars) mainUser;
+}: {
+  config = let
+    inherit (config.vars) mainUser;
 
-  cfg = config.programs.steam;
-in {
-  # Normal Steam Stuff
-  programs.steam = {
-    enable = true;
-    protontricks.enable = true;
+    cfg = config.programs.steam;
+  in {
+    # Normal Steam Stuff
+    programs.steam = {
+      enable = true;
+      protontricks.enable = true;
 
-    remotePlay.openFirewall = true;
-    extraCompatPackages = [
-      self.packages.${pkgs.system}.proton-ge-latest
-    ];
-  };
-
-  # Jovian Steam settings
-  jovian.steam = {
-    # Steam > Settings > System > Enable Developer Mode
-    # Steam > Developer > CEF Remote Debugging
-    enable = true;
-    user = mainUser;
-
-    environment = {
-      STEAM_EXTRA_COMPAT_TOOLS_PATHS =
-        lib.makeSearchPathOutput
-        "steamcompattool"
-        ""
-        cfg.extraCompatPackages;
+      remotePlay.openFirewall = true;
+      extraCompatPackages = [
+        self.packages.${pkgs.system}.proton-ge-latest
+      ];
     };
 
-    desktopSession = defaultSession;
-  };
+    # Jovian Steam settings
+    jovian.steam = {
+      # Steam > Settings > System > Enable Developer Mode
+      # Steam > Developer > CEF Remote Debugging
+      enable = true;
+      user = mainUser;
 
-  # Decky settings
-  jovian.decky-loader = {
-    enable = true;
-    user = mainUser;
-    stateDir = "/home/${mainUser}/.local/share/decky"; # Keep scoped to user
-    # https://github.com/Jovian-Experiments/Jovian-NixOS/blob/1171169117f63f1de9ef2ea36efd8dcf377c6d5a/modules/decky-loader.nix#L80-L84
+      environment = {
+        STEAM_EXTRA_COMPAT_TOOLS_PATHS =
+          lib.makeSearchPathOutput
+          "steamcompattool"
+          ""
+          cfg.extraCompatPackages;
+      };
 
-    extraPackages = with pkgs; [
-      # Generic packages
-      curl
-      unzip
-      util-linux
-      gnugrep
+      desktopSession = defaultSession;
+    };
 
-      readline.out
-      procps
-      pciutils
-      libpulseaudio
+    # Decky settings
+    jovian.decky-loader = {
+      enable = true;
+      user = mainUser;
+      stateDir = "/home/${mainUser}/.local/share/decky"; # Keep scoped to user
+      # https://github.com/Jovian-Experiments/Jovian-NixOS/blob/1171169117f63f1de9ef2ea36efd8dcf377c6d5a/modules/decky-loader.nix#L80-L84
+
+      extraPackages = with pkgs; [
+        # Generic packages
+        curl
+        unzip
+        util-linux
+        gnugrep
+
+        readline.out
+        procps
+        pciutils
+        libpulseaudio
+      ];
+    };
+
+    # Takes way too long to shutdown
+    systemd.services."decky-loader".serviceConfig.TimeoutStopSec = "5";
+
+    # Misc Packages
+    environment.systemPackages = [
+      pkgs.steam-rom-manager
+      self.packages.${pkgs.system}.protonhax
+
+      # FIXME:Ryujinx ACNH crashes on OpenGL AND Vulkan
+      # https://github.com/Ryujinx/Ryujinx/issues/6993
+      # https://github.com/Ryujinx/Ryujinx/issues/6708
+      self.packages.${pkgs.system}.yuzu
     ];
   };
 
-  # Takes way too long to shutdown
-  systemd.services."decky-loader".serviceConfig.TimeoutStopSec = "5";
-
-  # Misc Packages
-  environment.systemPackages = [
-    pkgs.steam-rom-manager
-    self.packages.${pkgs.system}.protonhax
-
-    # FIXME:Ryujinx ACNH crashes on OpenGL AND Vulkan
-    # https://github.com/Ryujinx/Ryujinx/issues/6993
-    # https://github.com/Ryujinx/Ryujinx/issues/6708
-    self.packages.${pkgs.system}.yuzu
-  ];
+  # For accurate stack trace
+  _file = ./steam.nix;
 }