Merge pull request #46779 from Ma27/package-ibus-typing-booster
ibus-typing-booster: init at 2.1.1
This commit is contained in:
commit
82cc6a7510
@ -814,4 +814,64 @@ citrix_receiver.override {
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="sec-ibus-typing-booster">
|
||||
<title>ibus-engines.typing-booster</title>
|
||||
|
||||
<para>This package is an ibus-based completion method to speed up typing.</para>
|
||||
|
||||
<section xml:id="sec-ibus-typing-booster-activate">
|
||||
<title>Activating the engine</title>
|
||||
|
||||
<para>
|
||||
IBus needs to be configured accordingly to activate <literal>typing-booster</literal>. The configuration
|
||||
depends on the desktop manager in use. For detailed instructions, please refer to the
|
||||
<link xlink:href="https://mike-fabian.github.io/ibus-typing-booster/documentation.html">upstream docs</link>.
|
||||
</para>
|
||||
<para>
|
||||
On NixOS you need to explicitly enable <literal>ibus</literal> with given engines
|
||||
before customizing your desktop to use <literal>typing-booster</literal>. This can be achieved
|
||||
using the <literal>ibus</literal> module:
|
||||
<programlisting>{ pkgs, ... }: {
|
||||
i18n.inputMethod = {
|
||||
enabled = "ibus";
|
||||
ibus.engines = with pkgs.ibus-engines; [ typing-booster ];
|
||||
};
|
||||
}</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="sec-ibus-typing-booster-customize-hunspell">
|
||||
<title>Using custom hunspell dictionaries</title>
|
||||
|
||||
<para>
|
||||
The IBus engine is based on <literal>hunspell</literal> to support completion in many languages.
|
||||
By default the dictionaries <literal>de-de</literal>, <literal>en-us</literal>, <literal>es-es</literal>,
|
||||
<literal>it-it</literal>, <literal>sv-se</literal> and <literal>sv-fi</literal>
|
||||
are in use. To add another dictionary, the package can be overridden like this:
|
||||
<programlisting>ibus-engines.typing-booster.override {
|
||||
langs = [ "de-at" "en-gb" ];
|
||||
}</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
<emphasis>Note: each language passed to <literal>langs</literal> must be an attribute name in
|
||||
<literal>pkgs.hunspellDicts</literal>.</emphasis>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="sec-ibus-typing-booster-emoji-picker">
|
||||
<title>Built-in emoji picker</title>
|
||||
|
||||
<para>
|
||||
The <literal>ibus-engines.typing-booster</literal> package contains a program
|
||||
named <literal>emoji-picker</literal>. To display all emojis correctly,
|
||||
a special font such as <literal>noto-fonts-emoji</literal> is needed:
|
||||
</para>
|
||||
<para>
|
||||
On NixOS it can be installed using the following expression:
|
||||
<programlisting>{ pkgs, ... }: {
|
||||
fonts.fonts = with pkgs; [ noto-fonts-emoji ];
|
||||
}</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
|
@ -0,0 +1,41 @@
|
||||
{ stdenv, fetchFromGitHub, autoreconfHook, python3, ibus, pkgconfig, gtk3, m17n_lib
|
||||
, wrapGAppsHook, gobjectIntrospection
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
python = python3.withPackages (ps: with ps; [
|
||||
pygobject3
|
||||
dbus-python
|
||||
]);
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ibus-typing-booster-${version}";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mike-fabian";
|
||||
repo = "ibus-typing-booster";
|
||||
rev = version;
|
||||
sha256 = "01kpxplk9nh56f32fkq3nnsqykbzpi7pcxbfp38dq0prgrhw9a6b";
|
||||
};
|
||||
|
||||
patches = [ ./hunspell-dirs.patch ];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook gobjectIntrospection ];
|
||||
buildInputs = [ python ibus gtk3 m17n_lib ];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${m17n_lib}/lib")
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://mike-fabian.github.io/ibus-typing-booster/;
|
||||
license = licenses.gpl3Plus;
|
||||
description = "A typing booster engine for the IBus platform";
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
isIbusEngine = true;
|
||||
};
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
diff --git a/engine/itb_util.py b/engine/itb_util.py
|
||||
index ded236a..633525a 100755
|
||||
--- a/engine/itb_util.py
|
||||
+++ b/engine/itb_util.py
|
||||
@@ -1876,14 +1876,18 @@ def find_hunspell_dictionary(language):
|
||||
If no dictionary can be found for the requested language,
|
||||
the return value is ('', '').
|
||||
'''
|
||||
- dirnames = [
|
||||
- '/usr/share/hunspell',
|
||||
- '/usr/share/myspell',
|
||||
- '/usr/share/myspell/dicts',
|
||||
- '/usr/local/share/hunspell', # On FreeBSD the dictionaries are here
|
||||
- '/usr/local/share/myspell',
|
||||
- '/usr/local/share/myspell/dicts',
|
||||
- ]
|
||||
+
|
||||
+ if "NIX_HUNSPELL_DIRS" in os.environ:
|
||||
+ dirnames = os.environ["NIX_HUNSPELL_DIRS"].split(":")
|
||||
+ else: # fallback to the original behavior
|
||||
+ dirnames = [
|
||||
+ '/usr/share/hunspell',
|
||||
+ '/usr/share/myspell',
|
||||
+ '/usr/share/myspell/dicts',
|
||||
+ '/usr/local/share/hunspell', # On FreeBSD the dictionaries are here
|
||||
+ '/usr/local/share/myspell',
|
||||
+ '/usr/local/share/myspell/dicts',
|
||||
+ ]
|
||||
dic_path = ''
|
||||
aff_path = ''
|
||||
for language in expand_languages([language]):
|
@ -0,0 +1,30 @@
|
||||
{ typing-booster, symlinkJoin, hunspellDicts, lib, makeWrapper
|
||||
, langs ? [ "de-de" "en-us" "es-es" "it-it" "sv-se" "sv-fi" ]
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
hunspellDirs = with lib; makeSearchPath ":" (flatten (flip map langs (lang: [
|
||||
"${hunspellDicts.${lang}}/share/hunspell"
|
||||
"${hunspellDicts.${lang}}/share/myspell"
|
||||
"${hunspellDicts.${lang}}/share/myspell/dicts"
|
||||
])));
|
||||
|
||||
in
|
||||
|
||||
symlinkJoin {
|
||||
name = "${typing-booster.name}-with-hunspell";
|
||||
paths = [ typing-booster ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
for i in bin/emoji-picker libexec/ibus-{setup,engine}-typing-booster; do
|
||||
wrapProgram "$out/$i" \
|
||||
--prefix NIX_HUNSPELL_DIRS : ${hunspellDirs}
|
||||
done
|
||||
|
||||
sed -i -e "s,${typing-booster},$out," $out/share/ibus/component/typing-booster.xml
|
||||
'';
|
||||
|
||||
inherit (typing-booster) meta;
|
||||
}
|
@ -1910,6 +1910,12 @@ with pkgs;
|
||||
};
|
||||
|
||||
uniemoji = callPackage ../tools/inputmethods/ibus-engines/ibus-uniemoji { };
|
||||
|
||||
typing-booster-unwrapped = callPackage ../tools/inputmethods/ibus-engines/ibus-typing-booster { };
|
||||
|
||||
typing-booster = callPackage ../tools/inputmethods/ibus-engines/ibus-typing-booster/wrapper.nix {
|
||||
typing-booster = ibus-engines.typing-booster-unwrapped;
|
||||
};
|
||||
};
|
||||
|
||||
ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix {
|
||||
|
Loading…
Reference in New Issue
Block a user