.. _fbterm: ================================= FbTerm - 支持UTF-8中文的字符终端 ================================= 我在 :ref:`pi_400` 上使用 :ref:`raspberry_pi_os` ,由于硬件性能有限,并且想尝试古早的终端感觉(用最低的硬件实现最大的性能),所以尝试在完全终端的环境下工作。这就需要实现基本的在终端下输入中文和显示中文能力。默认tty终端只能显示一个字节字符,不支持UTF-8,所以只能显示英文。 `FbTerm终端软件 `_ 提供了采用系统 ``framebuffer`` 的终端模拟器,最关键的是,它支持UTF-8字符集,也就是能够实现CJK字符显示。这对在终端环境实现中文输入是男的的支持。假如你是系统轻量级极致追求者,甚至想获得古早Unix字符终端体验,你可以尝试使用这个软件,实现在字符终端(无X.org)平台上实现中文输入。 根据资料 :ref:`fcitx` 可以在FbTerm上使用。 安装 ======= - :ref:`raspberry_pi_os` 发行版内置 ``fbterm`` 软件包可直接安装:: sudo apt install fbterm 启动framebuffer ================= 为了实现较好的字符终端体验,建议使用 framebuffer 设备 - 创建 ``/etc/udev/my-rules.d/framebuffer.rules`` :: KERNEL=="fb0", OWNER="huatai", MODE="0640" 这样用户 ``huatai`` 就能够使用 ``fb0`` (framebuffer设备) 另一种方式是将 ``huatai`` 用户假如 ``video`` 组:: sudo gpasswd -a huatai video .. note:: 如果用户没有framebuffer设备权限,可能会提示错误:: can't open buffer frame device! mmap /dev/zero: Operation not permitted Using VESA requires root privilege - 设置允许使用系统快捷键资源:: sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm 或者使用以下命令:: sudo chmod u+s /usr/bin/fbterm .. note:: 如果没有允许使用系统快捷键资源,启动 ``fbterm`` 会提示错误:: [input] can't change kernel keymap table, all shortcuts will NOT work! - 默认启动时会自动生成 ``~/.fbtermrc`` ,通过修订该文件可以定制一些功能,例如字体大小和快捷键,我们需要修改输入法 ``input-method`` :: input-method=fcitx-fbterm 设置tty登陆后自动运行FbTerm =============================== 每次登陆 ``tty`` 要输入 ``fbterm`` 显然很麻烦,可以在环境变量中设置成自动执行: - 修改 ``~/.bashrc`` 添加:: if [ “$TERM” = “linux” ] ; then fbterm fi 安装fcitx输入法 ================= 最新的 ``fcitx5`` 没有提供 ``fbterm`` 支持,所以还是安装版本 ``fcitx-fbterm`` :: sudo apt install fcitx fcitx-fbterm 这里安装会自动依赖安装 ``fcitx-pinyin`` ``fcitx-table-wubi`` ``fcitx-googlepinyin`` 等 .. note:: 旧版本 ``fcitx`` 只需要 85MB 空间,比 ``fcitx5`` 动辄244MB安装空间要小很多 - 配置 ``~/.xinitrc`` 或 ``~/.bashrc`` 或者标准环境配置文件 ``/etc/environment`` 添加: .. literalinclude:: fcitx/environment :language: bash :caption: fcitx环境变量 参考 ======= - `FbTerm: Better terminal windows when you don’t have X `_ - `樹莓派 (Raspberry Pi) tty 以 Fbterm 和 fcitx 輸入中文 `_