ubuntu 16 下 telegram 如何更换中文字体

2017-11-11 12:22:50 +08:00
 livc
默认的 tg 中文字体丑的一笔啊。。根本不能看,找到了一片文章: https://milkice.me/2017/05/ubuntu-telegram-cjk-font-optimization/ 但是按照这样禁用两个字体后,字体还是没有变化
6474 次点击
所在节点    Linux
9 条回复
ysc3839
2017-11-11 18:15:38 +08:00
和 Windows 版同样的思路,Hook 字体相关的 API,然后换成自己的字体。
不过我不懂 Linux 开发,帮不了你……
ysc3839
2017-11-11 18:40:03 +08:00
去搜索了一下,Qt 在 Linux 下可能用的是 FreeType。所以可以考虑 Hook FreeType,不过前提是动态加载 FreeType 的 so,静态编译进去的话就没办法了。
还可考虑 Hook fopen?
livc
2017-11-11 19:54:58 +08:00
@ysc3839 #2 尽量不想重新编译它。。。
ysc3839
2017-11-11 22:05:40 +08:00
ysc3839
2017-11-11 22:33:39 +08:00
#4 的方案不能确定是否有效。
在 FT_New_Face 下断点,手动修改字体文件名,发现字体是会变的,所以可以使用 Hook 的方案。
ysc3839
2017-11-11 23:10:46 +08:00
搜了一下,Linux 下要 Hook 函数比 Windows 简单得多,直接设置 LD_PRELOAD 环境变量就可以了。
https://blog.netspi.com/function-hooking-part-i-hooking-shared-library-function-calls-in-linux/

找时间写一个试试吧。
ysc3839
2017-11-12 01:42:25 +08:00
iwtbauh
2017-11-12 08:52:07 +08:00
以前我在 Ubuntu 上用过 tg,发现原因是 tg 静态连接的字体配置库版本太旧,无法与系统的配置文件兼容导致的
解决方法:重新编译 tg,取消静态连接 //tg 客户端应该是开源的吧
milkice
2017-11-14 22:02:15 +08:00
有两个方案,一个是我的禁用字体,还有一个是 meto 的调整字体优先级 ( https://i-meto.com/telegram-ibus/),若干个月前在 Ubuntu 16.04 上测试通过,不过之前也有人报告过两个方案均不可行 现在等楼上 @ysc3839 出 Linux 版的字体劫持 或者把思源黑体塞入 tg 编译之 后这也是我一开始想尝试的方案不过不知道什么原因似乎失败了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/405515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX