在早期版本的 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
会触发它的再生。