Debian 中的键盘映射在哪里?(使用 loadkeys 更改键盘映射。)

Debian 中的键盘映射在哪里?(使用 loadkeys 更改键盘映射。)

从实际的控制台(例如Ctrl- Alt- F3),我想使用sudo loadkeys dvorak 就像在 ubuntu 中一样。虽然这在 Ubuntu 中会自动运行,但 Debian 要求我找到一个键盘映射文件。我没有有时/usr/share/keymaps会给出答案的。 find / -type f -name '*dvorak*'会出现一些loadkeys无法使用的文件。例如另一个答案不要想要使用 对我的系统进行永久更改console-config。我想编写可以动态更改键盘映射的简单脚本。

有没有我可以安装的软件包或者别的什么?

因为我最终想交换 Caps-Lock 和 Escape,所以我应该制作我自己的自定义键盘映射,无论如何,对吗?

答案1

1)确保console-data包已安装:

# loadkeys dvorak
Loading /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ dpkg --search /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz
console-data: /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ cat /etc/debian_version 
wheezy/sid

2)恕我直言,是的,这dumpkeys > test.keymap && edit test.keymap && loadkeys test是最简单的。

答案2

这是来自我个人毒药柜的脚本,我用它来永久地将 CAPSLOCK 变成 Debian 上的附加 CTRL。它应该提供足够的提示,以便您可以进一步自行调整。

假设到目前为止使用的是“us”kbd 布局,新的键盘布局在这里将被称为“sjas”。

一句话:

apt install console-data -y; TMP=$(loadkeys us | awk {'print $2'}); TMP2=$(dirname $TMP)/sjas.kmap.gz; cp -vaf $TMP $TMP2; gzip -d $TMP2; TMP3=${TMP2%%.gz}; sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode  58 = Control/' $TMP3; gzip -c $TMP3 > $TMP2; rm $TMP3; sed -i 's/"us"/"sjas"/g' /etc/default/keyboard

不在一行中,因此可以更容易阅读:

apt install console-data -y
TMP=$(loadkeys us | awk {'print $2'})
TMP2=$(dirname $TMP)/sjas.kmap.gz
cp -vaf $TMP $TMP2
gzip -d $TMP2
TMP3=${TMP2%%.gz}
sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode  58 = Control/' $TMP3
gzip -c $TMP3 > $TMP2
rm $TMP3
sed -i 's/"us"/"sjas"/g' /etc/default/keyboard

用当前布局的不同之处和您想要如何调用新布局来替换“sjas”和“us”字符串。

相关内容