scrsnap: clean up scr_snap() and scr_load()
[fbpad.git] / README
blob912c561e0f54e8ab917d9dca2f7f028e50c4cf03
1 FBPAD
2 =====
4 Fbpad is a small linux framebuffer virtual terminal.  It manages many
5 terminals through single-letter tags; each tag can hold two terminals.
6 The following table indicates fbpad's key-bindings (m-k means pressing
7 k, while holding the alt key).
9 ==============  =======================================
10 key             command
11 ==============  =======================================
12 m-c             execute a shell (SHELL)
13 m-m             execute mail program (MAIL)
14 m-e             execute editor program (EDITOR)
15 m-x             switch to tag 'x' (TAGS)
16 m-j             switch to current tag's alternative terminal
17 m-k             like m-j
18 m-p             show tag summary
19 m-o             jump to the previous tag
20 m-tab           show the next terminal
21 m-s             create a text screenshot (SCRSHOT)
22 m-y             redraw the terminal
23 c-m-l           lock the screen; use PASS to unlock
24 c-m-o           disable/enable tag switching
25 c-m-q           quit fbpad
26 m-,             scroll up
27 m-.             scroll down
28 ==============  =======================================
30 Fbpad can be instructed to execute a single program: the program and
31 its arguments should passed as command line arguments of fbpad.  Fbpad
32 executes this program in a terminal, disables all terminal switching
33 commands, and exits as soon as the program finishes.
36 SETTING UP
37 ==========
39 To configure fbpad, you should edit config.h.  To get fbpad running
40 you need to make sure FR points to a valid tinyfont file (for testing
41 you can try http://litcave.rudi.ir/courr.tf) and SHELL to the shell
42 you want fbpad to execute.  Also the type of fbval_t should match the
43 framebuffer depth: unsigned char for 8-bit, short for 16-bit and int
44 for 24/32-bit framebuffers.  Once these are set, you should be able to
45 start fbpad without problems.
47 Fbpad uses tinyfont files, which can be created using ft2tf program
48 (http://litcave.rudi.ir/).  The FR, FI and FB macros specify the path
49 of the tinyfont files for regular, italic and bold fonts.  If FI or FB
50 is NULL, the regular font is used for italic or bold text.
52 Next you may want to change the list of fbpad tags by changing TAGS.
53 FGCOLOR and BGCOLOR macros specify foreground and background colors,
54 for instance the FGCOLOR of 2 and BGCOLOR of 0 creates green on black
55 terminals.  Individual colors can be customized by editing the hex RGB
56 color description of COLOR* macros.  Also SCRSHOT macro specifies where
57 fbpad text screenshots, as created using "m-s" command, should be saved.
59 If you are want to use fbpad's scrsnap feature, you can edit TAGS_SAVED
60 to change the list of saved terminals.  Framebuffer memory is saved and
61 reloaded for these tags, which is very convenient when you are using
62 programs that change the framebuffer simultaneously, like fbpdf.
64 256-COLOR MODE
65 ==============
67 Fbpad supports xterm's 256-color extension, but most programs will not
68 use this extension, unless the $TERM terminfo entry declares this
69 feature.  For this purpose, you need to create fbpad-256 terminfo file
70 containing (ignore the two-space identation):
72   fbpad-256,
73         use=linux, U8#0,
74         colors#256,
75         pairs#32767,
76         setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
77         setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
79 And install it with:
81   $ tic -x ./fbpad-256
83 Now you can add this line to your shell startup script:
85   export TERM=fbpad-256
87 Note that in order to use this feature and italic fonts in Vim, adding
88 fbpad-256 terminfo is not necessary.  Including the following lines in
89 your vimrc should enable them:
91   set t_ZH=\e[3m
92   set t_Co=256