Arch LinuxでCaps LockキーをEscapeキーにマップする方法


23

私のOSはArch Linux amd64、Gnome ENVです。

Arch LinuxでCaps LockキーをEsc(エスケープ)にマッピングしたい。コマンドを実行します:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

正常に機能しますが、しばらくすると、Caps Lockキーが再び機能します。そして、コマンドを再度実行する必要があります。

このソリューションはおそらく1年前にうまく機能したと確信しています。私の問題は何ですか?私のArch Linux OSでCaps LockキーをEscapeキーに永久にマッピングするのを手伝ってくれる人はいますか?

回答:


47

次のいずれか(複雑さの昇順):

  1. setxkbmapキーを再マップするために使用します(デーモンを必要とせず、デスクトップ環境またはウィンドウマネージャーから独立しています)。前にコマンドを追加することを忘れないでくださいexec gnome-session、あなたの中に(または類似の)行~/.xinitrc~/.xsession

    setxkbmap -option caps:escape
    

setxkbmapパッケージextra / xorg-setxkbmapにあります。

  1. dconf-editor→→ 上記のフィールドにorg.gnome.desktop.input-sources.xkb-options追加caps:escapeします。
  2. gnome-session-settings →スタートアッププログラム→追加→Name = Caps Lockをエスケープに再マップ、command =setxkbmap -option caps:escape
  3. カスタムキーボードレイアウトを作成する

FYI、私はでXKBルールを取得したのgrepのping /usr/share/X11/xkb/rulesのためにcapsesc


2
dconfメソッドは完璧に機能しました。
キーススマイリー

いいえ、ありがとう。2.私はずっとその情報を探していました。いいえ、コマンドラインで次のように設定できますgsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow

いいえについて 1:2つのエスケープキーを使用するのではなく、スワップする場合は、を実行できますsetxkbmap -option caps:swapescape
comfreak

5

で使用するためにX、Arch Wiki GnomeページにはXkbOptionsでキーボードを変更するための指示があります:

dconf-editorを使用して、org.gnome.desktop.input-sources.xkb-optionsという名前のキーに移動し、目的のXkbOptions(例: 'caps:swapescape')をリストに追加します。

コンソールで、同じ効果のカスタムキーマップを作成できます。以下のための必要な変化にあなたの個人的なキーマップを作成CapsLockし、Escape/usr/share/kbd/keymaps/i386/qwerty/yourmap、その後tar、それとの行が含ま/etc/vconsole.confそれを呼び出すために:

KEYMAP=yourmap

3

Xorg.conf

これを実現するには、ファイルを編集します/etc/X11/xorg.conf.d/00-keyboard.conf

サンプルファイル:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

複数のXkbOptionsを指定できます。たとえばcaps:swapcaps,terminate:ctrl_alt_bksp、escとcapsを交換しますが、でXを強制終了することもできますCtrlAlt Backspace。これについての詳細はで見つけることができますman xkeyboard-config

GUI

GNOME Tweak Tool(gnome-tweak-toolパッケージ)を使用することもできます。をクリックしTypingて、Ctrl positionメニューから好きなものを選択してください(下の画像を参照)。

ここに画像の説明を入力してください


2

xmodmapを使用できます。あなたの~/.Xmodmap

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

(Xの開始時に必ずを使用します~/.Xmodmap


これは、正しい、ディストリビューションに依存せず、デスクトップに依存しない答えです。
-dotancohen

これを入れると~/.Xmodmap、何も起こりません:(
JanWarchoł15年

あなたにラインxmodmap ~/.Xmodmapを入れてください~/.xinitrc
ウズソルト

私はこれを入れた場合~/.Xmodmap、次に実行しますxmodmap ~/.Xmodmap、私はエラーを取得:xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreakを

等号の前後にスペースが必要です。答えを修正しました。
ウズソルト

0

!上記の答えがうまくいかない理由はわかりません。ここに私のために働くものがあります。〜/ .Xmodmapで

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

その後

$ xmodmap ~/.Xmodmap

Fedoraと非Gnomeウィンドウマネージャーを使用しています。HTH


0

ファイル/etc/X11/xorg.conf.d/00-keyboard.confはを使用して自動生成することもできますsystemd-localed。次のコマンドを使用します。

localectl set-x11-keymap us "" "" caps:escape

または、他のいくつかの便利なオプションを含めます:

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

簡単な説明:

  • CapsLk として機能する Esc
  • 2のキーボードレイアウトを切り替えますus/ deAlt+CapsLk
  • CapsLk LEDはアクティブなレイアウトを示します
  • 右Alt(RAlt)は「マルチキー」です(キーの作成を参照)
    • RAlt+ e生成
    • RAlt+ 4生成(方法と同様Shift+ 4生成$
  • Ctrl+ Alt+ BackspaceXを殺す
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.