在 Ubuntu 18.04 中,键盘运行良好。我选择了“西班牙语(西班牙)”或“加泰罗尼亚语(西班牙,带点的 L)”,每个键都很好用。甚至小于号和大于号符号也是如此,对于这台笔记本电脑来说,这些键位于空格键和 ALT-GR 键之间。
但是,从零开始安装(不更新)Ubuntu 19.04后,小于号和大于号不起作用。当我按下它们时,它们会显示ç和Ç符号。
我一直在寻找但没有找到任何有用的东西。
如果有人能帮忙,那就太好了!没有这些符号就无法编码真是太糟糕了 :(
答案1
解决方法
从您提供的输出来看,两个物理键都具有相同的键代码,因此更改每个键的键符号将产生相同的键符号。
这是我按下任意物理键 < 或 ç 时得到的输出
$ xev | grep keycode
state 0x2000, keycode 51 (keysym 0xe7, ccedilla), same_screen YES,
state 0x2000, keycode 51 (keysym 0xe7, ccedilla), same_screen YES,
$ xev | grep keycode
state 0x2000, keycode 51 (keysym 0xe7, ccedilla), same_screen YES,
state 0x2000, keycode 51 (keysym 0xe7, ccedilla), same_screen YES,
因此,我们需要为任意物理按键分配不同的键码<,或者ç
因此,请确定首先要更改哪个物理键的键码。
运行
xmodmap -pke
并选择任何空的密钥代码
例子:
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth NoSymbol XF86Bluetooth
keycode 246 = XF86WLAN NoSymbol XF86WLAN NoSymbol XF86WLAN
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 =
keycode 252 =
keycode 253 =
keycode 254 = XF86WWAN NoSymbol XF86WWAN NoSymbol XF86WWAN
keycode 255 = XF86RFKill NoSymbol XF86RFKill NoSymbol XF86RFKill
我将在这里选择 248。现在的诀窍是从 xmodmap 键码中减去 8,即setkeycodes
248-8=240
参考man setkeycodes
和https://unix.stackexchange.com/a/52949
- 登录到任何 tty 并运行,
showkey --scancodes
按下键并获取扫描代码。在我的情况下它是 0x2b,但仅供2b
考虑。
參閱man showkey
运行
sudo setkeycodes 2b 240
这意味着当我们运行 xmodmap 时,我们选择的物理键显示键码为 248从 tty 切换到桌面
检查xev | grep keycode
并按下物理按键。
例子:
pratap@pratap:~$ xev | grep keycode
state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
request MappingKeyboard, first_keycode 8, count 248
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
pratap@pratap:~$ xmodmap -e "keycode 248 = ccedilla Ccedilla"
pratap@pratap:~$ çççççççççççççç
- 现在两个物理键都有不同的键码,你可以将其映射到你想要的任何键符。比如说键码 51 和键码 248
运行以下命令:
xmodmap -e "keycode 51 = less greater"
xmodmap -e "keycode 248 = ccedilla Ccedilla"
- 重新启动后,所有更改都不会保留。因此,您可以在启动应用程序首选项中保留 xmodmap 命令,然后按照提供的链接操作https://unix.stackexchange.com/a/52949用于
setkeycodes
命令。
注意:在 Ubuntu 19.04 中进行了测试,但没有使用问题中的键盘类型。