Merge branch 'input-methods'

This commit is contained in:
Thomas Tuegel 2016-02-28 07:19:23 -06:00
commit eaed559859
10 changed files with 31 additions and 130 deletions

View File

@ -1,41 +0,0 @@
{ 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 {};
};
}

View File

@ -1,37 +0,0 @@
{ 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 {};
};
}

View File

@ -18,10 +18,14 @@ in
type = with types; listOf fcitxEngine; type = with types; listOf fcitxEngine;
default = []; default = [];
example = literalExample "with pkgs.fcitx-engines; [ mozc hangul ]"; example = literalExample "with pkgs.fcitx-engines; [ mozc hangul ]";
description = '' description =
Enabled Fcitx engines. let
Available engines can be found by running `nix-env "<nixpkgs>" . -qaP -A fcitx-engines`. engines =
''; lib.concatStringsSep ", "
(map (name: "<literal>${name}</literal>")
(lib.attrNames pkgs.fcitx-engines));
in
"Enabled Fcitx engines. Available engines are: ${engines}.";
}; };
}; };
@ -29,8 +33,6 @@ in
config = mkIf (config.i18n.inputMethod.enabled == "fcitx") { config = mkIf (config.i18n.inputMethod.enabled == "fcitx") {
environment.systemPackages = [ fcitxPackage ]; environment.systemPackages = [ fcitxPackage ];
gtkPlugins = [ fcitxPackage ];
qtPlugins = [ fcitxPackage ];
environment.variables = { environment.variables = {
GTK_IM_MODULE = "fcitx"; GTK_IM_MODULE = "fcitx";

View File

@ -4,7 +4,6 @@ with lib;
{ {
config = mkIf (config.i18n.inputMethod.enabled == "nabi") { config = mkIf (config.i18n.inputMethod.enabled == "nabi") {
environment.systemPackages = [ pkgs.nabi ]; environment.systemPackages = [ pkgs.nabi ];
qtPlugins = [ pkgs.nabi ];
environment.variables = { environment.variables = {
GTK_IM_MODULE = "nabi"; GTK_IM_MODULE = "nabi";

View File

@ -23,8 +23,6 @@ in
config = mkIf (config.i18n.inputMethod.enabled == "uim") { config = mkIf (config.i18n.inputMethod.enabled == "uim") {
environment.systemPackages = [ pkgs.uim ]; environment.systemPackages = [ pkgs.uim ];
gtkPlugins = [ pkgs.uim ];
qtPlugins = [ pkgs.uim ];
environment.variables = { environment.variables = {
GTK_IM_MODULE = "uim"; GTK_IM_MODULE = "uim";

View File

@ -7,7 +7,6 @@
./config/fonts/fonts.nix ./config/fonts/fonts.nix
./config/fonts/ghostscript.nix ./config/fonts/ghostscript.nix
./config/gnu.nix ./config/gnu.nix
./config/gtk-exe-env.nix
./config/i18n.nix ./config/i18n.nix
./config/krb5.nix ./config/krb5.nix
./config/ldap.nix ./config/ldap.nix
@ -16,7 +15,6 @@
./config/nsswitch.nix ./config/nsswitch.nix
./config/power-management.nix ./config/power-management.nix
./config/pulseaudio.nix ./config/pulseaudio.nix
./config/qt-plugin-env.nix
./config/shells-environment.nix ./config/shells-environment.nix
./config/swap.nix ./config/swap.nix
./config/sysctl.nix ./config/sysctl.nix
@ -79,7 +77,6 @@
./programs/shell.nix ./programs/shell.nix
./programs/ssh.nix ./programs/ssh.nix
./programs/ssmtp.nix ./programs/ssmtp.nix
./programs/uim.nix
./programs/venus.nix ./programs/venus.nix
./programs/wvdial.nix ./programs/wvdial.nix
./programs/xfs_quota.nix ./programs/xfs_quota.nix

View File

@ -1,31 +0,0 @@
{ config, pkgs, lib, ... }:
with 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 &";
};
}

View File

@ -1,5 +1,7 @@
{ stdenv, fetchFromGitHub, ibus, m17n_lib, m17n_db, automake, autoconf, { stdenv, fetchFromGitHub
gettext, libtool, pkgconfig, python, pythonPackages }: , automake, autoconf, libtool, pkgconfig
, ibus, m17n_lib, m17n_db, gettext, python3, pygobject3
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ibus-m17n-${version}"; name = "ibus-m17n-${version}";
@ -12,11 +14,13 @@ stdenv.mkDerivation rec {
sha256 = "1n0bvgc4jyksgvzrw5zs2pxcpxcn3gcc0j2kasbznm34fpv3frsr"; sha256 = "1n0bvgc4jyksgvzrw5zs2pxcpxcn3gcc0j2kasbznm34fpv3frsr";
}; };
buildInputs = [ buildInputs = [
ibus m17n_lib m17n_db automake autoconf gettext ibus m17n_lib m17n_db gettext
libtool pkgconfig python pythonPackages.pygobject3 python3 pygobject3
]; ];
nativeBuildInputs = [ automake autoconf libtool pkgconfig ];
preConfigure = '' preConfigure = ''
autoreconf --verbose --force --install autoreconf --verbose --force --install
''; '';

View File

@ -1,11 +1,15 @@
{ stdenv, runCommand, ibus, lndir, makeWrapper, plugins, hicolor_icon_theme }: { stdenv, runCommand, makeWrapper, lndir
, dconf, hicolor_icon_theme, ibus, plugins
}:
let let
name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version; name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
env = { env = {
buildInputs = [ ibus ] ++ plugins;
nativeBuildInputs = [ lndir makeWrapper ]; nativeBuildInputs = [ lndir makeWrapper ];
propagatedUserEnvPackages = [ hicolor_icon_theme ]; propagatedUserEnvPackages = [ hicolor_icon_theme ];
paths = [ ibus ] ++ plugins; paths = [ ibus ] ++ plugins;
inherit (ibus) meta;
}; };
command = '' command = ''
for dir in bin etc lib libexec share; do for dir in bin etc lib libexec share; do
@ -19,7 +23,8 @@ let
for prog in ibus ibus-daemon ibus-setup; do for prog in ibus ibus-daemon ibus-setup; do
wrapProgram "$out/bin/$prog" \ wrapProgram "$out/bin/$prog" \
--suffix XDG_DATA_DIRS : "${hicolor_icon_theme}/share" \ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
--prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" \
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/" \ --set IBUS_COMPONENT_PATH "$out/share/ibus/component/" \
--set IBUS_DATAROOTDIR "$out/share" \ --set IBUS_DATAROOTDIR "$out/share" \
--set IBUS_LIBEXECDIR "$out/libexec" \ --set IBUS_LIBEXECDIR "$out/libexec" \
@ -29,7 +34,9 @@ let
--set IBUS_TABLE_DATA_DIR "$out/share" \ --set IBUS_TABLE_DATA_DIR "$out/share" \
--set IBUS_TABLE_LIB_LOCATION "$out/libexec" \ --set IBUS_TABLE_LIB_LOCATION "$out/libexec" \
--set IBUS_TABLE_LOCATION "$out/share/ibus-table" \ --set IBUS_TABLE_LOCATION "$out/share/ibus-table" \
--set IBUS_TABLE_DEBUG_LEVEL 1 --prefix PYTHONPATH : "$PYTHONPATH" \
--prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
--suffix XDG_DATA_DIRS : "${hicolor_icon_theme}/share"
done done
''; '';
in in

View File

@ -1180,7 +1180,9 @@ let
inherit (python3Packages) pygobject3; inherit (python3Packages) pygobject3;
}; };
m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { }; m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n {
inherit (python3Packages) pygobject3;
};
mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc { mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
inherit (pythonPackages) gyp; inherit (pythonPackages) gyp;
@ -1198,6 +1200,7 @@ let
}; };
ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix { ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix {
inherit (gnome3) dconf;
plugins = [ ]; plugins = [ ];
}; };