Come far funzionare Compose nelle app GTK e Qt?


15

Ho usato Gnome per molto tempo, ma ho preferito il metodo di input X vaniglia ( xim) rispetto al comportamento GTK predefinito. Ho appena impostato GTK_IM_MODULEe QT_IM_MODULEvariabili d'ambiente a xim, e non ho avuto alcun problema con più layout di configurazione, Composechiave, personalizzati ~/.XComposee misc:typole estensioni tipografia.

Il recente Gnome 3.6 ha completamente rovinato l'input da tastiera spedendo un mezzo forno e un buggy ibus e costringendolo agli utenti . Non riuscivo a far funzionare la tastiera come prima (anche con i ibusdisabili) e ho dovuto abbandonare completamente Gnome.

Ora uso un semplice gestore di finestre e configuro la mia tastiera con setxkbmap. Mentre la tastiera funziona di nuovo bene, non riesco a far funzionare il tasto Compose ovunque. Componi funziona in semplici app X11 ( xterm), ma non funziona né in GTK2, né GTK3, né in app Qt.

Uso le attuali versioni di Archlinux:

xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4

e abilita la Composechiave in questo modo:

setxkbmap ... -option 'compose:menu'

ed esportazione GTK_IM_MODULE, QT_IM_MODULEvariabili:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose la chiave è correttamente riconosciuta da X11:

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key

Funziona correttamente in xterm, sequenze dal mio ~/.XComposeincluso. Non funziona nelle app GTK o Qt. Diciamo che, se entro Compose ', le app fanno eco 'immediatamente, senza attendere la terza chiave nella sequenza.

Ora suppongo che qualcosa sia cambiato in Xorg (perché Composenon funziona neanche nelle app Qt) o in GTK e Qt. *_IM_MODULEle variabili non sono abbastanza adesso. Cos'altro è necessario per far riconoscere GTK e Qt moderni xime le sue sequenze Compose?

PS C'è una domanda simile (e senza risposta) sul tasto Compose che non funziona in GTK . A differenza del richiedente, non ho ibusinstallato.

Risposte:


7

Ho trovato una soluzione che funziona con le app GTK (ma non con Qt). Uno ha bisogno di impostare

XMODIFIERS="@im=none"

per consentire a X11 di gestire le chiavi morte. Grazie a @PabloSaratxaga per la sua risposta .


2

Ho avuto un problema simile in openSUSE. ~/.XComposeverrebbe ignorato dalle applicazioni GTK +, quindi le mie sequenze Compose non funzionavano in Firefox, Gimp e altri.

Ho scoperto che gtk-query-immodules-2.0elencava alcuni metodi di input, ma non xim; quindi, indipendentemente dalla GTK_IM_MODULEvariabile, ximnon era disponibile. L'installazione dei pacchetti gtk2-immodule-xim(e degli amici) ha risolto il problema.

Forse questa osservazione si rivela utile per le persone che soffrono della stessa maledizione.


1

Questo è un modo di configurazione persistente. È descritto ad esempio qui https://wiki.edubuntu.org/ComposeKey#line-66 . Ho configurato le chiavi di composizione con ~ / .XCompose in questo modo. Ho verificato questo sia su Ubuntu che su Debian.


Il problema è che anche il metodo unico ha smesso di funzionare. Le istruzioni per il cambiamento persistente sono specifiche di Debian / Ubuntu.
sastanin,
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.