Saturday, 28 November 2009

Linux Distro Review 2009!


I have spent the last week trying out ten of the most popular Linux distros both as live CD's and as installed systems on both desktop and laptop computers. Here is a brief summary of my findings so far:

The distribution with the best accessibility out of the box was without doubt Adriane Knoppix 6.2 which is a special edition of Knoppix aimed at visually impaired users. It provides a simple menu driven console session by default using the espeak voices with the SBL console screenreader. This provides a choice of popular activities such as internet browsing, sending e-mails and file-management etc. If the user wants to use standard GUI tools then they can start an LXDE desktop session using Orca. You are then able to navigate the menus and use most of the GTK based applications and Compiz can be used as a screen magnifier if your video card supports 3D. However, if you know what you are doing Fedora, Open Solaris, OpenSuse and Ubuntu all offer Orca, Magnification and Braille support as long as you are able to enable and configure it yourself.

The best looking distribution was a close call between Fedora, Mandriva and Open Solaris, which all had very eye-catching, modern looking desktop and window colour schemes. I felt that Fedora 12 just pipped the others as everything just seemed to work together really well: the icons, window borders and the wallpaper etc. This is of course the most subjective judgement and isn't really of much interest to visually impaired users.

The best distribution for beginners is still Ubuntu 9.10, although Fedora, Mandriva and OpenSuse are all catching up very quickly. The killer feature is Ubuntu's hardware detection and compatibility which just seems to be able to handle any hardware I can throw at it. It also offers to download multimedia codecs for you if you try to play an unsupported format, which seems to be one of the hardest things for beginners to get their head around.

Puppy Linux 4.31 came top in three different categories: best live distribution, best performance on old computers and best distribution for netbooks. Puppy is a very small distro (about 100MB) that runs entirely in the ram. It provides a wide range of desktop tools and works on a wide range of hardware. As a live distribution it is much faster than any other distro, and it allows you to remove the CD once booted, which allows you to burn CD's or play DVD's etc. Puppy supports all popular multimedia formats out of the box and even plays commercial DVD's. Because it runs in the ram it is also excellent on old computers and netbooks where system resources are minimal. It supports most popular netbook models out of the box and is the only distro I would ever consider using on a netbook. If it was accessible it would also have been the best overall distribution and my favourite distribution.

The distribution which wins the title of worst all-round distribution is GnuSense 2.3 , although this is primarily because it only includes open-source software that is free in the strictest sense of the word. This means that you get very few hardware drivers and no restricted multimedia codecs either installed or provided in the repositories. While this may be the purest distribution around it means in practise there will be many things you cannot do without a lot of fiddling.

OpenSuse 11.2 takes the title for best distribution for power-users and best all-round distribution. Without doubt this distribution has the best selection of tools installed by default, very good accessibility support once installed and configured and its most impressive feature is it compatibility with Microsoft networks which would make it the only choice for someone wanting to integrate fully with a Windows network. OpenSuse has come on a long way since last time I tried it and it would have also been my personal favourite but for one feature it doesn't currently offer.

So my personal favourite (as a sighted user) is Ubuntu 9.10! It provides a very easy to use system, a good selection of desktop packages out of the box and of course excellent hardware detection and support. However it does not provide the number of tool and packages that OpenSuse provides by default and the single feature that makes it my favourite over OpenSuse is that you can easily remaster Ubuntu using the Ubuntu Customisation Kit or Remastersys, while OpenSuse only offers an online distribution build service which you are not allowed to distribute without removing all the logos etc. For me, being able to remaster a distribution, either for your own use or for public distribution is absolutely essential. This is because I don't want to have to install a system on multiple computers and have to configure them each manually, and it is the easiest and most efficient way to create a new distro. If you don't want to do this i would strongly suggest you consider using OpenSuse 11.2!

I haven't compared these distribution to Vinux or Debian, because I don't want to be accused of bias, but if anyone would like compare what Vinux and/or Debian have to offer then please post your reviews to the mailing list.

Last minute addition!

I have just had a look at the latest Linux Mint 8.0 which is based on Ubuntu 9.10 - obviously it uses pulseaudio and has the same kind of problems as Ubuntu 9.10 as regards accessibility - although I am planning to do an experiment and see if remastering from the live CD with pulseaudio disabled allows me to make a remaster which uses alsa by default. I will let everyone know if this works - or whether this causes other problems - the only problem I have noticed so far is the master volume control doesn't work - but alsamixer does anyway. Apart from that Linux Mint has two distinct advantages over Ubuntu - firstly it comes with all of the restricted codecs installed by default so mp3, flash and wma files etc should just play (I don't think it will play encrypted DVD's) and secondly its cool minty theme of black and green just looks so good it makes a mac look plain! So if you want to recommend Linux to any sighted friends or relatives I would recommend Linux Mint 8.0 as a real showcase for linux - the hardware just works, you can play all your existing multimedia files and it looks amazing! I have just installed it on a machine at work with a dual monitor setup and everything just worked out of the box and it just looks so cool.

Thursday, 19 November 2009

To be or not to be?


On the 28th November Vinux will be one year old! We have made it through the most difficult period as many projects fail within the first 3 to 6 months. I think we have made reasonable progress in this time although there is still a long way to go before we have a stable, easy to use product. However, as always I like to evaluate everything I do and try to identify strengths and weaknesses, in order to improve things. The first few releases of Vinux (Vibuntu) were very easy to install and configure, but the speech was unstable and unresponsive. When we moved to Debian the stablility and responsiveness of the speech improved but at the cost of less hardware compatibility and a more complex installation process. More recently the release of a CLI editon brought even more stability and responsiveness in the form of speakup, although this was aimed more at intermediate and advanced users. I am hoping that the switch to Debian live-helper from remastersys will bring us improvements to the installation process and the performance of the live CD in the near future. So for me this is a time to step back from the development process and try to get an overview of what we have achieved and where we are going.

The first question has to be is there really a need for Vinux, and if so how well does Vinux meet those needs in comparison with other solutions? So do we really need a distribution aimed at visually impaired users, or should we be encouraging the big developers to make their distributions accessible to all? I personally think that it would be better for everyone if the big distributions like Ubuntu, Fedora and OpenSuse did take the accessibility issues more seriously, but the reality is that like their commercial counterparts their main market is the sighted mainsteam user. So at least in the short term it seems a Vinux type distribution is required especially for new users. I suspect when and if Linux gets into the education system, then they will be forced to cater for students with a variety of disabilities and the support contracts will make it worth their while to meet these needs. Of course the strongest argument for an open source solution is the extortionate price of accessibility software for a group who are generally economically disadvantaged, even more so in the third world.

So assuming that a specialist open source distribution is needed at least in the short term, then how does Vinux compare with other solutions. Well there aren't really many distributions that are targeted at VI users, the only active project that springs to mind is Adrianne Knoppix, the Oralux project was abandoned although there are one or two localised distributions for example 'Blindbuntu' which is a Czech language distribution. However Adrianne Knoppix takes a very different approach to Vinux. The last time I checked it provided a menu driven console interface, a little bit like INX and GRML. This provides a series of choices for sending e-mails, editing text or surfing the internet. In fact I think the LinuxSpeaks project takes a similar approach. I have tried to avoid this approach with the CLI edition because although I want it to be as easy as possible to use, I want users to learn to use the console by typing commands and navigating ncurses interfaces etc, Similarly in the GUI edition I want everything to work out of the box, but I want the user to learn how to use Linux in the process. Once they are confident with how Vinux works, ideally they should be able to move onto any Gnome based distribution and configure it to their tastes. So I expect Vinux users to be tourists who will use Vinux to get their feet wet, and open the doors to the wider Linux world.

