summary refs log tree commit diff
path: root/nixos/modules/i18n/input-method/default.nix
diff options
context:
space:
mode:
authorEric Sagnes <eric.sagnes@gmail.com>2016-04-04 18:11:20 +0900
committerEric Sagnes <eric.sagnes@gmail.com>2016-04-16 17:51:32 +0900
commitcfe062f2b6e3c75a68f69104a1f87180004f1341 (patch)
treefe1c1ff4b12cdba4bfb2884e68a631f5b54e342a /nixos/modules/i18n/input-method/default.nix
parent3e2318ec3ecff70e1583ad5717f26f91ecdda952 (diff)
downloadnixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar.gz
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar.bz2
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar.lz
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar.xz
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.tar.zst
nixpkgs-cfe062f2b6e3c75a68f69104a1f87180004f1341.zip
input methods: fix gtk cache
Diffstat (limited to 'nixos/modules/i18n/input-method/default.nix')
-rw-r--r--nixos/modules/i18n/input-method/default.nix42
1 files changed, 39 insertions, 3 deletions
diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix
index 7e6a25bfb08..5d57a7f9966 100644
--- a/nixos/modules/i18n/input-method/default.nix
+++ b/nixos/modules/i18n/input-method/default.nix
@@ -1,10 +1,32 @@
 { 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;
@@ -24,6 +46,20 @@ with lib;
           </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 ];
+  };
+
 }