1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 nix-update-script,
6 wayland-scanner,
7 wrapGAppsHook3,
8 pkg-config,
9 meson,
10 ninja,
11 vala,
12 gala,
13 gtk3,
14 libgee,
15 granite,
16 gettext,
17 mutter,
18 wayland,
19 json-glib,
20 elementary-gtk-theme,
21 elementary-icon-theme,
22}:
23
24stdenv.mkDerivation rec {
25 pname = "wingpanel";
26 version = "8.0.3";
27
28 src = fetchFromGitHub {
29 owner = "elementary";
30 repo = pname;
31 rev = version;
32 sha256 = "sha256-3UNtqfDqgclRE8Pe9N8rOt6i2FG6lKNfJAv5Q2OYXUU=";
33 };
34
35 patches = [
36 ./indicators.patch
37 ];
38
39 depsBuildBuild = [
40 pkg-config
41 ];
42
43 nativeBuildInputs = [
44 gettext
45 meson
46 ninja
47 pkg-config
48 vala
49 wayland-scanner
50 wrapGAppsHook3
51 ];
52
53 buildInputs = [
54 elementary-icon-theme
55 gala
56 granite
57 gtk3
58 json-glib
59 libgee
60 mutter
61 wayland
62 ];
63
64 preFixup = ''
65 gappsWrapperArgs+=(
66 # this GTK theme is required
67 --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
68
69 # the icon theme is required
70 --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
71 )
72 '';
73
74 passthru = {
75 updateScript = nix-update-script { };
76 };
77
78 meta = with lib; {
79 description = "Extensible top panel for Pantheon";
80 longDescription = ''
81 Wingpanel is an empty container that accepts indicators as extensions,
82 including the applications menu.
83 '';
84 homepage = "https://github.com/elementary/wingpanel";
85 license = licenses.gpl3Plus;
86 platforms = platforms.linux;
87 teams = [ teams.pantheon ];
88 mainProgram = "io.elementary.wingpanel";
89 };
90}