So now comes the difficult question: Just how many people have tried Vinux and how many people are actually using it? It seems that quite a lot of people have tried Vinux if the web statistics are to be believed. There have been approaching 4000 downloads of Vinux through the Softpedia portal and several thousand through the officail website. However many of these downloads will be the same people downloading the new versions as they are released. So for the sake of argument let's say that at least 1000 people have tried Vinux. Of those many, say 50% will find it too difficult to use and go back to Windows. Lets say another 25% manage to get it working but wouldn't consider installing it to their hard drive, but maybe use it as a live CD or USB recovery stick etc occasionally. Of the remaining 25% I imagine half of them (12.5%) tried to install it but ran into problems of some sort - either difficultly partitioning the drive(s) or hardware incompatibility e.g. unsupported wifi chipset.

This leaves us with 12.5% who might have been able to install it to their computers without any difficultly or hardware problems. Of which I imagine at least half would only see it as a backup system or novelty learning tool, not a primary working system. So there may be 6.25% who do consider Vinux to be a serious working as an alternate or additional tool, of which maybe a fifth may actually ditch Windows and use Vinux and/or Linux as their primary operating system, in other words about 1.25% of the original estimated 1000 users: Twelve and a half people in the world actually using Vinux as their main OS. (This only makes sense of course if we assume one of these users is either a midget or extremely fat). Ironically I am both short and fat, so perhaps that accounts for the mathematical anomaly. Which only leaves eleven.

So based on those purely theoretical and fairly conservative estimates is it worth while me putting in all of the energy and time it takes to make Vinux? Sometimes I feel like I am doing this for an imaginary audience, and no one is really interested in Vinux or Linux for that matter. In the UK and the USA it seems that Microsoft rules supreme and no-one outside of a Star Trek convention has ever heard of Linux let alone tried it. I also get frustrated at my own lack of knowledge and skills: I am self-taught, as you can probably tell and make progress by just trying things and seeing if they work. More often that not it doesn't but when it does I get a great sense of achievement. However, because of my lack of knowledge I can't solve the really big problems like the stability of speech-dispatcher or the inaccessibility of some applications etc. So sometimes I get very frustrated when I just can't seem to make any progress. It is at times like this that I sometimes question why I am doing this. My life would be a lot simpler and more relaxing if I didn't make Vinux. I could just use whichever distro I fancied, or make my own customised distro for myself, or even a mainstream distribution for sighted users - that would be so easy to do, because putting together a distribution without having to take account of accessibility would be a walk in the park! On the other hand then it would just be another distribution amongst many and there is no reason why mine would be any more attractive than anyone elses. Of course I could get really lazy and just use a distro out of the box, install what ever applications I wanted and configure it and leave it at that, but I do like to twiddle, and it was frustration at having to reconfigure a system everytime you upgraded or tried a new distribution that got me into making remasters in the first place. The first remaster ever made was a bumper edition of Ubuntu using the Ubuntu Customisation Kit, and the first one I released to the public was DingoPlus, a version of Puppy Linux 4.0 modified for use on the Asus Eeepc 701 - which I am still using today!

So it is over to you - how many people are actually using Vinux as a serious operating system? Am I wasting my time? Do we really need Vinux? What is the best alternative currently? How does Vinux compare to Windows and Mac? Why are we here? What is the meaning of life and was there a third shooter on the grassy knoll? I am planning to have a break from Vinux development this weekend and have a play with lots of different distributions and then write a review of their pros and cons from both a sighted and VI perspective. A penny for your thoughts!

Sunday, 15 November 2009

Debian Live Helper v Remastersys!


I have spent this weekend trying out the Debian live-helper package this weekend. It is the official package for creating Debian live CD's and is used to produce all of the different versions: Gnome, KDE, Xfce, Lxde and several CLI versions. It can provide a standard Debian installer or a Live CD installer which copies the live system to the hard drive. This tool provides a lot of options not available with remastersys such as a choice of syslinux or grub (on the CD), several pre-defined package lists for a Gnome desktop or KDE desktop etc. It allows you to pretty much change any aspect of the Live CD. The one thing is does not allow you to do easily is to change the user settings, to provide accessibility out of the box. In order to do this you have to boot the iso, make the changes manually and then copy the user area to /etc/skel, which is what I already have to do with remastersys. So in this sense there is no advantage over remastersys, as the changes either have to be done manually or by a script anyway. So on the one hand the Debian Live helper offers a lot more options than remastersys, but still requires a manual configuration. So the easy option would be to stick with remastersys because the script is already well developed and relatively simple to use. However in the long run, once the config files are created for Debian Live Helper it would become a lot easier to use and offer many improvements in functionality etc. This is a tough one! On the one hand I really want to go with the simplest option, but if I could get the Debian Live Helper configuration sorted out this would give a more powerful and sustainable solution. Maybe I will persevere with Live Helper for a few more days and see if I can get the user settings sorted out...

Monday, 9 November 2009

Vinux 2.1 Leviathan Edition!


I am happy to announce the release of Vinux 2.1 Leviathan! This is a monstrous hybrid of the Vinux CLI max edition, the standard GUI edition and a wide range of additional applications including Open Office 3.0, the Evolution mail client, the Inkscape vector graphics package, the Scribus desktop publishing tools, the Bluefish webpage editor, the Gambas 2 IDE as well as much more. Obviously not all of these extra tools are accessible to speech/braille users, but partially sighted users can access them with the screen magnifier. This is a very large iso (1.7GB) so you will need a reasonably fast broadband connection to download it. The URL's are:

http://vinux.org.uk/iso/Vinux-GUI-leviathan-2.1.iso
http://vinux.org.uk/iso/Vinux-GUI-leviathan-2.1.iso.md5.txt

I didn't originally intend to release this for public use, it started out as an attempt to create a personalised version of Vinux for my own use. Then as it came together I began to think that other people may want to use it as well! I created it using a hastily modified version of the CLI build script which starts with the standard 2.0 GUI version, adds all of the CLI tools and utilities included in the CLI 'max' version and well as a large number of useful GUI applications that I use on a regular basis. I then had to do a little manual configuration before remastering it to DVD. It turned out to be an interesting little project that I managed to complete in one weekend. Now the hard bit - merging the CLI and GUI build scripts so that it is possible to make either version or even a hybrid GUI/CLI edition using the same script...

Sunday, 25 October 2009

Vinux 2.0 CLI Edition Categorised Package List!


This document contain a categorised list of packages included in the Vinux 2.0 CLI Edition. There are nine main categories and thirty eight sub-categories containing five hundred and sixty eight packages in total. This is not an exhaustive list: there are one thousand three hundred and seventy nine packages on the disk in total, five hundred of which are library files. The packages listed here are the command line applications which perform common desktop functions.

1. Console Tools

a. Accessibility

brltty Access software for a blind person using a braille display
espeak A multi-lingual software speech synthesizer
gtypist A simple ncurses touch typing tutor
speakup-modules-2.6.26-2-686 speakup modules for Linux
speakup-source Source of the speakup kernel modules

b. Screen Utilities

away A terminal locking program
conspy Remote control of Linux virtual consoles
dvtm Tiling window management for the console
fbgrab Framebuffer grabber
screenie a small and lightweight GNU screen(1) wrapper
screen terminal multiplexor with VT100/ANSI terminal emulation
scrot command line screen capture utility
splitvt run two programs in a split screen
ttyrec Terminal interaction recorder and player (for tty)
vlock Virtual Console locking program
xvfb Virtual Framebuffer fake' X server

c. Shells

bash The GNU Bourne Again SHell
dash POSIX-compliant shell
ksh The real, AT&T version of the Korn shell
python An interactive high-level object-oriented language
sash Stand-alone shell
zsh A shell with lots of features

2. Editors

a. Emacs

apel portable library for emacsen
artist Emacs Lisp drawing package
dictem Dict client for emacs
edb database program for GNU Emacs
elscreen Screen for Emacsen
emacs-goodies-el Miscellaneous add-ons for Emacs
emacs The GNU Emacs editor (metapackage)
emms The Emacs MultiMedia System
erc an IRC client for Emacs
nethack-el Emacs major-mode for playing NetHack

b. Misc Editors

