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 软件包。请注意包含的补丁中的说明和细微更改。
安装后,要使 fbterm 能够以非 root 用户身份使用,请将您自己添加到 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 平台应用程序(例如:qutebrowser,maps)
Fbterm 与其他现代以文本为中心的工具相结合,创造了一个没有窗口概念的环境。Fbterm 与终端复用器(如 tmux)的组合使用,可以实现非常强大的桌面替代方案,模仿窗口管理器的使用。来自 Arch 用户的这种高级用法的一些示例
- https://github.com/xlucn/dotfiles - 使用 fbterm 和 tmux 的类似 dwm 桌面的示例
- 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 "$@"
白色字体颜色
默认情况下,fbterm 将“白色”文本显示为灰色,即使使用 -f 7
开关也是如此。可以通过在 fbterm 中执行一次 echo 来获得真正的白色,就像这样
echo -en "\e]P7ffffff"