diff --git a/nixos/modules/config/gtk-exe-env.nix b/nixos/modules/config/gtk-exe-env.nix new file mode 100644 index 00000000000..b565072e3a7 --- /dev/null +++ b/nixos/modules/config/gtk-exe-env.nix @@ -0,0 +1,41 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ]; + + options = { + gtkPlugins = lib.mkOption { + type = lib.types.listOf lib.types.path; + default = []; + description = '' + Plugin packages for GTK+ such as input methods. + ''; + }; + }; + + config = { + environment.variables = if builtins.length config.gtkPlugins > 0 + then + let + paths = [ pkgs.gtk2 pkgs.gtk3 ] ++ config.gtkPlugins; + env = pkgs.buildEnv { + name = "gtk-exe-env"; + + inherit paths; + + postBuild = lib.concatStringsSep "\n" + (map (d: d.gtkExeEnvPostBuild or "") paths); + + ignoreCollisions = true; + }; + in { + GTK_EXE_PREFIX = builtins.toString env; + GTK_PATH = [ + "${env}/lib/gtk-2.0" + "${env}/lib/gtk-3.0" + ]; + } + else {}; + }; +} diff --git a/nixos/modules/config/qt-plugin-env.nix b/nixos/modules/config/qt-plugin-env.nix new file mode 100644 index 00000000000..c5986560416 --- /dev/null +++ b/nixos/modules/config/qt-plugin-env.nix @@ -0,0 +1,37 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ]; + + options = { + qtPlugins = lib.mkOption { + type = lib.types.listOf lib.types.path; + default = []; + description = '' + Plugin packages for Qt such as input methods. + ''; + }; + }; + + config = { + environment.variables = if builtins.length config.qtPlugins > 0 + then + let + paths = [ pkgs.qt48 ] ++ config.qtPlugins; + env = pkgs.buildEnv { + name = "qt-plugin-env"; + + inherit paths; + + postBuild = lib.concatStringsSep "\n" + (map (d: d.qtPluginEnvPostBuild or "") paths); + + ignoreCollisions = true; + }; + in { + QT_PLUGIN_PATH = [ (builtins.toString env) ]; + } + else {}; + }; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a9039eea71d..74f4eebd619 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -5,6 +5,7 @@ ./config/fonts/fonts.nix ./config/fonts/ghostscript.nix ./config/gnu.nix + ./config/gtk-exe-env.nix ./config/i18n.nix ./config/krb5.nix ./config/ldap.nix @@ -13,6 +14,7 @@ ./config/nsswitch.nix ./config/power-management.nix ./config/pulseaudio.nix + ./config/qt-plugin-env.nix ./config/shells-environment.nix ./config/system-environment.nix ./config/swap.nix @@ -56,6 +58,7 @@ ./programs/shell.nix ./programs/ssh.nix ./programs/ssmtp.nix + ./programs/uim.nix ./programs/venus.nix ./programs/wvdial.nix ./programs/zsh/zsh.nix diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix index 80c3e83fe81..4a510805b01 100644 --- a/nixos/modules/programs/environment.nix +++ b/nixos/modules/programs/environment.nix @@ -52,7 +52,7 @@ in STRIGI_PLUGIN_PATH = [ "${i}/lib/strigi/" ]; QT_PLUGIN_PATH = [ "${i}/lib/qt4/plugins" "${i}/lib/kde4/plugins" ]; QTWEBKIT_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins/" ]; - GTK_PATH = [ "${i}/lib/gtk-2.0" ]; + GTK_PATH = [ "${i}/lib/gtk-2.0" "${i}/lib/gtk-3.0" ]; XDG_CONFIG_DIRS = [ "${i}/etc/xdg" ]; XDG_DATA_DIRS = [ "${i}/share" ]; MOZ_PLUGIN_PATH = [ "${i}/lib/mozilla/plugins" ]; diff --git a/nixos/modules/programs/uim.nix b/nixos/modules/programs/uim.nix new file mode 100644 index 00000000000..237da3415dc --- /dev/null +++ b/nixos/modules/programs/uim.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + cfg = config.uim; +in +{ + options = { + uim = { + enable = mkOption { + type = types.bool; + default = false; + example = true; + description = "enable UIM input method"; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.uim ]; + gtkPlugins = [ pkgs.uim ]; + qtPlugins = [ pkgs.uim ]; + environment.variables.GTK_IM_MODULE = "uim"; + environment.variables.QT_IM_MODULE = "uim"; + environment.variables.XMODIFIERS = "@im=uim"; + services.xserver.displayManager.sessionCommands = "uim-xim &"; + }; +} diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix index c57179364a7..5abba3102ff 100644 --- a/pkgs/development/libraries/gtk+/2.x.nix +++ b/pkgs/development/libraries/gtk+/2.x.nix @@ -37,6 +37,13 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; + passthru = { + gtkExeEnvPostBuild = '' + rm $out/lib/gtk-2.0/2.10.0/immodules.cache + $out/bin/gtk-query-immodules-2.0 $out/lib/gtk-2.0/2.10.0/immodules/*.so > $out/lib/gtk-2.0/2.10.0/immodules.cache + ''; # workaround for bug of nix-mode for Emacs */ ''; + }; + meta = with stdenv.lib; { description = "A multi-platform toolkit for creating graphical user interfaces"; homepage = http://www.gtk.org/; diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index ef8f3e39883..acd15b8269c 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -38,6 +38,13 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; + passthru = { + gtkExeEnvPostBuild = '' + rm $out/lib/gtk-3.0/3.0.0/immodules.cache + $out/bin/gtk-query-immodules-3.0 $out/lib/gtk-3.0/3.0.0/immodules/*.so > $out/lib/gtk-3.0/3.0.0/immodules.cache + ''; # workaround for bug of nix-mode for Emacs */ ''; + }; + meta = { description = "A multi-platform toolkit for creating graphical user interfaces"; diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix new file mode 100644 index 00000000000..b8ee95fae92 --- /dev/null +++ b/pkgs/tools/inputmethods/uim/default.nix @@ -0,0 +1,44 @@ +{stdenv, fetchurl, intltool, pkgconfig, qt4, gtk2, gtk3, kdelibs, cmake, ... }: + +stdenv.mkDerivation rec { + version = "1.8.6"; + name = "uim-${version}"; + + buildInputs = [ + intltool + pkgconfig + qt4 + gtk2 + gtk3 + kdelibs + cmake + ]; + + patches = [ ./immodules_cache.patch ]; + + configureFlags = [ + "--with-gtk2" + "--with-gtk3" + "--enable-kde4-applet" + "--enable-notify=knotify4" + "--enable-pref" + "--with-qt4" + "--with-qt4-immodule" + "--with-skk" + "--with-x" + ]; + + dontUseCmakeConfigure = true; + + src = fetchurl { + url = "http://uim.googlecode.com/files/uim-${version}.tar.bz2"; + sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777"; + }; + + meta = { + homepage = "http://code.google.com/p/uim/"; + description = "A multilingual input method framework"; + license = stdenv.lib.licenses.bsd3; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/tools/inputmethods/uim/immodules_cache.patch b/pkgs/tools/inputmethods/uim/immodules_cache.patch new file mode 100644 index 00000000000..c2d08b661e3 --- /dev/null +++ b/pkgs/tools/inputmethods/uim/immodules_cache.patch @@ -0,0 +1,231 @@ +diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.am uim-1.8.6/gtk2/immodule/Makefile.am +--- uim-1.8.6.orig/gtk2/immodule/Makefile.am 2013-06-30 13:26:09.000000000 +0900 ++++ uim-1.8.6/gtk2/immodule/Makefile.am 2014-07-13 21:51:26.538400004 +0900 +@@ -1,5 +1,5 @@ + uim_gtk_im_module_path = $(libdir)/gtk-2.0 +-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache + + moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules + +@@ -38,48 +38,12 @@ + + install-data-hook: gtk-rc-get-immodule-file + if test -z $(DESTDIR); then \ +- if test $(libdir) = $(GTK_LIBDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +- echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \ +- echo " manually."; \ +- echo "******************************************************"; \ +- fi \ +- else \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \ +- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +- echo "******************************************************"; \ +- echo " You need to set"; \ +- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"$(uim_gtk_im_module_file)\""; \ +- echo " manually, and set"; \ +- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- fi \ +- fi \ ++ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \ ++ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + fi + uninstall-hook: + if test -z $(DESTDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- if test $(libdir) = $(GTK_LIBDIR); then \ +- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +- else \ +- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + fi + else + install-data-hook: +diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.in uim-1.8.6/gtk2/immodule/Makefile.in +--- uim-1.8.6.orig/gtk2/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900 ++++ uim-1.8.6/gtk2/immodule/Makefile.in 2014-07-13 22:12:27.947595507 +0900 +@@ -434,7 +434,7 @@ + top_srcdir = @top_srcdir@ + uim_pixmapsdir = @uim_pixmapsdir@ + uim_gtk_im_module_path = $(libdir)/gtk-2.0 +-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache + moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules + @GTK2_TRUE@im_uim_la = im-uim.la + @GTK2_TRUE@im_uim_la_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) +@@ -875,48 +875,12 @@ + + @GTK2_TRUE@install-data-hook: gtk-rc-get-immodule-file + @GTK2_TRUE@ if test -z $(DESTDIR); then \ +-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +-@GTK2_TRUE@ echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK2_TRUE@ echo " Please make sure to update"; \ +-@GTK2_TRUE@ echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \ +-@GTK2_TRUE@ echo " manually."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \ +-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ echo " You need to set"; \ +-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +-@GTK2_TRUE@ echo " environment variable to use this module."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK2_TRUE@ echo " Please make sure to update"; \ +-@GTK2_TRUE@ echo " \"$(uim_gtk_im_module_file)\""; \ +-@GTK2_TRUE@ echo " manually, and set"; \ +-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \ +-@GTK2_TRUE@ echo " environment variable to use this module."; \ +-@GTK2_TRUE@ echo "******************************************************"; \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ fi \ ++@GTK2_TRUE@ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \ ++@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + @GTK2_TRUE@ fi + @GTK2_TRUE@uninstall-hook: + @GTK2_TRUE@ if test -z $(DESTDIR); then \ +-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \ +-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \ +-@GTK2_TRUE@ else \ +-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ +-@GTK2_TRUE@ fi \ +-@GTK2_TRUE@ fi \ ++@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \ + @GTK2_TRUE@ fi + @GTK2_FALSE@install-data-hook: + +diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.am uim-1.8.6/gtk3/immodule/Makefile.am +--- uim-1.8.6.orig/gtk3/immodule/Makefile.am 2013-06-30 13:26:20.000000000 +0900 ++++ uim-1.8.6/gtk3/immodule/Makefile.am 2014-07-13 21:55:38.114246503 +0900 +@@ -45,42 +45,11 @@ + + install-data-hook: gtk3-rc-get-immodule-file + if test -z $(DESTDIR); then \ +- if test $(libdir) = $(GTK3_LIBDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- $(QUERY_COMMAND) --update-cache; \ +- echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \ +- echo " manually."; \ +- echo "******************************************************"; \ +- fi \ +- else \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +- else \ +- echo "********************** Warning ***********************"; \ +- echo " $(QUERY_COMMAND) not found"; \ +- echo " Please make sure to update"; \ +- echo " immodules.cache"; \ +- echo " manually, and set"; \ +- echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \ +- echo " environment variable to use this module."; \ +- echo "******************************************************"; \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + fi + uninstall-hook: + if test -z $(DESTDIR); then \ +- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +- if test $(libdir) = $(GTK3_LIBDIR); then \ +- $(QUERY_COMMAND) --update-cache; \ +- else \ +- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +- fi \ +- fi \ ++ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + fi + else + install-data-hook: +diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.in uim-1.8.6/gtk3/immodule/Makefile.in +--- uim-1.8.6.orig/gtk3/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900 ++++ uim-1.8.6/gtk3/immodule/Makefile.in 2014-07-13 21:56:11.531225832 +0900 +@@ -893,42 +893,11 @@ + + @GTK3_TRUE@install-data-hook: gtk3-rc-get-immodule-file + @GTK3_TRUE@ if test -z $(DESTDIR); then \ +-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK3_TRUE@ echo " Please make sure to update"; \ +-@GTK3_TRUE@ echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \ +-@GTK3_TRUE@ echo " manually."; \ +-@GTK3_TRUE@ echo "******************************************************"; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ echo "********************** Warning ***********************"; \ +-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \ +-@GTK3_TRUE@ echo " Please make sure to update"; \ +-@GTK3_TRUE@ echo " immodules.cache"; \ +-@GTK3_TRUE@ echo " manually, and set"; \ +-@GTK3_TRUE@ echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \ +-@GTK3_TRUE@ echo " environment variable to use this module."; \ +-@GTK3_TRUE@ echo "******************************************************"; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ fi \ ++@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + @GTK3_TRUE@ fi + @GTK3_TRUE@uninstall-hook: + @GTK3_TRUE@ if test -z $(DESTDIR); then \ +-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \ +-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \ +-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ else \ +-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \ +-@GTK3_TRUE@ fi \ +-@GTK3_TRUE@ fi \ ++@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \ + @GTK3_TRUE@ fi + @GTK3_FALSE@install-data-hook: + +diff -ru -x '*~' uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in +--- uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in 2013-06-30 13:26:20.000000000 +0900 ++++ uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in 2014-03-09 11:31:19.388085048 +0900 +@@ -35,4 +35,4 @@ + + TARGET = uiminputcontextplugin + +-target.path += @DESTDIR@$$[QT_INSTALL_PLUGINS]/inputmethods ++target.path += @DESTDIR@@exec_prefix@/lib/qt4/plugins/inputmethods diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5edd597f29b..424a9165161 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2325,6 +2325,10 @@ let ttmkfdir = callPackage ../tools/misc/ttmkfdir { }; + uim = callPackage ../tools/inputmethods/uim { + inherit (pkgs.kde4) kdelibs; + }; + unclutter = callPackage ../tools/misc/unclutter { }; unbound = callPackage ../tools/networking/unbound { };