aee An easy to use screen-based editor
diakonos Customizable, usable console-based text editor
e3 A very small editor
ed The classic unix line editor
elvis-console powerful clone of the vi/ex text editor (without X11 support)
hexcurse A ncurses-based hex editor with many features
hnb hierarchical notebook
info Standalone GNU Info documentation browser
jed editor for programmers (textmode version)
joe user friendly full screen text editor
less Pager program similar to more
lv Powerful Multilingual File Viewer
most Pager program similar to more and less
nano free Pico clone with some new features
ne Nice Editor, an easy-to-use and powerful editor
tweak an efficient hex editor
vile VI Like Emacs - vi work-alike
wordgrinder a simple word processor that runs in a terminal
zile very small Emacs-subset editor

c. Vim

vim-addon-manager manager of addons for the Vim editor
vim-scripts plugins for vim, adding bells and whistles
vim-tiny Vi IMproved - enhanced vi editor - compact version
vim Vi IMproved - enhanced vi editor

3. Entertainment

a. Audio

abcde A Better CD Encoder
alsaplayer-text PCM player designed for ALSA (text version)
beep advanced pc-speaker beeper
bplay Buffered audio file player/recorder
cdda2wav Dummy transition package for icedax
cdparanoia audio extraction tool for sampling CDs
cmus lightweight ncurses audio player
cplay A front-end for various audio players
cutmp3 a small and fast command line MP3 editor
cw Command-line frontend to unixcw
cwcp Ncurses frontend to unixcw
flac Free Lossless Audio Codec - command line tools
icedax Creates WAV files from audio CDs
id3ed Another id3 tag v1 editor
id3v2 A command line id3v2 tag editor
madplay MPEG audio player in fixed point
morse Morse Classic' is a morse-code training program
mp3blaster Full-screen console mp3 and Ogg Vorbis player
mp3c MP3Creator - Creator for MP3/OGG-files
mp3rename Rename mp3 files based on id3tags
mp3report Script to create an HTML report of MP3 files in a directory
mp3splt Splits MP3 and Ogg Vorbis files without reencoding
mp3val A program for MPEG audio stream validation
mp3wrap Utility for MP3 wrapping (rolling multiple MP3s into one)
mpg123 MPEG layer 37653 audio player
mpg321 mpg123 clone that doesn't use floating point
normalize-audio adjusts the volume of WAV, MP3 and OGG files
pmidi A command line midi player for ALSA
vlc-nox multimedia player and streamer (without X support)
vorbis-tools several Ogg Vorbis tools
yatm Command line audio file player with time stretching capabilities

b. Games

angband A single-player, text-based, dungeon simulation game.
asciijump Small and funny ASCII-art game about ski jumping
bsdgames a collection of classic textual unix games
bsdgames-nonfree rogue, the classic dungeon exploration game
crawl Dungeon Crawl, a text-based roguelike game
dosemu The Linux DOS Emulator
empire the war game of the century
fortune-mod provides fortune cookies on demand
freesweep text-based minesweeper
frotz interpreter of Z-code story-files
megahal conversation simulator that can learn as you talk to it
nethack-console Text-based overhead view D&D-style adventure game
nethack-spoilers Spoiler files for the Nethack adventure game
ninvaders A space invaders-like game using ncurses
omega-rpg A text-based roguelike game
sillypoker A poker game
slashem A variant of Nethack
sudoku console based sudoku
tome A single-player, text-based, dungeon simulation game.
zangband A single-player, text-based, roguelike game

c. Graphics

aewan ASCII-art Editor Without A Name
aview A high quality ASCII art image viewer and video player
bb ASCII-art demo based on AAlib
boxes Textmode box- and comment drawing filter
caca-utils text mode graphics utilities
cadubi Creative ASCII Drawing Utility By Ian
cmatrix simulates the display from "The Matrix"
cowsay A configurable talking cow
dialog Displays user-friendly dialog boxes from shell scripts
figlet Frank, Ian & Glenn's Letters
francine feature rich ansi console login engine
grc generic colouriser for everything
linuxlogo Color ANSI System Logo
tetradraw ANSI drawing and viewing utility
textdraw Tool to draw/modify/move geometric figures & text for ASCII art
ticker configurable text scroller
toilet display large colourful characters in text mode
toilet-fonts collection of TOIlet fonts
tpp text presentation program
welcome2l Linux ANSI boot logo
whiptail Displays user-friendly dialog boxes from shell scripts

4. Files

a. Archiving Tools

atool A tool for managing file archives of various types
bzip2 high-quality block-sorting file compressor - utilities
cabextract a program to extract Microsoft Cabinet files
cpio GNU cpio -- a program to manage archives of files
gzip The GNU compression utility
gzrt gzip recovery toolkit
lzma Compression method of 7z format in 7-Zip program
lzop fast compression program
makeself utility to generate self-extractable archives
mscompress Microsoft compress.exe/expand.exe compatible compressor
ncompress Original Lempel-Ziv compress/uncompress programs
p7zip-full 7z and 7za file archivers with high compression ratio
p7zip-rar non-free rar module for p7zip
pbzip2 parallel bzip2 implementation
rar Archiver for .rar files
rzip compression program for large files
tar GNU version of the tar archiving utility
unp unpack (almost) everything with one command
unrar Unarchiver for .rar files (non-free version)
unzip De-archiver for .zip files
zip Archiver for .zip files

b. Backup Utilities

backup-manager command-line backup tool
hdup Filesystem duplicator and backup
multicd Backup your data to CD-R/CD-RW
storebackup fancy compressing managing checksumming hard-linking cp
uswsusp tools to use userspace software suspend provided by Linux

c. Burning Tools

cd5 Compute checksum of individual track on CD-ROMS
cdck verifies the quality of written CDs/DVDs
cdrdao records CDs in Disk-At-Once (DAO) mode
cdrecord Dummy transition package for wodim
cdrskin command line CD/DVD writing tool
cdw Tool for burning CD's - console version
dvdrtools DVD writing program
dvd+rw-tools DVD+-RW/R tools
genisoimage Creates ISO-9660 CD-ROM filesystem images
mkisofs Dummy transition package for genisoimage
mp3roaster A Perl hack for burning audio CDs out of MP3/OGG/FLAC/WAV
mybashburn Burn data and create songs with interactive dialog box
pcopy multithreaded (raw) disk copying program
wodim command line CD/DVD writing tool

d. Conversion Tools

a2ps GNU a2ps - Anything to PostScript' converter and pretty-printer
abiword efficient, featureful word processor with collaboration
antiword Converts MS Word files to text and ps
ascii2binary Convert between ASCII, hexadecimal and binary files
atp text to PostScript converter with some C syntax highlighting
catdoc MS-Word to TeX or plain text converter
clit Decompiler for Microsoft's .lit ebook format
e2ps Convert plain text into PostScript
gnome-u2ps tool to convert UTF-8 text to PostScript
gnumeric spreadsheet application for GNOME - main program
halibut yet another free document preparation system
html2ps HTML to PostScript converter
html2text advanced HTML to text converter
mtools Tools for manipulating MSDOS files
netpbm Graphics conversion tools
odt2txt simple converter from OpenDocument Text to plain text
pdf2svg converts PDF documents to SVG files (one per page)
poppler-utils PDF utilitites (based on libpoppler)
pstotext Extract text from PostScript and PDF files
recode Character set conversion utility
tofrodos Converts DOS <-> Unix text files, alias tofromdos
txt2html Text to HTML converter
unhtml Remove the markup tags from an HTML file
uni2ascii UTF-8 to 7-bit ASCII and vice versa converter
units converts between different systems of units
wp2x WordPerfect 5.6712962962963e-05 documents to whatever converter
wv Programs for accessing Microsoft Word documents

e. File Management

