可以通过按 ++(其中代表 、 等)来更改虚拟控制台(或Ctrl虚拟终端,VT )Alt。此外,当不运行时,可以按和 箭头键循环显示 VT(减少和增加虚拟终端)。FnFnF1F2X
AltAlt←Alt→
但是,如果X
在其中一个 VT 上运行,则通常不会设置箭头键绑定,并且必须返回到Ctrl+ Alt+Fn才能更改为另一个 VT。
我通常更喜欢使用箭头绑定来更改 VT。为了避免必须在键绑定之间切换(++Ctrl表示带有 VT 的 VT ;箭头表示不带 VT 的 VT),可以绑定到什么命令来减少/增加 中的 VT ?AltFnX
Alt←/→X
如果答案取决于系统,我正在运行 debian 并使用 dwm 和 openbox 作为窗口管理器。
答案1
我只能告诉你一个肮脏的解决方法。使用xbindkeys并添加到~/.xbindkeysrc
:
"sudo chvt $(($XDG_VTNR-1))"
alt + c:113
"sudo chvt $(($XDG_VTNR+1))"
alt + c:114
如果您没有 XDG_VTNR 变量,则必须对上一个/下一个 vt 进行硬编码。
你还必须让自己陷入/etc/sudoers
:
USER ALL=NOPASSWD:/bin/chvt
答案2
当您从 VT 切换到 X11 并返回时,保持不变的一件事是“低级”通用 Linux 输入设备处理子系统。 C 中有例子Linux USB 输入子系统和第2部分在 Linux 杂志上。您的系统可能有一个Python库python-evdev包使这变得更容易。
要尝试什么是可能的,evtest
可以用于简单地将事件转储到给定输入设备上,并且您可以使用脚本awk
或类似脚本来跟踪您感兴趣的按键的状态,并让它发出chvt
命令。
答案3
如果您处于 XLATE 模式,则可以使用 Alt+箭头键。如果没有,您可以使用以下命令激活它神奇的 sysrq 键:当 X 锁定时,内核中的逃生舱口。
首先,确保它已打开:
cat /proc/sys/kernel/sysrq
输出是一个数字,如果它是 1,或者设置了位掩码 0x4,则可以切换到 XLATE:x == 1 || x & 0x4
。来源
如果两者都不成立,您可以以 root 身份更改该数字:
echo 1 > /proc/sys/kernel/sysrq
在 Arch Linux 上我也可以这样做:
sysctl kernel.sysrq=1
最后,按Alt+SysRq+R
或运行以下命令:
echo r > /proc/sysrq-trigger
您现在处于 XLATE 模式 - 您很幸运地拥有方便的按键绑定,直到您重新启动!对于可能的副作用,看到这个。
有人请告诉我是否可以永久打开此功能。