Fbterm
Fbterm (Frame buffer terminal emulator) 是 Linux 内核终端的独立替代品,可以在图形环境之外运行。它以前托管在 Google Code,https://code.google.com/archive/p/fbterm/,自 2020 年起由 Debian 维护。
它支持 fontconfig(并使用 freetype2 绘制文本,与 Qt/Gtk 等 GUI 应用程序相同),最多支持 10 个窗口,每个窗口都有滚动回溯历史记录,自动检测当前区域设置的文本编码,支持中日韩等双字节字符,更多信息请参阅 https://salsa.debian.org/debian/fbterm/-/blob/master/README。
安装
安装 fbtermAUR 包。请注意说明和附带补丁的微小更改。
安装后,为了让非 root 用户能够使用 fbterm,请将自己添加到 video 用户组。
要为非 root 用户启用键盘快捷键,请使用 setcap 为 fbterm 授予 cap_sys_tty_config 能力。
# setcap cap_sys_tty_config+ep /usr/bin/fbterm
自定义
配置文件
用户配置文件位于 $XDG_CONFIG_HOME/fbterm/fbtermrc。全局 /etc/fbterm/fbtermrc.example 文件注释良好,是一个不错的起点。
字体
Fbterm 使用 fontconfig 来获取字体列表,并按顺序尝试,直到能够渲染字符。
要更改使用的字体,请使用 --font-names 选项从 fc-list 提供的列表中选择您喜欢的字体。
输入法支持
Fbterm 通过充当独立输入法框架服务器的客户端来支持多种 输入法。有几种这样的程序可用,请参阅 国际化#输入法。
技巧与提示
作为非图形化环境
在 2010 年代后期,Linux 生态系统及其帧缓冲能力的发展,以及廉价而强大的硬件(标准主流显卡),使得过去难以实现的事情成为可能,而且无需太多定制或 hack。
- 支持 256 种颜色方案
- 显示 CJK 网页和文档
- 访问更多种类的 TTF 字体
除了现代帧缓冲功能外,例如
- 使用 mpv 观看电影(例如,使用
--vo=gpu) - 使用(例如:fbgrab, fbdump)截屏和录屏
- 使用(例如:fbpdf, jfbview, fbgs)显示 PDF 和其他复杂文档
- 在 ranger 文件管理器中预览图片(支持 w3mimgdisplay)
- 运行一些重型的 GUI QT Platform 应用程序(例如:qutebrowser, maps)
Fbterm 与其他现代以文本为中心的工具相结合,可以构建一个没有窗口概念的环境。fbterm 与终端复用器(如 tmux)的组合使用,可以提供一个非常强大的桌面替代方案,模拟窗口管理器的使用。一些来自 Arch 用户的这种高级用法的示例:
- https://github.com/xlucn/dotfiles - 类似于 dwm 的桌面,搭配 fbterm 和 tmux 的示例
- https://github.com/xlucn/fbterm - 一些补丁示例
- https://github.com/ivanp7/sweet-home - 自定义壁纸,与 tmux 和 fbi 一起使用
背景图片
要使用背景图片,可以在启动时将 Fbterm 设置为截取帧缓冲设备屏幕截图。
man 页中推荐以下脚本(使用 fbvAUR 图片查看器):
#!/bin/bash # fbterm-bi: a wrapper script to enable background image with fbterm # usage: fbterm-bi /path/to/image fbterm-options echo -ne "\e[?25l" # hide cursor fbv -ciuker "$1" << EOF q EOF shift export FBTERM_BACKGROUND_IMAGE=1 exec /bin/fbterm "$@"
白色字体颜色
默认情况下,即使使用 -f 7 开关,fbterm 也会将“白色”文本显示为灰色。您可以通过在 fbterm 中执行一次 echo 来获得真正的白色,如下所示:
echo -en "\e]P7ffffff"