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