fcitx5 依赖 boost 和 KDE, 探讨继续使用 fcitx4 的可行性

哪怕 GNOME 桌面环境没有死掉,只要 GTK 过度地跟 GNOME 捆绑,我相信也会有人无法忍受而去 fork GTK 的。别说 GTK, 甚至 GLib 都有可能会去 fork 的。因为 GLib 也是 GNOME 的那班人在弄. GLib/GTK 这套东西已经广泛应用就很难死掉,会有人接手的,而 GNOME 桌面环境死掉就未必有人接手。

不啊,他们都转 Qt 了……Wireshark 早转了,fcitx 配置工具也转了,fontforge 在考虑,Chromium 已经开始了。

1赞

我很好奇你所用的设备究竟老到何种地步,以至于几兆的软件都要。。。。。。。

另外 Debian 的 GNOME 默认安装 fcitx5,难道你还要另行安装 fcitx4 或 ibus 吗?而不是把 Debian 安装好后就开箱即用了?还要另行安装?还有 openSUSE 默认情况下两个输入法框架都安装,两个声音服务器还有一大推可能你一辈子都用不到的软件和服务,那个都不比 fcitx5 大?难道你把 openSUSE 安装后都要把它们统统卸载?

显然不是硬件落后的问题,只是追求简洁的心态而已。越复杂臃肿的软件出了问题越难查找,自己修改编译也越麻烦。

补充一点相关信息。

评论区里竟然有个 khtml is coming home at last :grinning: 真是漫长的奥德赛啊

希望 Firefox 也跟进一下, 以及那些还在依赖 xul 的软件也跟进一下~

1赞

我希望火狐别跟进,因为 Qt 的字体渲染问题 - 依云's Blog (虽然火狐有很多地方是自己处理字体的,但这样换 qt 的话就更奇怪了)。

另外跟进之后,Wayland 下的菜单位置、输入法支持都会有问题。

原来如此, 我确实不知道有这个问题。谢谢~

这是我对此贴的回应。

https://www.csslayer.info/wordpress/fcitx-dev/对fcitx5-依赖-boost-和-kde-探讨继续使用-fcitx4-的可行性的回应/

4赞

针对 Fcitx 的当前的开发者(以下简称为 “作者”)在上面提供的博客链接,我简单回复一下。

作者认为 “核心部分,反而比以前要精简得多。” 光有个核心能用吗?就好比光给一个 Linux Kernel, 能用来当作日常使用的系统吗?然后假设 Linus Torvalds 也模仿 Fcitx 的作者说:“Linux 是一套高度模块化的项目,你可以自行修改,将其打造成只有几 KB 的小内核”,有意义吗?

作者统计了一下 GTK 和 QT 两套库各自占用的磁盘空间,结果前者比后者少占了三分之一的空间,这难道不是很大的差距吗?一个体重 140 斤的人跟另一个 210 斤的人相比,难道没有明显的差距?另外作者的统计方法完全是 “先设立场,再强行论证”。统计 GTK 的时侯全部计入,而统计 QT 的时侯只选择一小部分。比如 libQt5WaylandClient.so.5 和 libQt5WaylandCompositor.so.5 都没有统计进去。更关键的,作者统计的时侯将 Pango, GLib 和 Cairo 这些非 GTK 部分也计入 GKT, 要知道 QT 也依赖那些库!虽然 Pango 和 GLib 也是 GNOME 基金会的项目,跟 GTK/GNOME 有一定的联系,但两者早就是通用的项目了,属于在 Linux GUI 环境下几乎不可避免的基础库。至于 Cairo, 是独立项目,也是被广泛依赖的基础库,并不附属于 GTK/GNOME. 总之,作者为了强化自己的喜好,不顾事实。

