EmacsおよびOpenboxを使用する際のキーマッピングの問題


17

Appleキーボードを持っているので、Emacsで作業するときmod-4、キーをSpaceバーの左側の最初のキーにするために、キーの再マッピングを行う必要がありました。次のスクリプトは、dwmウィンドウマネージャーを使用している場合は正常に機能しましたが、Openboxに切り替えた後、オプションキーとコマンドキーの間でキーコードを交換する代わりに、両方のキーが同じことを実行していることがわかりました。

私が気づいた奇妙なことの1つは、実行をクリックしshowkey、それぞれ56と125を取得するオプションキーとコマンドキーを押すと新しいセットアップにありましたが、これらのキーは64と133。

以下のスクリプトを作成し、それが機能するまで継続的に微調整して、より良い方法ができるようにしたことを認めなければなりません。

.xmodmap

# switch alt and command...the switch is not being done properly
xmodmap -e "keycode 64 = Alt_L"
xmodmap -e "keycode 133 = Meta_L"

# remap of mod 4
xmodmap -e "clear Mod4"
xmodmap -e "add Mod4 = Super_L"

更新

私は以前のキーボード設定に慣れ、それを微調整することをあきらめました。残念なことに、最近の再起動後にが機能CapsLockCtrlなくなったため、ここに戻りました。

今回は、上で使用したマッピングの代わりに、xmodmap -pke > ~/.xmodそこでキーを実行して調整しました(はるかに簡単です)。

しかし、物事はまだ完全に正しくありません。CapsLock場合を除き、通常の静止画として機能xevコマンドが実行され、それが正しいマッピングを示しているように見えるん次の値を返します。

# caplock
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4858000, (57,-31), root:(426,402),
state 0x2, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes: 
XFilterEvent returns: False

# ctrl-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4805947, (686,148), root:(1055,581),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False

# Alt-L
KeyPress event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4555825, (-158,-649), root:(959,133),
state 0x0, keycode 64 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

# Super-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4920564, (-63,169), root:(306,602),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False

4
PCでは(Macでもこれが当てはまるかどうかわかりshowkeyません)、Xが使用するのと同じキーコードが表示されません。実行xevしてXキーコードとそのアクションを確認します。関係する各キーを押したときxmodmap -pmの出力と出力を表示xevします。
ジル 'SO-悪であるのをやめる'

私はxmodmapを-PMのコマンドの上記アップデートを追加
クリス

あなたはを見てみたいことがありwiki.archlinux.org/index.php/Apple_Keyboardhelp.ubuntu.com/community/AppleKeyboard。要約すると、あなたはかなりX.で物事をハッキングよりも、異なる動作をするために、カーネル内のキーボードドライバを伝えることができます
wingedsubmariner

DWMで機能していた場合、競合~/.config/openbox/rc.xmlが問題であると推測されます。
MajorBriggs 14

xmodmapの代わりにudevを使用してキーを再マッピングすることを検討しましたか?udevでは、スキャンコードを特定のキーコードに再マッピングするためにhwdbファイルが必要になります。
Centimane

回答:


1

あなたはおそらくあなたの最初に以下を配置する必要があります ~/.xmod

remove Lock = Caps_Lock
remove Control = Control_L
remove Mod1 = Alt_L Meta_L
remove Mod4 = Super_L Hyper_L

そして、以下の下部 ~/.xmod

add Control = Control_L
add Mod1 = Alt_L Meta_L
add Mod4 = Super_L Hyper_L

これにより、システムが更新され、これらのキーの修飾子の性質が認識されます。

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