web-dev-qa-db-ja.com

X11でのキーボードレイアウトの変更:@にAlt + shift +2を使用

クロアチア語のレイアウトのMacBookを使用しています。一般的なPCクロアチア語レイアウト(WindowsおよびLinux)は、 AltGr 次のようなさまざまなシンボルを取得するには...

  • AltGr+V@の場合
  • AltGr+F[の場合
  • AltGr+B{の場合

OS Xでは、これはに置き換えられます。

  • Alt+Shift+2@の場合
  • Alt+Š[の場合
  • Alt+Shift+Š{の場合

-つまり、米国のレイアウト位置+ 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では?

3
Ivan Vučica

まあ、私はばかげた考えを持っています:あなたcouldxdotoolxbindkeys と一緒にそれをハックすることができます:

~/.xbindkeysrcに以下を追加します

"xdotool key at"
    Shift+Alt+Mod2 + 2

タダー!

(了解しました、反対票を投じてください!)

1
brice

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.

ShiftMode_switchのみがX11キーコードの有効な修飾子です。 Altキーを有効な修飾子にしたい場合は、Xサーバーにパッチを適用する必要があります。 8つの修飾子が可能であるため、理論的には可能です。しかし、Xサーバーはそれを知っている必要があります。

3
ceving