cdargs bookmarks and browsing for the cd command
chase Follow a symlink and print out its target file
clex command line file manager which uses the ncurses library
cruft Find any cruft built up on your system
detox utility to replace problematic characters in filenames
diff File comparison utilities
docdiff Compares two files word by word / char by char
dog Enhanced replacement for cat
fdupes identifies duplicate files within given directories
fhist File history, comparison and merge utilities
file Determines file type using magic numbers
lfm a simple but powerful file manager for the UNIX console
limo lists files in a custom way
lsof List open files
makedev creates device files in /dev
mc midnight commander - a powerful file manager
mktemp tool for creating temporary files
mrename A tool for easy and automatic renaming of many files
ncdt Display directory tree
pdmenu simple console menu program
pilot Simple file browser from Alpine, a text-based email client
safe-rm wrapper around the rm command to prevent accidental deletions
sed The GNU sed stream editor
ssed The super sed stream editor
symlinks scan/change symbolic links
trash-cli command line trashcan utility
tree displays directory tree, in color
vfu A versatile text-based filemanager
vifm a ncurses based file manager with vi like keybindings
wcd saves time typing when you want to change directories
wdiff Compares two files word by word
ytree A file manager for terminals

f. Package Management

alien convert and install rpm and other packages
apt Advanced front-end for dpkg
apt-dpkg-ref APT, Dpkg Quick Reference sheet
aptitude terminal-based package manager
apt-utils APT utility programs
configure-debian configuration program for packages using debconf
dctrl-tools Command-line tools to process Debian package information
debconf Debian configuration management system
deborphan program that can find unused packages, e.g. libraries
debsums verification of installed package files against MD5 checksums
diffstat produces graph of changes introduced by a diff file
dlocate fast alternative to dpkg -L and dpkg -S
dpatch patch maintenance system for Debian source packages
dpkg-awk Gawk script to parse /var/lib/dpkg/{status,available}
dpkg Debian package management system
dpkg-dev Debian package development tools
dpkg-ftp Ftp method for dselect
dpkg-multicd Installation methods for multiple binary CDs
dpkg-repack puts an unpacked .deb file back together
dselect Debian package management front-end
patch Apply a diff file to an original
patchutils Utilities to work with patches
popularity-contest Vote for your favourite packages automatically
reportbug reports bugs in the Debian distribution
reprepro Debian package repository producer
rpm2html Generate HTML index from directories of RPMs
rpm Red Hat package manager
smxi advanced update, upgrade and installation manager
subversion Advanced version control system
tasksel Tool for selecting tasks for installation on Debian systems
ucf Update Configuration File: preserve user changes to config files
vrms virtual Richard M. Stallman
wajig simplified Debian package management front end

g. Remastering and Installation Tools

cdebootstrap Bootstrap a Debian system
debian-cd Tools for building (Official) Debian CD set
debootstrap Bootstrap a basic Debian system
dfsbuild Build Debian From Scratch CD/DVD images
remastersys Debian system remaster
remastersys-installer install live CD to disk
simple-cdd create custom debian-installer CDs

h. Search Utilities

agrep text search tool with support for approximate patterns
findutils utilities for finding files--find, xargs
gawk GNU awk, a pattern scanning and processing language
grep GNU grep, egrep and fgrep
locate maintain and query an index of a directory tree
lookup interactive utility to search text files quickly
mawk a pattern scanning and text processing language
mlocate quickly find files on the filesystem based on their name
rpl intelligent recursive search/replace utility
sfind improved version of the find utility
sgrep tool to search a file for structured pattern
strigi-utils command-line tools for Strigi Desktop Search
whichman Fault tolerant search utilities: whichman, ftff, ftwhich

5. Hardware

a. Ethernet Drivers

atl2-modules-2.6.26-2-686 Atheros L2 Ethernet Adapter driver for Linux
atl2-source Linux Base Driver for the Atheros(R) L2 Fast Ethernet Adapter
bcm5700-source module source for Broadcom's bcm5700 ethernet driver
et131x-modules-2.6.26-2-686 et131x Ethernet Adapter driver for Linux
et131x-source Source for et131x Ethernet Controller driver from Agere

b. Misc Tools

acpitool command line ACPI client
cpufrequtils utilities to deal with the cpufreq Linux kernel feature
cpulimit limits the cpu usage of a process
discover hardware identification system
eject ejects CDs and operates CD-Changers under Linux
gpm General Purpose Mouse interface
hdparm tune hard disk parameters for high performance
hibernate smartly puts your computer to sleep (suspend to RAM or disk)
hwdata hardware identification / configuration data
joystick set of testing and calibration tools for joysticks
lm-sensors utilities to read temperature/voltage/fan sensors
lshw information about hardware configuration
memtest86 thorough real-mode memory tester
memtest86+ thorough real-mode memory tester
nvclock Allows you to overclock your nVidia card under GNU/Linux
pciutils Linux PCI Utilities
pm-utils utilities and scripts for power management
sdparm Output and modify SCSI device parameters
sensord hardware sensor information logging daemon
setcd Control the behaviour of your cdrom device
tpconfig configure touchpad devices
x86info Display diagnostic information about i386 compatible CPUs

c. Laptop Utilities

laptop-detect attempt to detect a laptop
laptop-mode-tools Scripts to spin down hard drive and save power
laptop-net Automatically adapt laptop Ethernet
powertop Linux tool to find out what is using power on a laptop
radeontool utility to control ATI Radeon backlight functions on laptops
spicctrl Sony Vaio controller program to set LCD backlight brightness
toshset Access much of the Toshiba laptop hardware interface
whereami Automatically reconfigure your (laptop) system for a new location

d. Partitioning Tools

cramfsprogs Tools for CramFs (Compressed ROM File System)
disktype detection of content format of a disk or disk image
dosfstools utilities for making and checking MS-DOS FAT filesystems
e2fsprogs ext2/ext3/ext4 file system utilities
e2tools utilities for manipulating files in an ext2/ext3 filesystem
fatresize FAT16/FAT32 filesystem resizer
fatsort utility for sorting FAT directory structures
gnu-fdisk Linux fdisk replacement based on libparted
gpart Guess PC disk partition table, find lost partitions
hfsplus Tools to access HFS+ formatted volumes
hfsprogs mkfs and fsck for HFS and HFS+ file systems
hfsutils Tools for reading and writing Macintosh volumes
mountpy script for quick mounting of removable devices
mount Tools for mounting and manipulating filesystems
ntfs-3g read-write NTFS driver for FUSE
ntfsprogs tools for doing neat things in NTFS partitions from Linux
os-prober utility to detect other OSes on a set of drives
parted The GNU Parted disk partition resizing program
partimage backup partitions into a compressed image file
reiserfsprogs User-level tools for ReiserFS filesystems
sdd File duplication and conversion tool, similar to dd'
sformat SCSI disk format and repair tool

c. Printer Utilities

cups Common UNIX Printing System(tm) - server
djtools Tools for HP DeskJet printer
ink tool for checking the ink level of your local printer
lpr BSD lpr/lpd line printer spooling system
mpage print multiple pages per sheet on PostScript printer
pconf-detect Small printer auto-detect command-line tool
poster Create large posters out of PostScript pages
psutils A collection of PostScript document handling utilities
system-config-printer graphical interface to configure the printing system

d. Wireless Drivers

acerhk-source Source for the acerhk driver
acx100-source ACX100/ACX111 wireless network drivers source
atmel-firmware Firmware for Atmel at76c50x wireless networking chips.
firmware-bnx2 Binary firmware for Broadcom NetXtremeII
firmware-bnx2x Binary firmware for Broadcom NetXtremeII 10Gb
firmware-ipw2x00 Binary firmware for Intel Pro Wireless 2100, 2200 + 2915
firmware-iwlwifi Binary firmware for Intel Wireless 3945 and 4965
firmware-linux Binary firmware for various drivers in the Linux kernel
firmware-ralink Binary firmware for Ralink RT2561, RT2571, RT2661/71
linux-wlan-ng-firmware firmware files used by the linux-wlan-ng driver
linux-wlan-ng-source linux-wlan-ng driver
linux-wlan-ng utilities for wireless prism2 cards
madwifi-source source for the Multiband Atheros Driver for WiFi
madwifi-tools tools for the Multiband Atheros Driver for WiFi
rt2400-source source for rt2400 wireless network driver
rt2500-source source for rt2500 wireless network driver
rt2570-source source for rt2570 wireless network driver
rt73-common RT73(RT2571W) Wireless Lan Linux Driver - common files
rt73-modules-2.6.26-2-686 Driver for Ralink RT73 wireless network card
rt73-source RT73(RT2571W) Wireless Lan Linux Driver - kernel module
wpasupplicant Client support for WPA and WPA2 (IEEE 802.11i)

