我正在使用 GUI 文本编辑器 SciTE,并且我想使用以下组合键来选择 SciTE 中的矩形文本区域:AltShiftUp和AltShiftDown。
看来我可以在 Linux Mint 中做到这一点,但我无法让它在 Debian 中工作。
Debian 阻止了这些密钥。
我想知道如何使这些密钥可供用户应用程序使用。
我的系统:
- Linux Mint 18,MATE 1.14.1
- Debian 8.7(杰西),MATE 1.8.1
我用于AltShift在我的两个系统上切换键盘布局(英语-俄语)。
我希望它保持这种状态(因为我的“手指记忆”)。
我尝试过的:
我打开dconf-editor
并更改了mouse-button-modifier
从<Alt>
到 的所有位置<Super>
,并禁用了所有组合键,然后重新启动了 Linux。
那并没有解决我的问题。
有趣的细节:
当我使用 VirtualBox(主机 = Debian,来宾 = Linux Mint)时,Alt-Shift-Up/Down
组合键在来宾系统内工作!
xev
AltShiftUpLinux Mint 上的 输出:
KeyPress event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 1272551, (42,42), root:(465,335),
state 0x10, 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 0x3c00001,
root 0x26b, subw 0x3c00002, time 1273025, (42,42), root:(465,335),
state 0x18, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 1273538, (42,42), root:(465,335),
state 0x19, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 1273605, (42,42), root:(465,335),
state 0x19, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 1274384, (42,42), root:(465,335),
state 0x19, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 1274824, (42,42), root:(465,335),
state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xev
Debian 上的输出AltShiftUp:
KeyPress event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 13862445, (48,45), root:(85,108),
state 0x10, 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 0x4000001,
root 0x296, subw 0x4000002, time 13862855, (48,45), root:(85,108),
state 0x18, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 13862856, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 13862857, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 13862857, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 13862858, state PropertyNewValue
KeyPress event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 13863422, (48,45), root:(85,108),
state 0x2018, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 13863489, (48,45), root:(85,108),
state 0x2018, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 13864456, (48,45), root:(85,108),
state 0x2018, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 13864793, (48,45), root:(85,108),
state 0x2018, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xev
AltShiftLinux Mint 上的 输出:
KeyPress event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 3118153, (47,39), root:(78,133),
state 0x10, 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 0x3c00001,
root 0x26b, subw 0x3c00002, time 3118245, (47,39), root:(78,133),
state 0x18, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 3118377, (47,39), root:(78,133),
state 0x19, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x3c00001,
atom 0x1c4 (XKLAVIER_STATE), time 3118380, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x3c00001,
atom 0x1c4 (XKLAVIER_STATE), time 3118382, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x3c00001,
atom 0x1c4 (XKLAVIER_STATE), time 3118383, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x3c00001,
atom 0x1c4 (XKLAVIER_STATE), time 3118385, state PropertyNewValue
KeyRelease event, serial 38, synthetic NO, window 0x3c00001,
root 0x26b, subw 0x3c00002, time 3118535, (47,39), root:(78,133),
state 0x2018, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xev
Debian 上的输出AltShift:
KeyPress event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 16284126, (36,50), root:(76,134),
state 0x10, 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 0x4000001,
root 0x296, subw 0x4000002, time 16284503, (36,50), root:(76,134),
state 0x18, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 16284506, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 16284506, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 16284507, state PropertyNewValue
PropertyNotify event, serial 38, synthetic NO, window 0x4000001,
atom 0x1c0 (XKLAVIER_STATE), time 16284507, state PropertyNewValue
KeyRelease event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 16284786, (36,50), root:(76,134),
state 0x2018, keycode 50 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x4000001,
root 0x296, subw 0x4000002, time 16285071, (36,50), root:(76,134),
state 0x2018, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
如您所见,AltShift组合键的处理方式有所不同:
- 在 Debian 键盘布局上,按 PRESS 键打开,
- 在 Linux Mint 上,键盘布局是通过 RELEASE 键切换的。
顺序:
ALT pressed
SHIFT pressed
(at this moment Debian switches layout)
SHIFT released
(at this moment Linux Mint switches layout)
ALT released
AltShiftUp可能这就是为什么在 Debian 上不起作用的 原因。
我如何才能AltShiftUp与AltShiftDebian 共存?