更改默认 TTY 快捷方式

更改默认 TTY 快捷方式

我想更改默认快捷键以在 tty 之间来回切换。默认情况下,它是 ctrl + alt + F#。我尝试使用 Ubuntu 的键盘设置创建自定义快捷键,但它仅在使用图形界面时有效,当我切换回 tty 时它不起作用。所以我需要弄清楚如何更改 ctrl + alt + F# 快捷键的默认绑定,以使单个键在两个 TTY 之间来回切换。

答案1

你可以使用bind将某个键绑定到某个功能。以下是我所做的:

bind '"\ea": ". ~/newScript.sh\n" '

newScript.sh是改变 tty 的文件,\ea意味着只要Alt+A按下,脚本就会执行。

其内容newScript.sh为:

#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum

请注意,如果您想永久存储键绑定,您可以将其存储在“~/.inputrc”文件中。有关更多信息,您可以访问此链接:http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

更新: 您可以将这bind条线存储在您的~/.bashrc文件中,这样您就不必再重复做这件事了。

答案2

有一个命令可以实现这一点chvt

chvt命令代表 CHange Virtual Terminal。它接受一个选项,该选项是一个数字,用于告诉它要切换到的虚拟终端。

例如,如果你在第一个虚拟终端登录,并且想要切换到 xserver 通常显示 GUI 的第 7 个虚拟终端,则运行chvt以下命令:

chvt 7

要返回第一个虚拟终端,请输入:

chvt 1

因此您需要做的就是将该命令添加到 7 个快捷方式,然后就可以切换。

答案3

编辑:我真傻!只需查看文件 /etc/console-setup/remap.inc

您将在该文件中找到所需的一切。无论如何,下面给出了解释。

不幸的是,“bind”只在 shell 会话中起作用。

您需要做的是更改控制台映射。您可以使用程序“loadkeys”(man loadkeys)来执行此操作。首先,转储当前映射以查看文件的格式应该是什么样的:

dumpkeys > default_keys.txt

请注意,您需要从文本控制台而不是 X 执行此操作,因此请先按 Ctrl-Alt-F1 切换到文本控制台!

以下是该文件的一个示例行:

alt keycode  59 = Console_1

这意味着生成代码 59 的键,与修饰符“alt”(在该文件的其他位置定义)一起按下,将生成“Console_1”事件 - 切换到虚拟控制台 1。

如何找出哪个键生成哪个代码?使用 showkey 程序。我启动该程序并按“F1”:

komp $ showkey
keycode  59 press
keycode  59 release

退出此程序的唯一方法是闭上眼睛,思考开源的本质十秒钟。或者只是十秒钟不碰键盘,这也行得通。使用此方法找出键盘映射文件中需要更改键映射的行。

假设您想使用“ctrl 1”切换到控制台 1。您会发现 1 的键码是 2。将以下行保存到名为“myownkeys.txt”的文件中:

control keycode 2 = Console_1

切换到文本控制台(如果你还没有这样做)并运行

sudo loadkeys myownkeys.txt

瞧,Ctrl-1 应该会将您转到控制台 1。在您的文件中添加更多行作为快捷方式。如果您想使其永久生效,您可以 [编辑] 修改文件 /etc/console-setup/remap.inc

顺便说一句,除了 Console_n 之外,您还有“Decr_console”和“Incr_Console”——分别切换到左侧控制台和右侧控制台。默认情况下,它们绑定到 alt-left 和 alt-right。

相关内容