6. Information

a. Database Utilities

gadfly Server and interactive shell for Gadfly SQL database
nosql a Relational Database Management System for Unix
sqlite command line interface for SQLite

b. Dictionaries and Thesaurusi

aiksaurus an English-language thesaurus (utility)
aspell-en English dictionary for GNU Aspell
aspell GNU Aspell spell-checker
dictd Dictionary Server
dict-devil The Devil's Dictionary by Ambrose Bierce
dict Dictionary Client
dict-elements Data regarding the Elements
dictfmt Utility to format a file for use by the dictd server
dict-foldoc FOLDOC dictionary database
dict-gcide A Comprehensive English Dictionary
dict-jargon Jargon File 38081
dict-vera Dictionary of computer related acronyms -- dict format
dict-wn electronic lexical database of English language for dict
iamerican An American English dictionary for ispell
ibritish A British English dictionary for ispell
ispell International Ispell (an interactive spelling corrector)
link-grammar-dictionaries-en Carnegie Mellon University's link grammar
myspell-en-us English_american dictionary for myspell
vera Dictionary of computer related acronyms -- info format
wamerican American English dictionary words for /usr/share/dict
wbritish British English dictionary words for /usr/share/dict

c. Documentation

abs-guide The Advanced Bash-Scripting Guide
anarchism An exhaustive exploration of Anarchist theory and practice
angband-doc Documentation for the roguelike game Angband.
aptitude-doc-en English manual for aptitude, a package manager
ascii interactive ASCII name and synonym chart
asr-manpages alt.sysadmin.recovery manual pages
backup-manager-doc documentation package for Backup Manager
bash-doc Documentation and examples for The GNU Bourne Again SHell
cfi-en Copyright does not exist, book about hacker culture
clamav-docs anti-virus utility for Unix - documentation
debconf-doc debconf documentation
debian-faq The Debian FAQ
debian-history A Short History of the Debian Project
debian-reference-en Debian system administration guide, English original
doc-debian Debian Project documentation and other documents
doc-linux-nonfree-text Linux HOWTOs in ASCII format (non-free)
doc-linux-text Linux HOWTOs and FAQs in ASCII format
elinks-doc advanced text-mode WWW browser - documentation
fortunes-debian-hints Debian Hints for fortune
funny-manpages more funny manpages
jargon-text The definitive compendium of hacker slang
jargon the definitive compendium of hacker slang
linux-wlan-ng-doc documentation for wlan-ng
man-db on-line manual pager
manpages Manual pages about using a GNU/Linux system
miscfiles Dictionaries and other interesting files
newbiedoc Debian for newbies by newbies (and not-so-newbies)
parted-doc The GNU Parted disk partition resizing program documentation
partimage-doc Partition Image User Documentation
perl-doc Perl documentation
rutebook Linux: Rute User's Tutorial and Exposition, an online book
speakup-doc Documentation for speakup kernel modules
sysadmin-guide The Linux System Administrators' Guide
tar-doc documentation for the tar package
vim-doc Vi IMproved - HTML documentation
zsh-doc zsh documentation - info/HTML format

d. Maths Utilities

bc The GNU bc arbitrary precision calculator language
concalc console calculator
dc The GNU dc arbitrary precision reverse-polish calculator
sc Text-based spreadsheet with VI-like keybindings
wcalc A flexible command-line scientific calculator

e. Monitoring Tools

atop Monitor for system resources and process activity
atsar system activity reporter
di advanced df like disk information utility
discus pretty version of df(1) command
fam File Alteration Monitor
gt5 shell program to display visual disk usage with navigation
hddtemp hard drive temperature monitoring utility
htop interactive processes viewer
iftop displays bandwidth usage information on an network interface
iotop simple top-like I/O monitor
iptraf Interactive Colorful IP LAN Monitor
linuxinfo Displays extended system information
memstat Identify what's using up virtual memory
ncdu ncurses disk usage viewer
nload A realtime console network usage monitor
procinfo Displays system information from /proc
pydf colourised df(1)-clone
time The GNU time program for measuring cpu resource usage
xtail like "tail -f" but works on truncated files, directories, more
yacpi ncurses based acpi monitor for text mode

7. Internet

a. Browsers

elinks advanced text-mode WWW browser
links Web browser running in text mode
lynx-cur Text-mode WWW Browser with NLS support (development version)
lynx Text-mode WWW Browser (transitional package)
netrik text mode WWW browser with vi like keybindings
newsbeuter text mode rss feed reader with podcast support
nrss A ncurses-based RSS reader
snownews Text mode RSS newsreader
urlview Extracts URLs from text
w3m WWW browsable pager with excellent tables/frames support

b. Chat

finch text-based multi-protocol instant messaging client
irssi terminal based IRC client
linphone-nox SIP softphone - console-only client
naim A console client for AOL Instant Messenger and IRC
weechat-curses Fast, light and extensible IRC client

c. Download Managers

aria2 High speed download utility
axel light download accelerator - console version
bittorrent Original BitTorent client - console tools
clive Video extraction utility for YouTube, Google Video and other videos
ctorrent BitTorrent Client written in C++
curl Get a file from an HTTP, HTTPS or FTP server
ftp The FTP client
hpodder Tool to scan and download podcasts (podcatcher)
ncftp A user-friendly and well-featured FTP client
podracer podcast aggregator/downloader
rtorrent ncurses BitTorrent client based on LibTorrent
wget retrieves files from the web

d. E-Mail

alpine Text-based email client, friendly for novices but powerful
bsd-mailx A simple mail user agent
cone COnsole Newsreader and Emailer
elmo text-based mail-reader supporting SMTP and POP3
mutt text-based mailreader supporting MIME, GPG, PGP and threading
procmail Versatile e-mail processor

e. Network Tools

bluez-utils Bluetooth tools and daemons
cnetworkmanager command line interface for network manager
giftcurs text-based interface to the giFT file-sharing system
hostname utility to set/show the host name or domain name
ifupdown high level tools to configure network interfaces
iproute networking and traffic control tools
netcat-traditional TCP/IP swiss army knife
network-manager network management framework daemon
openbsd-inetd The OpenBSD Internet Superserver
openssh-client secure shell client, an rlogin/rsh/rcp replacement
openssh-server secure shell server, an rshd replacement
rsync fast remote file copy program (like rcp)
samba a LanManager-like file and printer server for Unix
smbclient a LanManager-like simple client for Unix
smbc samba-commander - curses based samba network browser
ssh secure shell client and server (metapackage)
telnet The telnet client
traceroute Traces the route taken by packets over an IPv4/IPv6 network
vpnc Cisco-compatible VPN client
whois an intelligent whois client
wireless-tools Tools for manipulating Linux Wireless Extensions

8. Security

a. Forensic and Recovery Tool

autopsy graphical interface to SleuthKit
dares rescue files from damaged CDs and DVDs (ncurses-interface)
dcfldd enhanced version of dd for forensics and security
ext3grep Tool to help recover deleted files on ext3 filesystems
foremost Forensics application to recover data
magicrescue recovers files by looking for magic bytes
myrescue rescue data from damaged harddisks
rdd a forensic copy program
recoverjpeg Recover jpeg pictures from a filesystem image
recover Undelete files on ext2 partitions
scalpel A Frugal, High Performance File Carver
scrounge-ntfs Data recovery program for NTFS filesystems
secure-delete tools to wipe files, free disk space, swap and memory
sleuthkit Tools for forensics analysis
testdisk Partition scanner and disk recovery tool
wipe Secure file deletion

