gnome3: Setup hook for gdk-pixbuf and gnome-icon-theme
Add necessary paths to the environment so that applications can find icons.
This commit is contained in:
parent
84011efb74
commit
53fbbe3262
@ -1,14 +1,13 @@
|
|||||||
{ stdenv, intltool, fetchurl, vala, libgtop, pkgconfig, gtk3, glib
|
{ stdenv, intltool, fetchurl, vala, libgtop
|
||||||
, bash, makeWrapper, itstool, libxml2, gnome3 }:
|
, pkgconfig, gtk3, glib, hicolor_icon_theme
|
||||||
|
, bash, makeWrapper, itstool, libxml2
|
||||||
# TODO: icons and theme still does not work
|
, gnome3, librsvg, gdk_pixbuf }:
|
||||||
# use packaged gnome3.gnome_icon_theme_symbolic
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "baobab-3.10.1";
|
name = "baobab-3.10.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.gnome.org/sources/baobab/3.10/${name}.tar.xz";
|
url = "mirror://gnome/sources/baobab/3.10/${name}.tar.xz";
|
||||||
sha256 = "23ce8e4847ce5f1c8230e757532d94c84e6e273d6ec8fca20eecaed5f96563f9";
|
sha256 = "23ce8e4847ce5f1c8230e757532d94c84e6e273d6ec8fca20eecaed5f96563f9";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -19,15 +18,18 @@ stdenv.mkDerivation rec {
|
|||||||
NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
|
NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
||||||
|
propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
|
||||||
|
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
|
||||||
|
|
||||||
buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
|
buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
|
||||||
gnome3.gsettings_desktop_schemas makeWrapper ];
|
gnome3.gsettings_desktop_schemas makeWrapper ];
|
||||||
|
|
||||||
installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
|
installFlags = "gsettingsschemadir=\${out}/share/baobab/glib-2.0/schemas/";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram "$out/bin/baobab" \
|
wrapProgram "$out/bin/baobab" \
|
||||||
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
|
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||||
|
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/baobab:$XDG_ICON_DIRS"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
|
@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66";
|
sha256 = "1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
|
nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
10
pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh
Normal file
10
pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
make_gtk_applications_find_icon_themes() {
|
||||||
|
|
||||||
|
# where to find icon themes
|
||||||
|
if [ -d "$1/share/icons" ]; then
|
||||||
|
addToSearchPath XDG_ICON_DIRS $1/share
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
envHooks+=(make_gtk_applications_find_icon_themes)
|
@ -6,13 +6,13 @@ stdenv.mkDerivation rec {
|
|||||||
name = "yelp-3.10.1";
|
name = "yelp-3.10.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.gnome.org/sources/yelp/3.10/${name}.tar.xz";
|
url = "mirror://gnome/sources/yelp/3.10/${name}.tar.xz";
|
||||||
sha256 = "17736479b7d0b1128c7d6cb3073f2b09e4bbc82670731b2a0d3a3219a520f816";
|
sha256 = "17736479b7d0b1128c7d6cb3073f2b09e4bbc82670731b2a0d3a3219a520f816";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ librsvg gdk_pixbuf gnome3.gnome_themes_standard
|
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
|
||||||
gnome3.gnome_icon_theme hicolor_icon_theme
|
propagatedBuildInputs = [ librsvg gdk_pixbuf gnome3.gnome_icon_theme
|
||||||
gnome3.gnome_icon_theme_symbolic ];
|
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
|
||||||
|
|
||||||
preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
|
preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
|
||||||
|
|
||||||
@ -20,14 +20,12 @@ stdenv.mkDerivation rec {
|
|||||||
libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
|
libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
|
||||||
gnome3.gsettings_desktop_schemas ];
|
gnome3.gsettings_desktop_schemas ];
|
||||||
|
|
||||||
installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
|
installFlags = "gsettingsschemadir=\${out}/share/yelp/glib-2.0/schemas/";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/lib/yelp/gdk-pixbuf-2.0/2.10.0
|
|
||||||
cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > $out/lib/yelp/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
|
||||||
wrapProgram "$out/bin/yelp" \
|
wrapProgram "$out/bin/yelp" \
|
||||||
--set GDK_PIXBUF_MODULE_FILE `readlink -e $out/lib/yelp/gdk-pixbuf-2.0/2.10.0/loaders.cache` \
|
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||||
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.gnome_icon_theme_symbolic}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gnome_icon_theme}/share:${hicolor_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
|
--prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0ldhpdalbyi6q5k1dz498i9hqcsd51yxq0f91ck9p0h4v38blfx1";
|
sha256 = "0ldhpdalbyi6q5k1dz498i9hqcsd51yxq0f91ck9p0h4v38blfx1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
# !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
|
# !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
|
||||||
buildInputs = [ libX11 libintlOrEmpty ];
|
buildInputs = [ libX11 libintlOrEmpty ];
|
||||||
|
|
||||||
|
19
pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
Normal file
19
pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
make_gtk_applications_find_pixbuf_loaders() {
|
||||||
|
|
||||||
|
# set pixbuf loaders.cache for this package
|
||||||
|
mkdir -p "$out/lib/$name/gdk-pixbuf"
|
||||||
|
|
||||||
|
if [ -f "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]; then
|
||||||
|
cat "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" >> "$out/lib/$name/gdk-pixbuf/loaders.cache"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$1/lib/gdk-pixbuf/loaders.cache" ]; then
|
||||||
|
cat "$1/lib/gdk-pixbuf/loaders.cache" >> "$out/lib/$name/gdk-pixbuf/loaders.cache"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# note, this is not a search path
|
||||||
|
export GDK_PIXBUF_MODULE_FILE=$(readlink -e "$out/lib/$name/gdk-pixbuf/loaders.cache")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
envHooks+=(make_gtk_applications_find_pixbuf_loaders)
|
Loading…
Reference in New Issue
Block a user