1{ config, pkgs, lib, ... }:
2
3{
4 imports = [
5 ];
6
7 options = {
8 gtkPlugins = lib.mkOption {
9 type = lib.types.listOf lib.types.path;
10 default = [];
11 description = ''
12 Plugin packages for GTK+ such as input methods.
13 '';
14 };
15 };
16
17 config = {
18 environment.variables = if builtins.length config.gtkPlugins > 0
19 then
20 let
21 paths = [ pkgs.gtk2 pkgs.gtk3 ] ++ config.gtkPlugins;
22 env = pkgs.buildEnv {
23 name = "gtk-exe-env";
24
25 inherit paths;
26
27 postBuild = lib.concatStringsSep "\n"
28 (map (d: d.gtkExeEnvPostBuild or "") paths);
29
30 ignoreCollisions = true;
31 };
32 in {
33 GTK_EXE_PREFIX = builtins.toString env;
34 GTK_PATH = [
35 "${env}/lib/gtk-2.0"
36 "${env}/lib/gtk-3.0"
37 ];
38 }
39 else {};
40 };
41}