更改默认TTY快捷方式


8

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



“单键在两个TTY之间来回切换”是什么意思?
ish 2012年

@jacob有点,但可能不完全是:)
Rinzwind

啊,是的,我明白了,这是请求一个可以切换的键,而不是一组不同的键。
2012年

Answers:


10

您可以使用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文件中,这样就不必再次执行该操作。


请注意,如果您未登录或未运行bash,则此方法将无效。无论您是否登录,使用remap.inc的解决方案(请参阅下面的答案)都可以使用。
2013年

7

有一个命令chvt

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

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

chvt 7

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

chvt 1

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


1
当您在例如tty1中按下键时,该如何处理?
约翰·格鲁伯

@john:绑定它。green7已经解释了这一点。
Rinzwind

5

编辑:愚蠢的我!只需查看文件/etc/console-setup/remap.inc

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

不幸的是,“绑定”仅适用于shell会话。

您需要做的就是更改控制台映射。您可以使用程序“ loadkeys”(man loadkeys)来实现。首先,转储当前映射以查看文件格式如下:

dumpkeys > default_keys.txt

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

这是该文件中的示例行:

alt keycode  59 = Console_1

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

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

komp $ showkey
keycode  59 press
keycode  59 release

退出此程序的唯一方法是闭上双眼,思考开放源代码的本质,持续10秒钟。或者只是避免触摸键盘十秒钟,效果也不错。使用此方法可以找出需要更改键映射的键映射文件中的哪一行。

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

control keycode 2 = Console_1

切换到文本控制台(如果尚未完成)并运行

sudo loadkeys myownkeys.txt

Presto,Ctrl-1现在应该将您移至控制台1。在文件中添加更多行作为快捷方式。如果要使其永久不变,可以[编辑]修改文件/etc/console-setup/remap.inc

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.