私は長い間Gnomeを使用していましたが、デフォルトのGTK動作よりもVanilla X入力メソッド(xim
)を優先しました。私はGTK_IM_MODULE
とQT_IM_MODULE
環境変数をxim
に設定するだけで、複数レイアウトの構成に問題はありませんでした。 Compose キー、カスタム~/.XCompose
およびmisc:typo
タイポグラフィ拡張。
最近のGnome 3.6は、中途半端でバグの多いibus
およびユーザーに強制する を出荷することにより、キーボード入力を完全にねじ込みました。以前と同じように(ibus
を無効にしても)キーボードを機能させることができず、Gnomeを完全に破棄する必要がありました。
次に、単純なウィンドウマネージャーを使用し、setxkbmap
を使用してキーボードを構成します。キーボードは再びうまく機能しますが、どこでもComposeキーを機能させることができませんでした。 ComposeはプレーンX11アプリ(xterm
)で機能しますが、GTK2、GTK3、Qtアプリのいずれでも機能しません。
私は現在の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
有効にします Compose このようなキー:
setxkbmap ... -option 'compose:menu'
GTK_IM_MODULE
、QT_IM_MODULE
変数をエクスポートします。
$ echo $GTK_IM_MODULE $QT_IM_MODULE
xim xim
Compose キーはX11によって適切に認識されます:
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key
xterm
で正しく動作します。私の~/.XCompose
のシーケンスが含まれています。 GTKアプリでもQtアプリでも機能しません。たとえば、私が入ると Compose'、その後、アプリはシーケンスの3番目のキーを待たずに'
をすぐにエコーします。
今、私はどちらかのXorgで何かが変わったと思います( Compose Qtアプリでも機能しません)、またはGTKおよびQtでは機能しません。 *_IM_MODULE
変数は現在十分ではありません。最新のGTKとQtにxim
とそのComposeシーケンスを認識させるには、他に何が必要ですか?
追伸 GTKでコンポーズキーが機能しない について同様の(未回答の)質問があります。質問者とは異なり、私はibus
をインストールしていません。
GTKアプリで機能する(Qtではない)ソリューションを見つけました。設定する必要があります
XMODIFIERS="@im=none"
x11にデッドキーを処理させるため。 彼の答え を@PabloSaratxagaに感謝します。
OpenSUSEでも同様の問題がありました。 ~/.XCompose
はGTK +アプリケーションでは無視されるため、FirefoxやGimpなどでは自分の作成シーケンスが機能しませんでした。
gtk-query-immodules-2.0
にはいくつかの入力メソッドがリストされているが、xim
はリストされていないことがわかりました。そのため、GTK_IM_MODULE
変数に関係なく、xim
は使用できませんでした。パッケージgtk2-immodule-xim
(およびその仲間)をインストールすることで問題は解決しました。
多分この発言は同じ呪いに苦しんでいる人々のために役立つことがわかります。
これは永続的な設定の方法です。たとえば、ここで説明されています https://wiki.edubuntu.org/ComposeKey#line-66 。このように〜/ .XComposeで作成キーを設定しました。私はこれをubuntuシステムとdebianシステムの両方でチェックしました。