diff --git a/hosts/deck/configuration.nix b/hosts/deck/configuration.nix index 758901f..24196cd 100644 --- a/hosts/deck/configuration.nix +++ b/hosts/deck/configuration.nix @@ -43,12 +43,14 @@ # Set your time zone. time.timeZone = "America/Chicago"; + services.xserver.desktopManager.gnome.enable = true; + services.desktopManager.plasma6 = { - enable = true; + enable = false; enableQt5Integration = true; }; - xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ]; + xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; services.xserver.enable = true; diff --git a/hosts/deck/home.nix b/hosts/deck/home.nix index 0005bb1..55150d7 100644 --- a/hosts/deck/home.nix +++ b/hosts/deck/home.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ lib, pkgs, ... }: let shellAliases = { ll = "ls -alh"; @@ -46,6 +46,7 @@ in romFolder = "gc"; binaryName = "dolphin-emu"; fileTypes = [ ".iso" ".ISO" ".gcm" ".GCM" ".ciso" ".CISO" "rvz" ]; + extraArgs = "-b -e \"\${filePath}\""; }; pcsx2 = { @@ -92,9 +93,16 @@ in home.packages = with pkgs; [ age + apple-cursor chromium + colloid-icon-theme + colloid-gtk-theme dolphin-emu fastfetch + gnome-tweaks + gnomeExtensions.appindicator + gnomeExtensions.dash-to-dock + gnomeExtensions.tiling-assistant heroic lm_sensors mgba @@ -108,4 +116,36 @@ in vmware-horizon-client vscode ]; + + dconf = { + enable = true; + settings = { + "org/gnome/desktop/interface".clock-format = "12h"; + "org/gnome/desktop/interface".color-scheme = "prefer-dark"; + "org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS"; + "org/gnome/desktop/interface".enable-hot-corners = false; + "org/gnome/desktop/interface".font-antialiasing = "grayscale"; + "org/gnome/desktop/interface".font-hinting = "slight"; + "org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark"; + "org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark"; + "org/gnome/desktop/peripherals/mouse".accel-profile = "flat"; + "org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true; + "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; + "org/gnome/mutter".experimental-features = [ + "scale-monitor-framebuffer" + "variable-refresh-rate" + ]; + "org/gnome/tweaks".show-extensions-notice = false; + "org/gnome/shell".enabled-extensions = [ + "appindicatorsupport@rgcjonas.gmail.com" + "user-theme@gnome-shell-extensions.gcampax.github.com" + "tiling-assistant@leleat-on-github" + "dash-to-dock@micxgx.gmail.com" + ]; + "org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1; + "org/gnome/shell/extensions/dash-to-panel".multi-monitors = false; + "org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark"; + "org/gtk/settings/file-chooser".clock-format = "12h"; + }; + }; } diff --git a/hosts/deck/jovian.nix b/hosts/deck/jovian.nix index 004e38e..b918057 100644 --- a/hosts/deck/jovian.nix +++ b/hosts/deck/jovian.nix @@ -5,7 +5,7 @@ enable = true; autoStart = true; user = "deck"; - desktopSession = "plasma"; # plasma, plasmaX11, or gamescope-wayland + desktopSession = "gnome"; # plasma, plasmaX11, or gamescope-wayland }; steamos = { diff --git a/hosts/deck/steam-rom-manager.nix b/hosts/deck/steam-rom-manager.nix index 1cc5b20..53a4d9a 100644 --- a/hosts/deck/steam-rom-manager.nix +++ b/hosts/deck/steam-rom-manager.nix @@ -179,11 +179,41 @@ let in makeOrderedJSON orderedConfig; - # Create AppImage package - steam-rom-manager = pkgs.fetchurl { - name = "steam-rom-manager-2.5.29.AppImage"; - url = "https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.5.29/Steam-ROM-Manager-2.5.29.AppImage"; - hash = "sha256-6ZJ+MGIgr2osuQuqD6N9NnPiJFNq/HW6ivG8tyXUhvs="; + # Fetch the SVG icon file directly + steam-rom-manager-icon = pkgs.fetchurl { + name = "steam-rom-manager.svg"; + url = "https://raw.githubusercontent.com/SteamGridDB/steam-rom-manager/master/src/assets/icons/steam-rom-manager.svg"; + hash = "sha256-DKzNIs5UhIWAVRTfinvCb8WqeDniPWw9Z08/p/Zpa9E="; + }; + + # Create our Steam ROM Manager package + steam-rom-manager = pkgs.stdenv.mkDerivation { + name = "steam-rom-manager-2.5.29"; + src = pkgs.fetchurl { + name = "steam-rom-manager-2.5.29.AppImage"; + url = "https://github.com/SteamGridDB/steam-rom-manager/releases/download/v2.5.29/Steam-ROM-Manager-2.5.29.AppImage"; + hash = "sha256-6ZJ+MGIgr2osuQuqD6N9NnPiJFNq/HW6ivG8tyXUhvs="; + }; + + nativeBuildInputs = [ pkgs.makeWrapper ]; + + # Skip unnecessary build phases since we're just installing files + dontUnpack = true; + dontBuild = true; + dontPatch = true; + dontConfigure = true; + + installPhase = '' + # Create our directory structure + mkdir -p $out/{bin,share/icons/hicolor/scalable/apps,share/applications} + + # Install the AppImage + cp $src $out/bin/steam-rom-manager.AppImage + chmod +x $out/bin/steam-rom-manager.AppImage + + # Install the SVG icon + cp ${steam-rom-manager-icon} $out/share/icons/hicolor/scalable/apps/steam-rom-manager.svg + ''; }; in { options.programs.steam-rom-manager = { @@ -252,12 +282,27 @@ in { home.packages = [ pkgs.appimage-run ] ++ mapAttrsToList (_: v: v.package) (filterAttrs (_: v: v.enable) cfg.emulators); + # Install the icon + xdg.dataFile = { + "icons/hicolor/scalable/apps/steam-rom-manager.svg".source = steam-rom-manager-icon; + }; + + # Create the desktop entry xdg.desktopEntries.steam-rom-manager = { name = "Steam ROM Manager"; - exec = "${pkgs.appimage-run}/bin/appimage-run ${cfg.package}"; - icon = "steam"; + exec = "${pkgs.appimage-run}/bin/appimage-run ${steam-rom-manager}/bin/steam-rom-manager.AppImage"; + icon = "steam-rom-manager"; categories = [ "Game" "Utility" ]; type = "Application"; + terminal = false; + comment = "Add ROMs to Steam with artwork"; + # Add KDE-specific entries + settings = { + # Ensure it appears in Plasma menus + "X-KDE-StartupNotify" = "true"; + "X-KDE-SubstituteUID" = "false"; + "X-DBUS-StartupType" = "Unique"; + }; }; # Configuration files using xdg.configFile