diff --git a/derivations/adwaita-for-steam/default.nix b/derivations/adwaita-for-steam/default.nix index 28d3500a..14546ce4 100644 --- a/derivations/adwaita-for-steam/default.nix +++ b/derivations/adwaita-for-steam/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { installPhase = '' mkdir -p $out/share/adwaita-for-steam - cp -r Adwaita/* $out/share/adwaita-for-steam + cp -r Adwaita $out/share/adwaita-for-steam/ ''; meta = with lib; { diff --git a/derivations/default.nix b/derivations/default.nix index b7884482..52e8849e 100644 --- a/derivations/default.nix +++ b/derivations/default.nix @@ -4,4 +4,5 @@ # vital-synth = pkgs.callPackage ./vital-synth {}; # Kept as an example, don't know if I will fix this or keep using distrho cyberdrop-dl = pkgs.callPackage ./cyberdrop-dl {}; firefox-gnome-theme = pkgs.callPackage ./firefox-gnome-theme { src = inputs.firefox-gnome-theme; }; + adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam { src = inputs.adwaita-for-steam; }; } \ No newline at end of file diff --git a/flake.lock b/flake.lock index 850de66a..ea1fb926 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "adwaita-for-steam": { + "flake": false, + "locked": { + "lastModified": 1660168151, + "narHash": "sha256-EOnnejn/O0wCF3wzk2yc/MH14m4U9BIfQQKxyu0UEH8=", + "owner": "tkashkin", + "repo": "Adwaita-for-Steam", + "rev": "9b9c5a036fe262ee2816abcbdeb49c4c1dcc0e8c", + "type": "github" + }, + "original": { + "owner": "tkashkin", + "repo": "Adwaita-for-Steam", + "type": "github" + } + }, "devshell": { "inputs": { "flake-utils": "flake-utils", @@ -138,6 +154,25 @@ "type": "github" } }, + "nixos-conf-editor": { + "inputs": { + "nixpkgs": "nixpkgs_4", + "utils": "utils_2" + }, + "locked": { + "lastModified": 1659222042, + "narHash": "sha256-esyfFl72t5k2XNq6DCRgfIC6TYgIMyGKla9GaEEN0Oo=", + "owner": "vlinkz", + "repo": "nixos-conf-editor", + "rev": "b649b637beb4bc17159a4b7ca949d6703b6bf7cb", + "type": "github" + }, + "original": { + "owner": "vlinkz", + "repo": "nixos-conf-editor", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1643381941, @@ -183,6 +218,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1659077768, + "narHash": "sha256-P0XIHBVty6WIuIrk2DZNvLcYev9956y1prT4zL212H8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2a93ea177c3d7700b934bf95adfe00c435f696b8", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1659981942, "narHash": "sha256-uCFiP/B/NXOWzhN6TKfMbSxtVMk1bVnCrnJRjCF6RmU=", @@ -215,13 +266,15 @@ }, "root": { "inputs": { + "adwaita-for-steam": "adwaita-for-steam", "devshell": "devshell", "emacs-overlay": "emacs-overlay", "firefox-gnome-theme": "firefox-gnome-theme", "hardware": "hardware", "home-manager": "home-manager", "musnix": "musnix", - "nixpkgs": "nixpkgs_4", + "nixos-conf-editor": "nixos-conf-editor", + "nixpkgs": "nixpkgs_5", "nur": "nur" } }, @@ -239,6 +292,21 @@ "repo": "flake-utils", "type": "github" } + }, + "utils_2": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 4a78e8fc..a30de9d1 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,11 @@ firefox-gnome-theme.url = "github:rafaelmardojai/firefox-gnome-theme"; firefox-gnome-theme.flake = false; + + adwaita-for-steam.url = "github:tkashkin/Adwaita-for-Steam"; + adwaita-for-steam.flake = false; + + nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor"; }; # Outputs is a function that takes the inputs as arguments. diff --git a/home/christoph/nixinator/default.nix b/home/christoph/nixinator/default.nix index 1b3261c6..48b2c75d 100644 --- a/home/christoph/nixinator/default.nix +++ b/home/christoph/nixinator/default.nix @@ -41,6 +41,7 @@ rec { enable = true; protonGE = true; gamescope = true; + adwaita = true; }; }; }; diff --git a/home/modules/gaming.nix b/home/modules/gaming.nix index 9c0da101..19309a33 100644 --- a/home/modules/gaming.nix +++ b/home/modules/gaming.nix @@ -23,6 +23,7 @@ in { enable = mkEnableOpt "Steam (flatpak)"; protonGE = mkBoolOpt false "Enable Steam Proton GloriousEggroll runner (flatpak)"; gamescope = mkBoolOpt false "Enable the gamescope micro compositor (flatpak)"; + adwaita = mkBoolOpt false "Enable the adwaita-for-steam skin"; }; }; @@ -46,8 +47,39 @@ in { home.packages = with pkgs; builtins.concatLists [ [ gamemode ] # gamemode should be always enabled (could also be enabled by audio module) - # TODO: Extra config (extensions etc), maybe standalone chromium module + # TODO: Extra config (extensions etc) in chromium module (optionals cfg.discordChromium.enable [ chromium ]) + + (optionals cfg.steam.adwaita [ adwaita-for-steam ]) + ]; + + # This doesn't work because steam doesn't detect symlinked skins, files have to be copied + # home.file = mkMerge [ + # (optionalAttrs cfg.steam.adwaita { + # "adwaita-for-steam" = { + # source = "${pkgs.adwaita-for-steam}/share/adwaita-for-steam/Adwaita"; + # target = ".var/app/com.valvesoftware.Steam/.local/share/Steam/skins/Adwaita"; + # recursive = false; + # }; + # }) + # ]; + home.activation = mkMerge [ + (optionalAttrs cfg.steam.adwaita { + copySteamAdwaitaSkin = hm.dag.entryAfter [ "writeBoundary" ] '' + if [ ! -d ${config.home.homeDirectory}/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins ]; then + mkdir ${config.home.homeDirectory}/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins + fi + + cp -r ${pkgs.adwaita-for-steam}/share/adwaita-for-steam/Adwaita ${config.home.homeDirectory}/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins/Adwaita + chmod -R +w ${config.home.homeDirectory}/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins/Adwaita + ''; + }) + + (optionalAttrs (! cfg.steam.adwaita) { + deleteSteamAdwaitaSkin = hm.dag.entryAfter [ "writeBoundary" ] '' + rm -rf ${config.home.homeDirectory}/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins/Adwaita + ''; + }) ]; xdg.desktopEntries.discordChromium = mkIf cfg.discordChromium.enable { diff --git a/system/default.nix b/system/default.nix index 29ddd465..9484cd4f 100644 --- a/system/default.nix +++ b/system/default.nix @@ -202,6 +202,7 @@ # jetbrains-mono # etBook # overpass + cantarell-fonts ]; # TODO: Check if this works