diff --git a/lib/maintainers.nix b/lib/maintainers.nix index a25b20667ca..cee9f0023e2 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -80,6 +80,7 @@ garbas = "Rok Garbas "; garrison = "Jim Garrison "; gavin = "Gavin Rogers "; + gebner = "Gabriel Ebner "; globin = "Robin Gloster "; goibhniu = "Cillian de RĂ³iste "; gridaphobe = "Eric Seidel "; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index de86f11c6bb..23809796878 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -60,6 +60,7 @@ ./programs/dconf.nix ./programs/environment.nix ./programs/info.nix + ./programs/ibus.nix ./programs/light.nix ./programs/nano.nix ./programs/screen.nix diff --git a/nixos/modules/programs/ibus.nix b/nixos/modules/programs/ibus.nix new file mode 100644 index 00000000000..b8702a743d8 --- /dev/null +++ b/nixos/modules/programs/ibus.nix @@ -0,0 +1,51 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.programs.ibus; +in +{ + options = { + + programs.ibus = { + enable = mkOption { + type = types.bool; + default = false; + example = true; + description = "Enable IBus input method"; + }; + plugins = mkOption { + type = lib.types.listOf lib.types.path; + default = []; + description = '' + IBus plugin packages + ''; + }; + }; + + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.ibus ]; + + gtkPlugins = [ pkgs.ibus ]; + qtPlugins = [ pkgs.ibus-qt ]; + + environment.variables = + let + env = pkgs.buildEnv { + name = "ibus-env"; + paths = [ pkgs.ibus ] ++ cfg.plugins; + }; + in { + GTK_IM_MODULE = "ibus"; + QT_IM_MODULE = "ibus"; + XMODIFIERS = "@im=ibus"; + + IBUS_COMPONENT_PATH = "${env}/share/ibus/component"; + }; + + services.xserver.displayManager.sessionCommands = "${pkgs.ibus}/bin/ibus-daemon --daemonize --xim --cache=none"; + }; +} diff --git a/pkgs/tools/inputmethods/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-anthy/default.nix new file mode 100644 index 00000000000..df0790877ac --- /dev/null +++ b/pkgs/tools/inputmethods/ibus-anthy/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection, python, pythonPackages }: + +let version = "1.5.4"; +in stdenv.mkDerivation { + name = "ibus-anthy-${version}"; + + meta = with stdenv.lib; { + description = "IBus interface to the anthy input method"; + homepace = https://code.google.com/p/ibus/; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ gebner ]; + }; + + buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection python pythonPackages.pygobject3 ]; + + postFixup = '' + for file in "$out"/libexec/*; do + wrapProgram "$file" \ + --prefix PYTHONPATH : $PYTHONPATH \ + --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH:$out/lib/girepository-1.0 + done + ''; + + src = fetchurl { + url = "https://ibus.googlecode.com/files/ibus-anthy-${version}.tar.gz"; + sha256 = "4c0a8b88a2c547e72173a7d682d82797f6c65fe712abe5f3b89495d4eec7b031"; + }; +} diff --git a/pkgs/tools/inputmethods/ibus-qt/default.nix b/pkgs/tools/inputmethods/ibus-qt/default.nix new file mode 100644 index 00000000000..c538d36ec59 --- /dev/null +++ b/pkgs/tools/inputmethods/ibus-qt/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, ibus, cmake, pkgconfig, qt4, icu, doxygen }: + +stdenv.mkDerivation rec { + name = "ibus-qt-${version}"; + version = "1.3.2"; + + src = fetchurl { + url = "http://ibus.googlecode.com/files/${name}-Source.tar.gz"; + sha256 = "070c8ef4e6c74eddf7ddf4385936aed730c2dfe2160162e5c56b5158d1061a76"; + }; + + buildInputs = [ + ibus cmake pkgconfig qt4 icu doxygen + ]; + + cmakeFlags = [ "-DQT_PLUGINS_DIR=lib/qt4/plugins" ]; + + meta = with stdenv.lib; { + homepage = https://code.google.com/p/ibus/; + description = "Qt4 interface to the ibus input method"; + platforms = platforms.linux; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/pkgs/development/libraries/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix similarity index 100% rename from pkgs/development/libraries/ibus/default.nix rename to pkgs/tools/inputmethods/ibus/default.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3115081638f..f48b9f15a45 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -959,6 +959,12 @@ let anthy = callPackage ../tools/inputmethods/anthy { }; + ibus = callPackage ../tools/inputmethods/ibus { }; + + ibus-qt = callPackage ../tools/inputmethods/ibus-qt { }; + + ibus-anthy = callPackage ../tools/inputmethods/ibus-anthy { }; + biosdevname = callPackage ../tools/networking/biosdevname { }; clamav = callPackage ../tools/security/clamav { }; @@ -4974,8 +4980,6 @@ let hyenae = callPackage ../tools/networking/hyenae { }; - ibus = callPackage ../development/libraries/ibus { }; - icmake = callPackage ../development/tools/build-managers/icmake { }; iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {