era*_*878 9 shortcut-keys tty 12.04 key-binding
我想更改默认快捷方式来来回切换到 tty。默认情况下它是 ctrl + alt + F#。我曾尝试使用 Ubuntu 的键盘设置制作自定义快捷方式,但它仅在我切换回 tty 时使用图形界面时才有效。所以我需要弄清楚如何更改 ctrl + alt + F# 快捷键的默认绑定,以便在两个 TTY 之间来回切换单键。
gre*_*een 11
您可以使用bind
将键绑定到某个函数。这是我所做的:
bind '"\ea": ". ~/newScript.sh\n" '
Run Code Online (Sandbox Code Playgroud)
这newScript.sh
是更改 tty 的文件,这\ea
意味着无论何时Alt+A
按下,脚本都会执行。
内容为newScript.sh
:
#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想永久存储键绑定,您可以将它们存储在您的 `~/.inputrc' 文件中。有关更多信息,您可以访问此链接:http : //www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375
更新: 您可以将该bind
行存储在您的~/.bashrc
文件中,这样您就不必再次这样做了。
有一个命令chvt
。
chvt
命令代表更改虚拟终端。它需要一个选项,它是一个数字,告诉它要切换到的虚拟终端。
例如,如果您在第一个虚拟终端登录,并且想切换到 xserver 通常显示 GUI 的第 7 个,则运行chvt
如下:
chvt 7
Run Code Online (Sandbox Code Playgroud)
并返回到第一个虚拟终端,键入:
chvt 1
Run Code Online (Sandbox Code Playgroud)
所以你需要做的就是将该命令添加到 7 个快捷方式中,然后你就可以切换了。
编辑:傻我!只需查看文件 /etc/console-setup/remap.inc
您将在该文件中找到所需的一切。在任何情况下,解释如下。
不幸的是,“绑定”仅适用于 shell 会话。
您需要做的是更改控制台映射。您可以使用程序“loadkeys”(man loadkeys)来做到这一点。首先,转储当前的映射以查看文件的格式应该是什么样的:
dumpkeys > default_keys.txt
Run Code Online (Sandbox Code Playgroud)
请注意,您需要从文本控制台而不是 X 执行此操作,因此请先按 Ctrl-Alt-F1 切换到一个!
这是该文件中的示例行:
alt keycode 59 = Console_1
Run Code Online (Sandbox Code Playgroud)
这意味着生成代码 59 的键,按下修饰符“alt”(在该文件的其他地方定义)将生成“Console_1”事件——切换到虚拟控制台 1。
如何找出哪个键生成哪个代码?为此使用程序 showkey。我启动程序并按“F1”:
komp $ showkey
keycode 59 press
keycode 59 release
Run Code Online (Sandbox Code Playgroud)
退出这个程序的唯一方法是闭上你的眼睛,思考开源的本质十秒钟。或者只是为了避免触摸键盘十秒钟,也可以。使用此方法找出需要更改键映射的键映射文件中的哪一行。
假设您想使用“ctrl 1”切换到控制台 1。您会发现 1 的键码是 2。 将以下行保存到名为“myownkeys.txt”的文件中:
control keycode 2 = Console_1
Run Code Online (Sandbox Code Playgroud)
切换到文本控制台(如果您还没有这样做)并运行
sudo loadkeys myownkeys.txt
Run Code Online (Sandbox Code Playgroud)
Presto,Ctrl-1 现在应该将您移动到控制台 1。为您的快捷方式在文件中添加更多行。如果你想让它永久,你可以[编辑]修改文件/etc/console-setup/remap.inc
顺便说一句,除了 Console_n 之外,您还有“Decr_console”和“Incr_Console”——分别切换到左侧的控制台和右侧的控制台。默认情况下,它们绑定到 alt-left 和 alt-right。