至于作者所提到的关于依赖库的大小以及所占的磁盘空间都不大的问题,当今时代没哪个人缺那一点内存和磁盘空间。如果我不需要定制修改,多依赖一点库也不碍事。但如果要自行修改再编译,立刻会意识到依赖多了,复杂度迅速上升。当然这只是我这种喜欢定制的小众人群的喜好,我根本没有将自己的意愿强加给其他人。我当然知道作者说的 “用纯 C 写代码会有多么痛苦”,作者喜欢 C++, 喜欢 Boost 和 KDE, 那完全是作者的权利。请问作者从哪里看出我试图在改变作者?我只是在这里探讨一下是否有其他人跟我一样,更喜欢 fcitx4. 但完全没有攻击 fcitx5 的用户和作者。

至于作者说的:“你想复活 fcitx-config-gtk 我也没有意见,但是请不要指望我去写,因为没有那个时间精力。” 既然是自由软件,作者就无权禁止他人修改定制,因此你说的 “没有意见” 没有任何意义。并且还是上面说的,我从来没有指望他人会帮我去写。我在主贴里说的是 “是否有其他人提供过补丁”,然后如果有的话,我也想顺带拿来用。

我说的是 “远离了初心”,而不是忘了初心。我没用过 4.0 之前的 Fcitx, 但了解过其发展史,知道它早期是一个简单的输入法,而不是大型平台。当然不管我了解到的是否正确,作者都有权根据自身喜好来确定软件的发展方向。作者真的没必要为了我的一个讨论帖子而发一篇长博客,歪曲事实来反驳,我这里显示:“我们已经有一段时间没有看到 csslayer 了 — 他/她上次发帖是 5 年前。” 我从来没有将自身的意愿强加给他人,更没强加给作者。如果有,麻烦指出是哪句话。

如果你哪怕了解一些那几个库是干什么的,就不会说出要把 libQt5WaylandCompositor.so.5 也给包含进去这种话。更别提 Pango Cairo 根本就不是 Qt Widgets 部分的依赖,属实是多说多错。

有兴趣自己在自己的系统上运行一下这个命令

$ ldd /usr/bin/fcitx5-config-qt | grep cairo

我提及的这些库我都曾经做过贡献修过 bug 读过代码,一拍脑袋就说一些明显错误的话就不要还继续说了。

今天攻击性稍微强了一点多少是带了点个人恩怨,事实上大部分在 Linux 桌面里追求所谓「轻量」的都不知道自己要的是什么,往往还会得出错误的结论。

我直说的话就是我看这种观点非常不爽。

在 Fcitx 不断引入新的依赖作为界面的时候它都是为了解决非常具体的问题。在 3.6 时代如果还有印象的话,时常会遇见汉字变成方块的问题,这正是因为采用的和文本绘制相关的库没有字体 fallback 的功能,如果还坚持用 3.6 时代的方式绘制界面的话,到今天常见的带有彩色的颜文字字体更是根本显示不出来。

4.0 之前的时代甚至连配置界面都没有,如果站在你今天标题的话对那个时代做一个比较的话

「fcitx4 依赖 gtk,探讨继续使用 fcitx3 的可能性」

不觉得可笑吗。

fcitx3 在我接手之前甚至是采用 gbk 作为数据的存储方式,改成 utf8 固然支持了更大的字符集,但你要从反面说大部分汉字从两个字节变成了 3 个字节,难道不是一种倒退?但不采用 unicode 作为基础,今天就连拼音所谓的输入一些生僻字都无法实现,更遑论输入 emoji 字符了。

盲目追求轻量,占用更少资源,代码更少,不了解背后每个变化的原因,以一个臆想的标准来判断项目的变化,只能贻笑大方。

6赞

我本来只是为了探讨一个问题,却变成了你对我的攻击。那么我也就不那么友善了,抱歉。

你水平高,我们都不如你,这点我不否认。比如你说到的 libQt5WaylandCompositor.so.5 不能算进去,那么我承认我不清楚 libQt5WaylandCompositor.so.5 究竟是否属于 QT GUI 系统的必备库。就将它去掉怎样?你能否认 QT 比 GTK 大得多的事实吗?我在上面说:“一个体重 140 斤的人跟另一个 210 斤的人相比,难道没有明显的差距?”,你正面回应了没有?刚刚查了一下, QT 好像确实不依赖 Pango 和 Cairo, 但你能否认 GLib, Cairo 和 Pango 已经是 Linux GUI 环境下的基础库吗?或者说,由于 GLib, Cairo 和 Pango 被广泛使用,遇到了问题更容易在网上找到解决方案。

