阅读:8084回复:10

未来的Linux将没有第三方输入法?

楼主#
更多 发布于:2017-08-02 18:39
flatpak是挺热门的技术,它提供了一个通用的包格式,把应用放在一个沙箱中运行,大家明白了吧,像不像android的apk?
但对输入法来说,问题就大了,在android上,输入法是一个单独的进程,它和普通应用的进程之间通过标准的接口连接到一块,所以不存在什么问题。
但是,问题来了,Linux上的输入法有标准的输入法接口吗,答案很明显,没有。如果曾经有过,那么是XIM,但是QT5已经抛弃了对XIM的支持,新的Wayland的出现,也让XIM成为明日黄花。Wayland上当前的输入法支持就是一垃圾,基本不可用,也没有应用或者应用框架支持它。
当前的Linux上的输入法基本上都需要自己实现Gtk输入法模块,QT输入法模块,XIM支持。而在flatpak的世界中前两者都是不可行的,因为flatpak这东西运行会基于一个叫做运行时的东西,比如Gnome运行时,也就是flatpak应用运行时不会调用系统的gtk库,调用的是这个gnome运行时里面的gtk,这样就不会调用第三方输入法的模块,这时第三方输入法自然就不可用了。
解决方法就两个,要么在运行时中打包输入法模块,要么应用打包时把输入法模块也打包进去,但这两者对第三方输入法来说都是不可能的。就算是发行版打算进行调整,也基本不可能,因为运行时是所有发行版通用的,由flatpak的人制作,而不是发行版自己提供(自己提供也行,但第三方应用可不会用你的运行时,就失去了使用flatpak打包的意义)。
当然沙箱技术也会造成很大的影响,应用和系统之间的通信接口是应用打包时就规定好的,第三方应用可不会对每个非标准的输入法接口作出处理。

深度打算把包管理系统切换到flatpak,不是很清楚他们打算怎么处理输入法的问题,很可能是提供自己定制的运行时,打包上他们系统内的输入法模块,但是第三方输入法还是没有什么解决办法。
沙发#
发布于:2017-08-03 15:02
https://github.com/flatpak/flatpak/issues/675
这些人只是讨论了对ibus的支持,对其他输入法的支持没戏
板凳#
发布于:2017-08-08 17:46
fangling:这应该的深度官方的回复吧回到原帖
runtime运行时中不打包模块,输入法作者能怎么办,总不能输入法开发人员打包个运行时给你操作系统用吧
flatpak都沙箱了,输入法开发者能解决通信问题才怪了,那是flatpak技术的严重bug
游客

返回顶部