forgejo-lts: 7.0.10 -> 7.0.11
[NixPkgs.git] / pkgs / data / themes / nordic / default.nix
blobe7c4648e555a09a37dd527599b4ceaa6c3c8c47d
1 { lib
2 , stdenvNoCC
3 , fetchFromGitHub
4 , breeze-icons
5 , gtk-engine-murrine
6 , jdupes
7 , plasma-framework
8 , plasma-workspace
9 }:
11 stdenvNoCC.mkDerivation rec {
12   pname = "nordic";
13   version = "2.2.0-unstable-2024-06-25";
15   srcs = [
16     (fetchFromGitHub {
17       owner = "EliverLara";
18       repo = pname;
19       rev = "8f7bcdb597778b7233c97423f19c936e6c5d4abf";
20       hash = "sha256-fNPrBpdJS164DezKEnLixGUQxCW5RQ97Oj6BNI3Dr34=";
21       name = "Nordic";
22     })
24     (fetchFromGitHub {
25       owner = "EliverLara";
26       repo = pname;
27       rev = "ae071e635055e8401e120d652602a183110bb91d";
28       hash = "sha256-YOfy2TNxq5FKB311C9t26WtrWefSdVdMNAq458BO5bQ=";
29       name = "Nordic-standard-buttons";
30     })
32     (fetchFromGitHub {
33       owner = "EliverLara";
34       repo = pname;
35       rev = "07e62d14347ae233a857ed77b72d8c8e7a108a6e";
36       hash = "sha256-7S+d9oQjewtVgIlr8OxCNU0OdZyoPNELtV6LtMhkoQ8=";
37       name = "Nordic-darker";
38     })
40     (fetchFromGitHub {
41       owner = "EliverLara";
42       repo = pname;
43       rev = "3a7a56656a50d65e85bea58c649088a5aaa30690";
44       hash = "sha256-WYaFsGqBNf5K5uAqnC8I5o7NC7MRNqGFJ0hLkB24RxU=";
45       name = "Nordic-darker-standard-buttons";
46     })
48     (fetchFromGitHub {
49       owner = "EliverLara";
50       repo = pname;
51       rev = "db4fd3af7e2af0ff962296b2881a94b14fa73e66";
52       hash = "sha256-U6o99D62H2BIvUV/xHc+wtbIFDdxxPxQWu5/f8NWhQ0=";
53       name = "Nordic-bluish-accent";
54     })
56     (fetchFromGitHub {
57       owner = "EliverLara";
58       repo = pname;
59       rev = "f75e18799b804d17b97eead583548b9415faddb6";
60       hash = "sha256-O0vad/gWUQ2B/2hz2uoSyRa1gM6N3ZbtOLyDJTNhIQo=";
61       name = "Nordic-bluish-accent-standard-buttons";
62     })
64     (fetchFromGitHub {
65       owner = "EliverLara";
66       repo = "${pname}-polar";
67       rev = "9f109cad906cb47c188557b8f3d324dad394a008";
68       hash = "sha256-+buFwFhk10qwsfS6DwUQzE0/F67BcoS+zXGk8wKn1Bc=";
69       name = "Nordic-Polar";
70     })
72     (fetchFromGitHub {
73       owner = "EliverLara";
74       repo = "${pname}-polar";
75       rev = "60f63d9d54d93bda0529b8a6fae32427d00ae73c";
76       hash = "sha256-565iCxMX5Jms+nN0nRFp25YJ/sfKt13sAoIrEgoXGtg=";
77       name = "Nordic-Polar-standard-buttons";
78     })
79   ];
81   sourceRoot = ".";
83   outputs = [ "out" "sddm" ];
85   nativeBuildInputs = [ jdupes ];
87   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
89   dontWrapQtApps = true;
91   installPhase = ''
92     runHook preInstall
94     # install theme files
95     mkdir -p $out/share/themes
96     cp -a Nordic* $out/share/themes
98     # remove uneeded files
99     rm -r $out/share/themes/*/.gitignore
100     rm -r $out/share/themes/*/Art
101     rm -r $out/share/themes/*/FUNDING.yml
102     rm -r $out/share/themes/*/LICENSE
103     rm -r $out/share/themes/*/README.md
104     rm -r $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
105     rm -r $out/share/themes/*/src
106     rm -r $out/share/themes/*/cinnamon/*.scss
107     rm -r $out/share/themes/*/gnome-shell/{earlier-versions,extensions,*.scss}
108     rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
109     rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
110     rm -r $out/share/themes/*/gtk-4.0/{apps,widgets,*.scss}
111     rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
113     # move wallpapers to appropriate directory
114     mkdir -p $out/share/wallpapers/Nordic
115     mv -v $out/share/themes/Nordic/extras/wallpapers/* $out/share/wallpapers/Nordic/
116     rmdir $out/share/themes/Nordic/extras{/wallpapers,}
118     # move kde related contents to appropriate directories
119     mkdir -p $out/share/{aurorae/themes,color-schemes,Kvantum,plasma,icons}
120     mv -v $out/share/themes/Nordic/kde/aurorae/* $out/share/aurorae/themes/
121     mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
122     mv -v $out/share/themes/Nordic/kde/konsole $out/share/
123     mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
124     cp -vr $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/look-and-feel/
125     mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/desktoptheme/
126     mv -v $out/share/themes/Nordic/kde/folders/* $out/share/icons/
127     mv -v $out/share/themes/Nordic/kde/cursors/*-cursors $out/share/icons/
129     rm -rf $out/share/plasma/look-and-feel/*/contents/{logout,osd,components}
130     rm -rf $out/share/plasma/desktoptheme/*/contents/{{defaults,splash,previews}
132     mkdir -p $sddm/share/sddm/themes
133     mv -v $out/share/themes/Nordic/kde/sddm/* $sddm/share/sddm/themes/
135     rm -rf $out/share/themes/Nordic/kde
137     # Replace duplicate files with symbolic links to the first file in
138     # each set of duplicates, reducing the installed size in about 53%
139     jdupes --quiet --link-soft --recurse $out/share
141     runHook postInstall
142   '';
144   postFixup = ''
145     # Propagate sddm theme dependencies to user env otherwise sddm
146     # does not find them. Putting them in buildInputs is not enough.
148     mkdir -p $sddm/nix-support
150     printWords ${breeze-icons} ${plasma-framework} ${plasma-workspace} \
151       >> $sddm/nix-support/propagated-user-env-packages
152   '';
154   meta = {
155     description = "Gtk and KDE themes using the Nord color pallete";
156     homepage = "https://github.com/EliverLara/Nordic";
157     license = lib.licenses.gpl3Only;
158     platforms = lib.platforms.all;
159     maintainers = [ lib.maintainers.romildo ];
160   };