fbterm (1) - Linux Manuals
fbterm: a fast Frame Buffer based TERMinal emulator for linux
NAME
FbTerm - a fast Frame Buffer based TERMinal emulator for linuxSYNOPSIS
fbterm [options] [--] [command [arguments]]DESCRIPTION
FbTerm is a fast terminal emulator for linux with frame buffer device or VESA video card. Features include:OPTIONS
command [arguments] may be given to override the built-in choice of shell program. Normally FbTerm checks the SHELL variable. If that is not set, it tries to use the user's login shell program specified in the password file. If that is not set, /bin/sh will be used. You should use the -- argument to separate FbTerm's options from the arguments supplied to the command.FbTerm first uses option value specified in command line arguments, then in the configure file $HOME/.fbtermrc. If that file doesn't exist, FbTerm will create it with default options on startup.
- -h, --help
- display the help and exit
- -V, --version
- display FbTerm version and exit
- -v, --verbose
- display extra FbTerm's information
- -n, --font-names=text
- specify font family names
- -s, --font-size=num
- specify font pixel size
- --font-width=num
- force font width
- -f, --color-foreground=num
- specify foreground color
- -b, --color-background=num
- specify background color
- -e, --text-encodings=text
- specify additional text encodings
- -r, --screen-rotate=num
- specify the orientation of screen display
- -i, --input-method=text
- specify input method program
- --cursor-shape=num
- specify default cursor shape
- --cursor-interval=num
- specify cursor flash interval
- --vesa-mode=num
- specify VESA video mode
- --vesa-mode=list
-
display available VESA video modes
- see comments in $HOME/.fbtermrc for details of these options.
SHORTCUT SUMMARY
keyboard:
mouse:
Sometimes above actions will not work, please try to redo them with shift key holding down.
Attention: 1) VESA support requires root privilege to work; 2) do not force to use VESA device on the system with frame buffer device
enabled, they maybe conflict with each other.
If you don't like the fonts selected by FbTerm, execute "fc-list" to get available fonts, choose favorites as
the value of option "font-names". You may also modify the configure file of fontconfig, which will
change the behavior of all programs based on fontconfig!
As a normal IM user, you should have a IM program written for FbTerm, and specify it as the value of option "input-method".
CTRL_SPACE is the shortcut to activate/deactivate input method.
If you really don't like this and not use VESA support, and have a linux kernel with file system capabilities enabled, which allow user to give
binaries a subset of root's powers without using setuid 0 (official kernel 2.6.27 includes it), you can run command
"sudo setcap 'cap_sys_tty_config+ep' /path/to/fbterm".
Maybe you need to enable them manually for your video card. For example, by default fast scrolling and write-combining
are all disabled on general VESA frame buffer device, GRUB/LILO configure file should be modified to enable them.
A GRUB example is showed below:
title Ubuntu
FRAME BUFFER DEVICE
Before executing FbTerm, make sure there is a frame buffer device in your system, and you have read/write access right
with it. Normally FbTerm tries to open /dev/fb0 and /dev/fb/0, environment variable "FRAMEBUFFER" may be used to override this
built-in behavior.
VESA VIDEO DEVICE
From version 1.6, FbTerm adds VESA video card support. By default, FbTerm tries frame buffer device first, if failure,
then tries to use VESA device with highest resolution and color depth. option "vesa-mode" may be given to force only open
VESA device with the specified video mode. To see available video modes for your VESA card, execute "fbterm --vesa-mode=list".
FONT
FbTerm invokes fontconfig to get a font list, if the first font doesn't contain the glyph for the rendering character,
it will try second font, then the third, ... and so on, user can see this ordered font list with "fbterm -v".
TEXT ENCODING
By using iconv, FbTerm converts other encodings to internal encoding UTF-8. On startup, FbTerm checks variable
LC_CTYPE to determine the default text encoding, which is binded to shortcut CTRL_ALT_F1.
User can specify up to 5 additional encodings with option "text-encodings", for example, as a Chinese user,
you set "text-encodings=gbk,big5", shortcut CTRL_ALT_F2 will bind to gbk, and CTRL_ALT_F3 bind to big5.
BACKGROUND IMAGE
FbTerm doesn't load and parse any image file with various formats directly, instead it takes a screen shot of
frame buffer device on startup if variable FBTERM_BACKGROUND_IMAGE is defined, then uses this screen shot as
the background for text rendering. In order to enable background image support, user should first
put a image to frame buffer device with a image viewer. A wrapper script using fbv is listed below:
INPUT METHOD
Instead of adding input method directly in FbTerm, a client-server based input method framework is designed to do
this work. FbTerm acts as a client, standalone IM program as a server, and they run in separated processes.
SECURITY NOTES
FbTerm tries to change linux kernel key map table to setup shortcuts, which requires SYS_TTY_CONFIG capability from kernel
version 2.6.15. It means FbTerm should be a setuid 0 program to allow non-root users to use shortcuts. FbTerm only
switches to root privilege temporarily when changing key map table, we believe it's pretty much free from security problems.
PERFORMANCE
According test result, FbTerm spends more than 95% time on painting screen. Speedup painting will significantly
increase performance. Here are some suggestions for frame buffer device:
AUTHOR
Written by dragchan.
REPORTING BUGS
Please submit bug reports to <http://code.google.com/p/fbterm/issues>.
COPYRIGHT
Copyright © 2008-2009 dragchan. License GPLv2: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.