私は長い間Gnomeを使用してきましたが、xim
基本的なGTK動作よりも一般的なX入力方法()を好みます。私は環境変数GTK_IM_MODULE
をに設定しましたが、QT_IM_MODULE
いくつかのレイアウト構成、キー、カスタマイズ、およびレイアウト拡張xim
に問題はありません。Compose~/.XCompose
misc:typo
最近、Gnome 3.6はキーボード入力を完全にめちゃくちゃにして、半分焼いたバグのあるバージョンを提供しました。ibus
そしてこれをユーザーに課します。。キーボードが以前のように動作することができず(ibus
無効になっていても)、Gnomeを完全に放棄する必要がありました。
今簡単なウィンドウマネージャを使用してsetxkbmap
。キーボードはうまく機能しますが、作成キーはどこでも使用できません。 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
ComposeX11はキーを正しく識別します。
$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key
xterm
私が含めた順序でうまくいきます~/.XCompose
。 GTKまたはQtアプリケーションでは機能しません。と入力すると、シーケンスの3番目のキーを待たずにCompose 'アプリケーションがすぐにエコーされます。'
Composeこれで、Xorg(Qtアプリケーションでも機能しないため)またはGTKに変更があるようです。そしてQt。*_IM_MODULE
今、変数では十分ではありません。最新のGTKとQtがComposeシーケンスを認識するにはxim
何が必要ですか?
PS:同様の(そして未回答の)質問があります作成キーがGTKで機能しない。質問者とは異なり、私はインストールしていませんibus
。
答え1
GTKアプリケーション(Qtではない)で動作するソリューションを見つけました。 1つを設定する必要があります。
XMODIFIERS="@im=none"
X11にデッドキーを処理させます。 @PabloSaratxagaさん、ありがとうございます彼の答え。
答え2
openSUSEでも同様の問題に直面しました。~/.XCompose
GTK +アプリケーションでは無視されているので、私のComposeシーケンスはFirefox、Gimp、その他のブラウザでは機能しませんでした。
gtk-query-immodules-2.0
いくつかの入力方法がリストされていますが、変数はxim
何でも使用できません。パッケージ(および友人)をインストールすると問題が解決しました。GTK_IM_MODULE
xim
gtk2-immodule-xim
おそらく、この引用は同じ呪いに苦しむ誰かに役立つでしょう。
答え3
これは構成を維持する方法です。たとえば、ここで説明します。https://wiki.edubuntu.org/ComposeKey#line-66。 ~/.XComposeを使用して作成キーをこのように設定しました。 UbuntuとDebianシステムでこれを確認しました。
答え4
GTKプログラムでは動作しましたが、QTプログラムでは動作しなかったとき、これは私が持っていたものであり、解決策を見つけたからです。ここ:
GTK +アプリケーションはXorgの独自のComposeファイルのコピーを使用します。ほとんどの書き込みシーケンスは、いくつかの従来の例外を除いて動作し続ける必要があります。 xterm および QT アプリケーションは XOrg を使用してシーケンスを構成します。シーケンスは、
en_US.UTF-8
その中にあるファイル/usr/share/X11/locate
と~/.XCompose
ファイルがある場合はそのファイルです。
これが私に意味するものは次のとおりです。
ln -s /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose
その後、QTプロジェクトでも機能します。