diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix new file mode 100644 index 000000000000..da18ab26e083 --- /dev/null +++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -0,0 +1,129 @@ +{ stdenv +, fetchFromGitHub +, linkFarm +, substituteAll +, elementary-greeter +, pantheon +, pkgconfig +, meson +, ninja +, vala +, desktop-file-utils +, gtk3 +, granite +, libgee +, elementary-settings-daemon +, mutter +, elementary-icon-theme +, wingpanel-with-indicators +, elementary-gtk-theme +, nixos-artwork +, lightdm +, gdk-pixbuf +, clutter-gtk +, dbus +, accountsservice +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "elementary-greeter"; + version = "5.0.4"; + + repoName = "greeter"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = repoName; + rev = version; + sha256 = "1zrsvbd386f7r3jbvjf8j08v1n5cpzkbjjaj2lxvjn8b81xgwy8j"; + }; + + passthru = { + updateScript = pantheon.updateScript { + attrPath = "pantheon.${pname}"; + }; + + xgreeters = linkFarm "pantheon-greeter-xgreeters" [{ + path = "${elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop"; + name = "io.elementary.greeter.desktop"; + }]; + }; + + nativeBuildInputs = [ + desktop-file-utils + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + accountsservice + clutter-gtk # else we get could not generate cargs for mutter-clutter-2 + elementary-gtk-theme + elementary-icon-theme + elementary-settings-daemon + gdk-pixbuf + granite + gtk3 + libgee + lightdm + mutter + wingpanel-with-indicators + ]; + + mesonFlags = [ + # A hook does this but after wrapGAppsHook so the files never get wrapped. + "--sbindir=${placeholder "out"}/bin" + # baked into the program for discovery of the greeter configuration + "--sysconfdir=/etc" + # We use the patched gnome-settings-daemon + "-Dubuntu-patched-gsd=true" + "-Dgsd-dir=${elementary-settings-daemon}/libexec/" # trailing slash is needed + ]; + + patches = [ + ./sysconfdir-install.patch + # Needed until https://github.com/elementary/greeter/issues/360 is fixed + (substituteAll { + src = ./hardcode-fallback-background.patch; + default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"; + }) + ]; + + preFixup = '' + gappsWrapperArgs+=( + # dbus-launch needed in path + --prefix PATH : "${dbus}/bin" + + # for `wingpanel -g` + --prefix PATH : "${wingpanel-with-indicators}/bin" + + # for the compositor + --prefix PATH : "$out/bin" + + # the theme is hardcoded + --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share" + ) + ''; + + postFixup = '' + # Use NixOS default wallpaper + substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \ + --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" \ + "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}" + + substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \ + --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter" + ''; + + meta = with stdenv.lib; { + description = "LightDM Greeter for Pantheon"; + homepage = "https://github.com/elementary/greeter"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} |