如何禁用 X 中的虚拟终端切换快捷键?

如何禁用 X 中的虚拟终端切换快捷键?

在早期版本的 Ubuntu 中,用于在虚拟终端之间切换的AltF☒Alt快捷键似乎已在 X Windows 下禁用,因此不可能意外触发它们。

我现在正在使用带有 Cinnamon 桌面环境的 Ubuntu 16.04,即使在 X Windows 下也可以启用快捷方式。

当我尝试访问菜单项或在网络浏览器中前进/后退时,我经常会意外触发它们。

我如何禁用这些虚拟终端快捷键,或者用需要的版本替换它们Ctrl(例如CtrlAltF1而不仅仅是AltF1)?

--

(我发现几个较旧的答案建议采用习俗xmodmap,但这似乎对我没有影响。)

答案1

为了永久修复,您可以将修改后的映射添加到/etc/console-setup/remap.inc

您必须运行sudo dpkg-reconfigure console-setup -phigh才能应用更改并重新启动。

例如,这是我用来禁用 alt-Fxx 和 alt 箭头切换的方法

# Remap alt+Fxx key to void to avoid terminal switching
alt     keycode  59 = VoidSymbol
alt     keycode  60 = VoidSymbol
alt     keycode  61 = VoidSymbol
alt     keycode  62 = VoidSymbol
alt     keycode  63 = VoidSymbol
alt     keycode  64 = VoidSymbol
alt     keycode  65 = VoidSymbol
alt     keycode  66 = VoidSymbol
alt     keycode  67 = VoidSymbol
alt     keycode  68 = VoidSymbol
# Also remove mapping for alt left arrow and right arrow
alt keycode 105 = VoidSymbol
alt keycode 106 = VoidSymbol

`

答案2

尝试在终端中使用该命令 sudo kbd_mode -s ,看看是否有帮助。它将键盘输入模式更改为“scancode”。我遇到了同样的问题,发现这可能是解决方案。

答案3

Unix stackexchange 上的这个主题帮助我找到一个临时的一次性解决方案:

# This command removes all the lines that look like:
#    alt keycode 123 = Console_1'
# ... with no additional modifiers
$ sudo dumpkeys | grep -Pv '^\s+alt(gr)?\s+keycode\s+\d+\s+=\s+(Console_|Incr_Console|Decr_Console)'|sudo loadkeys

看来 Ubuntu 16.04 的控制台设置包将其缓存的键盘映射存储在 中/etc/console-setup/cached.kmap.gz

但我不明白是什么程序会生成这个“缓存”。有什么想法吗?我只能说重新运行dpkg-reconfigure console-setup console-setup-linux会触发它的再生。

相关内容