b. User Management

adduser add and remove users and groups
calife Provides super user privileges to specific users
fakeroot Gives a fake root environment
finger user information lookup program
john active password cracking tool
makepasswd Generate and encrypt passwords
passwd change and administer password and group data
pwgen Automatic Password generation
rig Random identity generator
sudo Provide limited super user privileges to specific users
user-setup Set up initial user and password

c. Anti-Virus and Encryption

ccrypt secure encryption and decryption of files and streams
chkrootkit rootkit detector
clamav anti-virus utility for Unix - command-line interface
clamav-freshclam anti-virus utility for Unix - virus database update utility
clamfs An user-space anti-virus protected file system
fileschanged command-line utility that reports when files have been altered
iptables administration tools for packet filtering and NAT
mcrypt Replacement for old unix crypt(1)
tiger Report system security vulnerabilities

9. Time

a. Calendar Utilities

abook text-based ncurses address book application
birthday Display information about pending events on login
calcurse text-based calendar and todo manager
ccal Colorised calendar utility
devtodo hierarchical, prioritised todo list manager
gcalcli Google Calendar Command Line Interface
gcal Prints calendars
hodie prints the date in latin
leave Reminds you when you have to leave
note small program managing notes from commandline
pal command-line calendar program that can keep track of events
pcal generate Postscript calendars without X
remind a sophisticated reminder service
tdl To-do list manager
tina A curses personal information manager.
tudu Command line hierarchical ToDo list
when tiny personal calendar
worklog Keep Track of Time worked on Projects
wyrd text-based calendar applicatio

b. Scheduling Tools

anacron cron-like program that doesn't go by time
and Auto Nice Daemon
at Delayed job execution and batch processing
cron management of regular background processing
loadwatch Run a program using only idle cycles
rcconf Debian Runlevel configuration tool
sysv-rc-conf SysV init runlevel configuration tool for the terminal
timeout Run a command with a time limit.

Friday, 23 October 2009

Back to the Future!


I have finally got round to releasing the first CLI edition of Vinux 2.0 after several weeks of experimenting and tweaking. There are still a few things to do, but the law of diminishing returns was starting to kick in so I decided to release and be damned. Things to do include providing a USB installation option and the inclusion of emacspeak and festival etc, which I haven't managed to get working yet. The CLI edition comes in the form of an installable live CD which provides a console only version of Debian Lenny 5.03 with Speakup installed and enabled by default. This editon is aimed at intermediate and advanced users and perhaps beginners who want an easy introduction to the command line interface. It was inspired by GRML, but is aimed specifically at VI desktop users rather than sighted sysadmins. It comes with over a thousand packages installed covering all of the main catagories: editors, browsers, mail clients, text-based games and lots of utilities etc. It also features over 60 single character command aliases for all of the most common commands e.g. 'm' for menu, 'i' for internet, 'e' for editor etc. To see a full list just type 'h' to view the help file or 'a' to see a list of all of the alias commands.

This editon of Vinux is the first one to be produced using the new build script created by David Knight and then mutilated with a chainsaw by me in the garden shed to create a CLI version. The next stage will be to create a hybrid GUI/CLI version of the build script which will allow anyone to create a customised version of Vinux containing just the features and packages they want e.g. a very basic CLI version or a feature filled GUI distro with all the trimmings. This also means that it is possible to create a new version of Vinux in under an hour so it will now be possible to produce a variety of Vinux editions with different sets of features: a very basic CLI version with Speakup installed and nothing else, a fully featured CLI version, a standard GUI version and a even a DVD version featuring the best of CLI and GUI applications.

The process of creating the build script and creating a viable CLI version has been both interesting and challenging. For a start I don't usually use the command line unless I have to, so I had to learn how to navigate and edit files etc and after four weeks on nothing but CLI every evening and weekend I have become quite proficient and am starting to find the mouse frustrating in GUI mode and missing the simplicity and power of the command line. I have also been trying out lots of new CLI applications and have been impressed with both the wide range of applications and how easy they are to use. Highlights include the pdmenu package which allows you to navigate Debian menus using speakup, the aptitude ncurses package manager, splitvt which allows you to split the screen into two consoles and jump between them using ctrl+w and screenie which allows you to open multiple console windows, give them names and then jump between them from a simple menu. I have included a wide variety of packages which cover all the main desktop catagories and were possible I have provided three or four different packages that do the same job so you can use the one you find most suitable. I have also included hundreds of Linux utilities and as much documentation on how to use the command line I could find in the standard Debian repositories. I have only included three third party packages: remastersys - used to create Vinux and install it to hard disk, cnetworkmanager - a command line application to control and configure network manager, and smxi - an advanced package to manage updates and upgrades to new versions (use with caution).

Next on the agenda is to start merging the CLI and GUI versions of the build scripts, create a range of Vinux 2.1 releases and then to work on producing a Vinux Handbook which will contain user guides on how to use and install Vinux. I am hoping that members of the Vinux community will contribute to the Handbook and that it can be kept up to date as new versions are released. This is one area were anyone can make a contibution to the project no matter what their technical knowledge and skills. I will produce a list of what topics needs covering soon and it might also be worth creating audio and video guides as well.

Sunday, 30 August 2009

The Future of Vinux!


The Vinux project will be one year old on the 28th November 2009, a year to the day when I first released Vibuntu 1.0 which was based on Ubuntu 8.10! I have just released Vinux 2.0 which is based on Debian Lenny and this is the most stable and responsive version of Vinux to date. So where does Vinux go from here? I suppose the next logical step would be to start building it from Debian Squeeze which would provide access to newer versions of the included software packages. However, there are several important issues I feel we need to discuss as a community.

1. My Role in the Development of Vinux.

I have spent nearly all of my spare time over the last year working on Vinux and while I have learnt a great deal and found it very rewarding I don't think I can continue developing Vinux on my own. There are three reasons for this; Firstly if I continue to try and develop Vinux, hold down a full-time teaching job and have a meaningful family life I am going to burn out! I am mentally and physically exhausted from spending so much time on Vinux. The only time I can work on Vinux is in the evenings, weekends and holidays and thus I get very little rest and recuperation and have recently developed neck and shoulder problems because of the amount of time I have been spending at my computer. The second reason is that I also feel that I have reached the limits of my knowledge and skills with Vinux 2.0! In other words I don't feel I can improve significantly on what I have already achieved on my own. Finally, there are two or three Linux distributions that are in effect 'one man shows' like Vinux. The problem with this is that when the main developer is ill or takes a sabbatical from the development things can go down the pan very quickly as happened in the case of Puppy Linux and PCLinuxOS recently. Don't get me wrong, I still believe in the need for a specialist version of Linux for the visually impaired, and I still want to be involved in its development and production. It is just that I believe that in order for Vinux to be sustainable and progressive we need a small team of core developers who can share some of the work load.

2. Possible Development Models.

There are several different ways in which Vinux can be developed: The simplest model is to continue with one lead developer who actually puts the final distribution together after other members of the development team have submitted their individual contributions. This could be me or another more able member of the development team. We could adopt a rotation system in which different developers take turns to release the next version of Vinux, with contributions from other developers, or we could adopt the Puppy Linux development model, in which a variety of different releases are made by different developers. The most complicated option is for everyone to work on the same version using an online repository using Git or Subversion so each developer could submit their own contributions to a community version, but this option is way beyond my own knowledge and skills to set up and manage. So there are many ways the development of Vinux could progress and I would like to know what other people think about these options.

3. Different Development Roles.

No matter which model we adopt there are a wide variety of different roles that people can take on no matter what level their skills and knowledge are. These include (in no particular order):

Bash Scripting - Writing scripts which add functionality and/or automate the build process e.g. if someone could automate the whole build process this would significantly reduce the amount of work involved in building Vinux.

