input methods: fix gtk cache

Changed files
+47 -7
nixos
modules
+2
nixos/modules/config/system-path.nix
···
environment.pathsToLink =
[ "/bin"
"/etc/xdg"
+
"/etc/gtk-2.0"
+
"/etc/gtk-3.0"
"/info"
"/lib" # FIXME: remove and update debug-info.nix
"/sbin"
+39 -3
nixos/modules/i18n/input-method/default.nix
···
{ config, pkgs, lib, ... }:
with lib;
-
+
let
+
cfg = config.i18n.inputMethod;
+
gtk2_cache = pkgs.stdenv.mkDerivation {
+
preferLocalBuild = true;
+
allowSubstitutes = false;
+
name = "gtk2-immodule.cache";
+
buildInputs = [ pkgs.gtk cfg.package ];
+
buildCommand = ''
+
mkdir -p $out/etc/gtk-2.0/
+
GTK_PATH=${cfg.package}/lib/gtk-2.0/ gtk-query-immodules-2.0 > $out/etc/gtk-2.0/immodules.cache
+
'';
+
};
+
gtk3_cache = pkgs.stdenv.mkDerivation {
+
preferLocalBuild = true;
+
allowSubstitutes = false;
+
name = "gtk3-immodule.cache";
+
buildInputs = [ pkgs.gtk3 cfg.package ];
+
buildCommand = ''
+
mkdir -p $out/etc/gtk-3.0/
+
GTK_PATH=${cfg.package}/lib/gtk-3.0/ gtk-query-immodules-3.0 > $out/etc/gtk-3.0/immodules.cache
+
'';
+
};
+
in
{
-
options = {
-
i18n.inputMethod = {
+
options.i18n = {
+
inputMethod = {
enabled = mkOption {
type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" ]);
default = null;
···
</itemizedlist>
'';
};
+
+
package = mkOption {
+
internal = true;
+
type = types.path;
+
default = null;
+
description = ''
+
The input method method package.
+
'';
+
};
};
};
+
+
config = mkIf (cfg.enabled != null) {
+
environment.systemPackages = [ cfg.package gtk2_cache gtk3_cache ];
+
};
+
}
+1 -1
nixos/modules/i18n/input-method/fcitx.nix
···
};
config = mkIf (config.i18n.inputMethod.enabled == "fcitx") {
-
environment.systemPackages = [ fcitxPackage ];
+
i18n.inputMethod.package = fcitxPackage;
environment.variables = {
GTK_IM_MODULE = "fcitx";
+3 -1
nixos/modules/i18n/input-method/ibus.nix
···
};
config = mkIf (config.i18n.inputMethod.enabled == "ibus") {
+
i18n.inputMethod.package = ibusPackage;
+
# Without dconf enabled it is impossible to use IBus
environment.systemPackages = with pkgs; [
-
ibusPackage ibus-qt gnome3.dconf ibusAutostart
+
ibus-qt gnome3.dconf ibusAutostart
];
environment.variables = {
+1 -1
nixos/modules/i18n/input-method/nabi.nix
···
with lib;
{
config = mkIf (config.i18n.inputMethod.enabled == "nabi") {
-
environment.systemPackages = [ pkgs.nabi ];
+
i18n.inputMethod.package = pkgs.nabi;
environment.variables = {
GTK_IM_MODULE = "nabi";
+1 -1
nixos/modules/i18n/input-method/uim.nix
···
};
config = mkIf (config.i18n.inputMethod.enabled == "uim") {
-
environment.systemPackages = [ pkgs.uim ];
+
i18n.inputMethod.package = pkgs.uim;
environment.variables = {
GTK_IM_MODULE = "uim";