Centos 6.9システムでemacs 26.1を実行しており、TightVNCサーバーを介してMac OS X 10.14.2で実行されているクライアントに表示されます。仕事をトリッキーにするために、Dvořákキーボードレイアウトも使用しました。
Macでemacsを実行すると、すべてがうまく動作します。私のMacキーボードはですApple Magic Keyboard with Numeric Keypad (Wireless, Rechargable) (US English) - Silver
。option
左または右を押すと期待どおりに動作し、meta
Emacsでビルドされます。左右を押すとcommand
好きなように動作し、meta
Emacsでもビルドされます。私はこれが次の方法で行われると思います(これはLinuxでは問題を解決しませんでした)。
(setq mac-option-modifier 'meta)
(setq mac-command-modifier 'meta)
TigerVNCを介してMac上でEmacsを実行しているLinuxシステムに接続しようとしています。 Centos 6.9コンピュータでは、Dvorokキーボードレイアウトの設定がMacキーボードで入力するのを妨げていたため、無効にする必要がありました。
ただし、修飾キーは期待どおりに機能しません。M-x
さまざまな方法でビルドしようとしたときに得られた結果は次のとおりです。
- 左オプション-x =>無効です:
≈
- 左コマンド -x => 正解:
M-x
- 正しいオプション -x => 無効です:
≈
- 右のコマンド-x =>エラー:
s-x
私は走ったxmodmap -pm
:
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
私は走ってxev
次を見ました。
左のオプション:
KeyPress event, serial 38, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 19839468, (104,80), root:(106,131),
state 0x0, keycode 203 (keysym 0xff7e, Mode_switch), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x2000001,
atom 0x11c (XKLAVIER_STATE), time 19839468, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x2000001,
atom 0x11c (XKLAVIER_STATE), time 19839468, state PropertyNewValue
左コマンド:
KeyPress event, serial 38, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 19937256, (103,75), root:(105,126),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
正しいオプション:
KeyPress event, serial 38, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 19987161, (132,152), root:(134,203),
state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) ""
XmbLookupString gives 1 bytes: (1b) ""
XFilterEvent returns: False
右クリックコマンド:
KeyPress event, serial 38, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 20026188, (93,166), root:(95,217),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
だから私は次のことを試しましたxmodmap
。
! Map the right Macintosh Command key to Meta:
remove mod4 = Super_L
add mod1 = Super_L
! Map the left Macintosh Option key to Meta:
remove mod5 = Mode_switch
add mod1 = Mode_switch
! Map the right Macintosh Option key to Meta:
remove mod5 = ISO_Level3_Shift
add mod1 = ISO_Level3_Shift
この状態は次のために発生しますxmodmap -pm
。
xmodmap: up to 7 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), ISO_Level3_Shift (0x5c), Alt_R (0x6c), Super_L (0x85), Mode_switch (0xcb), Meta_L (0xcd), Super_L (0xce)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_R (0x86), Hyper_L (0xcf)
mod5
しかし、これは悪く動作します:
- 左オプション-x =>無効です:
≈
- 左コマンド-x =>エラー:
M-b
- 正しいオプション -x => 無効です:
M-≈
- 右のコマンド-x =>エラー:
M-b
Dvorakの「x」キーはQwertyの「b」キーに対応します。
これを使用すると、xev
次のようになります。
左のオプション:
KeyPress event, serial 40, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 20512286, (121,123), root:(123,174),
state 0x0, keycode 203 (keysym 0xff7e, Mode_switch), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 40, synthetic NO, window 0x2000001,
atom 0x11c (XKLAVIER_STATE), time 20512286, state PropertyNewValue
PropertyNotify event, serial 40, synthetic NO, window 0x2000001,
atom 0x11c (XKLAVIER_STATE), time 20512288, state PropertyNewValue
左コマンド:
KeyPress event, serial 40, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 20568312, (140,155), root:(142,206),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
正しいオプション:
KeyPress event, serial 40, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 20606634, (88,106), root:(90,157),
state 0x0, keycode 92 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
右クリックコマンド:
KeyPress event, serial 40, synthetic NO, window 0x2000001,
root 0x3e, subw 0x0, time 20656211, (126,127), root:(128,178),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
meta
したがって、この問題を解決し、Dvorakキーボードを使用するEmacsのように、2つのオプションと2つのコマンドキーの目的の動作を取得する方法は私にとっては明らかではありません。