web-dev-qa-db-ja.com

CapsLockキーを変更して「a」を生成する方法は?

入力中に私はしばしば CapsLock キーの代わりに a キー。 (QWERTZUキーボード)これは非常に面倒です。間違ったキーを押したことがわかった瞬間、テキストの複数の文字/行を削除して正しい形式に書き換える必要があるからです。

これを防ぐ方法を探しています。

私は無効にする可能性を発見しました CapsLock キー入力キーボードレイアウトオプション。しかし、これは私の場合、aを書く代わりに何も書かないことを意味します。

->行全体を書き換える必要はありませんが、1文字だけです

ネガティブ->大文字のテキスト行として認識されない文字がないため、間違ったキーを押したことはそれほど明白ではありません。

したがって、マップする可能性を好む CapsLock に a 。したがって、打つとき CapsLock a文字が書き込まれます。

->ヒットした場合 CapsLock の代わりに a 実際に入力したかった出力を取得します。

->ヒットした場合 CapsLock 他のコンテキストでは、a文字を取得します。私は決してしないので意図的に CapsLock これは実際には問題になりません。 (私は思う、またはそれ?)

私の質問:

  1. それで、どのように変更しますか a ?
  2. また、これが危険である/望ましくない動作を引き起こす可能性があるケースはありますか?
21
Pit

具体的には、私は変更する方法がわかりません CapsLock に a、私はキーコードを覚えていないので。少し後で見つけます。ただし、一般的には、xmodmap(および.Xmodmap)を使用してキーマッピングを変更できます。 GNOMEが.Xmodmapファイルを初めて検出すると、常にそれをロードするかどうかを尋ねられ、設定されます。

また、Caps Lockはばかげていると思います。ただし、キーの位置は便利です。 Controlキーにマッピングするのが好きです。私はコントロールalotを使用し、私のピンキーがその厄介な位置で絶えず手を伸ばすのは面倒です。そして、後で見つけたように、歴史的に Control どこですか Caps Lock 現在。とにかく。次の行を使用して、ホームディレクトリに.Xmodmapというファイルを作成します。

remove Lock = Caps_Lock
keysym Caps_Lock = Control_L

これらの変更を今すぐ有効にするには、xmodmap ~/.Xmodmapを実行します。

xevを使用して、自分でキーコードを見つけることができます。のキーコードが判明 a 38または16進数0x61です。したがって、代わりに.Xmodmapは次のようになります。

remove Lock = Caps_Lock
keysym Caps_Lock = 0x61

Manページを読むことを強くお勧めします。

20
djeikyb

man xmodmapを確認した後、これを定義するべき等べき方法があることがわかりました。

clear Lock
keysym Caps_Lock = Caps_Lock Control_L

Xを再起動すると、「bad keysym」エラーを発生させることなくxmodmap ~/.Xmodmapを繰り返し実行できるようになります。

Update:残念ながら、これは portable and idempotent ではないようです。

2
l0b0