openKylin虚拟键盘2.0升级上线!
为解决Linux系统上好用虚拟键盘输入法缺少问题,openKylin社区InputMethod SIG和fcitx社区进行密切合作,于2022年底首次实现了fcitx5 dev版对虚拟键盘的支持,解决了fcitx5输入法框架不能支持虚拟键盘输入的问题,使得基于fcitx5开发虚拟键盘输入法成为可能!
在此基础上,openKylin社区InputMethod SIG成功开发了支持fcitx5虚拟键盘接口的openKylin虚拟键盘1.0版本,使得openKylin成为首个基于fcitx5输入法框架提供虚拟键盘输入法的操作系统,实现从0到1的突破!现在,经过InputMethod SIG几个月的努力,openKylin虚拟键盘2.0版本全新升级上线。
为提高虚拟键盘的易用性和可用性,openKylin虚拟键盘2.0除了具有较好的兼容性、支持常见的英文输入法和拼音输入法引擎,还增加了以下功能特性:
01虚拟键盘悬浮模式
在1.0版本中,虚拟键盘只支持平铺模式。经过与社区爱好者的讨论发现,在该模式下,虚拟键盘显示后会顶起应用程序,给用户造成不便。
为解决这个问题,openKylin虚拟键盘引入新的布置模式:悬浮模式。并且,openKylin虚拟键盘UI提供了布置模式切换按钮,方便用户根据需要选择自己喜欢的布置模式。
在悬浮模式下,虚拟键盘显示后不再顶起应用程序,而是直接显示在应用程序的上面。同时,该模式支持自由拖拽、位置记忆以及等比例屏幕旋转等功能。
自由拖拽
为方便用户查看被虚拟键盘挡住的内容,用户可以按住虚拟键盘拖拽条自由拖拽虚拟键盘从而改变虚拟键盘的位置。用户在拖拽虚拟键盘的时候可以随意改变虚拟键盘的位置,就像拖动普通窗口一样——虚拟键盘会跟随鼠标位置的变换进而改变自身的位置,确保虚拟键盘始终跟随鼠标。
与普通窗口不同的是,在用户停止拖拽后,虚拟键盘会检测自身是否完全可见。如果不是完全可见,则虚拟键盘会自动调整自身的位置,使得虚拟键盘的边缘跟屏幕边缘对齐,确保虚拟键盘完全可见,以便用户进行输入。如果是完全可见,则虚拟键盘会在用户停止拖拽后直接停留在当前位置。
位置记忆
openKylin虚拟键盘2.0版本会实时记录其在悬浮模式下的位置。当虚拟键盘关闭后重新显示时,会显示到上一次显示的位置。
屏幕旋转
openKylin虚拟键盘2.0支持屏幕旋转。在虚拟键盘可见时,如果发生屏幕旋转,则虚拟键盘也会自动旋转,确保虚拟键盘在新的屏幕方向下有一个合理的位置。
具体的旋转算法就是等比例旋转。悬浮模式下的虚拟键盘无论是横屏还是竖屏,其左边距占左边距与右边距之和的比例是一样的;其上边距占上边距与下边距之和的比例是一样的。这种算法使得屏幕旋转后虚拟键盘的新位置符合用户的直觉。
如果用户在某一个屏幕方向显示了虚拟键盘然后又关闭虚拟键盘,接着旋转屏幕方向90度,然后唤醒虚拟键盘。这时候,虚拟键盘的新位置仍然使用的是等比例旋转算法。这就使得虚拟键盘对屏幕旋转的支持得到了简化。
02多种虚拟键盘唤醒方式
虚拟键盘托盘图标
为解决某些应用程序无法自动唤醒虚拟键盘的问题,PC模式下的任务栏中虚拟键盘图标增加了对鼠标左键或触摸单击事件的处理逻辑。如果虚拟键盘不可见,则单击虚拟键盘图标后虚拟键盘显示;如果虚拟键盘可见,则单击虚拟键盘图标后虚拟键盘隐藏。
悬浮球
为解决某些应用程序无法自动唤醒虚拟键盘的问题,需要为平板模式提供其他的虚拟键盘唤醒入口,为此,我们提供了悬浮球。尽管悬浮球主要是为了解决平板模式下的问题,但是,PC模式也是支持该功能的。其中,为提高虚拟键盘易用性,悬浮球功能默认是启用的
03托盘图标右键菜单管理功能
管理悬浮球的可用性
为了能让用户根据自己的实际情况决定是否常驻显示悬浮球,减小视觉干扰,我们提供了改变悬浮球可用性的入口。用户可根据自己的喜好来改变悬浮球的可用性,即通过鼠标右键或触摸长按虚拟键盘托盘图标可唤醒右键菜单,右键菜单项提供了管理悬浮球可用性的入口,用户可以通过右键菜单项来启用或禁用悬浮球。
04全功能虚拟键盘
支持快捷键
1.0版本的虚拟键盘不支持很多常见的物理键盘快捷键,无法通过虚拟键盘使用这些快捷键。针对此问题,InputMethod SIG拓展了虚拟键盘的功能。2.0版本的虚拟键盘进化为全功能虚拟键盘,提供同物理键盘一致的使用效果,用户可通过虚拟键盘使用多种常用的快捷键。
openKylin上输入法未来支持计划
1.物理键盘输入法相关
- 自研openKylin物理键盘输入法
2.虚拟键盘输入法相关
- 虚拟键盘支持少数民族语言
- 虚拟键盘支持功能设置
加入InputMethod Sig
openKylin社区InputMethod SIG组是由一群热爱开源技术的爱好者所组成,致力于为开源操作系统开发高质量的输入法,并在开源社区中积极推广和分享相关技术。欢迎广大开源爱好者积极参与进来,为开源输入法的发展和完善贡献自己的力量。同时,SIG小组也将不断探索和尝试新的技术,为用户提供更加便捷、高效的输入体验。
- 邮件列表:
- input-method@lists.openkylin.top
- SIG主页:
- https://gitee.com/openkylin/community/tree/master/sig/InputMethod