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:
parent
57091a19e2
commit
11623c5fca
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2 }:
|
{ stdenv, fetchurl, intltool, pkgconfig, libX11, gtk2, withGtk3 ? false, gtk3 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lxappearance-0.6.3";
|
name = "lxappearance-0.6.3";
|
||||||
@ -10,7 +10,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig intltool ];
|
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 = {
|
meta = {
|
||||||
description = "A lightweight program for configuring the theme and fonts of gtk applications";
|
description = "A lightweight program for configuring the theme and fonts of gtk applications";
|
||||||
|
@ -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)
|
||||||
|
{
|
@ -6053,6 +6053,10 @@ with pkgs;
|
|||||||
gtk2 = gtk2-x11;
|
gtk2 = gtk2-x11;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lxappearance-gtk3 = callPackage ../desktops/lxde/core/lxappearance {
|
||||||
|
withGtk3 = true;
|
||||||
|
};
|
||||||
|
|
||||||
lxmenu-data = callPackage ../desktops/lxde/core/lxmenu-data.nix { };
|
lxmenu-data = callPackage ../desktops/lxde/core/lxmenu-data.nix { };
|
||||||
|
|
||||||
lxpanel = callPackage ../desktops/lxde/core/lxpanel {
|
lxpanel = callPackage ../desktops/lxde/core/lxpanel {
|
||||||
|
Loading…
Reference in New Issue
Block a user