summary refs log tree commit diff
path: root/pkgs/data/themes
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/data/themes')
-rw-r--r--pkgs/data/themes/adapta-kde/default.nix28
-rw-r--r--pkgs/data/themes/adapta/default.nix49
-rw-r--r--pkgs/data/themes/adementary/default.nix36
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix57
-rw-r--r--pkgs/data/themes/albatross/default.nix27
-rw-r--r--pkgs/data/themes/amber/default.nix27
-rw-r--r--pkgs/data/themes/ant-theme/ant-bloody.nix34
-rw-r--r--pkgs/data/themes/ant-theme/ant-nebula.nix34
-rw-r--r--pkgs/data/themes/ant-theme/ant.nix34
-rw-r--r--pkgs/data/themes/arc-kde/default.nix28
-rw-r--r--pkgs/data/themes/arc/default.nix65
-rw-r--r--pkgs/data/themes/artim-dark/default.nix35
-rw-r--r--pkgs/data/themes/ayu-theme-gtk/default.nix68
-rw-r--r--pkgs/data/themes/blackbird/default.nix25
-rw-r--r--pkgs/data/themes/canta/default.nix65
-rw-r--r--pkgs/data/themes/clearlooks-phenix/default.nix33
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix48
-rw-r--r--pkgs/data/themes/e17gtk/default.nix27
-rw-r--r--pkgs/data/themes/equilux-theme/default.nix39
-rw-r--r--pkgs/data/themes/flat-remix-gnome/default.nix44
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix33
-rw-r--r--pkgs/data/themes/gnome-breeze/default.nix29
-rw-r--r--pkgs/data/themes/graphite-gtk-theme/default.nix95
-rw-r--r--pkgs/data/themes/graphite-kde-theme/default.nix41
-rw-r--r--pkgs/data/themes/greybird/default.nix37
-rw-r--r--pkgs/data/themes/gruvbox-dark-gtk/default.nix27
-rw-r--r--pkgs/data/themes/gtk-theme-framework/default.nix36
-rw-r--r--pkgs/data/themes/jade1/default.nix30
-rw-r--r--pkgs/data/themes/juno/default.nix45
-rw-r--r--pkgs/data/themes/kde-gruvbox/default.nix32
-rw-r--r--pkgs/data/themes/kde2/default.nix30
-rw-r--r--pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix38
-rw-r--r--pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix38
-rw-r--r--pkgs/data/themes/layan-gtk-theme/default.nix38
-rw-r--r--pkgs/data/themes/layan-kde/default.nix46
-rw-r--r--pkgs/data/themes/lightly-qt/default.nix42
-rw-r--r--pkgs/data/themes/lounge/default.nix35
-rw-r--r--pkgs/data/themes/marwaita-manjaro/default.nix47
-rw-r--r--pkgs/data/themes/marwaita-peppermint/default.nix47
-rw-r--r--pkgs/data/themes/marwaita-pop_os/default.nix47
-rw-r--r--pkgs/data/themes/marwaita-ubuntu/default.nix46
-rw-r--r--pkgs/data/themes/marwaita/default.nix50
-rw-r--r--pkgs/data/themes/matcha/default.nix36
-rw-r--r--pkgs/data/themes/materia-kde/default.nix23
-rw-r--r--pkgs/data/themes/materia-theme/default.nix47
-rw-r--r--pkgs/data/themes/material-kwin-decoration/default.nix53
-rw-r--r--pkgs/data/themes/mojave/default.nix124
-rw-r--r--pkgs/data/themes/nordic/default.nix125
-rw-r--r--pkgs/data/themes/numix-solarized/default.nix47
-rw-r--r--pkgs/data/themes/numix-sx/default.nix30
-rw-r--r--pkgs/data/themes/numix/default.nix32
-rw-r--r--pkgs/data/themes/obsidian2/default.nix30
-rw-r--r--pkgs/data/themes/onestepback/default.nix39
-rw-r--r--pkgs/data/themes/openzone/default.nix24
-rw-r--r--pkgs/data/themes/orchis-theme/default.nix60
-rw-r--r--pkgs/data/themes/orion/default.nix26
-rw-r--r--pkgs/data/themes/paper-gtk/default.nix31
-rw-r--r--pkgs/data/themes/pitch-black/default.nix30
-rw-r--r--pkgs/data/themes/plano/default.nix46
-rw-r--r--pkgs/data/themes/plata/default.nix88
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix65
-rw-r--r--pkgs/data/themes/qogir/default.nix54
-rw-r--r--pkgs/data/themes/qtcurve/default.nix69
-rw-r--r--pkgs/data/themes/rose-pine-gtk/default.nix44
-rw-r--r--pkgs/data/themes/shades-of-gray/default.nix30
-rw-r--r--pkgs/data/themes/sierra/default.nix74
-rw-r--r--pkgs/data/themes/skeu/default.nix46
-rw-r--r--pkgs/data/themes/snowblind/default.nix30
-rw-r--r--pkgs/data/themes/solarc/default.nix31
-rw-r--r--pkgs/data/themes/stilo/default.nix27
-rw-r--r--pkgs/data/themes/sweet/default.nix51
-rw-r--r--pkgs/data/themes/ubuntu-themes/default.nix77
-rw-r--r--pkgs/data/themes/venta/default.nix47
-rw-r--r--pkgs/data/themes/vertex/default.nix37
-rw-r--r--pkgs/data/themes/vimix/default.nix48
-rw-r--r--pkgs/data/themes/whitesur/default.nix98
-rw-r--r--pkgs/data/themes/yaru-remix/default.nix28
-rw-r--r--pkgs/data/themes/yaru/default.nix47
-rw-r--r--pkgs/data/themes/zuki/default.nix27
79 files changed, 3533 insertions, 0 deletions
diff --git a/pkgs/data/themes/adapta-kde/default.nix b/pkgs/data/themes/adapta-kde/default.nix
new file mode 100644
index 00000000000..4feeeaa6c00
--- /dev/null
+++ b/pkgs/data/themes/adapta-kde/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-kde-theme";
+  version = "20180828";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "adapta-kde";
+    rev = version;
+    sha256 = "1q85678sff8is2kwvgd703ckcns42gdga2c1rqlp61gb6bqf09j8";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # Make this a fixed-output derivation
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  ouputHash = "0rxhk8sp81vb2mngqr7kn9vlqyliq9aqj2d25igcr01v5axbxbzb";
+
+  meta = {
+    description = "A port of the Adapta theme for Plasma";
+    homepage = "https://git.io/adapta-kde";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.tadfisher ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/adapta/default.nix b/pkgs/data/themes/adapta/default.nix
new file mode 100644
index 00000000000..fc6e5b8c355
--- /dev/null
+++ b/pkgs/data/themes/adapta/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-gtk-theme";
+  version = "3.95.0.11";
+
+  src = fetchFromGitHub {
+    owner = "adapta-project";
+    repo = "adapta-gtk-theme";
+    rev = version;
+    sha256 = "19skrhp10xx07hbd0lr3d619vj2im35d8p9rmb4v4zacci804q04";
+  };
+
+  preferLocalBuild = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    parallel
+    sassc
+    inkscape
+    libxml2
+    glib.dev
+    gnome.gnome-shell
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = "patchShebangs .";
+
+  configureFlags = [
+    "--disable-gtk_legacy"
+    "--disable-gtk_next"
+    "--disable-unity"
+  ];
+
+  meta = with lib; {
+    description = "An adaptive GTK theme based on Material Design Guidelines";
+    homepage = "https://github.com/adapta-project/adapta-gtk-theme";
+    license = with licenses; [ gpl2 cc-by-sa-30 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/adementary/default.nix b/pkgs/data/themes/adementary/default.nix
new file mode 100644
index 00000000000..8b03132bfcb
--- /dev/null
+++ b/pkgs/data/themes/adementary/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, sassc }:
+
+stdenv.mkDerivation rec {
+  pname = "adementary-theme";
+  version = "201905r1";
+
+  src = fetchFromGitHub {
+    owner  = "hrdwrrsk";
+    repo   = pname;
+    rev    = version;
+    sha256 = "14y5s18g9r2c1ciw1skfksn09gvqgy8vjvwbr0z8gacf0jc2apqk";
+  };
+
+  preBuild = ''
+    # Shut up inkscape's warnings
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  nativeBuildInputs = [ sassc ];
+  buildInputs = [ gtk3 ];
+
+  postPatch = "patchShebangs .";
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    ./install.sh -d $out/share/themes
+  '';
+
+  meta = with lib; {
+    description = "Adwaita-based GTK theme with design influence from elementary OS and Vertex GTK theme";
+    homepage    = "https://github.com/hrdwrrsk/adementary-theme";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
new file mode 100644
index 00000000000..37cca06a69c
--- /dev/null
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, ninja
+, qtbase
+, qt5
+, xorg
+}:
+
+mkDerivation rec {
+  pname = "adwaita-qt";
+  version = "1.4.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "FedoraQt";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-t9vv1KcMUg8Qe7lhVMN4GO+VPoT7QzeoQ6hV4fesA8U=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    qtbase
+    qt5.qtx11extras
+  ] ++ lib.optionals stdenv.isLinux [
+    xorg.libxcb
+  ];
+
+  postPatch = ''
+    # Fix plugin dir
+    substituteInPlace src/style/CMakeLists.txt \
+       --replace "DESTINATION \"\''${QT_PLUGINS_DIR}/styles" "DESTINATION \"$qtPluginPrefix/styles"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "A style to bend Qt applications to look like they belong into GNOME Shell";
+    homepage = "https://github.com/FedoraQt/adwaita-qt";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/albatross/default.nix b/pkgs/data/themes/albatross/default.nix
new file mode 100644
index 00000000000..b53dd553ca2
--- /dev/null
+++ b/pkgs/data/themes/albatross/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "Albatross";
+  version = "1.7.4";
+
+  src = fetchFromGitHub {
+    repo = "Albatross";
+    owner = "shimmerproject";
+    rev = "v${version}";
+    sha256 = "0mq87n2hxy44nzr567av24n5nqjaljhi1afxrn3mpjqdbkq7lx88";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -dm 755 $out/share/themes/Albatross
+    cp -dr --no-preserve='ownership' {LICENSE.GPL,README,index.theme,gtk-2.0,gtk-3.0,metacity-1,xfwm4} $out/share/themes/Albatross/
+  '';
+
+  meta = {
+    description = "A desktop Suite for Xfce";
+    homepage = "https://github.com/shimmerproject/Albatross";
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/data/themes/amber/default.nix b/pkgs/data/themes/amber/default.nix
new file mode 100644
index 00000000000..e39f0e3f645
--- /dev/null
+++ b/pkgs/data/themes/amber/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "amber-theme";
+  version = "3.38-1";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OrdBeAD+gdIu6u8ESE9PtqYadSuJ8nx1Z8fB4D9y4W4=";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "GTK, gnome-shell and Xfce theme based on Ubuntu Ambiance";
+    homepage = "https://github.com/lassekongo83/amber-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/ant-theme/ant-bloody.nix b/pkgs/data/themes/ant-theme/ant-bloody.nix
new file mode 100644
index 00000000000..66cd3e247a7
--- /dev/null
+++ b/pkgs/data/themes/ant-theme/ant-bloody.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant-Bloody";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-bloody-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "0rrz50kmzjmqj17hvrw67pbaclwxv85i5m08s7842iky6dnn5z8s";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Bloody variant of the Ant theme";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/data/themes/ant-theme/ant-nebula.nix b/pkgs/data/themes/ant-theme/ant-nebula.nix
new file mode 100644
index 00000000000..a6279157235
--- /dev/null
+++ b/pkgs/data/themes/ant-theme/ant-nebula.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant-Nebula";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-nebula-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "1xpgw577nmgjk547mg2vvv0gdai60srgncykm5pb1w8dnlk69jbz";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nebula variant of the Ant theme";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/data/themes/ant-theme/ant.nix b/pkgs/data/themes/ant-theme/ant.nix
new file mode 100644
index 00000000000..250b77a66e8
--- /dev/null
+++ b/pkgs/data/themes/ant-theme/ant.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "1r795v96ywzcb4dq08q2fdbmfia32g36cc512mhy41s8fb1a47dz";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat and light theme with a modern look";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/data/themes/arc-kde/default.nix b/pkgs/data/themes/arc-kde/default.nix
new file mode 100644
index 00000000000..ecf798364ff
--- /dev/null
+++ b/pkgs/data/themes/arc-kde/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "arc-kde-theme";
+  version = "20180614";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "arc-kde";
+    rev = version;
+    sha256 = "0wli16k9my7m8a9561545vjwfifmxm4w606z1h0j08msvlky40xw";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # Make this a fixed-output derivation
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  ouputHash = "2c2def57092a399aa1c450699cbb8639f47d751157b18db17";
+
+  meta = {
+    description = "A port of the arc theme for Plasma";
+    homepage = "https://git.io/arc-kde";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.nixy ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
new file mode 100644
index 00000000000..ea18da119c7
--- /dev/null
+++ b/pkgs/data/themes/arc/default.nix
@@ -0,0 +1,65 @@
+{ lib, stdenv
+, fetchFromGitHub
+, sassc
+, meson
+, ninja
+, pkg-config
+, gtk3
+, glib
+, gnome
+, gtk-engine-murrine
+, optipng
+, inkscape
+, cinnamon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "arc-theme";
+  version = "20211018";
+
+  src = fetchFromGitHub {
+    owner = "jnsh";
+    repo = pname;
+    rev = version;
+    sha256 = "1rrxm5b7l8kq1h0lm08ck54xljzm8w573mxx904n3rhdg3ri9d63";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    sassc
+    optipng
+    inkscape
+    gtk3
+    glib # for glib-compile-resources
+  ];
+
+  propagatedUserEnvPkgs = [
+    gnome.gnome-themes-extra
+    gtk-engine-murrine
+  ];
+
+  preBuild = ''
+    # Shut up inkscape's warnings about creating profile directory
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  mesonFlags = [
+    "-Dthemes=cinnamon,gnome-shell,gtk2,gtk3,plank,xfwm,metacity"
+    "-Dvariants=light,darker,dark,lighter"
+    "-Dcinnamon_version=${cinnamon.cinnamon-common.version}"
+    "-Dgnome_shell_version=${gnome.gnome-shell.version}"
+    "-Dgtk3_version=${gtk3.version}"
+    # You will need to patch gdm to make use of this.
+    "-Dgnome_shell_gresource=true"
+  ];
+
+  meta = with lib; {
+    description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
+    homepage = "https://github.com/jnsh/arc-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ simonvandel romildo ];
+  };
+}
diff --git a/pkgs/data/themes/artim-dark/default.nix b/pkgs/data/themes/artim-dark/default.nix
new file mode 100644
index 00000000000..9485f46b19a
--- /dev/null
+++ b/pkgs/data/themes/artim-dark/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec{
+  pname = "artim-dark";
+  version = "unstable-2021-12-29";
+
+  src = fetchFromGitHub {
+    owner="Mrcuve0";
+    repo="Aritim-Dark";
+    rev = "99cd330a1ab4814260e28f15431e3338a1103668";
+    hash = "sha256-xGnw5KpXbVyDdTuAkav1Hec6bitpZdPzZk0xv7WHTdY=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/plasma/desktoptheme
+    cp -R KDE/plasmaTheme/Aritim-Dark* $out/share/plasma/desktoptheme
+    mkdir -p $out/share/aurorae/themes
+    cp -R KDE/auroraeTheme $out/share/aurorae/themes/Aritim-Dark
+    mkdir -p $out/share/color-schemes
+    cp -R KDE/colorScheme/*.colors $out/share/color-schemes
+    mkdir -p $out/share/plasma/look-and-feel
+    cp -R KDE/globalTheme $out/share/plasma/look-and-feel/Aritim-Dark
+    mkdir -p $out/share/themes
+    cp -R GTK $out/share/themes/Aritim-Dark
+  '';
+
+  meta = {
+    description = "Dark theme deeply inspired by the Ayu Dark color palette";
+    homepage = "https://github.com/Mrcuve0/Aritim-Dark";
+    license = with lib.licenses; [ gpl3Only ];
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.pasqui23 ];
+  };
+}
diff --git a/pkgs/data/themes/ayu-theme-gtk/default.nix b/pkgs/data/themes/ayu-theme-gtk/default.nix
new file mode 100644
index 00000000000..2e8453b097d
--- /dev/null
+++ b/pkgs/data/themes/ayu-theme-gtk/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gnome
+, gtk-engine-murrine
+, gtk3
+, inkscape
+, lib
+, optipng
+, pkg-config
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ayu-theme-gtk";
+  version = "unstable-2017-05-12";
+
+  src = fetchFromGitHub {
+    owner = "dnordstrom";
+    repo = "ayu-theme";
+    rev = "cc6f3d3b72897c304e2f00afcaf51df863155e35";
+    sha256 = "sha256-1EhTfPhYl+4IootTCCE04y6V7nW1/eWdHarfF7/j1U0=";
+  };
+
+  postPatch = ''
+    ln -sn 3.20 common/gtk-3.0/3.24
+    ln -sn 3.18 common/gnome-shell/3.24
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gtk3
+    inkscape
+    optipng
+    pkg-config
+    sassc
+  ];
+
+  propagatedUserEnvPkgs = [
+    gnome.gnome-themes-extra
+    gtk-engine-murrine
+  ];
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    # Shut up inkscape's warnings about creating profile directory
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  configureFlags = [
+    "--with-gnome-shell=${gnome.gnome-shell.version}"
+    "--disable-unity"
+  ];
+
+  postInstall = ''
+    install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
+  '';
+
+  meta = with lib; {
+    description = "Ayu colored GTK and Kvantum themes based on Arc";
+    homepage = "https://github.com/dnordstrom/ayu-theme/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
+
diff --git a/pkgs/data/themes/blackbird/default.nix b/pkgs/data/themes/blackbird/default.nix
new file mode 100644
index 00000000000..a3f481b6d4e
--- /dev/null
+++ b/pkgs/data/themes/blackbird/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "Blackbird";
+  version = "2017-12-13";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "shimmerproject";
+    rev = "a1c5674c0ec38b4cc8ba41d2c0e6187987ae7eb4";
+    sha256 = "0xskcw36ci2ykra5gir5pkrawh2qkcv18p4fp2kxivssbd20d4jw";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = {
+    description = "Dark Desktop Suite for Gtk, Xfce and Metacity";
+    homepage = "https://github.com/shimmerproject/Blackbird";
+    license = with lib.licenses; [ gpl2Plus cc-by-nc-sa-30 ];
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/canta/default.nix b/pkgs/data/themes/canta/default.nix
new file mode 100644
index 00000000000..5666eded73f
--- /dev/null
+++ b/pkgs/data/themes/canta/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, librsvg
+, gtk-engine-murrine
+, gtk3
+, gnome
+, gnome-icon-theme
+, numix-icon-theme-circle
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "canta-theme";
+  version = "2021-09-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "05h42nrggb6znzjcbh4lqqfcm41h4r85n3vwimp3l4lq5p90igr2";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedBuildInputs = [
+    gnome.adwaita-icon-theme
+    gnome-icon-theme
+    numix-icon-theme-circle
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh --dest $out/share/themes
+    rm $out/share/themes/*/{AUTHORS,COPYING}
+    install -D -t $out/share/backgrounds wallpaper/canta-wallpaper.svg
+    mkdir -p $out/share/icons
+    cp -a icons/Canta $out/share/icons
+    gtk-update-icon-cache $out/share/icons/Canta
+  '';
+
+  meta = with lib; {
+    description = "Flat Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Canta-theme";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux; # numix-icon-theme-circle unavailable in darwin
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/clearlooks-phenix/default.nix b/pkgs/data/themes/clearlooks-phenix/default.nix
new file mode 100644
index 00000000000..0157914d8fc
--- /dev/null
+++ b/pkgs/data/themes/clearlooks-phenix/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  version = "7.0.1";
+  pname = "clearlooks-phenix";
+
+  src = fetchzip {
+    url = "https://github.com/jpfleury/clearlooks-phenix/archive/${version}.tar.gz";
+    sha256 = "1b6y4l3rf3c5r4v72fyj3ppvnvw13kvr2a1dyl63ni1jxnlk50kd";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/themes/Clearlooks-Phenix
+    cp -r . $out/share/themes/Clearlooks-Phenix/
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with lib; {
+    description = "GTK3 port of the Clearlooks theme";
+    longDescription = ''
+      The Clearlooks-Phénix project aims at creating a GTK3 port of Clearlooks,
+      the default theme for Gnome 2. Style is also included for GTK2, Unity and
+      for Metacity, Openbox and Xfwm4 window managers.
+    '';
+    homepage = "https://github.com/jpfleury/clearlooks-phenix";
+    downloadPage = "https://github.com/jpfleury/clearlooks-phenix/releases";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.prikhi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
new file mode 100644
index 00000000000..cb6fc84723f
--- /dev/null
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+
+let
+  themeName = "Dracula";
+  version = "3.0";
+in
+stdenv.mkDerivation {
+  pname = "dracula-theme";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "dracula";
+    repo = "gtk";
+    rev = "v${version}";
+    sha256 = "sha256-7DUT/DfvCSo9GiJzqhqvegNCARB0eGtPQ6oUQG/Uja0=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,index.theme,metacity-1,unity,xfwm4} $out/share/themes/${themeName}
+
+    cp -a kde/{color-schemes,plasma} $out/share/
+    cp -a kde/kvantum $out/share/Kvantum
+    mkdir -p $out/share/aurorae/themes
+    cp -a kde/aurorae/* $out/share/aurorae/themes/
+    mkdir -p $out/share/sddm/themes
+    cp -a kde/sddm/* $out/share/sddm/themes/
+
+    mkdir -p $out/share/icons/Dracula-cursors
+    mv kde/cursors/Dracula-cursors/index.theme $out/share/icons/Dracula-cursors/cursor.theme
+    mv kde/cursors/Dracula-cursors/cursors $out/share/icons/Dracula-cursors/cursors
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dracula variant of the Ant theme";
+    homepage = "https://github.com/dracula/gtk";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/pkgs/data/themes/e17gtk/default.nix b/pkgs/data/themes/e17gtk/default.nix
new file mode 100644
index 00000000000..b6cc44aa0d5
--- /dev/null
+++ b/pkgs/data/themes/e17gtk/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "e17gtk";
+  version = "3.22.2";
+
+  src = fetchFromGitHub {
+    owner = "tsujan";
+    repo = "E17gtk";
+    rev = "V${version}";
+    sha256 = "1qwj1hmdlk8sdqhkrh60p2xg4av1rl0lmipdg5j0i40318pmiml1";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/{doc,themes}/E17gtk
+    cp -va index.theme gtk-2.0 gtk-3.0 metacity-1 $out/share/themes/E17gtk/
+    cp -va README.md WORKAROUNDS screenshot.jpg $out/share/doc/E17gtk/
+  '';
+
+  meta = {
+    description = "An Enlightenment-like GTK theme with sharp corners";
+    homepage = "https://github.com/tsujan/E17gtk";
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/equilux-theme/default.nix b/pkgs/data/themes/equilux-theme/default.nix
new file mode 100644
index 00000000000..067c2b88a09
--- /dev/null
+++ b/pkgs/data/themes/equilux-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, gnome, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
+
+stdenv.mkDerivation rec {
+  pname = "equilux-theme";
+  version = "20181029";
+
+  src = fetchFromGitHub {
+    owner = "ddnexus";
+    repo = "equilux-theme";
+    rev = "equilux-v${version}";
+    sha256 = "0lv2yyxhnmnkwxp576wnb01id4fp734b5z5n0l67sg5z7vc2h8fc";
+  };
+
+  nativeBuildInputs = [ glib libxml2 bc ];
+
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    patchShebangs install.sh
+    sed -i install.sh \
+      -e "s|if .*which gnome-shell.*;|if true;|" \
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${lib.versions.majorMinor gnome.gnome-shell.version}|"
+    mkdir -p $out/share/themes
+    ./install.sh --dest $out/share/themes
+    rm $out/share/themes/*/COPYING
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A Material Design theme for GNOME/GTK based desktop environments";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.fpletz ];
+  };
+}
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
new file mode 100644
index 00000000000..c5647094d8f
--- /dev/null
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, glib
+, lib
+, writeScriptBin
+}:
+let
+  # make install will use dconf to find desktop background file uri.
+  # consider adding an args to allow specify pictures manually.
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L38
+  fake-dconf = writeScriptBin "dconf" "echo -n";
+in
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gnome";
+  version = "20211223";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    hash = "sha256-hAehJNDr8r0Jhhz0h7ygXI08ouNiWDT16SPm49i90lM=";
+  };
+
+  nativeBuildInputs = [ glib fake-dconf ];
+  makeFlags = [ "PREFIX=$(out)" ];
+  preInstall = ''
+    # make install will back up this file, it will fail if the file doesn't exist.
+    # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L56
+    mkdir -p $out/share/gnome-shell/
+    touch $out/share/gnome-shell/gnome-shell-theme.gresource
+  '';
+
+  postInstall = ''
+    rm $out/share/gnome-shell/gnome-shell-theme.gresource.old
+  '';
+
+  meta = with lib; {
+    description = "GNOME Shell theme inspired by material design.";
+    homepage = "https://drasite.com/flat-remix-gnome";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
new file mode 100644
index 00000000000..fec900a2d7e
--- /dev/null
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gtk";
+  version = "20220310";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-fKkqMGb1UopjM7hTTury1I3oD5AlHqKP+WLmgAZIQxo=";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "GTK application theme inspired by material design";
+    homepage = "https://drasite.com/flat-remix-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/themes/gnome-breeze/default.nix b/pkgs/data/themes/gnome-breeze/default.nix
new file mode 100644
index 00000000000..38733590a34
--- /dev/null
+++ b/pkgs/data/themes/gnome-breeze/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "gnome-breeze";
+  version = "unstable-2016-05-26";
+
+  src = fetchFromGitHub {
+    owner = "dirruk1";
+    repo = "gnome-breeze";
+    rev = "49a5cd67a270e13a4c04a4b904f126ef728e9221";
+    sha256 = "sha256-lQYVOhFBDOYT+glUHleuymGTfHEE5bIyqUFnS/EDc0I=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -r Breeze* $out/share/themes
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with lib; {
+    description = "A GTK theme built to match KDE's breeze theme";
+    homepage = "https://github.com/dirruk1/gnome-breeze";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ bennofs ];
+    platforms = platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/pkgs/data/themes/graphite-gtk-theme/default.nix b/pkgs/data/themes/graphite-gtk-theme/default.nix
new file mode 100644
index 00000000000..0c9bae8ac31
--- /dev/null
+++ b/pkgs/data/themes/graphite-gtk-theme/default.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gnome-themes-extra
+, gtk-engine-murrine
+, jdupes
+, sassc
+, themeVariants ? [] # default: blue
+, colorVariants ? [] # default: all
+, sizeVariants ? [] # default: standard
+, tweaks ? []
+, wallpapers ? false
+, withGrub ? false
+, grubScreens ? [] # default: 1080p
+}:
+
+let
+  pname = "graphite-gtk-theme";
+
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "blue" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
+lib.checkListOfEnum "${pname}: tweaks" [ "nord" "black" "midblack" "rimless" "normal" ] tweaks
+lib.checkListOfEnum "${pname}: grub screens" [ "1080p" "2k" "4k" ] grubScreens
+
+stdenvNoCC.mkDerivation {
+  inherit pname;
+  version = "unstable-2022-02-04";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = "7ab6a1b7eda81e914405a9931408b1d5c73e6891";
+    sha256 = "09xixd6cz2iyyyg6vskyk0wj2mahfsg21dlfcvi862h8w01hg9lr";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+    sassc
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    name= ./install.sh \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (sizeVariants != []) "--size " + builtins.toString sizeVariants} \
+      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+      --dest $out/share/themes
+
+    ${lib.optionalString wallpapers ''
+      mkdir -p $out/share/backgrounds
+      cp -a wallpaper/Graphite-normal/*.png $out/share/backgrounds/
+      ${lib.optionalString (builtins.elem "nord" tweaks) ''
+        cp -a wallpaper/Graphite-nord/*.png $out/share/backgrounds/
+      ''}
+    ''}
+
+    ${lib.optionalString withGrub ''
+      (
+      cd other/grub2
+
+      patchShebangs install.sh
+
+      ./install.sh --justcopy --dest $out/share/grub/themes \
+        ${lib.optionalString (builtins.elem "nord" tweaks) "--theme nord"} \
+        ${lib.optionalString (grubScreens != []) "--screen " + builtins.toString grubScreens}
+      )
+    ''}
+
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat Gtk+ theme based on Elegant Design";
+    homepage = "https://github.com/vinceliuice/Graphite-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/graphite-kde-theme/default.nix b/pkgs/data/themes/graphite-kde-theme/default.nix
new file mode 100644
index 00000000000..dd3a215a038
--- /dev/null
+++ b/pkgs/data/themes/graphite-kde-theme/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphite-kde-theme";
+  version = "2022-02-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0pnn5s1vfdgkpsy5sc838731ly1imi8pbyd4asibw4zi238l0nvf";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    substituteInPlace install.sh \
+      --replace '$HOME/.local' $out \
+      --replace '$HOME/.config' $out/share
+
+    name= ./install.sh --dest $out/share/themes
+
+    mkdir -p $out/share/sddm/themes
+    cp -a sddm/Graphite $out/share/sddm/themes/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat Design theme for KDE Plasma desktop";
+    homepage = "https://github.com/vinceliuice/Graphite-kde-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/greybird/default.nix b/pkgs/data/themes/greybird/default.nix
new file mode 100644
index 00000000000..06496ea9be1
--- /dev/null
+++ b/pkgs/data/themes/greybird/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, sassc, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "greybird";
+  version = "3.22.15";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fk66fxy2lif9ngazlgkpsziw216i4b1ld2zm97cadf7n97376g9";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    sassc
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "Grey and blue theme from the Shimmer Project for GTK-based environments";
+    homepage = "https://github.com/shimmerproject/Greybird";
+    license = [ licenses.gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 or later
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/gruvbox-dark-gtk/default.nix b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
new file mode 100644
index 00000000000..28b55074afb
--- /dev/null
+++ b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gruvbox-dark-gtk";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jmattheis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/themes/gruvbox-dark
+    rm -rf README.md LICENSE .github
+    cp -r * $out/share/themes/gruvbox-dark
+  '';
+
+  meta = with lib; {
+    description = "Gruvbox theme for GTK based desktop environments";
+    homepage = "https://github.com/jmattheis/gruvbox-dark-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nomisiv ];
+  };
+}
diff --git a/pkgs/data/themes/gtk-theme-framework/default.nix b/pkgs/data/themes/gtk-theme-framework/default.nix
new file mode 100644
index 00000000000..99b9edfc3ac
--- /dev/null
+++ b/pkgs/data/themes/gtk-theme-framework/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, theme, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "gtk-theme-framework";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "jaxwilko";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z5s5rsgiypanf2z0avaisbflnvwrc8aiy5qskrsvbbaja63jy3s";
+  };
+
+  postPatch = ''
+    substituteInPlace main.sh \
+      --replace "#!/usr/bin/env bash" "#!/bin/sh"
+
+    substituteInPlace scripts/install.sh \
+      --replace "#!/usr/bin/env bash" "#!/bin/sh"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    ./main.sh -i -t ${theme} -d $out/share/themes
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/jaxwilko/gtk-theme-framework";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/pkgs/data/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix
new file mode 100644
index 00000000000..42979c8c81b
--- /dev/null
+++ b/pkgs/data/themes/jade1/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-jade1";
+  version = "1.14";
+
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
+    sha256 = "01p1g0gy6d1c8aa9y7inhn6zhm0qy0fzmwlniiv07h15g32appvd";
+  };
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Jade* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Based on Linux Mint theme with dark menus and more intensive green";
+    homepage = "https://github.com/madmaxms/theme-jade-1";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/juno/default.nix b/pkgs/data/themes/juno/default.nix
new file mode 100644
index 00000000000..9e1580a6a14
--- /dev/null
+++ b/pkgs/data/themes/juno/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "juno";
+  version = "0.0.1";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno.tar.xz";
+      sha256 = "1cghsn9qagcf1nlga5cal0aqch6hkjm5wk6ja791zxhdqy3crx1i";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-mirage.tar.xz";
+      sha256 = "0zh6bc85svmwh8qrhpn8mim0pj322x2x2i9sxnp7p1938p5z5m2b";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-ocean.tar.xz";
+      sha256 = "0m2wgmcn12dfq5badzlpzjc8792ba9hi32c79vfvqawdn1q3hrdx";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-palenight.tar.xz";
+      sha256 = "1hn2l0m76x61ixjd253hi7czm65asdjdhqvvlv7idbccc40pvrak";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Juno* $out/share/themes
+    rm $out/share/themes/*/{LICENSE,README.md}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK themes inspired by epic vscode themes";
+    homepage = "https://github.com/EliverLara/Juno";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.gvolpe ];
+  };
+}
diff --git a/pkgs/data/themes/kde-gruvbox/default.nix b/pkgs/data/themes/kde-gruvbox/default.nix
new file mode 100644
index 00000000000..e0f478a53cb
--- /dev/null
+++ b/pkgs/data/themes/kde-gruvbox/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "kde-gruvbox";
+  version = "unstable-2015-08-09";
+
+  src = fetchFromGitHub {
+    owner = "printesoi";
+    repo = pname;
+    rev = "2dd95283076d7194345a460edb3630cfd020759c";
+    sha256 = "sha256-ppAeEfwoHZg7XEj3zGc+uq4Z6hUgJNM2EjuDsc8pFQo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{plasma/desktoptheme,yakuake/kns_skins}
+    cp -R color-schemes konsole $out/share
+    cp -R plasma5/gruvbox $out/share/plasma/desktoptheme
+    cp -R yakuake/breeze-gruvbox-dark $out/share/yakuake/kns_skins
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A suite of themes for KDE applications that match the retro gruvbox colorscheme";
+    homepage = "https://github.com/printesoi/kde-gruvbox";
+    license = licenses.mit;
+    maintainers = [ maintainers.ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/kde2/default.nix b/pkgs/data/themes/kde2/default.nix
new file mode 100644
index 00000000000..1404a6ca86e
--- /dev/null
+++ b/pkgs/data/themes/kde2/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, mkDerivation
+, cmake, extra-cmake-modules
+, qtbase, kcoreaddons, kdecoration
+}:
+
+mkDerivation rec {
+  pname = "kde2-decoration";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "repos-holder";
+    repo = "kdecoration2-kde2";
+    rev = version;
+    sha256 = "y2q1j36EURJc7k1huqhEH1Z82PnVSKlfx20bpQWY28c=";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [ qtbase kcoreaddons kdecoration ];
+
+  meta = with lib; {
+    description = "KDE 2 window decoration ported to Plasma 5";
+    homepage = "https://github.com/repos-holder/kdecoration2-kde2";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
new file mode 100644
index 00000000000..06b0e32d1b7
--- /dev/null
+++ b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, wrapQtAppsHook
+, kwin
+, kdelibs4support
+, libepoxy
+, libXdmcp
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kde-rounded-corners";
+  version = "unstable-2021-11-06";
+
+  src = fetchFromGitHub {
+    owner = "matinlotfali";
+    repo = "KDE-Rounded-Corners";
+    rev = "8ad8f5f5eff9d1625abc57cb24dc484d51f0e1bd";
+    sha256 = "0xbskf7jd03d2invfz1nnfc82klzvc784snw539n4kn6c6rc381p";
+  };
+
+  postConfigure = ''
+    substituteInPlace cmake_install.cmake \
+      --replace "${kdelibs4support}" "$out"
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+  buildInputs = [ kwin kdelibs4support libepoxy libXdmcp ];
+
+  meta = with lib; {
+    description = "Rounds the corners of your windows";
+    homepage = "https://github.com/matinlotfali/KDE-Rounded-Corners";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix b/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
new file mode 100644
index 00000000000..2f5230181d5
--- /dev/null
+++ b/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, wrapQtAppsHook
+, kwin
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sierra-breeze-enhanced";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "kupiqu";
+    repo = "SierraBreezeEnhanced";
+    rev = "V${version}";
+    sha256 = "0kqbfn1jqsbii3hqcqlb93x8cg8dyh5mf66i9r237w41knks5mnw";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+  buildInputs = [ kwin ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=$out"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_TESTING=OFF"
+    "-DKDE_INSTALL_USE_QT_SYS_PATHS=ON"
+  ];
+
+  meta = with lib; {
+    description = "OSX-like window decoration for KDE Plasma written in C++";
+    homepage = "https://github.com/kupiqu/SierraBreezeEnhanced";
+    changelog = "https://github.com/kupiqu/SierraBreezeEnhanced/releases/tag/V${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/pkgs/data/themes/layan-gtk-theme/default.nix b/pkgs/data/themes/layan-gtk-theme/default.nix
new file mode 100644
index 00000000000..7892fbe9f31
--- /dev/null
+++ b/pkgs/data/themes/layan-gtk-theme/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "layan-gtk-theme";
+  version = "2021-06-30";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-FI8+AJlcPHGOzxN6HUKLtPGLe8JTfTQ9Az9NsvVUK7g=";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    unset name && ./install.sh -d $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat Material Design theme for GTK 3, GTK 2 and Gnome-Shell.";
+    homepage = "https://github.com/vinceliuice/Layan-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/pkgs/data/themes/layan-kde/default.nix b/pkgs/data/themes/layan-kde/default.nix
new file mode 100644
index 00000000000..40cd6c055bf
--- /dev/null
+++ b/pkgs/data/themes/layan-kde/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gitUpdater
+}:
+
+stdenv.mkDerivation rec {
+  pname = "layan-kde";
+  version = "2022-02-13";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "09z90g13l26v23nwr8n5bapwldp3hhdrdikynvm4vvb7qsvb4vrp";
+  };
+
+  postPatch = ''
+    patchShebangs install.sh
+
+    substituteInPlace install.sh \
+      --replace '$HOME/.local' $out \
+      --replace '$HOME/.config' $out/share
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    name= ./install.sh --dest $out/share/themes
+
+    mkdir -p $out/share/sddm/themes
+    cp -a sddm/Layan* $out/share/sddm/themes/
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater {inherit pname version; };
+
+  meta = with lib; {
+    description = "A flat Design theme for KDE Plasma desktop";
+    homepage = "https://github.com/vinceliuice/Layan-kde";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/lightly-qt/default.nix b/pkgs/data/themes/lightly-qt/default.nix
new file mode 100644
index 00000000000..7b653d95242
--- /dev/null
+++ b/pkgs/data/themes/lightly-qt/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, kdecoration
+, plasma-workspace
+, qtbase
+, qt5
+}:
+
+mkDerivation rec {
+  pname = "lightly-qt";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "Luwx";
+    repo = "Lightly";
+    rev = "v${version}";
+    sha256 = "0qkjzgjplgwczhk6959iah4ilvazpprv7yb809jy75kkp1jw8mwk";
+  };
+
+  buildInputs = [
+    kdecoration
+    plasma-workspace
+    qtbase
+    qt5.qtx11extras
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  meta = with lib; {
+    description = "A fork of breeze theme style that aims to be visually modern and minimalistic";
+    homepage = "https://github.com/Luwx/Lightly";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.pwoelfel ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/lounge/default.nix b/pkgs/data/themes/lounge/default.nix
new file mode 100644
index 00000000000..ab945f51053
--- /dev/null
+++ b/pkgs/data/themes/lounge/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "lounge-gtk-theme";
+  version = "1.24";
+
+  src = fetchFromGitHub {
+    owner = "monday15";
+    repo = pname;
+    rev = version;
+    sha256 = "0ima0aa5j296xn4y0d1zj6vcdrdpnihqdidj7bncxzgbnli1vazs";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc gtk3 ];
+
+  buildInputs = [ gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  mesonFlags = [
+    "-D gnome_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
+  ];
+
+  postFixup = ''
+    gtk-update-icon-cache "$out"/share/icons/Lounge-aux;
+  '';
+
+  meta = with lib; {
+    description = "Simple and clean GTK theme with vintage scrollbars, inspired by Absolute, based on Adwaita";
+    homepage = "https://github.com/monday15/lounge-gtk-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-manjaro/default.nix b/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 00000000000..5cbf4c19208
--- /dev/null
+++ b/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0qihxipk7ya6n3p9kg20bk6plnb85pg3ahwd02qq4bqfiw6mx3gw";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-peppermint/default.nix b/pkgs/data/themes/marwaita-peppermint/default.nix
new file mode 100644
index 00000000000..6873cd31f8d
--- /dev/null
+++ b/pkgs/data/themes/marwaita-peppermint/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-peppermint";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "09lqp82aymj3silpwmjkkf4mgv3b1xw7181ck89lz2nxb98sr9im";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Peppermint Os Linux style";
+    homepage = "https://www.pling.com/p/1399569/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-pop_os/default.nix b/pkgs/data/themes/marwaita-pop_os/default.nix
new file mode 100644
index 00000000000..ca35460eff1
--- /dev/null
+++ b/pkgs/data/themes/marwaita-pop_os/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-pop_os";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1j6d91kx6iw8sy35rhhjvwb3qz60bvf7a7g7q2i0sznzdicrwsq6";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Pop_os Linux style";
+    homepage = "https://www.pling.com/p/1377894/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-ubuntu/default.nix b/pkgs/data/themes/marwaita-ubuntu/default.nix
new file mode 100644
index 00000000000..f98e112678c
--- /dev/null
+++ b/pkgs/data/themes/marwaita-ubuntu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-ubuntu";
+  version = "1.7";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "024b0817jilvi5ilq9sbwg19ql5i2x3jfgc1awk7zzv6sqii639x";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ubuntu Style of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1352833/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
new file mode 100644
index 00000000000..1e9f9041ca1
--- /dev/null
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+, gitUpdater
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita";
+  version = "13.0";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-aP/zPM7M8Oru/2AA8w6rKU/AVJJ0bAEC01C60yi2SbM=";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater {inherit pname version; };
+
+  meta = with lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
+    homepage = "https://www.pling.com/p/1239855/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
new file mode 100644
index 00000000000..4d59a03313a
--- /dev/null
+++ b/pkgs/data/themes/matcha/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "matcha-gtk-theme";
+  version = "2021-12-25";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1wgq1aypm4cjv7yavlfmqcwahlddvh2gbg2f5ca0djgnpy9vha1g";
+  };
+
+  buildInputs = [ gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -d $out/share/themes
+    install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/extra/firefox $out/share/doc/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A stylish flat design theme for GTK based desktop environments";
+    homepage = "https://vinceliuice.github.io/theme-matcha";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/materia-kde/default.nix b/pkgs/data/themes/materia-kde/default.nix
new file mode 100644
index 00000000000..a50cadb0676
--- /dev/null
+++ b/pkgs/data/themes/materia-kde/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "materia-kde-theme";
+  version = "20210814";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "materia-kde";
+    rev = version;
+    sha256 = "KfC1nB5WUcYixqSy5XCP+6Uqhs07Y3p2F1H+5HB8wAg=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A port of the materia theme for Plasma";
+    homepage = "https://github.com/PapirusDevelopmentTeam/materia-kde";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.diffumist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
new file mode 100644
index 00000000000..da79f68638b
--- /dev/null
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, sassc
+, gnome
+, gtk-engine-murrine
+, gdk-pixbuf
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "materia-theme";
+  version = "20210322";
+
+  src = fetchFromGitHub {
+    owner = "nana-4";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fsicmcni70jkl4jb3fvh7yv0v9jhb8nwjzdq8vfwn256qyk0xvl";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  mesonFlags = [
+    "-Dgnome_shell_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
+  ];
+
+  postInstall = ''
+    rm $out/share/themes/*/COPYING
+  '';
+
+  meta = with lib; {
+    description = "Material Design theme for GNOME/GTK based desktop environments";
+    homepage = "https://github.com/nana-4/materia-theme";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mounium ];
+  };
+}
diff --git a/pkgs/data/themes/material-kwin-decoration/default.nix b/pkgs/data/themes/material-kwin-decoration/default.nix
new file mode 100644
index 00000000000..3716fb79368
--- /dev/null
+++ b/pkgs/data/themes/material-kwin-decoration/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, qtx11extras
+, kcoreaddons
+, kguiaddons
+, kconfig
+, kdecoration
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, kwayland
+}:
+
+mkDerivation rec {
+  pname = "material-kwin-decoration";
+  version = "unstable-2021-10-28";
+
+  src = fetchFromGitHub {
+    owner = "Zren";
+    repo = "material-decoration";
+    rev = "cc5cc399a546b66907629b28c339693423c894c8";
+    sha256 = "sha256-aYlnPFhf+ISVe5Ycryu5BSXY8Lb5OoueMqnWQZiv6Lc=";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "-Werror" ""
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [
+    qtx11extras
+    kcoreaddons
+    kguiaddons
+    kdecoration
+    kconfig
+    kconfigwidgets
+    kwindowsystem
+    kiconthemes
+    kwayland
+  ];
+
+  meta = with lib; {
+    description = "Material-ish window decoration theme for KWin";
+    homepage = "https://github.com/Zren/material-decoration";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nickcao ];
+  };
+}
diff --git a/pkgs/data/themes/mojave/default.nix b/pkgs/data/themes/mojave/default.nix
new file mode 100644
index 00000000000..56d7dfcf375
--- /dev/null
+++ b/pkgs/data/themes/mojave/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, glib
+, gtk-engine-murrine
+, gtk_engines
+, inkscape
+, jdupes
+, optipng
+, sassc
+, which
+, buttonSizeVariants ? [] # default to standard
+, buttonVariants ? [] # default to all
+, colorVariants ? [] # default to all
+, opacityVariants ? [] # default to all
+, themeVariants ? [] # default to MacOS blue
+, wallpapers ? false
+}:
+
+let
+  pname = "mojave-gtk-theme";
+in
+lib.checkListOfEnum "${pname}: button size variants" [ "standard" "small" ] buttonSizeVariants
+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  version = "unstable-2021-12-20";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "vinceliuice";
+      repo = pname;
+      rev = "c148646ccab382f7a2d5fdc421fc32d843cb4172";
+      sha256 = "sha256-h4MSSh8cu9M81bM+WJSyl1SQ7CVth1DvjIVOUJXqpxs";
+    })
+  ]
+  ++
+  lib.optional wallpapers
+    (fetchurl {
+      url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
+      sha256 = "18zzkwm1kqzsdaj8swf0xby1n65gxnyslpw4lnxcx1rphip0rwf7";
+    })
+  ;
+
+  sourceRoot = "source";
+
+  nativeBuildInputs = [
+    glib
+    inkscape
+    jdupes
+    optipng
+    sassc
+    which
+  ];
+
+  buildInputs = [
+    gtk_engines
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  postPatch = ''
+    patchShebangs .
+
+    for f in \
+      render-assets.sh \
+      src/assets/cinnamon/thumbnails/render-thumbnails.sh \
+      src/assets/gtk-2.0/render-assets.sh \
+      src/assets/gtk/common-assets/render-assets.sh \
+      src/assets/gtk/thumbnails/render-thumbnails.sh \
+      src/assets/gtk/windows-assets/render-alt-assets.sh \
+      src/assets/gtk/windows-assets/render-alt-small-assets.sh \
+      src/assets/gtk/windows-assets/render-assets.sh \
+      src/assets/gtk/windows-assets/render-small-assets.sh \
+      src/assets/metacity-1/render-assets.sh \
+      src/assets/xfwm4/render-assets.sh
+    do
+      substituteInPlace $f \
+        --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
+        --replace /usr/bin/optipng ${optipng}/bin/optipng
+    done
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    name= ./install.sh \
+      ${lib.optionalString (buttonSizeVariants != []) "--small " + builtins.toString buttonSizeVariants} \
+      ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      --dest $out/share/themes
+
+    ${lib.optionalString wallpapers ''
+      install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
+    ''}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 53%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mac OSX Mojave like theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Mojave-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
new file mode 100644
index 00000000000..d250de15ca9
--- /dev/null
+++ b/pkgs/data/themes/nordic/default.nix
@@ -0,0 +1,125 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk-engine-murrine
+, jdupes
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nordic";
+  version = "unstable-2022-02-26";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "0da58e462e8ba6c71245d13fbddac950b72018ae";
+      sha256 = "sha256-w7e3DqQV4L/OvntKHJA4+3Dj6dRnlH73SxvW770QIyU=";
+      name = "Nordic";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "9daf11acf3419e2f23d0993ce862a1c944fb8519";
+      sha256 = "sha256-zGgw6THLX7q19BDsllPUrWqQcL6FYAewcyqjQdXzLzg=";
+      name = "Nordic-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "a40819bd00160f987cdf254ce8c34eabebecf0eb";
+      sha256 = "sha256-rSNLdxTfvzTFzI5723WIGRS+NZ8iqUOUliDpkznZrwE=";
+      name = "Nordic-darker";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "4e69cf6e1798938ab7c5795940c663d866ce8201";
+      sha256 = "sha256-p8VaKeKxEiYX4oVqWoyschAq0j/LvPq9yD/awaHKRZw=";
+      name = "Nordic-darker-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "866629583187b914725f05683125fde7f6c280f1";
+      sha256 = "sha256-TQ4G5W87zpTrLU+f+eb5VHwaWuKSbItXCgXSL33U8As=";
+      name = "Nordic-bluish-accent";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "f3702ae02e3caaf74eab0ef9156af9f2a476021b";
+      sha256 = "sha256-drXRfZxCrH2vAXjZSAjWEHcQrehxnM0WLkgbh+cFJhI=";
+      name = "Nordic-bluish-accent-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "4cf3e5c30ebd17a3d53ab0337c191e304feff7b5";
+      sha256 = "sha256-LTCJ7AyABQDTDkjuqcXaKXePFwOpmXeKaW2mWYah4ao=";
+      name = "Nordic-Polar";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "72cbd567212b21ea20769fe244c148f799435536";
+      sha256 = "sha256-qNIyr+Eo0dzPVh9PxDCHv0e6pswACbf9nLhAG75YEYc=";
+      name = "Nordic-Polar-standard-buttons";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ jdupes ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Nordic* $out/share/themes
+    rm -r $out/share/themes/*/.gitignore
+    rm -r $out/share/themes/*/Art
+    rm -r $out/share/themes/*/LICENSE
+    rm -r $out/share/themes/*/README.md
+    rm -r $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
+    rm -r $out/share/themes/*/src
+    rm -r $out/share/themes/*/cinnamon/*.scss
+    rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
+    rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
+    rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
+    rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+
+    # move kde related contents to appropriate directories
+    mkdir -p $out/share/{aurorae/themes,color-schemes,Kvantum,plasma,sddm/themes/Nordic}
+    mv -v $out/share/themes/Nordic/kde/aurorae/* $out/share/aurorae/themes/
+    mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
+    mv -v $out/share/themes/Nordic/kde/konsole $out/share/
+    mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
+    mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/
+    mv -v $out/share/themes/Nordic/kde/sddm/* $out/share/sddm/themes/Nordic/
+    rm -rf $out/share/themes/Nordic/kde
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 65%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gtk and KDE themes using the Nord color pallete";
+    homepage = "https://github.com/EliverLara/Nordic";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/numix-solarized/default.nix b/pkgs/data/themes/numix-solarized/default.nix
new file mode 100644
index 00000000000..efc8236c451
--- /dev/null
+++ b/pkgs/data/themes/numix-solarized/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-solarized-gtk-theme";
+  version = "20210831";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = pname;
+    rev = version;
+    sha256 = "1q8qhpw0hfv625sm626zp4vbz2106b0g5m11ygk87s6kbxrfg6lr";
+  };
+
+  nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
+  '';
+
+  buildPhase = "true";
+
+  installPhase = ''
+    runHook preInstall
+    for theme in colors/*.colors; do
+      theme="''${theme##*/}"
+      make THEME="''${theme/.colors/}" install
+    done
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Solarized versions of Numix GTK2 and GTK3 theme";
+    longDescription = ''
+      This is a fork of the Numix GTK theme that replaces the colors of the theme
+      and icons to use the solarized theme with a solarized green accent color.
+      This theme supports both the dark and light theme, just as Numix proper.
+    '';
+    homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
+    downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.offline ];
+  };
+}
diff --git a/pkgs/data/themes/numix-sx/default.nix b/pkgs/data/themes/numix-sx/default.nix
new file mode 100644
index 00000000000..ee887cbadee
--- /dev/null
+++ b/pkgs/data/themes/numix-sx/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation {
+  version = "2017-04-24";
+  pname = "numix-sx-gtk-theme";
+
+  src = fetchurl {
+    url = "https://dl.opendesktop.org/api/files/download/id/1493077417/Numix-SX.tar.xz";
+    sha256 = "7e1983924b2d90e89eddb3da8f4c43dc1326fe138fd191c8212c7904dcd618b0";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -dm 755 "$out/share/themes/"
+    cp -dr --no-preserve='ownership' Numix-SX-{Dark,FullDark,Light} "$out/share/themes/"
+  '';
+
+  meta = {
+    description = "Gray variation of Numix theme";
+    homepage = "https://www.gnome-look.org/p/1117412/";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.sauyon ];
+  };
+}
diff --git a/pkgs/data/themes/numix/default.nix b/pkgs/data/themes/numix/default.nix
new file mode 100644
index 00000000000..23f491d4a9a
--- /dev/null
+++ b/pkgs/data/themes/numix/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, sass, glib, libxml2, gdk-pixbuf
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.6.7";
+  pname = "numix-gtk-theme";
+
+  src = fetchFromGitHub {
+    repo = "numix-gtk-theme";
+    owner = "numixproject";
+    rev = version;
+    sha256 = "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7";
+  };
+
+  nativeBuildInputs = [ sass glib libxml2 gdk-pixbuf ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
+    patchShebangs .
+  '';
+
+  meta = {
+    description = "Modern flat theme with a combination of light and dark elements (GNOME, Unity, Xfce and Openbox)";
+    homepage = "https://numixproject.github.io";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/obsidian2/default.nix b/pkgs/data/themes/obsidian2/default.nix
new file mode 100644
index 00000000000..251dde481fd
--- /dev/null
+++ b/pkgs/data/themes/obsidian2/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-obsidian2";
+  version = "2.20";
+
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
+    sha256 = "0bbw8far4fjz7fiy205wnzp9ibnvqspfcjkinhjj8l0s272h7wjp";
+  };
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Obsidian-2* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gnome theme, based upon Adwaita-Maia dark skin";
+    homepage = "https://github.com/madmaxms/theme-obsidian-2";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/onestepback/default.nix b/pkgs/data/themes/onestepback/default.nix
new file mode 100644
index 00000000000..9547e354389
--- /dev/null
+++ b/pkgs/data/themes/onestepback/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "onestepback";
+  version = "0.991";
+
+  srcs = [
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-v${version}.zip";
+      sha256 = "1jfgcgzbb6ra9qs3zcp6ij0hfldzg3m0yjw6l6vf4kq1mdby1ghm";
+    })
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-grey-brown-green-blue-v${version}.zip";
+      sha256 = "0i006h1asbpfdzajws0dvk9acplvcympzgxq5v3n8hmizd6yyh77";
+    })
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-green-brown-v${version}.zip";
+      sha256 = "16p002lak6425gcskny4hzws8x9dgsm6j3a1r08y11rsz7d2hnmy";
+    })
+  ];
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p  $out/share/themes
+    cp -a OneStepBack* $out/share/themes/
+    rm $out/share/themes/*/{LICENSE,README*}
+  '';
+
+  meta = with lib; {
+    description = "Gtk theme inspired by the NextStep look";
+    homepage = "http://www.vide.memoire.free.fr/perso/OneStepBack";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/openzone/default.nix b/pkgs/data/themes/openzone/default.nix
new file mode 100644
index 00000000000..e7748612fef
--- /dev/null
+++ b/pkgs/data/themes/openzone/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, icon-slicer, xcursorgen }:
+stdenv.mkDerivation rec {
+  pname = "openzone-cursors";
+  version = "1.2.9";
+
+  src = fetchFromGitHub {
+    owner = "ducakar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02c536mc17ccsrzgma366k3wlm02ivklvr30fafxl981zgghlii4";
+  };
+
+  nativeBuildInputs = [ icon-slicer xcursorgen ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    description = "Clean and sharp X11/Wayland cursor theme";
+    homepage = "https://www.gnome-look.org/p/999999/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zaninime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/orchis-theme/default.nix b/pkgs/data/themes/orchis-theme/default.nix
new file mode 100644
index 00000000000..ccaee7f6552
--- /dev/null
+++ b/pkgs/data/themes/orchis-theme/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gnome-themes-extra
+, gtk-engine-murrine
+, sassc
+, tweaks ? [ ] # can be "solid" "compact" "black" "primary"
+, withWallpapers ? false
+}:
+
+let
+  validTweaks = [ "solid" "compact" "black" "primary" ];
+  unknownTweaks = lib.subtractLists validTweaks tweaks;
+in
+assert lib.assertMsg (unknownTweaks == [ ]) ''
+  You entered wrong tweaks: ${toString unknownTweaks}
+  Valid tweaks are: ${toString validTweaks}
+'';
+
+stdenvNoCC.mkDerivation
+rec {
+  pname = "orchis-theme";
+  version = "2022-02-18";
+
+  src = fetchFromGitHub {
+    repo = "Orchis-theme";
+    owner = "vinceliuice";
+    rev = version;
+    sha256 = "sha256-SqptW8DEDCB6LMHalRlf71TWK93gW+blbu6Q1Oommes=";
+  };
+
+  nativeBuildInputs = [ gtk3 sassc ];
+
+  buildInputs = [ gnome-themes-extra ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  preInstall = ''
+    mkdir -p $out/share/themes
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    bash install.sh -d $out/share/themes -t all ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
+    ${lib.optionalString withWallpapers ''
+      mkdir -p $out/share/backgrounds
+      cp src/wallpaper/{1080p,2k,4k}.jpg $out/share/backgrounds
+    ''}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Material Design theme for GNOME/GTK based desktop environments.";
+    homepage = "https://github.com/vinceliuice/Orchis-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fufexan ];
+  };
+}
diff --git a/pkgs/data/themes/orion/default.nix b/pkgs/data/themes/orion/default.nix
new file mode 100644
index 00000000000..93ea3633fb5
--- /dev/null
+++ b/pkgs/data/themes/orion/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "orion";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = "Orion";
+    rev = "refs/tags/v${version}";
+    sha256 = "1116yawv3fspkiq1ykk2wj0gza3l04b5nhldy0bayzjaj0y6fd89";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes/orion
+    cp -r gtk-2.0 gtk-3.0 metacity-1 openbox-3 xfwm4 $out/share/themes/orion
+  '';
+
+  meta = {
+    homepage = "https://github.com/shimmerproject/Orion";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/paper-gtk/default.nix b/pkgs/data/themes/paper-gtk/default.nix
new file mode 100644
index 00000000000..e7c9179678f
--- /dev/null
+++ b/pkgs/data/themes/paper-gtk/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk_engines }:
+
+stdenv.mkDerivation {
+  version = "2016-08-16";
+  pname = "paper-gtk-theme";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = "paper-gtk-theme";
+    rev = "f75724fd76fd2e5681a367cca246a51f845320c3";
+    sha256 = "0dqllzjk9ggnbh8vvy2c81p3wq6cj73r30hk7gqhrn8i91w8p896";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ gtk_engines ];
+
+  postPatch = ''
+    substituteInPlace Makefile.am --replace '$(DESTDIR)'/usr $out
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with lib; {
+    description = "A modern desktop theme suite featuring a mostly flat with a minimal use of shadows for depth";
+    homepage = "https://snwh.org/paper";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.simonvandel maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/pitch-black/default.nix b/pkgs/data/themes/pitch-black/default.nix
new file mode 100644
index 00000000000..95037f90239
--- /dev/null
+++ b/pkgs/data/themes/pitch-black/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec{
+  pname = "pitch-black";
+  version = "unstable-2019-07-23";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "freefreeno";
+    rev = "d8039341419aef1157c030bf3d9237bd926e0b95";
+    hash = "sha256-Rn3ZMBD6srIkYFNN3HT5JFP46Akodmeqz5tbV2/2ZDA=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    rm LICENSE README.md
+    mkdir -p $out/share
+    mv GTK $out/share/themes
+    mv * $out/share
+  '';
+
+  meta = with lib; {
+    description = "A dark plasma theme built with usability in mind";
+    homepage = "https://github.com/freefreeno/Pitch-Black";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.pasqui23 ];
+  };
+}
diff --git a/pkgs/data/themes/plano/default.nix b/pkgs/data/themes/plano/default.nix
new file mode 100644
index 00000000000..c321dc235c4
--- /dev/null
+++ b/pkgs/data/themes/plano/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gdk-pixbuf
+, gtk_engines
+, gtk-engine-murrine
+, librsvg
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "plano-theme";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-slGr2nsdKng6zaVDeXWFAWKIxZbcnOLU6RH6wM0293E=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "Flat theme for GNOME and Xfce";
+    homepage = "https://github.com/lassekongo83/plano-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
new file mode 100644
index 00000000000..0e7d88a7883
--- /dev/null
+++ b/pkgs/data/themes/plata/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, parallel
+, sassc, inkscape, libxml2, glib, gtk_engines, gtk-engine-murrine
+, cinnamonSupport ? true
+, gnomeFlashbackSupport ? true
+, gnomeShellSupport ? true
+, openboxSupport ? true
+, xfceSupport ? true
+, mateSupport ? true, gtk3, marco
+, gtkNextSupport ? false
+, plankSupport ? false
+, steamSupport ? false
+, telegramSupport ? false, zip
+, tweetdeckSupport ? false
+, selectionColor ? null # Primary color for 'selected-items' (Default: #3F51B5 = Indigo500)
+, accentColor ? null # Secondary color for notifications and OSDs (Default: #7986CB = Indigo300)
+, suggestionColor ? null # Secondary color for 'suggested' buttons (Default: #673AB7 = DPurple500)
+, destructionColor ? null # Tertiary color for 'destructive' buttons (Default: #F44336 = Red500)
+}:
+
+stdenv.mkDerivation rec {
+  pname = "plata-theme";
+  version = "0.9.9";
+
+  src = fetchFromGitLab {
+    owner = "tista500";
+    repo = "plata-theme";
+    rev = version;
+    sha256 = "1iwvlv9qcrjyfbzab00vjqafmp3vdybz1hi02r6lwbgvwyfyrifk";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    parallel
+    sassc
+    inkscape
+    libxml2
+    glib
+  ]
+  ++ lib.optionals mateSupport [ gtk3 marco ]
+  ++ lib.optional telegramSupport zip;
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = "patchShebangs .";
+
+  configureFlags =
+    let
+      inherit (lib) enableFeature optional;
+      withOptional = value: feat: optional (value != null) "--with-${feat}=${value}";
+    in [
+      "--enable-parallel"
+      (enableFeature cinnamonSupport "cinnamon")
+      (enableFeature gnomeFlashbackSupport "flashback")
+      (enableFeature gnomeShellSupport "gnome")
+      (enableFeature openboxSupport "openbox")
+      (enableFeature xfceSupport "xfce")
+      (enableFeature mateSupport "mate")
+      (enableFeature gtkNextSupport "gtk_next")
+      (enableFeature plankSupport "plank")
+      (enableFeature steamSupport "airforsteam")
+      (enableFeature telegramSupport "telegram")
+      (enableFeature tweetdeckSupport "tweetdeck")
+    ]
+    ++ (withOptional selectionColor "selection_color")
+    ++ (withOptional accentColor "accent_color")
+    ++ (withOptional suggestionColor "suggestion_color")
+    ++ (withOptional destructionColor "destruction_color");
+
+  postInstall = ''
+    for dest in $out/share/gtksourceview-{3.0,4}/styles; do
+      mkdir -p $dest
+      cp $out/share/themes/Plata-{Noir,Lumine}/gtksourceview/*.xml $dest
+    done
+  '';
+
+  meta = with lib; {
+    description = "A GTK theme based on Material Design Refresh";
+    homepage = "https://gitlab.com/tista500/plata-theme";
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.tadfisher ];
+  };
+}
diff --git a/pkgs/data/themes/pop-gtk/default.nix b/pkgs/data/themes/pop-gtk/default.nix
new file mode 100644
index 00000000000..022e1dd81b2
--- /dev/null
+++ b/pkgs/data/themes/pop-gtk/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, sassc
+, gtk3
+, inkscape
+, optipng
+, gtk-engine-murrine
+, gdk-pixbuf
+, librsvg
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pop-gtk-theme";
+  version = "2021-08-19";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "gtk-theme";
+    rev = "6615e4510485c5dc0b379746acc40f538d987c86";
+    sha256 = "16h03x2m4j4hfwp7pdmw1navcy5q7di38jvigfgf263wajyxbznr";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+    gtk3
+    inkscape
+    optipng
+    python3
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = ''
+    patchShebangs .
+
+    for file in $(find -name render-\*.sh); do
+      substituteInPlace "$file" \
+        --replace 'INKSCAPE="/usr/bin/inkscape"' \
+                  'INKSCAPE="${inkscape}/bin/inkscape"' \
+        --replace 'OPTIPNG="/usr/bin/optipng"' \
+                  'OPTIPNG="${optipng}/bin/optipng"'
+    done
+  '';
+
+  meta = with lib; {
+    description = "System76 Pop GTK+ Theme";
+    homepage = "https://github.com/pop-os/gtk-theme";
+    license = with licenses; [ gpl3 lgpl21 cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ elyhaka ];
+  };
+}
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
new file mode 100644
index 00000000000..e3e3b6e485b
--- /dev/null
+++ b/pkgs/data/themes/qogir/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gnome-themes-extra
+, gtk-engine-murrine
+, librsvg
+, sassc
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "qogir-theme";
+  version = "2021-12-25";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1h10yqz3i59bxhkk2r2p8as8g9ibx38bbpdxi7jgg2pxr581mn4f";
+  };
+
+  nativeBuildInputs = [
+    sassc
+    which
+  ];
+
+  buildInputs = [
+    gdk-pixbuf # pixbuf engine for Gtk2
+    gnome-themes-extra # adwaita engine for Gtk2
+    librsvg # pixbuf loader for svg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine # murrine engine for Gtk2
+  ];
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -t all -d $out/share/themes
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/firefox $out/share/doc/${pname}
+    rm $out/share/themes/*/{AUTHORS,COPYING}
+  '';
+
+  meta = with lib; {
+    description = "Flat Design theme for GTK based desktop environments";
+    homepage = "https://vinceliuice.github.io/Qogir-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/qtcurve/default.nix b/pkgs/data/themes/qtcurve/default.nix
new file mode 100644
index 00000000000..0b639133a4a
--- /dev/null
+++ b/pkgs/data/themes/qtcurve/default.nix
@@ -0,0 +1,69 @@
+{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config, mkDerivation
+, gtk2Support ? true, gtk2
+, qtbase, qtsvg, qtx11extras # Toolkit dependencies
+, karchive, kconfig, kconfigwidgets, kio, frameworkintegration
+, kguiaddons, ki18n, kwindowsystem, kdelibs4support, kiconthemes
+, libpthreadstubs, pcre, libXdmcp, libX11, libXau # X11 dependencies
+, fetchpatch
+}:
+
+mkDerivation rec {
+  pname = "qtcurve";
+  version = "1.9.1";
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "qtcurve";
+    rev = version;
+    sha256 = "XP9VTeiVIiMm5mkXapCKWxfcvaYCkhY3S5RXZNR3oWo=";
+  };
+
+  patches = [
+    # Remove unnecessary constexpr, this is not allowed in C++14
+    (fetchpatch {
+      url = "https://github.com/KDE/qtcurve/commit/ee2228ea2f18ac5da9b434ee6089381df815aa94.patch";
+      sha256 = "1vz5frsrsps93awn84gk8d7injrqfcyhc1rji6s0gsgsp5z9sl34";
+    })
+    # Fix build with Qt5.15
+    (fetchpatch {
+      url = "https://github.com/KDE/qtcurve/commit/44e2a35ebb164dcab0bad1a9158b1219a3ff6504.patch";
+      sha256 = "5I2fTxKRJX0cJcyUvYHWZx369FKk6ti9Se7AfYmB9ek=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
+
+  buildInputs = [
+    qtbase qtsvg qtx11extras
+    karchive kconfig kconfigwidgets kio kiconthemes kguiaddons ki18n
+    kwindowsystem kdelibs4support frameworkintegration
+    libpthreadstubs
+    pcre
+    libXdmcp libX11 libXau
+  ] ++ lib.optional gtk2Support gtk2;
+
+  preConfigure = ''
+    for i in qt5/CMakeLists.txt qt5/config/CMakeLists.txt
+    do
+      substituteInPlace $i \
+        --replace "{_Qt5_PLUGIN_INSTALL_DIR}" "{KDE_INSTALL_QTPLUGINDIR}"
+    done
+    substituteInPlace CMakeLists.txt \
+      --replace \$\{GTK2_PREFIX\} $out
+    substituteInPlace gtk2/style/CMakeLists.txt \
+      --replace \$\{GTK2_LIBDIR\} $out/lib
+    patchShebangs tools/gen-version.sh
+  '';
+
+  configureFlags = [
+    "-DENABLE_GTK2=${if gtk2Support then "ON" else "OFF"}"
+    "-DENABLE_QT4=OFF"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/QtCurve/qtcurve";
+    description = "Widget styles for Qt5/Plasma 5 and gtk2";
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/data/themes/rose-pine-gtk/default.nix b/pkgs/data/themes/rose-pine-gtk/default.nix
new file mode 100644
index 00000000000..d139876e142
--- /dev/null
+++ b/pkgs/data/themes/rose-pine-gtk/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gnome-themes-extra
+, gtk-engine-murrine
+, gtk_engines
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rose-pine-gtk-theme";
+  version = "unstable-2021-02-22";
+
+  src = fetchFromGitHub {
+    owner = "rose-pine";
+    repo = "gtk";
+    rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
+    sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
+  };
+
+  buildInputs = [
+    gnome-themes-extra # adwaita engine for Gtk2
+    gtk_engines # pixmap engine for Gtk2
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine # murrine engine for Gtk2
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Rose-Pine $out/share/themes
+    rm $out/share/themes/*/LICENSE
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Rosé Pine theme for GTK";
+    homepage = "https://github.com/rose-pine/gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/shades-of-gray/default.nix b/pkgs/data/themes/shades-of-gray/default.nix
new file mode 100644
index 00000000000..e4c4cfb3ba5
--- /dev/null
+++ b/pkgs/data/themes/shades-of-gray/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "shades-of-gray-theme";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "WernerFP";
+    repo = pname;
+    rev = version;
+    sha256 = "13ydym0i3032g5dyrnl5wxpvxv57b43q7iaq5achpmaixgn58gs8";
+  };
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Shades-of-gray* $out/share/themes/
+  '';
+
+  meta = with lib; {
+    description = "Flat dark GTK theme with ergonomic contrasts";
+    homepage = "https://github.com/WernerFP/Shades-of-gray-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/sierra/default.nix b/pkgs/data/themes/sierra/default.nix
new file mode 100644
index 00000000000..e87f6466141
--- /dev/null
+++ b/pkgs/data/themes/sierra/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, jdupes
+, librsvg
+, libxml2
+, buttonVariants ? [] # default to all
+, colorVariants ? [] # default to all
+, opacityVariants ? [] # default to all
+, sizeVariants ? [] # default to all
+}:
+
+let
+  pname = "sierra-gtk-theme";
+in
+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
+
+stdenv.mkDerivation {
+  inherit pname;
+  version = "unstable-2021-05-24";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = "05899001c4fc2fec87c4d222cb3997c414e0affd";
+    sha256 = "174l5mryc34ma1r42pk6572c6i9hmzr9vj1a6w06nqz5qcfm1hds";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+    libxml2
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    mkdir -p $out/share/themes
+    name= ./install.sh --dest $out/share/themes \
+      ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
+      ${lib.optionalString (sizeVariants != []) "--flat " + builtins.toString sizeVariants}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 79%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Mac OSX like theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Sierra-gtk-theme";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/skeu/default.nix b/pkgs/data/themes/skeu/default.nix
new file mode 100644
index 00000000000..d8b0c189657
--- /dev/null
+++ b/pkgs/data/themes/skeu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "skeu";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0lbl09p0h493ya978fh7cib68qlmxfxahmbj0mpa3b65ynxda645";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Skeu* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK theme with skeuomorphism design";
+    homepage = "https://www.pling.com/p/1363834/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/snowblind/default.nix b/pkgs/data/themes/snowblind/default.nix
new file mode 100644
index 00000000000..d36fe232442
--- /dev/null
+++ b/pkgs/data/themes/snowblind/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitLab, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "snowblind";
+  version = "2020-06-07";
+
+  src = fetchFromGitLab {
+    domain = "www.opencode.net";
+    owner = "ju1464";
+    repo = pname;
+    rev = "88d626b204e19d1730836289a1c0d83efcf247d0";
+    sha256 = "0admiqwdc0rvl8zxs0b2qyvsi8im7lrpsygm8ky8ymyf7alkw0gd";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Snowblind* $out/share/themes
+    rm $out/share/themes/*/{COPYING,CREDITS}
+  '';
+
+  meta = with lib; {
+    description = "Smooth blue theme based on Materia Design";
+    homepage = "https://www.opencode.net/ju1464/Snowblind";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/solarc/default.nix b/pkgs/data/themes/solarc/default.nix
new file mode 100644
index 00000000000..a6ae8ce2e91
--- /dev/null
+++ b/pkgs/data/themes/solarc/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config,
+  gtk-engine-murrine, gtk3
+}:
+
+stdenv.mkDerivation {
+  pname = "solarc-gtk-theme";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "schemar";
+    repo = "solarc-theme";
+    rev = "d1eb117325b8e5085ecaf78df2eb2413423fc643";
+    sha256 = "005b66whyxba3403yzykpnlkz0q4m154pxpb4jzcny3fggy9r70s";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkg-config gtk3 ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine gtk3 ];
+
+  buildPhase = ''
+    ./autogen.sh --prefix=$out
+  '';
+
+  meta = with lib; {
+    description = "Solarized version of the Arc theme";
+    homepage = "https://github.com/schemar/solarc-theme";
+    license = licenses.gpl3;
+    maintainers = [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/stilo/default.nix b/pkgs/data/themes/stilo/default.nix
new file mode 100644
index 00000000000..6401c0e2869
--- /dev/null
+++ b/pkgs/data/themes/stilo/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "stilo-themes";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YKEDXrOAn7pGWb0VcOx7cKHnuX120yPzqtUVnzyLrDQ=";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "Minimalistic GTK, gnome shell and Xfce themes";
+    homepage = "https://github.com/lassekongo83/stilo-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/sweet/default.nix b/pkgs/data/themes/sweet/default.nix
new file mode 100644
index 00000000000..3ffa3caf8ba
--- /dev/null
+++ b/pkgs/data/themes/sweet/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchurl, unzip, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "sweet";
+  version = "3.0";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
+      sha256 = "sha256-6ZrjH5L7Yox7riR+2I7vVbFoG4k7xHGyOq1OnkllyiY";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
+      sha256 = "sha256-FAbf682YJCCt8NKSdFoaFLwxLDU1aCcTgNdlybZtPMo=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
+      sha256 = "sha256-t6fczOnKwi4B9hSFhHQaQ533o7MFL+7HPtUJ/p2CIXM=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
+      sha256 = "sha256-QGkkpUqkxGPM1DXrvToB3taajk7vK3rqibQF2M4N9i0=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
+      sha256 = "sha256-1qVC2n7ypN1BFuSzBpbY7QzJUzF1anYNAVcMkNpGTMM";
+    })
+  ];
+
+  nativeBuildInputs = [ unzip ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/
+    cp -a Sweet* $out/share/themes/
+    rm $out/share/themes/*/{LICENSE,README*}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Light and dark colorful Gtk3.20+ theme";
+    homepage = "https://github.com/EliverLara/Sweet";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fuzen ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/ubuntu-themes/default.nix b/pkgs/data/themes/ubuntu-themes/default.nix
new file mode 100644
index 00000000000..fb23141a64e
--- /dev/null
+++ b/pkgs/data/themes/ubuntu-themes/default.nix
@@ -0,0 +1,77 @@
+{ lib, stdenv
+, fetchurl
+, fetchpatch
+, gnome-icon-theme
+, gnome
+, gtk-engine-murrine
+, gtk3
+, hicolor-icon-theme
+, humanity-icon-theme
+, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ubuntu-themes";
+  version = "20.10";
+
+  src = fetchurl {
+    url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.orig.tar.gz";
+    sha256 = "00frn2dd4kjhlmwkasrx4a820fwrg8f8hmiwh51m63bpj00vwn0r";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+    python3Packages.python
+  ];
+
+  propagatedBuildInputs = [
+    gnome-icon-theme
+    gnome.adwaita-icon-theme
+    humanity-icon-theme
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Ambiance $out/share/themes
+    cp -a Radiance $out/share/themes
+
+    mkdir -p $out/share/icons
+    cp -a LoginIcons        $out/share/icons
+    cp -a suru-icons        $out/share/icons
+    cp -a ubuntu-mobile     $out/share/icons
+    cp -a ubuntu-mono-dark  $out/share/icons
+    cp -a ubuntu-mono-light $out/share/icons
+
+    mv $out/share/icons/{suru-icons,suru}
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    mkdir -p $out/share/icons/hicolor/48x48/apps
+    cp -a distributor-logo.png $out/share/icons/hicolor/48x48/apps
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ubuntu monochrome and Suru icon themes, Ambiance and Radiance themes, and Ubuntu artwork";
+    homepage = "https://launchpad.net/ubuntu-themes";
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/venta/default.nix b/pkgs/data/themes/venta/default.nix
new file mode 100644
index 00000000000..1f739c66006
--- /dev/null
+++ b/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "14ckkvyarq1xmf48fh47by5h3jnkmksj2n4y6zvx3aw7pfg2jc51";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/vertex/default.nix b/pkgs/data/themes/vertex/default.nix
new file mode 100644
index 00000000000..cff886440e3
--- /dev/null
+++ b/pkgs/data/themes/vertex/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-vertex";
+  version = "20170128";
+
+  src = fetchFromGitHub {
+    owner = "horst3180";
+    repo = "vertex-theme";
+    rev = version;
+    sha256 = "0c9mhrs95ahz37djrv176vn41ywvj26ilwmnr1h9171giv6hid98";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  configureFlags = [ "--disable-unity" ];
+
+  postInstall = ''
+    mkdir -p $out/share/plank/themes
+    cp -r extra/*-Plank $out/share/plank/themes
+
+    mkdir -p $out/share/doc/$pname/Chrome
+    cp -r extra/Chrome/*.crx $out/share/doc/$pname/Chrome
+    cp -r extra/Firefox $out/share/doc/$pname
+    cp AUTHORS README.md $out/share/doc/$pname/
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/data/themes/vimix/default.nix b/pkgs/data/themes/vimix/default.nix
new file mode 100644
index 00000000000..d92ff42f48c
--- /dev/null
+++ b/pkgs/data/themes/vimix/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gnome-shell
+, gtk-engine-murrine
+, gtk_engines
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vimix-gtk-themes";
+  version = "2021-08-17";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1pn737w99j4ij8qkgw0rrzhbcqzni73z5wnkfqgqqbhj38rafbpv";
+  };
+
+  nativeBuildInputs = [
+    gnome-shell  # needed to determine the gnome-shell version
+  ];
+
+  buildInputs = [
+    gtk_engines
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh --all --dest $out/share/themes
+    rm $out/share/themes/*/{AUTHORS,LICENSE}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat Material Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/vimix-gtk-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/whitesur/default.nix b/pkgs/data/themes/whitesur/default.nix
new file mode 100644
index 00000000000..825772880d6
--- /dev/null
+++ b/pkgs/data/themes/whitesur/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, gnome-shell
+, gnome-themes-extra
+, jdupes
+, libxml2
+, sassc
+, util-linux
+, altVariants ? [] # default: normal
+, colorVariants ? [] # default: all
+, opacityVariants ? [] # default: all
+, themeVariants ? [] # default: default (BigSur-like theme)
+, nautilusSize ? null # default: 200px
+, panelOpacity ? null # default: 15%
+, panelSize ? null # default: 32px
+}:
+
+let
+  pname = "whitesur-gtk-theme";
+  single = x: lib.optional (x != null) x;
+
+in
+lib.checkListOfEnum "${pname}: alt variants" [ "normal" "alt" "all" ] altVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "normal" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: nautilus sidebar minimum width" [ "default" "180" "220" "240" "260" "280" ] (single nautilusSize)
+lib.checkListOfEnum "${pname}: panel opacity" [ "default" "30" "45" "60" "75" ] (single panelOpacity)
+lib.checkListOfEnum "${pname}: panel size" [ "default" "smaller" "bigger" ] (single panelSize)
+
+stdenv.mkDerivation rec {
+  pname = "whitesur-gtk-theme";
+  version = "2022-02-21";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1bqgbkx7qhpj9vbqcxb69p67m8ix3avxr81pdpdi56g9gqbnkpfc";
+  };
+
+  nativeBuildInputs = [
+    glib
+    gnome-shell
+    jdupes
+    libxml2
+    sassc
+    util-linux
+  ];
+
+  buildInputs = [
+    gnome-themes-extra # adwaita engine for Gtk2
+  ];
+
+  postPatch = ''
+    find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do
+      patchShebangs "$file"
+    done
+
+    # Do not provide `sudo`, as it is not needed in our use case of the install script
+    substituteInPlace lib-core.sh --replace '$(which sudo)' false
+
+    # Provides a dummy home directory
+    substituteInPlace lib-core.sh --replace 'MY_HOME=$(getent passwd "''${MY_USERNAME}" | cut -d: -f6)' 'MY_HOME=/tmp'
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+
+    ./install.sh  \
+      ${toString (map (x: "--alt " + x) altVariants)} \
+      ${toString (map (x: "--color " + x) colorVariants)} \
+      ${toString (map (x: "--opacity " + x) opacityVariants)} \
+      ${toString (map (x: "--theme " + x) themeVariants)} \
+      ${lib.optionalString (nautilusSize != null) ("--size " + nautilusSize)} \
+      ${lib.optionalString (panelOpacity != null) ("--panel-opacity " + panelOpacity)} \
+      ${lib.optionalString (panelSize != null) ("--panel-size " + panelSize)} \
+      --dest $out/share/themes
+
+    jdupes --link-soft --recurse $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "MacOS Big Sur like theme for Gnome desktops";
+    homepage = "https://github.com/vinceliuice/WhiteSur-gtk-theme";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/yaru-remix/default.nix b/pkgs/data/themes/yaru-remix/default.nix
new file mode 100644
index 00000000000..87056583b55
--- /dev/null
+++ b/pkgs/data/themes/yaru-remix/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja, python3, gtk3, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "yaru-remix";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = "Muqtxdir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xilhw5gbxsyy80ixxgj0nw6w782lz9dsinhi24026li1xny804c";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Fork of the Yaru GTK theme";
+    homepage = "https://github.com/Muqtxdir/yaru-remix";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hoppla20 ];
+  };
+}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
new file mode 100644
index 00000000000..67762e747f4
--- /dev/null
+++ b/pkgs/data/themes/yaru/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, sassc
+, pkg-config
+, glib
+, ninja
+, python3
+, gtk3
+, gnome
+, gtk-engine-murrine
+, humanity-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "yaru";
+  version = "22.04.2";
+
+  src = fetchFromGitHub {
+    owner = "ubuntu";
+    repo = "yaru";
+    rev = version;
+    sha256 = "sha256-oW5OOJPhC3OB3GIQWTQxPgqE7p4bAO1TyVbyKUHnyD0=";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  propagatedBuildInputs = [ humanity-icon-theme hicolor-icon-theme ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
+    homepage = "https://github.com/ubuntu/yaru";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fortuneteller2k maxeaubrey ];
+  };
+}
diff --git a/pkgs/data/themes/zuki/default.nix b/pkgs/data/themes/zuki/default.nix
new file mode 100644
index 00000000000..d557e151d26
--- /dev/null
+++ b/pkgs/data/themes/zuki/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "zuki-themes";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1q026wa8xgyb6f5k7pqpm5zav30dbnm3b8w59as3sh8rhfgpbf80";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "Themes for GTK, gnome-shell and Xfce";
+    homepage = "https://github.com/lassekongo83/zuki-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}