Verschiedene Eingabemethoden verstehen und einrichten

21

Ich verwende Trisquel GNU / Linux 7.0 LTS mit GNOME 3 Flashback Environment.

Ich hörte über drei verschiedene Eingabemethoden nämlich. ibus, ximUnd uim. Und es scheint ibusauf meinem System vorinstalliert zu sein.

$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2

Bei diesem Problem habe ich gelernt, uimwie man mit GTK_IM_MODULE="uim"at installiert und einrichtet ~/.profile. Kürzlich habe ich Linie von entfernt uimund entfernt . Aber um diesen Fehler zu überwinden , plane ich, ihn jetzt loszuwerden .GTK_IM_MODULE="uim"~/.profileibus

Ohne eine zusätzliche Eingabemethode zu installieren (z. B. eine Neuinstallation von Trisquel), echo $GTK_IM_MODULEgibt ximFolgendes aus: Ich bin verwirrt, da die Standardeingabemethode lautet ibus, warum wird dann $GTK_IM_MODULEgesagt xim?

Auch kann ich apt-get remove ibus? oder sollte ich erst installieren uimund dann entfernen ibus? Außerdem möchte ich wissen, welche Eingabemethode derzeit funktioniert ibusoder xim? Und was ist der richtige Weg ist , um die Eingabemethode zu setzen (dh ist es GTK_IM_MODULE="uim"zu ~/.profile)?

Außerdem habe ich ein Einstellungsschema gefunden:

$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'

Kurz gesagt, ich brauche Hilfe, um zu verstehen, wie verschiedene Eingabemethoden installiert / entfernt und eingerichtet werden:

  • Woher weiß ich, welche Eingabemethode gerade aktiv ist?
  • Wie installiere und richte ich verschiedene Eingabemethoden ein? (Soll ich einen anderen entfernen?)
Pandya
quelle

Antworten:

45

Der gesamte X11-Eingabestapel ist ein Chaos. Erstens benötigen Sie kein spezielles Eingabemethoden-Framework, wenn Sie nur lateinische Zeichen oder aus mehreren Zeichen bestehende Kompositionssequenzen eingeben, wie in Ihrem XKB-Tastaturlayout definiert. Genau genommen erfordern alle Mehrtastenfolgen, wie z. B. Tottasten, eine sehr einfache Eingabemethode. Sie werden jedoch von libx11 / XKB bereitgestellt und funktionieren ohne zusätzliches IM-Framework. Es ist also völlig in Ordnung, alle ibus-, uim-, fcitx- oder sonstigen Eingabemethoden zu deinstallieren, wenn Sie keine Sprachen wie Chinesisch oder Japanisch eingeben müssen.

Wie Sie bereits sagten, hat Gnome ibus zur Standardeingabemethode gemacht, eine Entscheidung, über die sich nicht alle freuten. Es gibt viele Leute, die fcitx (das scheint die Standardeinstellung für die meisten KDE-Distributionen zu sein) aus mehreren Gründen dem ibus vorziehen: ob es sich um die richtige Sprachunterstützung (hauptsächlich Japanisch vs. vereinfachtes vs. traditionelles Chinesisch) oder um Leistungsprobleme handelt. Da ich keine osteuropäischen Sprachen spreche, die ein spezielles IM-Framework benötigen, kann ich dieser Debatte eigentlich nichts hinzufügen. Wenn Sie jedoch mehr über fcitx vs ibus erfahren möchten, sollten Sie diesen leicht datierten (2012), aber wahrscheinlich immer noch genauen LWN-Artikel lesen .

Die Tatsache, dass ibus die Standard-IM für Gnome ist, macht es jedoch nicht obligatorisch. Sie können jede andere oder gar keine Eingabemethode verwenden. Die IM-Konfiguration erfolgt über Umgebungsvariablen. Aber außer wenn Sie ausschließlich GTK + -Anwendungen verwenden (was ich bezweifle), sollten Sie mehr als nur festlegen GTK_IM_MODULE. Die richtige Methode zum Festlegen einer Eingabemethode lautet:

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

