Linux でのキーボードの複雑な再マッピング

Linux でのキーボードの複雑な再マッピング

最新の Linux ディストリビューションでのキーの再マッピングに関する別の質問があります。

背景:

私は過去 6 年間 Mac ユーザーであり、約 20 年間 Linux ユーザーでした。これにより 2 つの問題が発生しました。

  • Macのスウェーデン語キーボードでコーディングするのはひどいので、コーディング中はUSレイアウトを使わざるを得ませんでした。
  • LinuxとMacでキーボードレイアウトを頻繁に切り替える

Mac では、スウェーデン語の文字 (å、ä、ö) にアクセスできるように、US レイアウトにいくつか変更を加えました。スウェーデン語のキーボードでこれらの文字を入力するには、通常、キーボードの右側に 3 つのキーがあります。Ukelele でこれらのキーを再マッピングしたので、通常は US レイアウトと同じように機能しますが、「alt」(または「alt+shift」) を押すと、スウェーデン語の文字が表示されます。しばらくこれに慣れると、非常にうまく機能します。

第二に、Linux ユーザーが Ctrl-Win-Alt キーを再マップして、Win キーを 2 番目の Ctrl キーのように動作させるのはよくあることです。これにより、ほとんどのショートカットが Mac と Linux で同じように動作します。GNOME (または GNOME Tweaks) には、これに対応する設定があります。「Ctrl は Win と通常の Ctrl キーにマップされます」。

しかし、順序は Mac キーボードと同じではありません。Mac では「control option command」ですが、PC キーボードでは「ctrl win alt」です。GNOME Tweaks には別のオプションがあります。「Alt を Win と交換」です。残念ながら、GNOME Tweaks ではこれらのオプションの 1 つしか許可されません。

これが私が望む完全な再マッピングです(米国のレイアウトに基づく)。

  • Alt + "[" => å
  • Alt + Shift + "['"=> Å
  • Alt + "'" => ä
  • Alt + Shift + "'" => Ä
  • Alt + ";" => ö
  • Alt + Shift + ";" => オー
  • 左Ctrl => 左Ctrl
  • 左 Win => 左 Alt
  • 左 Alt => 左 Ctrl

残念ながら、これを実現する方法は非常に多くのオプションがあるようで、そのすべてを正しく実行するのは非常に難しいため、この点についてご助力いただければ幸いです。

(Mac では、キーボード レイアウトを作成するグラフィカル ツールである Ukelele を使用してこれを行うことができました。このツールをインストールすると、米国レイアウトとスウェーデン レイアウトを切り替えるのと同じくらい簡単に切り替えることができます。非常に便利です。)

アップデート:

Ctrl/Alt/Win の部分は解決しました。新しいファイル (私の場合は「jomag」という名前) を作成し、「/usr/share/X11/xkb/symbols/」に配置しました。

partial modifier_keys              
xkb_symbols "jomag" {     
        key <LALT> { [ Control_L, Control_L ] };     
        key <LWIN> { [ Alt_L, Alt_L ] };             
        modifier_map Control { <LALT>, <LWIN> };     
};                        

/usr/share/X11/xkb/rules/evdev にも次の行を追加しました:

! option     =    symbols
jomag:jomag  =    +jomag(jomag)    <--- this one

ただし、それが必要だったかどうかはわかりません。

これをロードする最良の方法は、setxkbmap を使用することだとわかりました。

setxkbmap -option jomag:jomag

再ロードするには、空のオプションで実行します。

setxkbmap -option
setxkbmap -option jomag:jomag

関連情報