Caps Lockのコントロールとエスケープへの再マッピング(通常の方法ではありません)


27

xmodmapを使用してCapsロックキーを再マップし、ControlキーまたはEscapeキーとして機能する方法を知っています。次のように両方の機能を組み合わせたいと思います。

Caps lockキーを押してから放すと、エスケープが送信されます。Caps Lockを押しながら別のキー(Aなど)を押すと、Control-Aが送信されます。

XでCapsロックをこのように動作させるxkb、xmodmapなどの組み合わせはありますか?

Macbook Air 3,1でUbuntu Preciseを使用しています。

回答:


-2

あなたは、まず(マッピングを行うことができますCaps LockへのEsc)がありますが、第二を行うことはできません。

簡単な説明: Caps Lock押されたときに何かをするように設計されていません。

詳細な説明: キーには多くの種類があります。それらの2つは、修飾キーロックキーです。

Caps Lockあるロックキーは、のようなキーながらCtrlAltShiftされている修飾キー

名前からわかるように、修飾キーは次に押されるキーの機能を変更し、ロックキーは特定の機能をオンまたはオフにするトグルスイッチとして機能します。

さて、 Caps Lock Lock Keyであるため、それをModifier Keyのようにマッピングせずに動作させることはできません。 Caps Lock単独でModifier Keyとして機能することはできません。


Xが私が望むことをするように設計されていないことを確認していただきありがとうございます。Xの第一人者が何かをハッキングして機能させる場合は、私に連絡してください。
user372737

4
以下の受け入れられない答えとして、xcapeやAt-Home-Modifierなどの多数のユーティリティを使用して2番目の部分を実行できます。
スパラフーク

34

私は自分のMacでこの設定をしていて、運のないUbuntuの方法を見つけようとしました。

まあ、それは今働いています。xcapeを紹介してくれてありがとう。私がやったことは本当に簡単で簡単です。

  1. [システム環境設定]> [キーボードレイアウト]> [オプション...]> [Ctrlキーの位置]で、[Caps Lock as Ctrl]をオンにしました。

  2. xcape -e 'Control_L = Escape'

完了、Caps Lockは修飾子のように使用するとCtrlとして機能し、単独で押すとEscとして機能します(xcape READMEファイルに記載されているように、数百ミリ秒のわずかな遅延があるため、使用するMacソリューションほど最適ではありません) KeyRemap4MacBook。)


4
Ubuntu 14.04 にはないので、gnome-tweak-toolマッピングCaps Lockに使用していました。その後、動作しませんでしたが、使用後にキーコード66 を生成し、それをそれぞれ再マップしたことを発見しました。CtrlKeyboard layoutSystem Settingsxcape -e 'Control_L=Escape'xcape -dCaps Lockxcape -e '#66=Escape'
セルギーベロゾロフ14

3
あたりとして、このブログの記事、それだけではxcapeでこれを行うことが可能である: setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape' setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
ルイSimoneau

これは本当にuser372737 @受け入れ答えされている必要があります
アサフラヴィー

@LouisSimoneauこれこれ千倍これ。
スペンサーブーシェ

1
遅延問題の進行状況は?
歯磨き

6

私もこれを探しています。一週間前、私は自分を部分的な解決策として使用していましたxmodmap

add Control = Caps_Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape

もちろん、これは完全には機能しません。CapsLockを押すと、EscapeとCtrlの両方が効果的に送信されますが、しばらくの間は満足していました。

最後に、この小さなユーティリティhttps://github.com/alols/xcapeを見つけました。そのため、CapsLockをCtrlに再マップし、xcapeに任せることができます。


別のオプションはAt-Home-Modifierです。アクティブな開発ではなく、rootでインストールすることでxcapeとは少し異なります。ただし、xorg.confを介してトリガーされるため、特定のキーボードでのみ動作し、同時に他のキーボードを同時に使用できます。
スパラフーク

4

編集:ほとんどのスマート(新しい)ディスプレイマネージャーのこれを修正しました。

LouisとSergiyのコメントごとに、LightDMとUnityを使用したUbuntu 16.04(Xenial)で動作するこのソリューションを思いつきました。

次のコード行を.xprofileホームディレクトリのファイルに配置します。

setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Caps_Lock=Escape' &

後続の&は、xcapeコマンドをバックグラウンドに配置して、セッションをブロックしないようにします。setxkbmapはすぐに変更を加えます。

セルギー:

Ubuntu 14.04のシステム設定にはキーボードレイアウトがないため、gnome-tweak-toolを使用してCaps LockをCtrlにマップしました。その後、xcape -e 'Control_L = Escape'は機能しませんでしたが、xcape -dを使用した後、Caps Lockがキーコード66を生成し、それぞれ再マッピングすることを発見しました:xcape -e '#66 = Escape'。–セルギー・ビエロジョロフ14年9月4日10:08

ルイス:

このブログ投稿によると、xcapeのみでこれを行うことができます:setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape '-ルイ・シモーノー15年8月4日10:06


3

インストール xcape

sudo apt-get install xcape

に2行追加します ~/.bashrc

/usr/bin/setxkbmap -option 'caps:ctrl_modifier'⏎
/usr/bin/xcape -e 'Caps_Lock=Escape' -t 100

part -t 100に注意してください。設定しない場合、vimを使用するとEscに遅延が生じる場合があります。


sudo apt-get install xcape(タイプミス)
デビッドシェーク

1

EscからCapsへの「スワップ」をオフにする方法はありますか。Capsをまったく使用せず、古いEscと新しいEscの両方をEscapeとして動作させることを好みます。
dragon788


おかげで、これを自動でドットファイルにコンパイルするためのリンクを作成する必要があります。Ubuntu 16.04では、コンパイルするためにlibudev-devとlibevdev-devが必要だったため、README.mdをPRすることもできます。
-dragon788

@ dragon788がArchに来ます(Antergosを試すこともできます)。私はUbuntuから何年も前に引っ越しましたが、二度と戻りません。
pepper_chico
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.