Fbterm

出自 ArchWiki

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 用户启用键盘快捷键,请使用 setcapfbterm 提供 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 用户的这种高级用法的一些示例

背景图片

要使用背景图片,可以将 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"