Writing Accessible GUI Applications - If you are a competent programmer you may be able to create new applications or GUI front ends for existing text-based applications. This may involve using Zenity to create simple dialogue boxes or writing fully blown GTK applications.

Testing and Feedback - If you don't have any programming skills you can still help by testing out Vinux in different scenarios on different machines and then giving detailed feedback to the core developers.

Writing How-To's and Guides - Creating text and/or audio based guides on how use and install Vinux, perform specific tasks or use particular applications.

Creating the Actual Distribution - This is currently the most demanding task which involves modifying an installed system and then remastering it to a Live CD. This is currently done with Remastersys but there are other ways to do this.

Translating Vinux - Creating a version of Vinux in your own native language using the step by step instructions provided and then making it available to other people in your own country.

Create Graphics - Create new icons, logos, wallpaper and graphical themes for Vinux which would give us an original look and feel and our own visual identity.

Create Sounds - Record music, sound icons or other audio materials that can assist accessibility and/or give us our own auditory identity.

Managing the Website - Updating and managing the Vinux website where users can download the iso images of the different versions of Vinux and find information. Osvaldo la Rosa is currently in this role and I hope he is willing to continue doing this.

Running a Forum - We already have a mailing list, but not a full blown forum. It would be great if someone was able and willing to set up and manage a Vinux forum.

Mailing List - We already have an active mailing list which I am currently managing, but it wouldn't hurt to have a few more people administrating and moderating the list so that things don't get out of hand when I am unavailable.

Running a Wiki - I think it would be a good idea to have a Vinux wiki which members of the community could modify and contribute to independently. e.g. people could post feedback, tips and how-to's etc. This would obviously need to be moderated and managed by someone.

Producing a Virtual Edition - The virtual edition has proven very popular with users who are uncomfortable partitioning their hard drives and would prefer to use Vinux as a guest operating system within Windows. This role is currently filled by Mobeen Iqbal and I hope he will continue to do so.

Hosting Space - We are running short of hosting space and this shortage has been made worse by the fact that I no longer gave access to the College file server where I stored old versions of Vinux. Sebastien Naudet has already generously provided us with another 8GB of hosting space but extra storage space is always very welcome.

Promoting, Demonstrating and Teaching Vinux - If you don't have the time and/or skills to help in any other way you can tell other VI users about Vinux, demonstrate it to colleagues and friends and teach people how to use it in person or on the forums and/or mailing lists etc.

4. What next? I would like to hear peoples views on the issues I have raised in this message. If you are willing and able to contribute to the Vinux project in any way at all then please let us know. I don't want anyone to commit to anything they aren't able or willing to do, but I would ideally want to be able to put peoples names to specific roles to formalise the development team. There is no reason why one person cannot take on more than one role or more than one person can perform the same role as far as I am concerned. This will of course require someone to coordinate or lead the whole project, which I am of course willing to do, but I wouldn't object if someone with more time and ability wanted to take on the role of lead developer. I await your responses with interest!

Roll Your Own Vinux 2.0!


1. Download and Install Debian


Download the latest Debian Lenny Installation CD from here: http://cdimage.debian.org/debian-cd/5.0.2/i386/iso-cd/debian-502-i386-CD-1.iso

Burn the iso to a blank CDR, reboot the computer and install Debian to the hard disk selecting the desktop, laptop and standard system options, do not use a Network Mirror when asked and use 'vinux' in lowercase for all usernames and passwords etc.

2. Modify the Apt-Get Sources List

Once the computer reboots open a terminal, switch to root by typing 'su' enter your root password and then type 'gedit /etc/apt/sources.list'. Select and delete all existing entries and then either copy and paste, or type the following list exactly as written into the file:

# Vinux 2.0 /etc/apt/source.list

deb http://ftp.uk.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.uk.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile/ lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile/ lenny/volatile main contrib non-free

deb http://debian-multimedia.fx-services.com/ stable main
deb-src http://debian-multimedia.fx-services.com/ stable main

deb http://www.backports.org/debian/ lenny-backports main contrib non-free

deb http://www.geekconnection.org/remastersys/repository/ debian/
deb http://www.geekconnection.org/remastersys/repository/ remastersys-lxde

3. Update the Apt-Get Package Lists

Save the file and then run 'apt-get update' as root, this assumes of course that you already have a working internet connection. There should be no problem if you are using an ethernet connection. If you are using an unsupported wireless card then download this firmware tarball which contains drivers for common chipsets: http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny current/firmware.tar.gz - To install one - extract the files, 'cd' to the relevant directory as root and then type 'dpkg -i . Then install the keyrings for debian multimedia and backports by typing: apt-get install debian-backports-keyring debian-multimedia-keyring

4. Install and Configure Speakup

Open a terminal and as root type the following commands:

apt-get install git-core libespeak-dev speakup-source
git clone git://hubbs.homedns.org/speakup.git
cd speakup
cd contrib
bunzip2 espeakup, tab
tar -xvf espeakup, tab
cd espeakup, tab
make
make install
module-assistant prepare
module-assistant auto-install speakup

To test that the installation has worked type:

modprobe speakup_soft start=1
espeakup

Then press Ctrl+Alt+F1 to switch to console mode, login to test it and then Ctrl+Alt+F7 to switch back to Gnome.

To make speakup start automatically:

Add 'speakup_soft' to /etc/modules and '/usr/bin/espeakup' to /etc/rc.local as root using gedit to edit them.

5. Install and Configure Orca.

Install speech-dispatcher python-speechd and espeak by opening a terminal switching to root and then typing 'apt-get install gnome-orca speech-dispatcher python-speechd espeak', switch back to user and type 'orca' to setup Orca, select speech-dispatcher and the desktop layout, then accept all of the other defaults except 'turn on braille monitor' which should be left disabled. Then run 'spd-conf' accepting all of the defaults except the port number which should be 6560. Then restart the computer and after logging back in open the Assistive Technologies manager, click preferred applications, accessibility then check run at start.

6. Enable Orca support for Admin Applications (Launched from terminal).

Firstly Type visudo into a terminal as root, find the line which reads Defaults env_reset and then add the line Defaults env_keep+="GTK_MODULES" underneath it. Press Ctrl+X then Y to save and exit. Next create an .orbitrc file for the root account by typing the following four lines exactly as they are written into a terminal one at a time:

cat> ~/.orbitrc << EOF
ORBIIOPIPv4="1"
ORBIIPUNIX="0"
EOF

Finally start Orca and check the 'Disable gksu keyboard grab' option.

7. Install/Remove Applications.

Type 'apt-get install remastersys synaptic gnome-app-install system-config-printer xterm acpi-support hotkey-setup network-manager mousetweaks gnome-accessibility gnome-accessibility-themes gnome-themes-extras flashplayer-mozilla gstreamer0.10-esd gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-fluendo-mpegmux gstreamer0.10-lame gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly libdvdcss2 soundconverter rhythmbox lynx urlview joe mc irssi alpine tpp ncftp units e3 mpg123 pdmenu partimage sound-icons xzoom vlock testdisk sysv-rc-conf sc alsa-oss aumix autopsy dcfldd foremost scalpel sleuthkit gddrescue wipe ddrescue gnome-audio laptop-mode-tools dnsmasq gedit-plugins ntfs-3g ntfsprogs serpentine tsclient icedove iceowl-extension brltty brltty-x11 gtk-recordmydesktop gwget abiword gnumeric gimp acerhk-source acx100-source aptoncd bum gftp hostap-utils isomaster libgtk2-gladexml-perl linux-wlan-ng rt2400-source rt2500-source rt2570-source rt73-common rt73-modules-2.6.26-2-686 rt73-source atl2-modules-2.6.26-2-686 atl2-source bcm5700-source et131x-modules-2.6.26-2-686 et131x-source samba foomatic-db pitivi audacity bbrun bbtime fbpager fluxbox fluxconf ndisgtk conky iceowl firmware-bnx2 firmware-bnx2x firmware-ipw2x00 firmware-iwlwifi firmware-linux firmware-ralink remastersys-lxde-control-panel nautilus-open-terminal' into a terminal as root.

