私はMacbookを持っており、正しい「Command」キー(Super_R、RWINとも呼ばれます)をAltGrにマッピングしたいと思います。私がこれをしたいのは、通常のノルウェー語キーボードが角かっこキーと中かっこキーなどをマッピングする方法です。
しかし、これが問題です。
まず、ほとんどのプログラムでうまく機能するxmodmapを使ってキーをマッピングしました。しかし、一部のプログラム、特にFirefoxでは動作しません。
関連質問ですが役に立ちませんでした。
https://superuser.com/questions/801611/how-to-make-all-applications-Respect-my-modified-xkb-layout
https://wiki.archlinux.org/index.php/X_KeyBoard_extensio:
AltGr+i,j,k,l をカーソルキーで正しく機能させるには?
Xmodmapソリューション:
keycode 134 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
これがXmodmapの問題だと疑われ、XKB(X Keyboard Extensions)を使ってみました。https://wiki.archlinux.org/index.php/X_KeyBoard_extension
key <RWIN> { [ ISO_Level3_Shift ] };
しかし、同じ問題がまだ存在します。
そして「問題」とは、それがまったく機能しないことを意味します。たとえば、新しいAltGr + 4を押すとドル記号が生成されるはずですが、そうではありません。ほとんどのプログラム(xtermなど)ではうまく機能しますが、Firefoxでは機能しません。 Firefoxは「$」の代わりに「4」を生成します。
に掲示されているようにhttps://superuser.com/questions/801611/how-to-make-all-applications-Respect-my-modified-xkb-layout説明する:
「一部のアプリケーションはControl_L自体などの主要なシンボルを追跡し、他のアプリケーションは状態の修飾子ビットのみを検索します。」
「ほとんどの実行に失敗したプログラムは修飾子を観察し、一部のプログラムがアクティブな間は実行したくありません。」
私はFirefoxが同じことをすると信じています。
私の質問は、特定のキーの組み合わせを押したときにXサーバーがアプリケーションに正確なステータスを送信できるようにするにはどうすればよいですか?
これが私が持っているものです:
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0x2de, subw 0x0, time 1100024, (222,-357), root:(1005,749),
state 0xc0, keycode 13 (keysym 0x24, dollar), same_screen YES,
XLookupString gives 1 bytes: (24) "$"
XmbLookupString gives 1 bytes: (24) "$"
XFilterEvent returns: False
これは私が望むものです(適切なキーボードを持つ他のラップトップからのものです。関係がないため、手動で入力するのは面倒です)。
KeyPress event, serial 37, synthetic NO, window ...
root 0x233, subw 0x0, time ...
state 0x90, keycode 13 (keysym 0x24, dollar), same_screen YES,
XLookupString gives 1 bytes: (24) "$"
XmbLookupString gives 1 bytes: (24) "$"
XFilterEvent returns: False
関連部分は「国」だと思います。ステータス指定修飾キーです。
Super_R + 4を押したときにXにこのステータスとキーシンボルを生成させるにはどうすればよいですか?これを見つけることができれば、必要な他のキーもマッピングでき、ついに機能するキーボードがあります。