当然对于你这类顶级高手来说,再冷门的问题都能自己解决。但我的水平有限,许多问题在网上找不到解决方法就自己解决不了,所以尽量用人气高的的库。但不管怎样,我不将自己的价值观强加给别人。还是上面说的,你从哪句话判断我要求你按照我的意愿来决定 Fcitx 的发展方向?我甚至根本没预期你会看到这个帖子!任何人都有他的个性和喜好,有人喜欢轻量,有人喜欢功能繁多。至于个人喜欢什么,那是他的权利。

建议你修改 Fcitx 的 License, 开头加上醒目的语句:禁止对本软件发表非歌颂赞美的评论,否则请不要使用本软件。看看用这种歧视性条款,还有哪个发行版会继续接受你的高档软件?

MultiMC 和 osu! 了解一下。

swap 已经用掉了 4G+ 的系统表示不服。

并没有。换 C++ 了之后编译时间倒是提升不少,但 fcitx4 大量使用宏,看到符号却怎么也找不到定义也是头疼。

更容易找到 bug 报告罢了……

这么说的话,Qt 是 Linux 上必备的 GUI 库也没毛病啊,我看了一下,除了 GNOME 桌面带的几个 GTK 软件,其它的都是基于 Qt 或者电子垃圾。

楼主想表达的意思很明确,就是 “Fcitx 5 依赖 KDE 和 Boost” 不好,Fcitx 的开发者也回应了,依赖的组件都是为了解决具体问题,不想要依赖 KDE 的组件自己做一个 gtk 配置前端就行了。那这贴其实已经没什么好讨论的了。

2赞

满大街都是 Qt 那几个库的说。

我是单纯的讨厌 gnome,就像讨厌 windows 的自动更新一样,总是强迫我按照他的逻辑使用计算机。可这是我的电脑。 :grinning:
可能像 KDE 也在强迫我,但是至少我还有一些自由。

在 2020 年,许多重要发行版都删除了 QT4. 但到了今天,同时代的 GTK2 依然存活。如果对于 GTK 和 QT 在 Linux GUI 环境哪个更核心依然存在争议的话,那么对于 Pango, Cairo 和 GLib 的核心地位应该没有异议了吧?当然对于 GTK 和 QT 哪个更好,那是一种价值判断,就像 VIM 和 Emacs 哪个更好一样,属于没有标准答案的争议。但对于哪个库更加基础、地位更加核心,那是事实判断。

当然你由于自己喜欢 QT, 不喜欢 GTK 就继续坚持认为 QT 的核心地位跟 Cairo 等同,甚至和 GLib 等同,甚至超过 glibc 的地位,那我就沉默吧。

gtk2 我早删了啊。倒是 gtk3 删不动,因为 gtk4 的变化也超级大。

确实,因为几乎没有人会没事干来论坛上争论哪个 Toolkit 更 “核心”,那是闭源环境的思维,何况到底是不是因为 GTK 越改越屎导致发行版不得不保留对旧版 GTK 的兼容还说不准呢

之前我说 Pango, Cairo 和 Glib 属于 Linux GUI 环境下的基础库,然后你将 QT 等同进来。接着我用事实反驳你: QT 的重要性不能跟那些库相比。

你心虚自知理亏却要嘴硬,转移话题说什么 “闭源环境的思维”. GTK 越来越差只能说明将来可能不行,但目前它就是重要的 GUI 库。如果不重要,各大发行版早就将 GTK2 删掉了,也不会继续使用基于 GTK 的 GNOME 作为缺省桌面。

我也没说 Qt 的重要性能和那些库比,况且 Qt 也用 Glib 啊,我实在不明白你是怎么得出这个结论的,你是不是看岔了?

而且主题里也只是提到 “fcitx5 依赖 boost 和 KDE”,fcitx 的开发者都已经回应完毕了,你还有什么问题的话可以继续追问 fcitx 开发者,这和谁是核心的问题并没有关系。