You can also install any updates at this stage if you want to. Including updating network manager by typing 'apt-get install -t lenny-backports network-manager network-manager-gnome' as root. If asked to update policykit configuration enter 'y'.( if you do this you must also open /etc/NetworkManager/nm-system-settings.conf and change [ifupdown] managed=false to managed=true)

The type 'apt-get remove ekiga cheese epiphany-browser epiphany-browser-data vinagre vino evolution evolution-common evolution-data-server festival freepats'

You can also remove any residual config files listed in synaptic.

8. Enable Orca support for Admin Applications (Launched from the menus)

Simply open the Main Menu manager from the preferences menu and modify all of the entries on the admin menu and the 'system log' manager so that they open as an 'application in terminal' and add 'sudo' in front of the existing commands, removing gksu or su-as-root etc if present.

Then type 'dpkg-divert --divert /usr/bin/sudo.orig --rename /usr/bin/sudo' as root, and then create a file called 'sudo' in /usr/bin/ and type the following code into it:

!#/bin/bash

if [ -d "/live" ]; then
sudo.orig "$@"
else
su -c "$@"
fi

exit 0

Finally make the new /usr/bin/sudo file executable. This will then check whether you are running from the Live CD or an installed system and then use 'sudo' on the Live CD and 'su -c' on the installed system accordingly.

9. Create and Enable Accessible Login Messages

Firstly create the login and success wav files by typing the following in a terminal as root: espeak -w /usr/share/sounds/login.wav "Welcome to Vinux - Please enter your username and password" and espeak -w /usr/share/sounds/success.wav "Username and Password Recognised - Launching Desktop"

Then type 'gedit /etc/gdm/gdm.conf and add the following lines in the
relevant sections:

[daemon]

SoundProgram=/usr/bin/aplay

[greeter]

SoundOnLogin=true
SoundOnLoginSuccess=true

SoundOnLoginFile=/usr/share/sounds/login.wav
SoundOnLoginSuccessFile=/usr/share/sounds/success.wav

Then save the file and restart the computer to test the login sounds.

10. Set Keyboard Defaults

Open the Keyboard Manager and set the following:

Default Layout: UK (Add Spanish, French and German)
Repeat Keys: Delay = Long
Repeat Keys: Speed = Slow


11. Add keystrokes to control Orca

Open the Orca Preferences Manager and set the following keyboard commands in the keybindings tab.

Increase Voice Rate: insert+right
Decrease Voice Rate: insert+left
Increase Voice Pitch: insert+up
Decrease Voice Pitch: Insert+down

Toggle Magnification On/Off: insert+m
Increase Magnification: insert+equals
Decrease Magnification: insert+minus
Invert Colours: insert+i
Toggle Next Magnifier Position: insert+n
Toggle Cursor Enhancements: insert+c

12. Add Storm Dragon's Orca Customisations script.

Navigate to http://www.stormdragon.us/orca-customizations/ and fill in the online form to create the following keyboard commands.

Read Time: insert+t
Read Date: insert+d
Read Battery Power: insert+p
Read Weather: insert+w

Check for Updates: insert+u
Import Updates: insert+shift+U

When you create the script a copy will be downloaded into your home directory. Copy this into the hidden .orca folder in your home directory and restart Orca to test them.

13. Add Gnome keybindings

Open the Keyboard Shortcuts manager from the Preferences Menu and enter the following keybindings:

Open Terminal: ctrl+shift+t
Open Home Folder: ctrl+shift+h

Volume Up: ctrl+shift+up
Volume Down: ctrl+shift+down

Toggle Maximise Horizontally: ctrl+shift+x
Toggle Maximise Vertically: ctrl+shift+y
Toggle Maximise Window: ctrl+shift+z
Toggle Fullscreen Mode: ctrl+shift+w

14. Add Gconf Keybindings

Open the Gconf-Editor in the System Tools menu and navigate to Apps > Metacity and then use the Global_Keybindings and the Keybinding_Commands windows to set the following keybindings.


Iceweasel: ctrl+shift+i
gnome-appearance-properties: ctrl+shift+a
gconf-editor: ctrl+shift+g
gnome-keyboard-properties: ctrl+shift+k
gnome-dictionary: ctrl+shift+d
gnome-power-preferences: ctrl+shift+p
gnome-screensaver-preferences: ctrl+shift+s
gedit: ctrl+shift+e
nautilus-file-management-properties: ctrl+shift+f
gnome-display-properties: ctrl+shift+r
gnome-mouse-properties: ctrl+shift+m

/usr/bin/live: ctrl+shift+o

Then create two scripts, make them executable and place them in /usr/bin.

Script #1: This will decide whether you are running from the Live CD and then kill and restart Orca and Speech-Dispatcher.

#!/bin/bash

if [ -d "/live" ];then

killall orca
sudo killall speech-dispatcher
speech-dispatcher
orca

else

gnome-terminal -e /usr/bin/inst
speech-dispatcher
orca

fi

exit=0

Script #2: This script is only called if you are on an installed system. If you are running from an installed system you will have to enter your admin password and press enter without speech!

#!/bin/bash

killall orca
sudo "killall speech-dispatcher"

exit=0

15. Set File Browser Behaviour

Open the File Manager window and set the following defaults:

Always open in Browser Window: Checked
Preview: Set all to Never apart from Number of Items

16. Set Mouse Defaults

Open Mouse Preferences and enable Show position of Pointer when the Control Key is pressed.(doesn't work well with magnifier)

17. Adjust volume settings: Set Master, PCM, Front and Speaker volume settings to maximum, set line and mic input volumes to 50% and mute them.

18. Enable all of the extra plugins for gedit and add the accessibility and textise plugins for Firefox. Set Firefox homepage to http://google.co.uk and add bookmarks to Vinux websites and create a Downloads folder etc.

19. Edit menus: Hide - Archive Manager, Password and Encryption Keys, Root Terminal, Floppy Formatter, New Login, New Login in a Window, Network Tools, Power Statistics, System Log, About Me, Network Proxy, Preferred Application and Windows. Show - Orca.

20. Open gconf-editor, navigate to Apps > Nautilus > Desktop and hide the three icons which are shown.

21. Change appearances: Change theme to Crux, change purple to dark grey, change background image to Tentacles, the background colour to black, all fonts to size 12 bold and adjust for best contrast, change cursor to a DMZ White and Large and then save as 'Vinux'.

22. Move both panels to the left hand side of the screen and add a third. Make the width 60, show the hide buttons and add whatever items you want from the panel applets menu and the main menu. Then rename panels using gconf.

23. Download and install the UIE-Dark-Eloquence GDM theme from Gnome-Look. Copy any GDM customisations you have made from /etc/gdm/gdm.conf into /usr/share/gdm/defaults.conf otherwise they won't be used.

24. Edit /etc/remastersys/isolinux/isolinux.txt.debian so that it includes an  (Ascii 7) character at the end of each title line. Delete the two splash image files in the grub folder and remove the splash image path from menu.lst.debian file as well.

25. Edit /usr/bin/remastersys-installer and replace 'xterm -e dpkg-reconfigure tzdata' with 'time-admin'.

26. Download cnetworkmanager from the following URL http://vidner.net/martin/software/cnetworkmanager/cnetworkmanager-0.21.1.tar.gz extract the files, navigate to the directory and then type './setup.py install'.

27. Empty the trash, delete all entries from the .bash_history file and save it and then delete the Recent Documents list.

28. Copy everything from the home directory including hidden files into /etc/skel and change ownership to root.

29. Open remastersys, modify the settings as required and create a remaster: and after about 20-30 minutes or so your new live CD image called Vinux-2.0.iso will be waiting for you in the /home/remastersys/remastersys directory.