FatFingerShell virtual terminal =============================== 2009 - Rafael Ignacio Zurita It is a virtual terminal for Openmoko, with a complete fullscreen keyboard and sound. You can set the colors and the transparency, set new keyboard layouts (hard yet) and replace the sounds. If we write easy-to-use scripts to call or sms we would be able to use a shell for all the functions with an Openmoko mobile phone. So we would need a good shell (virtual terminal) for Openmoko. This project aims to provide a fullscreen virtual terminal, with a fullscreen keyboard and sound/screen feedback. The fullscreen keyboard aims to be complete and useful for bash, vi and common console tools. Moreover it is comfortable for fat fingers. Features -------- - fullscreen and complete keyboard (useful for bash/vi and other console tools) - sound and screen feedback for keys pressed - full color settings for layers (edit colors.cfg) - configuration files for keyboard layouts (so users can make their own layouts) How to install and test ----------------------- WARNING: this instructions are for the current alpha version. Some instructions are workarounds of problems to fix. Check TODO below, because these intructions should change if bugs are fixed. - download the package: http://fz.hobby-site.org/om/fatfingershell/fatfingershell_0.1.tar.gz - install libsdl, libsdl_mixer, libsdl_ttf packages - add "export TERM=vt100" into ~/.bashrc - you need installed bash tar xvzf fatfingershell_0.1.tar.gz cd fatfingershell/ ./fatfingershell.sh If you have problems with sound try to kill other applications using sound device (check with lsof -n | egrep "dsp|snd"). Or try disabling sound adding "-n" command line argument to fatfingershell line into fatfingershell.sh script. If you have other problems check fatfingershell.sh script to realize out how to run this version manually. If you want to test the other configured colors : - replace colors.cfg with colors.cfg.example2 - edit fatfingershell.sh : replace the "./fatfingershell -e bash" with ./fatfingershell -d -e bash or just edit colors.cfg and set your prefered colors. Configuration ============= This fat finger shell has several configuration files. keyboard.cfg and keyboard2.cfg ------------------------------ These files are very similar, and both of them set the location on screen of every key. The format is: x1 y1 x2 y2 key capital-key sound-number The idea is this: x1, y1, x2 and y2 are the two coordinates of the key, so if you want to modify the layout you can use gimp to modify the bitmap and then you need to modify these keyboard.cfg and keyboard1.cfg configuration files. key and capital-key are the symbols for the pressed key. These symbols are sent to shell. For example "e E". capital-key is the SHIF+key or CAPS-LOCK+key. sound-number is a sound for the key pressed/released. There are four sounds. If you check the original configuration files the sounds are differents for neighbor keys. so you can recognize if you press the proper key or not. Of course, you need to listen for a while the different sounds for every key. colors.cfg ---------- This configuration file set the colors for the middle layer and uppermost layer (font). The file has two lines. Each line has four values (integer 0-255). Format: red-value green-value blue-value tranparency red-value green-value blue-value tranparency The first line is for the middle layer. The second line is for the uppermost layer (font). Examples: 0 0 0 100 26 160 26 255 (green font, dark gray middle layer. Nice contrast with default background keyboard layout.) 228 223 145 200 0 0 0 255 (black font, beige middle layer. Nice contrast with black&white background keyboard layout.) Keyboard layout --------------- There are two background keyboard layouts to choose. The layouts are identical but the default uses gray&black colors and the second one black&white. If you want to use black&white use the "-d" command line argument for the binary. TODO (and bugs to fix) ====================== - Improve performance - Show Unicode - Avoid "export TERM=vt100" - Build an opkg package - Add an option to choose the terminal size (80x24, 90x30, etc) - Add page up and page down scroll Notes ===== This software uses the source code of : - xvt - SDL_terminal And the next libraries : - SDL - SDL_Mixer - SDL_ttf - libexpect5.43.so - libtk8.4.so - libtcl8.4.so The original libSDL_terminal was modified. Commented the "ttfwasinit()" call because it gives an exception float when running.