从实际的控制台(例如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”字符串。