SDB:Fbterm

跳转至: 导航, 搜索
fbterm 是一个基于帧缓冲设备或 VESA 视频卡的 Linux 终端模拟器。它是用于 Runlevel 3 控制台也即无 X11 环境的纯终端,也就是说,和 Bash,Zsh 不同,它不能在 konsole 或 gnome-terminal 里面跑。它是目前可用的最强中文控制台。

特性

  • 启用了加速滚动后,和 Linux 内核终端的速度一样,也即作为一个模拟器,它能和 Runlevel 3 默认终端一样快。
  • 使用 fontconfig 配置字体,freetype2 渲染,与基于 Qt/Gtk+ 的图形应用一样
  • 可以动态的创建/销毁多达 10 个窗口
  • 可记录每个窗口的滚动历史
  • 自动检测当前语言的文本编码,支持中日韩双字节脚本。
  • 可动态使用快捷键切换预配置的额外文本编码
  • 与 gpm 服务器配合可跨窗口复制粘贴文本
  • 支持屏幕转向
  • 支持服务器-客户端结构的输入法
  • 支持背景图片

安装

目前官方源尚未提供软件包,所以如果要简便安装请在 openSUSE 构建服务 上搜索 fbterm 。注意,构建服务上的包一般没有加入 gpm 鼠标支持。所以假如您执迷于在终端也能用鼠标的话,那么您只能在 fbterm 项目在 google code 上的网站 处获得源代码并参照网站说明进行编译安装。

设置

启动

如果您在启动 fbterm 时发现没有权限,那么请检查您是否在 video 组。您可以通过以下命令来加入 video 组:

sudo gpasswd -a 您的用户名 video 

字体

配置在 /home/您的用户名/.fbtermrc

首先注意,konsole/gnome-terminal 等 X11 环境的终端模拟器的字体拿到 fbterm 中百分之百会走形。因此一些很漂亮的比如 consolas,monaco,andale 等都很丑。你可以在 .fbtermrc 中自己试验。原因是 fbterm 使用 fontconfig 挑字体,freetype 渲染,但是 freetype 中依赖 libxft 的部分它作为一个终端无法使用

中文字型测试过文泉驿微米黑、正黑、点阵宋和 unibit,都不行。其中点阵宋显示很清晰,但是宽度太大,其他完全就不清晰。微软、苹果家的字体都是要求 freetype 渲染的,就不要想了。我摸索出的最佳字体配置如下:

font-names=DejaVu Sans Mono,Droid Sans Fallback
font-size=14

编码

text-encodings=UTF-8

也在 .fbtermrc 中配置。

键盘快捷键

启动提示:

[input] can't change kernel keymap table, all shortcuts will NOT work,  see SECURITY NOTES section of man page for solution.

原因:fbterm 需要设置内核键盘映射表来设定快捷键。这就需要 fbterm 是一个 setuid 0 的程序(不然普通用户还是设置不了快捷键因为没权限操作内核)。fbterm 也只在设置快捷键时会自动转为 root。因此安全上是可以放心的。

解决:

sudo chmod u+s /usr/bin/fbterm

背景图片

安装 home:MargueriteSu 源的 fbv 软件,把下面脚本保存成 cfbterm

           #!/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 "这里是你的图片的完整路径" << EOF
           q
           EOF

           shift
           export FBTERM_BACKGROUND_IMAGE=1
           exec fbterm "$@"

然后:

sudo cp -r cfbterm /usr/bin

以后每次都用 cfbterm 命令启动控制台。图片支持 png/jpeg/jpg/bmp 格式,建议用 png,jpeg 的颜色渐变在终端下显示很丑。

输入法

安装 fcitx-fbterm。然后在 /home/marguerite/.fbtermrc 的最后:

input-method=fcitx-fbterm

网上有说 fcitx 和 fbterm 的进终端自动启动,但那个不支持背景图片。如果你不需要背景图片,可以把:

 # If you do console login, it will start fbterm and fcitx-fbterm by default.

 [[ $(tty) == \/dev\/tty[0-9]* ]] && fcitx-fbterm-helper

写入到 /home/marguerite/.bashrc。

使用背景图片的启动方法是:

  • 登录终端
  • cfbterm 启动 fbterm
  • 在 fbterm 中运行 fcitx -d 启动 fcitx

256 色

fbterm 支持 256 色,使用:

TERM=fbterm vim .fbtermrc

这样的命令来启动程序即可。不想每次都这么做,在 .fbtermrc 的最后写入:

export TERM=fbterm

即可。

灰白改纯白

fbterm 里面默认的白色实际上是灰白,不习惯的可以在 .fbtermrc 的最后写入:

# restore white color
echo -ne "\e]P7ffffff"

即可。

鼠标

要先设置 gpm。使用:

sudo yast mouse 

来选择你想在终端中使用的鼠标。然后,

在终端登录后默认的 bash 中,使用:

sudo /etc/init.d/gpm start 

启动 gpm 鼠标服务器。之后正常进入 fbterm 用鼠标。

终端截图

安装 home:MargueriteSu 源中的 fbshot。使用:

fbshot -s 读秒 图片保存路径

来截图。

Marguerite-fbterm.png

中文控制台下的常用辅助工具

  • 输入法:fcitx-fbterm,ibus-fbterm,fbterm-ucimf
  • 截图:fbgrab
  • 背景图片:fbv
  • 分屏:tmux

参考链接