im falle von fcitx oder

export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

im falle von ibus. uim funktioniert genauso. Wenn Sie eine Eingabemethode explizit deaktivieren möchten, verwenden Sie diese Einstellungen:

export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"

Eine leere Zeichenfolge funktioniert auch.

Sie können diese Variablen entweder systemweit in /etc/profile(oder in einer dedizierten Datei /etc/profile.d) oder in Ihrem lokalen System festlegen ~/.xprofile. Durch das Einstellen von ~/.bashrcoder ~/.profilewird nicht sichergestellt, dass die Zeilen ausgeführt werden, wenn Sie sich mit einem grafischen Anmeldemanager wie GDM, SDDM, KDM oder LightDM bei Ihrem System anmelden. Wenn Sie Ihre X-Sitzung mit XDM, Slim oder starten startx, müssen Sie diese Zeilen einfügen ~/.xinitrc.

Wenn Sie eine andere Eingabemethode als ibus konfiguriert haben, rufen Sie anschließend die Gnome-Einstellungen auf und stellen Sie sicher, dass alle ibus-bezogenen Einstellungen deaktiviert sind, insbesondere alle Tastaturkürzel. Alternativ können Sie Gnome anweisen, Ihre Tastatureinstellungen nicht zu berühren:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

oder deinstalliere ibus insgesamt.

Was ist nun mit XIM? XIM ist ein ziemlich veraltetes Eingabemethodenprotokoll, das sowohl von ibus als auch von fcitx nur aus Gründen der älteren Unterstützung implementiert wird. Es gibt keinen wirklichen Grund, warum Sie XIM heutzutage für einen dieser beiden verwenden möchten. Der einzige Grund, warum Sie festlegen möchten, GTK_IM_MODULE="xim"besteht darin, die hartcodierten ComposeKey-Einstellungen von GTK zu überschreiben .

Zur Beantwortung Ihrer anderen Frage: Ich denke, es gibt keine Möglichkeit, festzustellen, welche Eingabemethode derzeit aktiv ist, außer die Umgebungsvariablen zu betrachten oder zu wissen, welche IMs auf Ihrem System installiert sind. Wenn GTK_IM_MODULEnicht festgelegt, wählt GTK eine integrierte Sofortnachricht auf der Grundlage der Konfigurationen in aus /etc/gtk-2.0/gtk.immodules. GTK 3.0 sieht so aus, /usr/lib/gtk-3.0/3.0.0/immodules.cachewie es von generiert wird gtk-query-immodules-3.0.

Der Grund , warum GTK_IM_MODULEeingestellt ist ximwahrscheinlich einige Streuvariablendefinition irgendwo in /etc/profile, /etc/profile.d/*oder jede andere von Ihrer lokalen oder globalen Shell RC - Dateien. Sie können diese Variable jederzeit deaktivieren oder überschreiben, wenn Sie dies wünschen.

Nach diesem Kommentar zum Gnome-Fehlerbericht gehe ich jedoch davon aus, dass der über konfigurierte gsettingsWert den GTK_IM_MODULEfür DBus-aktivierte Anwendungen festgelegten Wert überschreibt . Zumindest Ihre Gnome-Anwendungen verwenden gtk-im-context-simplederzeit wahrscheinlich Standardverhalten (dh kein ibus oder eine andere dedizierte IM).

Janek Bevendorff
quelle
Tolle Erklärung und Hintergrund. Jetzt, wenn gsettingsich nur nicht versuche, irgendetwas zu tun, xD (sogar --version segfaults !!)
sqweek
Ich habe also ibus und xim auf meinem Ubuntu 18.04. Kann ich beide sicher löschen, wenn ich nicht beabsichtige, CJK-Sprachen einzugeben?
Suncatcher
Ja, aber ich würde XIM nur deinstallieren, wenn es benötigt wird. Es ist sehr veraltet, wird aber manchmal als Basis für andere Funktionen verwendet. Wenn Sie die wenigen KB nicht wirklich benötigen, würde ich sie nicht deinstallieren.
Janek Bevendorff