{ lib , stdenv , fetchFromGitHub , fetchpatch , nix-update-script , wrapGAppsHook3 , pkg-config , meson , ninja , vala , gala , gtk3 , libgee , granite , gettext , mutter , mesa , json-glib , elementary-gtk-theme , elementary-icon-theme }: stdenv.mkDerivation rec { pname = "wingpanel"; version = "3.0.5"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; sha256 = "sha256-xowGdaH0e6y0Q2xSl0kUa01rxxoEQ0qXB3sUol0YDBA="; }; patches = [ ./indicators.patch # Add sorting for QuickSettings # https://github.com/elementary/wingpanel/pull/516 (fetchpatch { url = "https://github.com/elementary/wingpanel/commit/cae197c953f4332e67cf0a5457b4e54f8adc3424.patch"; hash = "sha256-P7Cl6M3qvh9pa1qIwWQV4XG5NoCQId+buzEChcUOapk="; }) ]; nativeBuildInputs = [ gettext meson ninja pkg-config vala wrapGAppsHook3 ]; buildInputs = [ elementary-icon-theme gala granite gtk3 json-glib libgee mutter mesa # for libEGL ]; preFixup = '' gappsWrapperArgs+=( # this GTK theme is required --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share" # the icon theme is required --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS" ) ''; passthru = { updateScript = nix-update-script { }; }; meta = with lib; { description = "Extensible top panel for Pantheon"; longDescription = '' Wingpanel is an empty container that accepts indicators as extensions, including the applications menu. ''; homepage = "https://github.com/elementary/wingpanel"; license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = teams.pantheon.members; mainProgram = "io.elementary.wingpanel"; }; }