今天主要是下载代码,编译,及配置
以前用过 XTerm, 后来改用 Gnome-Terminal
今天去找找 wayland 环境下的 termianl, 发现foot这个项目 挺有意思的
C 写的代码性能就是好,效果也是很不错的
![]() |
1
kuanat 7 天前 ![]() 我用了四五年了,作者 dnkl 的其他项目也都很优秀。
我感觉作者对于很多底层技术了解非常透彻,随便列举一下 foot 的优秀之处: - 基于作者自己开发的 fcft 做文字渲染,fcft 的代码也非常值得一看,简单、可靠 - 基于 damage tracking 的渲染架构,速度和很多基于 gpu 实时渲染的不相上下 - 正确实现控制序列,支持 kitty keyboard 协议,主要是用于正确传递键盘事件,比如 gui->vte->multiplexer->app ,另外就是支持 OSC52 远程复制之类的指令,做 shell 交互集成 - 正确实现 wayland 分数缩放协议,text-input-v3 输入法协议 上面随便拿出来一条能做好了都非常难得。 另外还有一些可能不属于技术,但符合我技术审美的选择: - ini 风格的配置文件 - server/client 架构的 daemon 模式 - 自带自身的 bash/zsh/fish 补全 - 很少见做对了 alpha blending (虽然方式是基于 hsl 转换) PS 关于 alpha blending 解释: 这个过程几乎无处不在,但是由于历史遗留问题,加上又是基础组件中的实现,所以直到今天都存在大量且普遍的错误实现。 由于人眼对于暗部比亮部更敏感的特性,sRGB 之类的色彩空间是经过 gamma 矫正的,更多的编码精度留给了暗部。所以对 sRGB 来说,数值翻倍不代表亮度翻倍。所谓 alpha blending 就是模拟真实世界中光线混合,在一个背景色上显示一个前景色文字的过程,需要先将 gamma 矫正过的 sRGB 还原为线性空间,两种颜色在线性空间中混合之后,重新映射回 sRGB 空间来渲染。 如果 vte 或者其他任何应用不能正确处理 alpha blending 很容易出现混合区域变暗的情况,这一点在字符光栅化抗锯齿方面提现很明显。对于 vte 类应用可以观察一下在各种配色主题下的表现。 |
2
WorseIsBetter 5 天前
自从三年前将自己的 PC 桌面由 Xorg 全面切换到 Wayland 之后(主要就是 i3 -> sway 和 xterm -> foot ),就一直用到了现在。
除了楼上大佬提到的优点之外,当时还有一个很吸引我的地方就是 sixel 支持(曾经对我来说是一个很重要的需求)。翻提交记录,会发现作者花了不少精力去优化 sixel 渲染的性能。 另外,foot 的设计哲学和代码实现也非常符合我的审美,是为数不多能让我感受到「阅读并修改别人的代码是一种享受而不是修行」的项目。 同时,作者对于社区贡献的响应也比较积极。我给 foot (还有作者的一些其他项目)提交过一些 bugfix 和 feature patch ,都很快得到了 review 并最终合并。 |