スーパー(左)キーをコントロールキーに再マップする方法


26

誰かが私のSuper(左)キーをCtrlキーに再マッピングする方法を教えてもらえますか?

つまり、Super(左)Ctrlキーとして機能するはずです。


左のスーパーキーのみをCtrlとして機能させますか?キーボードレイアウト設定から両方を一度に再マップするのは簡単ですが、設定ファイルを使用して変更する必要があるのは1つだけです。
pconley

はい、スーパーキーのみをCtrlキーとして機能させたいです
サンディ

スーパーキーはそれを左のCtrlキーと左Alt /右側のALT GRと他の奇妙なロゴとキーの間に嘘をMS Windowsのロゴを持っている私のキーボード上のキーを参照してください?
ルネナイフェネガー

1
@RenéNyffeneggerスーパーキーは、WindowsPCキーボードのCommandキーおよびAppleキーボードのキーです。私はentirly必ず記述し、他のキーが何であるかだん
nhed

回答:


28

文字の再マッピングや修飾子の変更など、キーボードに大きな変更を加えるには、xmodmapユーティリティを使用する必要があります-を参照してくださいman xmodmap。変更を実行するには、いくつかの方法があります。

  • コマンドラインから

    xmodmap -e "your commands"
    
  • またはコマンドを次のようなファイルに書き込んでから、.xmodmaprcログイン項目または.bashrcで実行します

    xmodmap .xmodmaprc
    

    ファイル~/.xmodmapに名前を付けると、ログイン時に自動的に実行されます。

今、コマンド

あなたがしたいことは、2段階のプロセスです。最初にSuperをその修飾子からマップ解除し、次にそれをコントロールにマップします。

  1. xmodmap -pmターミナルウィンドウで実行して、バインドされた修飾子のリストを取得します。私のマシン(おそらくあなたのマシン)では、スーパーはと呼ばれmod4ます。Super_LSuper_Rは、同じ修飾子を出力する個別のキーです。

    これで、修飾子をマップ解除できます。xmodmapコマンドを実行します(上記の方法のいずれかを使用)

    remove mod4 = Super_L
    

    現在、物理キーは内部的にSuper_Lと呼ばれていますが、何もしません。

  2. 次に、再マップします。xmodmapコマンドを実行します。

    add control = Super_L
    

これを後で取り消す場合は、適切な引数を指定して同じコマンドを実行するだけです。

Super_Rがありませんか?

xmodmap -pmの出力では、Super_Lという名前のいくつかのキーが与えられますが、Super_Rという名前のキーはありません。その場合、Controlにいくつかの追加キーが割り当てられますが、Superには何も割り当てられません。1つのキーの名前を変更する必要があります。(注:複数のSuper_Lと少なくとも1つのSuper_Rを提供する場合があります。これで問題ありません。)

テーブル内のキー名はすべて、その隣の括弧内に16進数の番号があります。この番号は、キーボード上のキーの物理的なキーコードです(モデルによって異なる場合があります)。1つのSuper_LをSuper_Rに変更する必要がある場合は、まずSuper_Rに関連付けるキーコードを見つけます(どちらが正しいのかわかりませんか?実行してxevから、右のSuperを数回タップします。キーコード= 133 "(異なる番号))。xmodmapコマンドを実行します

keycode 133 = Super_R

キーの名前を変更するには、

add mod4 = Super_R

スーパーに割り当てます。


まずは時間を割いてくれてありがとう。ターミナルで「remove mod4 = Super_L」と入力すると、次のメッセージが表示されます:remove mod4 = Super_L:command not found。スクリーンショット:i.imgur.com/fbvEA.png
サンディ

1
これはxmodmapユーティリティのコマンドです。最初のセクションで説明したいずれかの方法で実行する必要があります。それをより明確にするために、回答を編集しました。
-pconley

また、起動時にこれらのコマンドを実行する方法を教えてください。
サンディ

ログインするとき、またはシステムが起動するとき 前者の場合は、コマンドをホームディレクトリの「.xmodmap」ファイルに入れるだけです。後者は、「起動時にスクリプトをどのように実行するか」という行に沿った別の質問に適しています(このような質問は以前に尋ねられたと思われます)。
pconley

私にとっては、キーサムなしでは働きませんでした。 keysym Super_L = Control_L
アリアクサンドルシュシュケビッチ

19

コマンドライン:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"

または~/.Xmodmap、起動時にアクティブにするために入れます:

remove mod4 = Super_L
add control = Super_L

4

Ubuntuでは、以下を編集/etc/default/keyboardおよび設定できます。

XKBOPTIONS = "altwin:ctrl_win"

どれ:

CtrlはWinキー(および通常のCtrlキー)にマップされます

詳細をお読みman 5 keyboardください。以下を実行することにより、システム上のオプションのすべての可能な組み合わせを見つけることができます。

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win

2

GUIを使用する場合:

  1. Gnome Tweaksをインストール/開く
  2. クリック Keyboard & Mouse
  3. クリック Additional Layout Options
  4. 展開する Ctrl position
  5. 選択してください Swap Left Win with Left Ctrl

1

これで試してください:

clear Control
clear mod4
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Super_L

上記の行をyourに入れて~/.Xmodmap実行しますxmodmap ~/.Xmodmap

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.