逐步解决方案

逐步解决方案

我正在寻找一种在 Linux 虚拟控制台上进行交换Esc的方法。Caps Lock

在 X11 中,我可以使用 来执行此操作setxkbmap -option caps:swapescape,但我不知道文本模式下的等效项。那么,我能做什么呢?

答案1

首先你需要安装“console-data”

sudo apt-get install console-data

现在使用“sudo showkey”查找 ESC 和 CapsLock 键的键码

sudo showkey

我的 ESC 按键代码是“1”,Caps Lock 按键代码是“58”

现在您需要在主目录中创建一个 .keystrings 文件

vim ~/.keystrings

在该文件中,您将交换 Caps Lock 和 ESC ex 的键码。因为 Caps Lock 键等于 58,然后我将其设置为 1

keycode 1 = Caps_Lock
keycode 58 = Escape

现在保存并关闭 .keystrings 文件,然后在 TTY 中运行以下命令

sudo loadkeys .keystrings 

现在应该交换 Caps Lock 和 Escape 键

答案2

对于基于 Debian 的系统,该过程非常简单。查找该行XKBOPTIONS=并将/etc/default/keyboard其更改为

XKBOPTIONS="caps:swapescape"

当然,需要 root 访问权限。别担心,尽管控制台应该有“X”,Esc并且Caps Lock在重新启动后会反转。

man keyboard以与 X/控制台无关的方式更改控制台 (tty) 和 X 上的键盘布局/映射?了解更多信息。

答案3

逐步解决方案

X11

以下命令设置X11键盘正确(de 是我的键盘布局):

localectl --no-convert set-x11-keymap de "" "" caps:swapescape

终端

终端键盘可以配置如下:

  1. 将正确的键盘布局文件复制到自定义目录:

cp /usr/share/kbd/keymaps/i386/qwertz/de-latin1.map.gz /usr/local/share/kbd/keymaps

(您必须根据您使用的键盘布局更改该命令)

  1. 更改复制文件中每次出现的EscapetoCaps_Lock和每次出现的Caps_Lockto并将其重命名为类似的名称Escapede-latin1-custom.map.gz

  2. 编辑该/etc/vconsole.conf文件,使其看起来像这样:

KEYMAP="/usr/local/share/kbd/keymaps/de-latin1-custom.map.gz"

重新启动系统后,键盘应正确配置X11并为终端

相关内容