G Linaccess (Making GNU Linux accessable)
GNU Linux for the partially sighted or visually challenged
Authors and inventors:
- Overall project architecture and initial implementation: Steve Mann
- Further hacking on the initial implementation: James Fung,
and many others (anyone else to add?)
- Initial implementation:
Pathmanathan ``pathman'' Baskar and Steve Mann
- Discrete clock jewels: James Fung, Bill Thanis, and Steve Mann
(this was a group ``hackfest'' or ``doing'' on a
Friday 5pm meeting in Sandford Fleming building room 2103).
- The df, du, ifconfig, route, rwho, w, commands:
(those who contributed, add your names here)
- The ls command: (those who contributed, add your names here)
- Getting glinaccess working with
autoconf, and automake: Corey Manders and Suryadi Suryadi
Purpose of glinaccess:
The purpose of the G Linaccess project is to make computers accessible
to those with low vision, in a way that does not require the use
of a text to speech converter or other devices that are normally
used by the blind.
With G Linaccess, those with low vision can often still
enjoy the visual aspects of computing, through the use of
enlarged fonts that are optimally designed in contrast and shape
to be readable despite visual defects that may prevent the person
from reading traditional large print books and the like. Moreover,
through the use of OCR, persons might acquire the text of articles
and the like, and consume this material upon the screen of a cathode-ray
tube or laser EyeTap device by virtue of its much higher contrast ratio
than that of paper and other print media used for large print books.
I started the G Linaccess project primarily for developing systems for
display on a laser EyeTap device, but it may also be viewed on a special
high brightness/high contrast cathode ray tube. In situations where visual
impairment is not severe, it may be used on a normal video display
(preferably a black and white television that uses a cathod ray tube)
with brightness and contrast set appropriately.
http://wearcam.org/wearhow/node17.html for notes on how to connect
a computer to a television with reduced power requirement useful for
battery operated wearable or portable systems.)
Better viewing of images, something that cannot be done as readily
or as meaningfully using audition, is also an important goal of the
G Linaccess project.
The first phase of the G Linaccess effort has been the design of
an XF86Config file suitable to the visually challenged.
I optimized this originally for output on a tube running at increased
anode voltage, on the order of 6000 volts on a 0.7 inch tube,
640 by 480 pixel resolution running on a "wearable computer" (WearComp).
I put together a simple set of commands including xterm40, xterm30, and
xterm20 to allow for creation of large-font xterms. The window manager
is also configured for easy movement from one window to the next without
using a mouse. An important consideration was the decision not to use a
mouse, because of the visual dexterity, visual attention, etc., that
pointing devices tend to demand. Various window manager files are
included, the preferred being .fvwm2rc for the fvwm2 window manager.
Pointerless (mouseless) operation is facilitated in each of these.
A .xinitrc file is also included, which execs fvwm2 in the background.
A clock is the last item, rather than the fvwm2. This makes it easier
to kill the window manager and start a different window manager.
The clock is large but transparent, so that it is easy to read, but
doesn't block too much of the screen (because of its transparency).
An exclusive or (EOR) clock is in the works, and will provide for
zero occlusion so that users can enjoy a large easy-to-read clock
that doesn't consume any workable screen real-estate.
overall, the choice of colours has been white foreground and black
background for best readability.
Other uses, such as wearable computing:
In addition to the visually challenged, G Linaccess is also meant to
run on various kinds of devices where computing is a secondary task.
the goal is to reduce the amount of visual information processing needed to
use a computer system. Thus one might, for example, use a computer
(such as laser EyeTap built into sunglasses) while walking down stairs
or jogging. It is desired that the computer not require excessive
attention span, otherwise it may distract from the primary task.
G Linaccess also runs on the WearTel wearable wristwatch videophone
which has a very small screen (0.7 inches).
The G Linaccess package makes it possible to see the screen clearly from
Many of the GNU Linux commands are being re-written to operate on a
reduced character screen (e.g. to work nicely on a 30x12 text screen).
Eventually it is hoped also to be able to provide BIOS and DOS commands
also in large font-compatible forms. However, the initial release includes
just GNU Linux commands that have thus far been made "accessible".
Digital Destiny... Wearable Computing
Quick start to using G Linaccess
Ideally, set up your xf86config file for 640 across and 480 down, in
true 24bpp color. If you must use a larger screen resolution, you
may want to experiment with the various commands like "x30" to make
it fill your screen entirely.
To install G Linaccess:
- untar this, e.g. tar -xzvf glinaccess.tgz (or if your operating system
doesn't support uncompression in tar, then mv to glinaccess.tar.gz,
and tar -xvf glinaccess.tar)
- this should create a directory from your home directory ~/glinaccess
which should contain various files
- if, as sysadmin (root login),
you want all future accounts made on the system to use glinaccess:
from within the glinaccess directory type "./configure", then "make",
then "make install"
- if, as just one user, you want glinaccess in only your user account,
from within the glinaccess directory type
./configure --prefix=[your home directory]/glinaccess
(or you can install into another directory if you like)
and continue as before.
- Alternatively, you can install some or all of the files manually:
e.g. copy the given .fvwm2rc and .xinitrc files into your home directory
(back up the old ones you already have there if you want to keep them),
and continue as follows, assuming you're installing manually, one thing
at a time:
- start a bash (bourne again shell), or the like
- source glinaccess/glinaccess.sourceme
- now you should be able to use any of the commands from ~/glinaccess
How to use glinaccess:
- start up xwindows
- now you should see an x20, x30, x40, and x80 window on your screen,
as well as a very easy-to-read clock.
- you should be able to now move between these windows by holding down the
ALT key and pressing N and P to go to next or previous window, until
you get to the clock which defines the end of the window list.
- The x30 command will create a 30x12 window, with what i
have found to be the best choice of font. of course your supported fonts
may vary from system to system, so you may want to experiment with the
sizes of the fonts.
- here is a list of the window creation commands i support
and the xwindows sizes each produces:
x47, x56, and x62 are arbitrary sizes that i created by experimenting
with different fonts, and on my computer i found they were very readable
on a variety of tubes and eyetap devices.
- x10 is 10 letters across and 4 down
- x20 is 20 letters across and 8 down
- x30 is 30 letters across and 12 down
- x40 is 40 letters across and 15 down
- x47 was created because the font looks good on my rig
- x56 was created because the font looks good on my rig
- x62 was created because the font looks good on my rig
- x80 is 80 letters across and 24 down
x80 is just a normal window, and is included so that a non visually
challenged user can use this system, since so much of the world is
based on the traditional 80x24 window size.
there are a number of nonvisually
challenged users using linaccess, simply because it results in less
eyestrain, and is more comfortable for long term use. in this case,
a mixture of different window sizes are used (x80 where needed,
and others such as x40 where there's no particular formatting of text).
- presently most of linaccess is prepared an x30 window (e.g.
30 letters across and 12 down).
- if you type the x30 command you should get a nicely readable window.
- if the x30 window has strange spacing, or doesn't work with all the
other programs, try changing the font size by just one number.
in particular, change "-*-courier-bold-r-normal--32-0-*-*-*-*-*-*"
on some systems, the fonts that are available vary, and certain ones
don't produce well formed letters.
experiment until the letters are well formed and produce minimal eyestrain.
Some of the G Linaccess commands for the x30 environment
here are some commands you can try inside the x30 terminal
- ls will give you a directory listing. try ls -all to see all
information. this is formatted for space-saving. for example,
permissions are listed numerically, e.g. 755 which takes only
3 characters across the screen instead of
rwxr-xr-x which takes 9 characters across the screen.
- i=ifconfig this is a useful command if you forget which windows
are localhost, etc. (omitting the hostname from the prompt saves
screen real estate, but then being able to quickly see your own ip
addr. mitigates this some)
- ls: this is in c, so you need to compile:
- cd fileutils-4.0
- ./RUNME (to configure and make)
- you may have to edit fileutils-4.0/src/Makefile so LIBS = -lm
depending on how math libraries are set up
the www browser, lynx, is not one of the commands because it already works
quite nicely in any of the above windows (e.g. x20, x30, x40, etc.), except
for x10. vi also works in all but x10. if you patch vi or lynx to work
well in an x10 window, please email me your patches.
an accessible graphical www browser, glynx, is currently in the works.
if you find bugs, or if you have other commands that you'd like to see
supported in linaccess, please email me.
Prof. Steve Mann,
University of Toronto,
Department of Electrical Engineering,
10 King's College Road, Toronto, Ontario, M5S 3G4
this file is called READNOW.HTM because files called README.HTM
don't seem to show up in a file listing under various browsers such as
lynx, glynx, dillo, etc..