问题描述
试用 Ubuntu Intrepid,我发现 RightAlt
+ F1
不会带我到 tty13。
我已经详尽地尝试了 dpkg-reconfigure console-setup
中提供给我的每个选项,到目前为止,我能够管理的最好的方法是让两个 Alt
键的行为相同( LeftAlt
+ F1
和 RightAlt
+ F1
都进入 tty1)。
请注意,使用 GNU screen
不被视为对该问题的有效回答——这专门关于如何让键盘在 Ubuntu 下与多个控制台一起正常工作。疯狂的是,我尝试过的所有其他发行版都正确处理了这个问题,包括 Debian Lenny。
最佳答案
在尝试了很多方法来解决这个问题后,我终于想出了如何使用 dumpkeys
和 loadkeys
来修改内核的“键盘翻译表”。以下是用于将 RightAlt
+ F1
到 RightAlt
+ F12
设置为它们各自相对于 tty12 的偏移量的 loadkeys
字符串:
altgr keycode 59 = Console_13
altgr keycode 60 = Console_14
altgr keycode 61 = Console_15
altgr keycode 62 = Console_16
altgr keycode 63 = Console_17
altgr keycode 64 = Console_18
altgr keycode 65 = Console_19
altgr keycode 66 = Console_20
altgr keycode 67 = Console_21
altgr keycode 68 = Console_22
altgr keycode 87 = Console_23
altgr keycode 88 = Console_24
为什么 Ubuntu 没有在默认设置中包含这个仍然是个谜。 🙂
次佳答案
在大多数系统上,如果您在文本控制台上,您可以使用 Alt + 箭头键移动到下一个和上一个控制台。
第三种答案
在 Debian 中,我只会编辑 /etc/inittab
,但 Ubuntu 使用 Upstart。
显然,在您的情况下,您应该编辑 /etc/default/console-setup
并将 ACTIVE_CONSOLES
变量设置为 /dev/tty[1-13]
。
在更改此之前, Right-Alt
+ Ctrl
+ F1
会将我带到 tty1
。现在,我只是得到一个空白屏幕,我无法在上面做任何事情。我还必须手动将文件 /etc/event.d/tty1
复制到 /etc/event.d/tty13
并适当地更改里面的设置。
我似乎无法让它工作。
耸耸肩
第四种答案
有一个名为 chvt 的好程序可以将您带到另一个虚拟控制台。 (例如,’sudo chvt 1′ 会立即将我从 X 中弹出。)这有点令人讨厌,因为 X 驱动程序并不总是喜欢 vt-switching。另一方面,当 X 陷入困境时,它不止一次地救了我。您可能还想查看一个名为 “open” 的程序,它会打开一个新的虚拟终端。
…但是,如果您的问题确实是您想要更多终端,那么我真正建议您查看 screen 。它做各种漂亮的事情。就像能够 ssh 进入并连接到您在本地工作的同一会话,我认为是 “multiplayer”..(嗯,您可以从多个前端连接到同一个(后端)会话。)它踢屁股。我每天在工作中都使用它,我在其中一个无政府状态的 dev-servers 上进行了非常 long-running 的会话。
至于您实际报告的问题,嗯..嗯..您的键盘配置如何?它是否适用于更多 ‘popular’ 键盘映射?
第五种答案
你在跑X吗?如果是这样,请检查您的 Gnome 或 KDE 键盘快捷键,以确保它没有绑定到其他东西。
如果您不使用 X,那么为什么不使用 “screen” 进行控制台/shell 管理呢?这是一个比依赖 Linux 的多个控制台更优雅的解决方案。人屏
第六种答案
大多数情况下,虚拟控制台 tty8 到 tty63 是未使用和未分配的。它们上没有运行任何应用程序,也没有分配给任何按键。但是,您仍然可以在其上打开应用程序,如 my older answers 之一所述:
-
让您的用户成为该控制台的所有者:
sudo chown "$USER":tty /dev/tty13
-
运行
openvt -c 13 -l
或openvt -c 13 -s "bash"
-
如果您返回 TTY1 或任何其他已分配键盘快捷键的 tty,并想返回已打开的 TTY13,请使用
sudo chvt 13
(如果我没记错的话 – 如果您已添加到tty
组你不应该需要sudo
)。
如果您将自己添加到 tty
组,您可以稍后跳过步骤 #1,并将步骤 #2 中的命令分配为键盘快捷键
另请注意,问题正文中指示的正确组合是 Ctrl
+ Alt
+ F1
而不是 Left Alt
+ F1
。对于 Virtual Box 中的虚拟机,情况略有不同 – 它是 Left Ctrl
+ F1
。