about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/themes
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/themes')
-rw-r--r--nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix7
-rw-r--r--nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix56
-rw-r--r--nixpkgs/pkgs/data/themes/tokyo-night-gtk/generic.nix77
-rw-r--r--nixpkgs/pkgs/data/themes/tokyo-night-gtk/variants.json18
-rw-r--r--nixpkgs/pkgs/data/themes/utterly-nord-plasma/default.nix63
-rw-r--r--nixpkgs/pkgs/data/themes/utterly-round-plasma-style/default.nix40
7 files changed, 229 insertions, 34 deletions
diff --git a/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
index 6b56064b8734..71e7fb9a2863 100644
--- a/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenvNoCC
 , fetchFromGitHub
-, gitUpdater
 , gnome-themes-extra
 , gtk-engine-murrine
 , jdupes
@@ -23,13 +22,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "all" "black
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2023-08-12";
+  version = "2023-10-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-Ss6IXd4vYUvIF5/Hn4IVLNvDSaewTY0GNZp7X5Lmz/c=";
+    hash = "sha256-NxIWH3qLW8sEguovAv9wfgnlnmPlTipRJTmMo3rSHNY=";
   };
 
   nativeBuildInputs = [
@@ -64,8 +63,6 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { };
-
   meta = with lib; {
     description = "A modern and clean Gtk theme";
     homepage = "https://github.com/vinceliuice/Colloid-gtk-theme";
diff --git a/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
index 31422625a48d..b59b1393c6d8 100644
--- a/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
@@ -63,7 +63,7 @@ stdenvNoCC.mkDerivation rec {
 
     ${lib.optionalString wallpapers ''
       mkdir -p $out/share/backgrounds
-      cp -a wallpaper/Graphite-normal/*.png $out/share/backgrounds/
+      cp -a wallpaper/Graphite/*.png $out/share/backgrounds/
       ${lib.optionalString (builtins.elem "nord" tweaks) ''
         cp -a wallpaper/Graphite-nord/*.png $out/share/backgrounds/
       ''}
diff --git a/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix
index a117562174e5..dc3273e695b1 100644
--- a/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix
@@ -1,38 +1,38 @@
 { lib
-, stdenvNoCC
-, fetchFromGitHub
+, callPackage
+, runCommand
 , gtk-engine-murrine
+, gnome-themes-extra
 }:
 
-stdenvNoCC.mkDerivation {
-  pname = "tokyo-night-gtk";
-  version = "2023.01.17";
+let
+  prefix = "tokyo-night-gtk";
 
-  src = fetchFromGitHub {
-    owner = "Fausto-Korpsvart";
-    repo = "Tokyo-Night-GTK-Theme";
-    rev = "f7ae3421ac0d415ca57fb6224e093e12b8a980bb";
-    sha256 = "sha256-90V55pRfgiaP1huhD+3456ziJ2EU24iNQHt5Ro+g+M0=";
-  };
+  packages = lib.mapAttrs' (type: content: {
+    name = type;
 
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
+    value = lib.mapAttrs' (variantName: variant: {
+      name = variantName;
+      value = callPackage ./generic.nix { inherit prefix type variantName variant; };
+    }) content;
+  }) (lib.importJSON ./variants.json);
+in packages // {
+  # Not using `symlinkJoin` because it's massively inefficient in this case
+  full = runCommand "${prefix}_full" {
+    preferLocalBuild = true;
 
-  dontBuild = true;
+    propagatedUserEnvPkgs = [
+      gtk-engine-murrine
+      gnome-themes-extra
+    ];
+  } ''
+    mkdir -p $out/share/{icons,themes,${prefix}}
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/themes
-    cp -a themes/* $out/share/themes
-    runHook postInstall
+    ${lib.concatStrings (lib.forEach (lib.attrValues (lib.attrsets.mergeAttrsList (lib.attrValues packages))) (variant:
+      ''
+        ln -s ${variant}/share/${variant.ptype}/Tokyonight-${variant.pvariant} $out/share/${variant.ptype}/Tokyonight-${variant.pvariant}
+        ln -s ${variant}/share/${prefix}/LICENSE $out/share/${prefix}/LICENSE 2>/dev/null || true
+      ''
+    ))}
   '';
-
-  meta = with lib; {
-    description = "A GTK theme based on the Tokyo Night colour palette.";
-    homepage = "www.pling.com/p/1681315/";
-    license = licenses.gpl3Only;
-    platforms = platforms.unix;
-    maintainers = with lib.maintainers; [ garaiza-93 ];
-  };
 }
diff --git a/nixpkgs/pkgs/data/themes/tokyo-night-gtk/generic.nix b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/generic.nix
new file mode 100644
index 000000000000..35bf498666da
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/generic.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, writeScript
+, gtk-engine-murrine
+, gnome-themes-extra
+, prefix ? ""
+, type ? ""
+, variantName ? ""
+, variant ? ""
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "${prefix}_${type}-${variantName}";
+  version = "unstable-2023-05-30";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Tokyo-Night-GTK-Theme";
+    rev = "e9790345a6231cd6001f1356d578883fac52233a";
+    hash = "sha256-Q9UnvmX+GpvqSmTwdjU4hsEsYhA887wPqs5pyqbIhmc=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+    gnome-themes-extra
+  ];
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{${type},${prefix}}
+    cp -a ${type}/Tokyonight-${variant} $out/share/${type}
+    cp -a LICENSE $out/share/${prefix}
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = writeScript "update.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl common-updater-scripts tree jq
+      res="$(curl ''${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+        -sL "https://api.github.com/repos/${finalAttrs.src.owner}/${finalAttrs.src.repo}/commits/HEAD")"
+
+      rev="$(echo $res | jq '.sha' --raw-output)"
+      version="unstable-$(echo $res | jq '.commit | .author | .date' --raw-output | sed 's/T.*$//')"
+      update-source-version ${prefix}-variants.${type}.${variantName} "$version" "$rev" --ignore-same-hash
+
+      commonjq1='.[] .contents .[] | {(.name): .name} | walk(if type=="object" then with_entries(.key|=ascii_downcase) else . end)'
+      commonjq2='reduce inputs as $in (.; . + $in)'
+      commontree="-dJ -L 1 --noreport ${finalAttrs.src}"
+
+      echo $(tree $commontree/icons | jq "$commonjq1" | jq "$commonjq2" | jq '{icons: .}') \
+        $(tree $commontree/themes | jq "$commonjq1" | jq "$commonjq2" | jq '{themes: .}') | \
+        jq 'reduce inputs as $in (.; . + $in)' | sed "s/[tT]okyonight-//g" > \
+        "$(git rev-parse --show-toplevel)/pkgs/data/themes/${prefix}/variants.json"
+    '';
+
+    # For "full" in default.nix
+    ptype = type;
+    pvariant = variant;
+  };
+
+  meta = with lib; {
+    description = "A GTK theme based on the Tokyo Night colour palette";
+    homepage = "https://www.pling.com/p/1681315";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ garaiza-93 Madouura ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/themes/tokyo-night-gtk/variants.json b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/variants.json
new file mode 100644
index 000000000000..6489d9c649de
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/variants.json
@@ -0,0 +1,18 @@
+{
+  "icons": {
+    "dark": "Dark",
+    "dark-cyan": "Dark-Cyan",
+    "light": "Light",
+    "moon": "Moon"
+  },
+  "themes": {
+    "dark-b": "Dark-B",
+    "dark-bl": "Dark-BL",
+    "dark-b-lb": "Dark-B-LB",
+    "dark-bl-lb": "Dark-BL-LB",
+    "storm-b": "Storm-B",
+    "storm-bl": "Storm-BL",
+    "storm-b-lb": "Storm-B-LB",
+    "storm-bl-lb": "Storm-BL-LB"
+  }
+}
diff --git a/nixpkgs/pkgs/data/themes/utterly-nord-plasma/default.nix b/nixpkgs/pkgs/data/themes/utterly-nord-plasma/default.nix
new file mode 100644
index 000000000000..4fbb0f5b8a83
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/utterly-nord-plasma/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, breeze-icons
+, kdeclarative
+, kirigami2
+, plasma-framework
+, plasma-workspace
+}:
+
+stdenv.mkDerivation rec {
+  pname = "utterly-nord-plasma";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "HimDek";
+    repo = pname;
+    rev = "6d9ffe008f0bee47c8346c9a7ec71f206d999fd0";
+    hash = "sha256-B5pIwV0BHxDluKWKTy+xuBPaE3N6UOHXip1SIAm2kM8=";
+  };
+
+  propagatedUserEnvPkgs = [
+    breeze-icons
+    kdeclarative.bin
+    kirigami2
+    plasma-framework.bin
+    plasma-workspace
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{color-schemes,Kvantum,plasma/look-and-feel,sddm/themes,wallpapers,konsole}
+
+    cp -a look-and-feel $out/share/plasma/look-and-feel/Utterly-Nord
+    cp -a look-and-feel-solid $out/share/plasma/look-and-feel/Utterly-Nord-solid
+    cp -a look-and-feel-light $out/share/plasma/look-and-feel/Utterly-Nord-light
+    cp -a look-and-feel-light-solid $out/share/plasma/look-and-feel/Utterly-Nord-light-solid
+
+    cp -a *.colors $out/share/color-schemes/
+
+    cp -a wallpaper $out/share/wallpapers/Utterly-Nord
+
+    cp -a kvantum $out/share/Kvantum/Utterly-Nord
+    cp -a kvantum-solid $out/share/Kvantum/Utterly-Nord-Solid
+    cp -a kvantum-light $out/share/Kvantum/Utterly-Nord-Light
+    cp -a kvantum-light-solid $out/share/Kvantum/Utterly-Nord-Light-Solid
+
+    cp -a *.colorscheme $out/share/konsole/
+
+    cp -a sddm $out/share/sddm/themes/Utterly-Nord
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Plasma theme with Nordic Colors, transparency, blur and round edges for UI elements";
+    homepage = "https://himdek.com/Utterly-Nord-Plasma/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/utterly-round-plasma-style/default.nix b/nixpkgs/pkgs/data/themes/utterly-round-plasma-style/default.nix
new file mode 100644
index 000000000000..40bdb2f71d88
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/utterly-round-plasma-style/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "utterly-round-plasma-style";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "HimDek";
+    repo = pname;
+    rev = "c3677d5223286f69871f6745cdb3b71367229d40";
+    hash = "sha256-mlqRMz0cAZnnM4xE6p7fMzhGlqCQcM4FxmDlVnbGUgQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{aurorae/themes,plasma/desktoptheme}
+
+    cp -a aurorae/dark/translucent $out/share/aurorae/themes/Utterly-Round-Dark
+    cp -a aurorae/dark/solid $out/share/aurorae/themes/Utterly-Round-Dark-Solid
+    cp -a aurorae/light/translucent $out/share/aurorae/themes/Utterly-Round-Light
+    cp -a aurorae/light/solid $out/share/aurorae/themes/Utterly-Round-Light-Solid
+
+    cp -a desktoptheme/translucent $out/share/plasma/desktoptheme/Utterly-Round
+    cp -a desktoptheme/solid $out/share/plasma/desktoptheme/Utterly-Round-Solid
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A rounded desktop theme and window borders for Plasma 5 that follows any color scheme";
+    homepage = "https://himdek.com/Utterly-Round-Plasma-Style/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}