クロアチア語のレイアウトのMacBookを使用しています。一般的なPCクロアチア語レイアウト(WindowsおよびLinux)は、 AltGr 次のようなさまざまなシンボルを取得するには...
@
の場合[
の場合{
の場合OS Xでは、これはに置き換えられます。
@
の場合[
の場合{
の場合-つまり、米国のレイアウト位置+ alt 必要な記号を入力します。
Linuxを使用していると、クロアチア語のPCマッピングに戻すのが難しいと感じています。したがって、私はUSレイアウトを最もよく使用する傾向があります(その後、ČĆŽŠĐなどのローカル記号を入力できないという問題に加えて、@、[、{などにAltを入力する必要がないという問題があります)
Ubuntuの/usr/share/X11/xkb
にあるキーボードマッピング定義は、キーダウン時に記号を再マッピングする簡単な方法を提供します。 shift+keydown 、 altgr+keydown そして altgr+shift+keydown 。物事をマップする方法が見つかりませんでした alt+keydown そして alt+shift+keydown 。
グリフをにマップするにはどうすればよいですか alt+keydown そして alt+shift+keydown X11では?
Altは標準のXサーバーのキーコード修飾子ではないため、構成できません。 X11では、キーはxmodmap
で定義および変更できます。プログラムxev
を使用して、キーコードを識別できます。 xev
を開始し、2
を押します。ドイツ語のPCキーボードでは、次のようになります。
KeyPressイベント、シリアル33、合成NO、ウィンドウ0x3000001、 ルート0x69、サブw 0x0、時間3044226、(160,148)、ルート:(164,198)、 状態0x0、キーコード11(keysym 0x32、2)、same_screen YES、 XLookupStringは1バイトを提供します:(32) "2" XmbLookupStringは1バイトを提供します:(32) "2" XFilterEventは:True KeyReleaseイベント、シリアル33、合成NO、ウィンドウ0x3000001、 ルート0x69、サブw 0x0、時間3044305、(160,148)、ルート:(164,198)、 状態0x0、キーコード11(keysym 0x32、2)、same_screen YES、 XLookupStringは1バイトを提供します:(32) "2" XFilterEventは次を返します:False
キーのキーコードが11であることがわかります。これで、xmodmap
を使用してキーコード定義を表示できます。
$ xmodmap -pke | grep '11 = ' keycode 11 = 2 quotedbl twosuperior oneeighth twosuperior oneeighth
キーコード11が生成できる4つの異なるキーを確認できます。 xmodmapのマニュアルページでは、どのキーがどの修飾子によって生成されるかについて説明しています。
keycode NUMBER = KEYSYMNAME ...
The list of keysyms is assigned to the indicated keycode (which
may be specified in decimal, hex or octal and can be determined
by running the xev program). Up to eight keysyms may be
attached to a key, however the last four are not used in any
major X server implementation. The first keysym is used when
no modifier key is pressed in conjunction with this key, the
second with Shift, the third when the Mode_switch key is used
with this key and the fourth when both the Mode_switch and
Shift keys are used.
Shift
とMode_switch
のみがX11キーコードの有効な修飾子です。 Alt
キーを有効な修飾子にしたい場合は、Xサーバーにパッチを適用する必要があります。 8つの修飾子が可能であるため、理論的には可能です。しかし、Xサーバーはそれを知っている必要があります。