按住修改键


23

我爱上了能够在Android上按住键约100毫秒以在其下(在菜单中找到)标点符号键的方式(在菜单中找到了),并且我很想为Ubuntu提供相同的功能。我不需要重复字符,因此我不会丢失任何东西。这可能吗?如果可以,怎么办?谢谢 :)


已经很晚了,但是您能否详细说明您想为Ubuntu实现的功能?
哈西特(Harshit)

1
@Harshit,请确保:使用Android上的Google键盘,可以选择按住-oft键盘上的键以键入标点符号的功能,而不必转到单独的菜单。理想情况下,可以将其实现为Ubuntu中的一个选项,即按住100ms的'2'键键入'@',按住'-'类型键入'_,依此类推。
帕特里克

Answers:


3

当前,没有任何快捷简便的方法可在桌面版Ubuntu上启用这种功能。

我个人非常喜欢默认的组合键快捷方式 ; 与移动式长按选择(♥)相比,我发现它们更快,更直观。就是说,如果您有时间和决心,可以在默认的核心Universal Access应用程序中piggy带slowkeys选项,以构建类似于移动选项的东西。

在我本人的周围,XKB似乎与慢键控制相关。您可以使用XKB来配置和增强Ubuntu的键盘绑定,据我所知,此部分满足您的需求。因此,长按键时,要打印替代字符并不(相对)困难。

使事情变得复杂的地方是为击键分配多个特殊字符(例如:按住“ a”并获得ä,à,á,â等的选项)。您如何循环选择?您是否在对话窗口中弹出了字符,然后使用鼠标,Tab或箭头键选择了一个?似乎很耗时。

或者,您可以为不同的字符分配不同的保留长度。100ms等于à,200ms等于á,300ms等于…。但是记住要花几秒钟才能使角色变得棘手,更不用说单独分配所有角色了。另外,当您进入较长的字符列表时,您可能会坐在那里并按住键3-4秒钟。似乎更加耗时。

您可以尝试使用repeatkeys选项而不是键,以使多次敲击一个键可以提供一个特殊字符:例如,三个“ a”敲击à。但是,当您键入“ good”,“ eerie”或“ aaaaaaahhh”之类的字词时,便冒冒出不需要的特殊字符的风险!

您可能已经想出了我没有想到的其他更有效的实现方法,在这种情况下,请进行修改!但同时,我仍然建议组合键。☺


1
查看您的链接,然后可以将每个键设置为标点的修饰键,但要稍加延迟,这正是我要的!稍后,我将不得不尝试对此进行修改。
Patrick

0

我确信可以通过修改键盘中断服务程序(ISR)来做到这一点。每当按下键时,就会向CPU发送中断信号。然后,CPU将通过运行键盘ISR服务该中断。

ISR是低级程序,通常使用汇编语言进行编码,因为它们直接处理硬件,并且必须快速。这里是有关英特尔处理器上的硬件中断以及如何使用它们的更多信息。

从最初的IBM-PC时代起,键盘就拥有自己的处理器,如果按住任意键,键盘可以非常快速地生成字符。

这里有几个定义可能有用:

重复延迟:从按下按键到开始重复播放之间的时间。

重复频率:按某个键后,键盘将重复该键。重复的速度就是重复率。有时称为打字率。

必须修改键盘ISR例程,以将“重复延迟”功能替换为“替代字符”功能。按键的时间和释放是关键。通过测量按键的持续时间,ISR(或中断处理程序)将知道传递替代字符的正常字符(“在其下方”的键)

本质上,您将修改或重写键盘的设备驱动程序

这只是我认为实现所需目标所需的方法的高级视图。


0

由于触摸板的功能类似于Android中的触摸屏,因此它将提供比键盘更好的界面。实际上,可以实现一套全新的例程,以通过将拇指和食指一起移动来缩放,并可以通过反转方向来进行缩放。

触摸板已经可以感觉到单指,两指,甚至手掌不小心碰到触摸板并因此被忽略。识别加速和减速速度。它已经控制着您要长按突出显示的文本的鼠标指针。

它应该是小菜一碟了程序员的代码的额外位添加到测量触摸压制长度,带来了一个上下文相关菜单selectcopypaste,等像智能手机今天所做的。

我认为您的问题是一个好主意,可以将带有内置触摸板的软件和键盘发展到一个全新的水平。我应该指出,某些内置在键盘中的触摸板具有彩色LCD屏幕,可以使您的想法更进一步。也就是说,突出显示的屏幕文本可以镜像到触摸板LCD并放大以进行精细移动。

苹果,谷歌,微软和Linus都可能对您的想法感到兴奋。这肯定激起了我的兴趣!


我会感到讽刺吗,还是这是真的?
阿米特黄金

我认为这是个好主意。将智能手机的一些优点带回桌面。
WinEunuuchs2Unix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.