nixos/lightdm-gtk-greeter: don't wrap in module
This commit is contained in:
parent
7814a2f566
commit
b558eb8329
|
@ -15,34 +15,6 @@ let
|
|||
icons = cfg.iconTheme.package;
|
||||
cursors = cfg.cursorTheme.package;
|
||||
|
||||
# The default greeter provided with this expression is the GTK greeter.
|
||||
# Again, we need a few things in the environment for the greeter to run with
|
||||
# fonts/icons.
|
||||
wrappedGtkGreeter = pkgs.runCommand "lightdm-gtk-greeter" {
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
preferLocalBuild = true;
|
||||
} ''
|
||||
# This wrapper ensures that we actually get themes
|
||||
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
|
||||
$out/greeter \
|
||||
--prefix PATH : "${lib.getBin pkgs.stdenv.cc.libc}/bin" \
|
||||
--set GDK_PIXBUF_MODULE_FILE "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
|
||||
--set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
|
||||
--set GTK_EXE_PREFIX "${theme}" \
|
||||
--set GTK_DATA_PREFIX "${theme}" \
|
||||
--set XDG_DATA_DIRS "${theme}/share:${icons}/share" \
|
||||
--set XDG_CONFIG_HOME "${theme}/share" \
|
||||
--set XCURSOR_PATH "${cursors}/share/icons"
|
||||
|
||||
cat - > $out/lightdm-gtk-greeter.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Name=LightDM Greeter
|
||||
Comment=This runs the LightDM Greeter
|
||||
Exec=$out/greeter
|
||||
Type=Application
|
||||
EOF
|
||||
'';
|
||||
|
||||
gtkGreeterConf = writeText "lightdm-gtk-greeter.conf"
|
||||
''
|
||||
[greeter]
|
||||
|
@ -185,10 +157,16 @@ in
|
|||
config = mkIf (ldmcfg.enable && cfg.enable) {
|
||||
|
||||
services.xserver.displayManager.lightdm.greeter = mkDefault {
|
||||
package = wrappedGtkGreeter;
|
||||
package = pkgs.lightdm_gtk_greeter.xgreeters;
|
||||
name = "lightdm-gtk-greeter";
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
cursors
|
||||
icons
|
||||
theme
|
||||
];
|
||||
|
||||
environment.etc."lightdm/lightdm-gtk-greeter.conf".source = gtkGreeterConf;
|
||||
|
||||
};
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
{ stdenv, fetchurl, lightdm, pkgconfig, intltool
|
||||
, hicolor-icon-theme, makeWrapper
|
||||
, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
|
||||
, exo, at-spi2-core
|
||||
{ stdenv
|
||||
, lightdm_gtk_greeter
|
||||
, fetchurl
|
||||
, lightdm
|
||||
, pkgconfig
|
||||
, intltool
|
||||
, linkFarm
|
||||
, wrapGAppsHook
|
||||
, useGTK2 ? false
|
||||
, gtk2
|
||||
, gtk3 # gtk3 seems better supported
|
||||
, exo
|
||||
, at-spi2-core
|
||||
, librsvg
|
||||
, hicolor-icon-theme
|
||||
}:
|
||||
|
||||
#ToDo: bad icons with gtk2;
|
||||
|
@ -20,14 +31,15 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1pis5qyg95pg31dvnfqq34bzgj00hg4vs547r8h60lxjk81z8p15";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ lightdm exo intltool makeWrapper hicolor-icon-theme ]
|
||||
nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
|
||||
buildInputs = [ lightdm exo librsvg hicolor-icon-theme ]
|
||||
++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
|
||||
|
||||
configureFlags = [
|
||||
"--localstatedir=/var"
|
||||
"--sysconfdir=/etc"
|
||||
"--disable-indicator-services-command"
|
||||
"--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook to wrap automatically
|
||||
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
|
||||
|
||||
preConfigure = ''
|
||||
|
@ -44,10 +56,13 @@ stdenv.mkDerivation rec {
|
|||
postInstall = ''
|
||||
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
|
||||
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
|
||||
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
|
||||
--prefix XDG_DATA_DIRS ":" "${hicolor-icon-theme}/share"
|
||||
'';
|
||||
|
||||
passthru.xgreeters = linkFarm "lightdm-gtk-greeter-xgreeters" [{
|
||||
path = "${lightdm_gtk_greeter}/share/xgreeters/lightdm-gtk-greeter.desktop";
|
||||
name = "lightdm-gtk-greeter.desktop";
|
||||
}];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://launchpad.net/lightdm-gtk-greeter;
|
||||
platforms = platforms.linux;
|
||||
|
|
Loading…
Reference in a new issue