2

TSF 输入法与亮堂的生活小记

 11 months ago
source link: https://fanlumaster.github.io/2023/10/14/TSF-%E8%BE%93%E5%85%A5%E6%B3%95%E4%B8%8E%E4%BA%AE%E5%A0%82%E7%9A%84%E7%94%9F%E6%B4%BB%E5%B0%8F%E8%AE%B0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

TSF 输入法与亮堂的生活小记

TSF 输入法与亮堂的生活小记 _

2023-10-14 00:24 - 2023-10-14 01:31

2.4k 字

21 分钟

先截取(bending)一下当前的桌面,

xZ4Ti3q.png

Xi7TqeW.png

咳嗽依旧是咳得有些厉害,但应该也到了这个周期的末期,而且深圳这个气候,应该不致有延期的风险。

输入法这个东西,我真正捡起来其实就是在这一周,更严格一点,是国庆假日回来。国庆的时候,我一直在研究 dwmapi,真正可以使窗口完全透明,完全可绘制。透明窗口,就是借助这个来实现,而所谓的异形窗口,也是可以借助这个来实现,虽然不是非常纯粹的异形窗口,但是效果比微软老旧的 api 所支持的那种裁剪的异形窗口要好很多倍,以及,现在微软自己的输入法,也就是 windows 系统目前自带的微软输入法,细心的同志可以观察到,它其实是一个异形窗口,因为从某种程度上来看,它实在是太精致了,过去的 windows api 无论如何也是达不到这种层次的,而想要实现这种效果,非 directx 家族的绘制 api 不可,至于 gdi 和 gdip 这两个旧时代的宰相,无疑是该告老还乡了。

还有谁像我这般对输入法的研究有着如此的热情呢?我可以对别人说,我研究这个是为了名声,为了钱,那不过是为了安他们的心,让他们觉得,从世俗意义上来讲,我是可以满足他们的期望的,我是可以成功的。深深地审视我自己的内心,我们远东地区难道就不能有一款开源的极致的输入法,什么汉语、吴语、粤语、藏语、蒙语、全拼、双拼、粤拼、新注音、五笔、仓颉、呒虾米、日语、汉语、越南语、泰语、韩语,不过是按键的映射与响应的问题,有那么复杂吗?

有人说,开发输入法其实一直在和妥协进行搏斗。从我的经验来看,确实是这样的。各式各样的妥协,层出不穷,现有的微软的目前已公开的材料寥寥无几,有很多文档甚至年久失修,github 上面开源的项目甚至不用分页就可以在一个页面排布完。在这种情况下,我原本在做我的本科毕业设计时,这里多说一点背景,我目前的学习当然是本科,以及,我本科毕业设计选择的题目是 Windows 平台下的中文输入法的开发与优化,当时的副院长在开题的时候说,你这个题目,30 年前研究研究差不多,现在都是什么年代了,都是云输入法,你还去搞这个本地,你和人家搜狗比有什么优势?我那时还处于技术调研的阶段,心中的底气实在不足,然而,我也并不会就此认可他的观点,虽然我不会说陈胜那样什么燕雀安知鸿鹄之志的浑话,我能反驳的,却是早已立下了根基,不容动摇。搜狗的输入法我不比你要更清晰,王小川他什么德行?一个输入法,扯什么不要小瞧,是获取用户信息的窗口,究竟窃尽了多少用户的隐私?一个 dll 文件,最多两个,就能解决的问题,你后台给我开了多少个 exe 偷偷跑?再去扯什么云输入,那,敢不敢把云输入的接口和数据给公开出来,这时候,又要扯商业隐私了是吗?其他商业驱动的输入法多是蛇鼠一窝,不议也罢。输入法和汉字是紧密相连的,汉字在我们心中是什么地位,汉字在我们东亚是什么地位?堂堂汉字,这是多么神圣的一种符号,岂容你们这些肮脏的东西来亵渎?一群混账东西,为了钱就能够无所不用其极,祖宗之法,圣人之训,都成了什么了?但是呢,读者千万不要误会,我对副院长是没有偏见的,我现在越回想,就越觉得,副院长的评价,以及他平时的作为,实在也是一碗水堪堪不洒出碗口平面。学院若说真能有可以担得起沉稳这二字的,却是非其莫属了。在其位而谋其政。那时,我该反驳的,当然还是反驳了,以现在的角度看来,我依旧觉得该作同样的反驳。现在有了基于 windows hook 开发的输入法的成品在手,有编译运行成功的 TSF 输入法在手,底气自然是大大地增加了。我也依然认为,道理和底气有时候关联并不是很大。对就是对。我的角度的对,就是我的角度的对。

扯远了。我又重新回到输入法的研究,是我在着手开发一个基于 Windows hook 的键盘可视化工具。在国庆期间,打球之余,在家里面把绘图的相关内容给研究得差不多了,就想着该启动开发进程了。哪知,windows hook 忘掉了,只好回去咀嚼我的那个基于 windows hook 的中文输入法,使用最新的桌面绘制技术,把原来的界面改造了一下,

改造前

改造后

改造后

改造之后,又被勾回曾经的那个无法解决的 caret 的问题。于是乎,又想到之前搜寻的开源的项目,PIME,微软的 TSF Demo,小狼毫,Dime,还有一些韩语输入法,还有一些日文的项目,甚至又看了一下 pcman 的博客,当然啦,没有重看它在香港的开源集会上的视频。

也想起之前找的一些稀稀落落的博客,以及,终于搞清 TSF 捕捉 caret 的方法。但是,仍然不会用。上面的项目也几乎都无法让我这个现在已经习惯 neovide 和 clangd 和 cmake 进行开发 side project 的用户正常地运转起来,于是乎,再抽时间看,本来说好要好好更新我的那个基于 hook 的输入法的,也确确实实就搁置了,虽说,剩下的问题基本就是一些体力性的劳动和一些小灵感的触发。加上最近喜欢上了录制视频分享我的学习所得,我的 study in public level 更进一层,于是,去探索 TSF 的欲望愈加强烈,此消彼长,起起伏伏之下,终于与今日(昨日)下班前的两分钟,解决掉了这个问题,基于 TSF 的输入法,这个我亲自编译和注册的输入法,终于运行成功。看似是一小步,其实可能已经奠定了我接下来两年的开发的基调。

所以,我们不妨吹一吹牛,总有一天会实现的,不是吗,尤其是对于我们这种乐高(coding)人士来说。

世界焕然变色,刷上的新色调,当然是亮堂的色调。

与 Lr 同游世界之窗旁边的 The Happy Valley,后面还去 Apple Store 逛了一圈,她充电,我也给我的 Apple 知识储备充充电,毕竟,终有一天,我也会为 MacOS 定制一款输入法的,不是吗?

最后再小小的提一点,苹果的信徒或是 Linux 的信徒或者 Windows 的信徒,如果死死地信守一个信仰,其人可悲可笑可怜之至极矣。有很多其他的情形也是类似。相比,一些多愁善感之人见到此番,必要"撒"上几滴叹怜的惺惺泪吧。

生活总是亮堂的,不是吗?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK