我很喜欢在 Android 上按住某个键约 100 毫秒,即可在其“下方”显示标点符号键(否则可在菜单中找到),我希望 Ubuntu 也能有同样的功能。我不需要重复字符,这样就不会错过任何东西。这可能吗?如果可以,怎么做?谢谢 :)
答案1
目前没有快捷方便在 Ubuntu 桌面版上启用此类功能的方法。
就我个人而言,我非常喜欢默认撰写快捷键;我发现它们比移动端的长按选择更快、更直观 (♥)。话虽如此,如果你有时间和决心,你也许可以借助慢键默认核心通用访问应用程序中的选项来构建类似于移动选项的东西。
我自己也在其中探索,星火似乎与慢速键控制有关。您可以使用 XKB 来配置和增强 Ubuntu 的键盘绑定,据我所知,本节有您需要的东西。因此,当长按某个键时,打印替代字符应该不是那么(相对)困难。
事情变得复杂的地方在于分配多种的将特殊字符添加到按键中(例如:按住“a”可获得 ä、à、á、â 等选项)。如何循环选择这些选项?您是否让字符在对话窗口中弹出,然后使用鼠标、Tab 或箭头键选择一个?似乎很耗时。
或者,您可以为不同的字符分配不同的按住时间长度。100 毫秒按住 à,200 毫秒按住 á,300 毫秒按住 â... 但记住每个字符需要多少秒可能会很棘手,更不用说单独分配所有字符会很麻烦。此外,当您进入更长的字符列表时,您可能需要坐在那里按住一个键长达 3-4 秒。似乎更耗时。
除了慢键,您还可以尝试重复键选项改为多次点击一个键来输入一个特殊字符:例如,三次点击“a”来输入 à。但是,当你输入“good”或“eerie”或“aaaaaaahhh!”等任何内容时,你就冒着弹出不需要的特殊字符的风险了!
你可能已经想出了其他更有效的实现方法,而我没有想到,在这种情况下,请继续进行修改!但与此同时,我仍然建议使用组合键。☺
答案2
我确信这可以通过修改键盘中断服务例程 (ISR) 来实现。每当按下一个键时,就会向 CPU 发送一个中断信号。然后 CPU 将通过运行键盘 ISR 来处理该中断。
ISR 是低级程序,通常用汇编语言编写,因为它们直接与硬件打交道并且必须速度快。这里有关英特尔处理器硬件中断及其使用方法的更多信息。
自从最初的 IBM-PC 时代以来,键盘就有了自己的处理器,只要按住任意键,键盘就可以非常快速地生成字符。
这里有几个定义可能会有用:
重复延迟:按下按键和开始重复之间的时间间隔。
重复率:按下某个键后,键盘会重复该键。重复的速度就是重复率。有时也称为打字率。
必须修改键盘 ISR 例程,以将重复延迟功能替换为“替代字符”功能。按键和释放按键的时间是其本质。通过测量按键的持续时间,ISR(或中断处理程序)将知道传递替代字符(“下方”的键)的正常字符
本质上,你将修改或重写设备驱动用于键盘。
这只是我认为需要实现您想要的方法的高级视图。
答案3
由于触摸板的功能类似于 Android 中的触摸屏,因此它将提供比键盘更好的界面。事实上,可以实现一整套新例程,通过同时移动拇指和食指来缩放,通过反向来缩小。
触摸板已经可以感知单指、双指,甚至是手掌在触摸板上意外移动,因此会被忽略。加速和减速速度都可以识别。它已经可以控制鼠标指针,以便长按突出显示文本。
select
对于程序员来说,添加一些额外的代码来测量触摸按压长度并调出、、copy
等上下文相关菜单应该是小菜一碟,paste
就像今天的智能手机一样。
我认为你的问题是一个好主意,可以将内置触摸板的软件和键盘提升到一个全新的水平。我应该指出,一些内置在键盘中的触摸板有一个彩色液晶屏,这可以让你的想法更进一步。也就是说,突出显示的屏幕文本可以镜像到触摸板液晶屏上并放大以进行精细移动。
Apple、Google、Microsoft 和 Linus 都可能会对你的想法感到兴奋。这确实激起了我的兴趣!