Comprensione e impostazione di diversi metodi di input


21

Uso Trisquel GNU / Linux 7.0 LTS con GNOME 3 Flashback Environment.

Ho sentito parlare di tre diversi metodi di input, vale a dire. ibus, ximE uim. E sembra che ibussia preinstallato sul mio sistema.

$ 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

Di fronte a questo problema ho imparato a installare uime configurare con GTK_IM_MODULE="uim"a ~/.profile. Recentemente ho rimosso uime rimosso la GTK_IM_MODULE="uim"linea da ~/.profile. Ma per ovviare a questo errore, ho intenzione di liberarmene ibusadesso.

Senza installare alcun metodo di input aggiuntivo, (ad esempio installazione di Trisquel), echo $GTK_IM_MODULEoutput ximQuindi, sono confuso perché considerando il metodo di input predefinito è ibus, quindi perché lo $GTK_IM_MODULEdice xim?

Anche io posso apt-get remove ibus? o dovrei installare uimprima e poi rimuovere ibus? Inoltre voglio sapere quale metodo di input funziona attualmente ibuso xim? E qual è il modo giusto per impostare il metodo di input (cioè è GTK_IM_MODULE="uim"per ~/.profile)?

Inoltre, ho trovato uno schema gsettings:

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

In breve / in generale ho bisogno di aiuto per comprendere l'installazione / rimozione e l'impostazione di diversi metodi di input:

  • Come faccio a sapere quale metodo di input è attualmente attivo?
  • Come posso installare e configurare diversi metodi di input? (dovrei rimuoverne un altro?)

Risposte:


45

L'intero stack di input X11 è un casino. Prima di tutto, non hai bisogno di alcun framework di metodi di input speciale se stai solo digitando caratteri latini o sequenze di composizione multi-carattere come definito dal layout della tastiera XKB. A rigor di termini, qualsiasi sequenza multi-chiave, come i dead-key, richiede un metodo di input molto semplice. Ma sono forniti da libx11 / XKB e funzionano senza alcun framework IM aggiuntivo. Quindi è perfettamente corretto disinstallare tutti i ibus, uim, fcitx o qualunque metodo di input tu abbia se non hai bisogno di digitare lingue come cinese o giapponese.

Come hai già detto, Gnome ha reso ibus il metodo di input predefinito, una decisione di cui non tutti erano contenti. Ci sono molte persone che preferiscono fcitx (che sembra essere il valore predefinito per la maggior parte delle distribuzioni di KDE) rispetto a ibus per diversi motivi: che si tratti del supporto linguistico appropriato (principalmente giapponese rispetto al cinese semplificato rispetto al cinese tradizionale) o delle prestazioni. Dato che non parlo lingue orientali che richiedono uno speciale framework IM, non posso davvero aggiungere nulla a quel dibattito. Ma se sei interessato a maggiori dettagli su fcitx vs ibus, potresti voler leggere questo articolo LWN leggermente datato (2012), ma probabilmente ancora accurato .

Tuttavia, il fatto che ibus sia l'IM predefinito per Gnome non lo rende obbligatorio. Puoi usare qualsiasi altro metodo di input che ti piace o nessuno. La configurazione della messaggistica istantanea viene eseguita tramite variabili di ambiente. Ma tranne quando stai usando solo applicazioni GTK + (che dubito), dovresti impostare più di un semplice GTK_IM_MODULE. Il modo corretto di impostare un metodo di input è:

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

in caso di fcitx o

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

in caso di ibus. funziona allo stesso modo. Se si desidera disabilitare esplicitamente qualsiasi metodo di input, utilizzare queste impostazioni:

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

Funziona anche una stringa vuota.

Puoi impostare queste variabili in tutto il sistema /etc/profile(o all'interno di un file dedicato /etc/profile.d, rispettivamente) o all'interno del tuo locale ~/.xprofile. Impostandolo ~/.bashrco ~/.profilenon si assicurerà che le linee vengano eseguite quando si accede al proprio sistema utilizzando un gestore di accesso grafico come GDM, SDDM, KDM o LightDM. Se stai iniziando la tua sessione X usando XDM, Slim o startx, devi inserire quelle linee ~/.xinitrc.

Se hai configurato un metodo di input diverso da ibus, vai alle impostazioni di Gnome in seguito e assicurati che tutte le impostazioni relative a ibus siano disabilitate, in particolare le scorciatoie da tastiera. In alternativa, dire a Gnome di non toccare le impostazioni della tastiera usando:

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

o disinstallare del tutto ibus.

E che dire di XIM? XIM è un protocollo di metodo di input piuttosto obsoleto che sia ibus che fcitx implementano solo per motivi di supporto legacy. Non vi è alcun motivo reale per cui si desideri utilizzare XIM al giorno d'oggi su uno di questi due. L'unico motivo per cui vorresti impostare GTK_IM_MODULE="xim"è quello di sovrascrivere le impostazioni ComposeKey hardcoded .

Per rispondere alla tua altra domanda: non penso che ci sia davvero un modo per rilevare quale metodo di input è attivo al momento, tranne per guardare le variabili di ambiente o sapere quali IM sono installati sul tuo sistema. Se GTK_IM_MODULEnon impostato, GTK seleziona un IM integrato sulla base delle configurazioni in /etc/gtk-2.0/gtk.immodules. GTK 3.0 guarda da /usr/lib/gtk-3.0/3.0.0/immodules.cachedove viene generato gtk-query-immodules-3.0.

Il motivo per cui GTK_IM_MODULEè impostato ximè probabilmente una definizione di variabile vagante da qualche parte in /etc/profile, /etc/profile.d/*o qualsiasi altro dei tuoi file RC shell locali o globali. Sentiti libero di annullare o annullare questa variabile se senti la necessità di farlo.

Tuttavia, secondo questo commento di bug report di Gnome presumo che il valore configurato tramite gsettingssovrascrive il valore impostato GTK_IM_MODULEper le applicazioni attivate da DBus. Quindi almeno le tue applicazioni Gnome probabilmente stanno usando gtk-im-context-simpleal momento, il che significa effettivamente un comportamento standard (cioè nessun ibus o qualsiasi altro IM dedicato).


Ottima spiegazione e sfondo. Ora, se solo gsettingsnon mi segfault ogni volta che provo a fare qualcosa xD (anche --version segfaults !!)
sqweek,

Quindi ho ibus e xim sul mio Ubuntu 18.04. Posso eliminarli entrambi in modo sicuro se non ho intenzione di scrivere nelle lingue CJK?
Suncatcher,

Sì, ma non disinstallerei XIM se non fosse necessario. È molto datato, ma a volte usato come base per altre funzionalità. Quindi, a meno che tu non abbia davvero bisogno di pochi kB, non lo disinstallerei.
Janek Bevendorff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.