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 ~/.bashrc
oder ~/.profile
wird 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_MODULE
nicht 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.cache
wie es von generiert wird gtk-query-immodules-3.0
.
Der Grund , warum GTK_IM_MODULE
eingestellt ist xim
wahrscheinlich 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 gsettings
Wert den GTK_IM_MODULE
für DBus-aktivierte Anwendungen festgelegten Wert überschreibt . Zumindest Ihre Gnome-Anwendungen verwenden gtk-im-context-simple
derzeit wahrscheinlich Standardverhalten (dh kein ibus oder eine andere dedizierte IM).
gsettings
ich nur nicht versuche, irgendetwas zu tun, xD (sogar --version segfaults !!)