我在这里提出并回答我自己的问题,以防它对其他人有用,因为我花了很长时间才想出一个解决方案!
我有一个 Sun Microsystems Type 7 键盘,右侧有一组 11 个额外的键,我希望能够对它们进行编程以在 kubuntu 中执行一些有用的操作。但是,当系统设置等待按键进行编程时,大多数按键在我按下时都没有任何反应。例外是剪切、复制和粘贴:这三个我可以分配 Ctrl+X、Ctrl+C 和 Ctrl+C,它们通常在应用程序中工作(并且,当我在系统设置中按下它们时,正确的键名是 even显示)。
那么如何让其他特殊键被识别呢?
首先,我注意到系统设置/输入设备/键盘/键盘型号中列出了各种 Sun 键盘。所以我选择了我的 Type 7,采用英国布局。然后我使用
xev
并注意到当我按下任何特殊键时,它们会被识别并显示一个键码、正确的名称和一个键符。还浏览了各种 X11 键盘文件,很明显 Sun 键盘支持肯定应该存在,至少在 X 中是这样。经过一番折腾,最后我
xmodmap
将高编号的功能键值分配给了特殊键。我将命令放在我调用的脚本文件中sunkeys
,其中包含:(我一会儿就来睡觉。)
功能键 F13 到 F23 不在键盘上,但在 X 系统中,kubuntu 系统设置知道它们,当按下它们时,它允许为它们分配东西。该
setxkbmap
行将右 AltGraph 键重新编程为右控制键。但是,尽管
sunkeys
从命令行运行对密钥进行了编程,但是当我将文件放在文件sunkeys
末尾~/.profile
时,重新启动时密钥没有被编程。事实证明,由于某种原因,在运行之前需要延迟xmodmap
,因此sleep
上面脚本中的业务。所以在我的 ~/.profile 文件的末尾,我现在有了这一行这使得 sunkeys 脚本在执行
xmodmap
命令之前休眠 15 秒。行&
尾的告诉 shell 在睡眠sunkeys
时继续引导。sunkeys
如果没有&
,您在登录时输入密码,然后系统似乎会挂起 15 秒。我现在拥有所有额外的键来执行明显有用的功能。我将 Ctrl+S(= 在大多数应用程序中保存)分配给大帮助键。并且 Ctrl++ 和 Ctrl+- 用于进入和退出不明显的 Front 和 Props 键,因为它们彼此相邻。
作为奖励, Compose 键实际上做了它应该做的事情,没有进一步的改变:输入
café
I typec
a
f
Compose
e
'
。更新:我做了一个从 kubuntu 20.04 USB 记忆棒启动的快速测试,系统设置似乎看到了大多数特殊键,并正确显示了它们的名称,但 Front 和 Props 除外。所以当我最终升级时,我仍然会使用这种技术。