lxappearance: add variant for Gtk+-3

lxappearance supports both Gtk+-2 and Gtk+-3. The current `lxappearance'
package continues to be for Gtk+-2. Add `lxappearance-gtk3' for Gtk+-3.

A patch is needed in order to look for themes in system data dirs with
Gtk+-3.
This commit is contained in:
romildo 2017-06-09 17:57:39 -03:00
parent 57091a19e2
commit 11623c5fca
3 changed files with 37 additions and 2 deletions

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2 }:
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2, withGtk3 ? false, gtk3 }:
stdenv.mkDerivation rec {
name = "lxappearance-0.6.3";
@ -10,7 +10,11 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig intltool ];
buildInputs = [ libX11 gtk2 ];
buildInputs = [ libX11 (if withGtk3 then gtk3 else gtk2) ];
patches = [ ./lxappearance-0.6.3-xdg.system.data.dirs.patch ];
configureFlags = stdenv.lib.optional withGtk3 "--enable-gtk3";
meta = {
description = "A lightweight program for configuring the theme and fonts of gtk applications";

View file

@ -0,0 +1,27 @@
--- lxappearance-0.6.3/src/widget-theme.c.orig 2016-02-20 20:48:38.000000000 -0200
+++ lxappearance-0.6.3/src/widget-theme.c 2017-06-09 17:37:53.369555085 -0300
@@ -66,6 +66,7 @@
static void load_themes()
{
char* dir;
+ const gchar * const * dirs;
GSList* themes = NULL, *l;
GtkTreeIter sel_it = {0};
GtkTreeSelection* tree_sel;
@@ -85,6 +86,16 @@
themes = load_themes_in_dir(dir, themes);
g_free(dir);
+ /* load from sharedata theme dirs */
+ dirs = g_get_system_data_dirs();
+ while (*dirs != NULL)
+ {
+ dir = g_build_filename(*dirs, "themes", NULL);
+ themes = load_themes_in_dir(dir, themes);
+ g_free(dir);
+ dirs++;
+ }
+
themes = g_slist_sort(themes, (GCompareFunc)strcmp);
for(l = themes; l; l=l->next)
{

View file

@ -6053,6 +6053,10 @@ with pkgs;
gtk2 = gtk2-x11;
};
lxappearance-gtk3 = callPackage ../desktops/lxde/core/lxappearance {
withGtk3 = true;
};
lxmenu-data = callPackage ../desktops/lxde/core/lxmenu-data.nix { };
lxpanel = callPackage ../desktops/lxde/core/lxpanel {