Reusable Computer Network (ReCoN)

The Reusable Computer Network (ReCoN) builds networks of computers from mini-itx, USB ThumbDrives and older computers. ReCoN uses two Linux distributions to create a powerful network of computers that can be built for next to nothing. The concept is based on the fact that, most homes, schools and businesses now have at least one new computer at their location and they also have a number of older computers they just do not know what to do with. ReCoN provides a way to leverage the one powerful computer to be used effectively by the older computers, the mini-itx computes and ThumbDrives in a network that is easily configured. The goal of ReCoN is to create a network of computers using available resources.


The ReUsable Desktop is a project to create a specific Desktop using the JWM Window Manager running on DSL. JWM is very lightweight and so runs fast on any hardware and also provides a lot of options that are easy to configure for the specific Desktop. The project focuses on a Desktop designed for a high school science lab that uses web based learning as a major part of the class. The design and choice of programs available to students reflects the need to help students focus on a learning environment with a minimum of distractions. The Desktop will be a simple single click to access all of the programs the students will use. This application can be easily modified to fit the needs of any family or business that would like to create a network.



There are several significant advantages of mini-ITX. The first of course is size. This form factor will provide you with significant size reduction so that you can either consider taking the project as a mobile solution, or save big on desktop space. You could easily save 90% in space reduction vs. a desktop case. Noise is another advantage. Many of these from factors have no fan options. The other major value is power consumption. A typical desktop situation may be a 17” CRT monitor and a ATX format tower with a 350 watt power supply. The 17” monitor will often use 350-400 watts making a power trail of 700-800 watts for a nice desktop. Now this does not even touch on the aspect of heat. If you put this kind of setup into a room with 30 other such machines you will need to turn on air conditioning to maintain a livable temperature and you would need to increase the electrical circuits in that room with additional circuits because one circuit could not handle this type of load from 30 such computers. The advantage here is that you can move from looking at 700-800 watts to 95 watts if you also purchase a 17” flat screen. This is a huge savings on power and suddenly the heat issue is non-existent.


The concept builds upon the approach of developing a server that holds most of the necessary applications. The workstation or host needs to have a way to boot to a USB ThumbDrive. The flexibility comes with the fact that the operating system on the workstation does not need to be modified. The USB device can be used to create individual desktops for each user. That individual desktop can then roam with the user to another workstation on the network. The ReUsable concept develops from the fact that the USB Drive is able to be used on multiple hardware sources as well as multiple operating systems and still provide the user with the same Desktop and options as well as their specific files.


Almost everyone has an old computer that is not being used. Corporations are plagued with what they can do with old computer hardware. Schools and non-profit organizations can get as many old computers as they want. The ReCoN Project helps people reuse this old computer hardware and make it user friendly. This program is small enough to only require 128 MB of hard drive space and 48 MB of RAM. And yet when it runs it will run as fast as the fastest computer simply because it uses so little hardware resources.

There is a hidden file that allows you to modify the desktop icons. You can modify the ones that are there and what they look like. To see the hidden file open Emelfm and in the upper left hand side of the window you will see an H. Click on this H that will allow you to view hidden files.

You will see a lot of files. The one you are looking for is called .xtdesktop. Notice that in Linux hidden files are always indicated with a leading period. For each icon on the desktop in this file you will see two files.


The first file is a .ink which looks like this:



















This file lists the command to start the program. In this example:


It lists the Caption: Audacity which you can change by altering the text. It also lists the Icon. The X: and Y: are coordinates on the desktop where the icon will always appear.


You can copy this file to create your own or modify the existing ones. The second file listed in .xtdesktop is the .png or .gif that is used as an image for the icon. In order to see any changes the Window Manager must restart. If you right click and choose Window Manager --> Restart you will see your changes.

Basically, the user may create an icon for any drive, file, folder or program on the Desktop.


Configuring Desktop Icons

There may come a time when you need to configure your own icons on the desktop. The process is not that hard, but there are a few things that may help you in the process.

Icon Placement on Desktop

The X:Y coordinates are important to know unless you are really interested in a mess. Remember Geometry in High School, well that's not it. Each of the icons has a X and a Y coordinate. If you think in terms of a spreadsheet the Y is a row and the X is a column, easier than Geometry. In the example, the X and Y coordinates for 20 icons is listed. Note: this is for setting icons up in the upper left of the screen.


X:8 - Y:5

X:73 - Y:5

X:138 - Y:5

X:203 - Y:5

X:8 - Y:81

X:73 - Y:81

X:138 - Y:81

X:203 - Y:81

X:8 - Y:157

X:73 - Y:157

X:138 - Y:157

X:203 - Y:157

X:8 - Y:233

X:73 - Y:233

X:138 - Y:233

X:203 - Y:233

X:8 - Y:309

X:73 - Y:309

X:138 - Y:309

X:203 - Y:309




Nmapfe will be the example for how to create a program link on the desktop.

Icon Creation

A link to a program will need to be created, it is important to get an idea on how to create some kind of icon to represent that program. In the lower right hand corner of the icons listed is an icon for the the program nmapfe. Nmapfe is a network program that is a great tool for scanning your own network to search for vulnerabilities. The first step to making this program work is to download the Mydsl extension from a mirror. You will need to download the nmap.dsl and the nmapFE-0.2.54.dsl. Download both of these programs and save them in /home/dsl, or what works best for you. Next open emelFM, highlight nmap.dsl, and then click the myDSL button on emelFM. This will install the first program. Then repeat the process for nmapFE-0.2.54.dsl. Open the program once they are installed with the command nmapfe from a terminal. The program will open, now take a screen shot using Gimp or another program.

Once you have taken a screen shot, select the scale tool. The Scale Tool, which is located in the Gimp Toolbox, allows users to scale images down, or blow up images larger than their original size.

This information box displays the original height and width of the image, the current height and width of the image, and the Scale Ratio, which shows the X,Y coordinates.

The size of this image in the example is measured in pixels. This can be changed to other units as well simply by clicking the drop down arrow on the right.



Finally, when the image size has been modified to exactly the desired size, click “Scale” to view the new image.


Scale the image form nmapFE to 50x50.

Save the image with a descriptive name, like Nmap.png. The image, which is now scaled, should be saved as a .png and saved into the .xtdesktop/ directory. Note that the directory is a hidden directory in /home/dsl, notice the “.” before the name. Turn on the ability to view hidden files in emelFM by clicking the “H” in the upper left hand corner.

Create Program Link

Each of the icons is link to a command that executes the program when it is clicked. If you right click one of the icons and select properties you will see an example of how to setup an icon on the desktop. The example listed below shows the core information in a link.. The easiest method is to open one of these icons from the .xtdesktop directory by right clicking and choosing properties.


table Icon

Type: Program

Caption: NMap

Command: nmapfe

Icon: .xtdesktop/nm2.png

X: 203

Y: 309



The icon and link start are enclosed in the “table icon” and the “end” . “Type “ signifies the kind of icon link that is created, “Program” for example. The “Caption:” is the text that is listed under the icon on the desktop. The “Command:” is critical because this is what will launch the program that is connected with the icon. In the example, nampfe is the command to launch nampFE. Two important issues are relevant to placing a command in the “Command:” line. First, where in the file system, is the command? For example, if you wanted to start a program like nmapfe, how do you know where it is? One way to find the location of a program is to use the “which” command. To find nmapfe just use this command:


which nampfe




This provides the exact location. This makes sense, except why is the command listed as nmapfe instead of /usr/bin/nmapfe? The answer is that as a user on the system, the path for each regular user allows automatically to look in two directories for commands:






The second is issue is who you are when you click on the icon. Any commands in /bin or /usr/bin directories will be in any user's PATH so they will not need to enter the whole path for the command. /bin and /usr/bin contain commands that both root and users will use. For example: /bin/mount is a command that root will mount directories but users will use this command to list mounted directories.


The root user is intended to run many commands that are not available to other users of the operating system. Here are several directories that are intended only for the root user:

/sbin - This directory contains commands for modifying disk partitions (fdisk), changing boot procedures (lilo), and changing system states (init).

/usr/sbin - This directory has commands for managing user accounts (adduser), configuring the mouse(mouseconfig) or keyboard (kbdconfig). Most daemon processes are also in this directory.

If you will be running a program as root, then you need to be root when you click on the link. If you will do a sudo su, which means that you may be a regular user and then become root, it is important to put the full path in the command.

The “Icon:” line is the path to the icon that you would like to use. It makes sense to save your icon that you will use in the .xtdesktop directory, remember this is a hidden folder.

The X and Y coordinates have been covered so you end up with a new icon on the desktop that is a quick link to a program that you may use all of the time.


Change Backgrounds

Changing backgrounds is easy. Right click the desktop select Desktop and then Wallpapers.

Wallpaper.lua now has a color chooser for background color.


For example this desktop was created for a science department.

This image is from a Pentium II 166MHz IBM Thinkpad that can run OpenOffice, Gimp, Audacity and Windows XP while in DSL.

Creating Links to Remote Programs


The key to the whole concept is creating links to desktop icons that provide access to programs that cannot be run normally on a ThumbDrive, use Windows or cannot be installed on DSL for some reason. Using SSH to connect to another computer or server that has the programs running provides huge options for the use of this concept. It works well with old computers that were going to be thrown away, old laptops, thumbdrives, compact flash drives, mini-itx machines just about anything! In order to set this up you will need a Linux computer that can act as a server to enable the running of programs that are too difficult to run on DSL. For the example a CentOS machine was used. Basically to setup a machine to connect the DSL computer to you need to load a graphical interface and have a network card with connection between the two computers.

Setup User Accounts

On the server you will need to setup all of the users who will be on the DSL machine. These users will need to have a username and a password which they will use to connect to the server. The significance of setting up the users on the server is that each user's home directory will be on the server so that backups can be performed and so that a user can connect from any location and still have their files available.

As the root user, select System Settings on the server and then choose Users and Groups. This will open an interface to add users and groups. Choose Add User.


When Add User is selected, this window will open. Remember, that usernames and passwords are case sensitive. Enter the username and password as you create each user. The Login Shell is by default the bash shell and should be left that way unless you have a good reason to change it. Notice that the home directory for tom is /home/tom. This allows you to backup the entire /home directory and have all of the files of those on the network saved at once.

CentOS creates private groups for each user. What this means is that no one else on the network can read or view any files of any other user. This provides additional security and privacy.

At times it may be important to create a group directory that could be used by all users as a way of sharing information. This could be in an office or a family sharing ideas. To create a group that could be used by a number of users choose Add Group, you will see this window open in which you may name your directory.


This example shows the Group name is family, make the directory that you will share descriptive.

Once the Group is created you will see it listed. Note that each user has a private group.


To add users to the Group select the family, or group name, and then choose Properties.


Check all of the members that you would like to place in the group. The users that you check will then have access to the group directory.


Once you have checked each user to be placed in the group you will then see those users listed.


Setup the SSH Server

Setting up the SSH server basically means making sure SSHD starts each time the server starts. Select System Settings and Services as the root user. Be sure that you are editing runlevel 5 and then check sshd and save your settings.


The next setting that needs to be configured is the firewall. Select System Settings, Security Level and then make sure that SSH is selected. This example shows that the server is only allowing SSH connections to occur which is typically the only service you need to provide on the network.




Once the server is setup, you will be able to configure a script that will allow you to run any program on the server off your DSL machine, including OpenOffice, Wine, Movies, ect.



Create Desktop Icons

The process on how to create and install desktop icons is listed above. See the icontool movies as well. However, configuring local connections is somewhat different than creating encrypted network connections. The place to start with the process is the text for the icon on the desktop.


table Icon

Type: Program

Caption: Writer

Command: aterm -T -e /bin/bash /opt/scripts/

Icon: .xtdesktop/writer.png

X: 8

Y: 157



Note the “Caption:” allows you to signify the caption for the icon. The command is going to a script that has been placed in the /opt/scripts directory. You will need to create this directory. The reason for the creation of the directory is to keep users aways form deleting the scripts. The directory should be readable and executable by dsl the standard user. You will need to change this if you are using a different user. It is important to get the terminal command “aterm -T -e /bin/bash” in this line so that the command will work correctly.


Configuring the Scripts

Caution...these scripts are experimental in nature and damage incurred to the planet is going to be your responsibility... be sure to backup your stuff. Create your script and save it in the /opt/scripts directory. Be sure to run this command to make it executable:


chmod 755 /opt/scripts/


The actual script is simple and provides for the user to enter a password to access the server that the program is running off, OpenOffice Writer for example The # represent comments in the script. The “ssh -X -f” provides a way to run graphical programs from a server remotely. Enter the user name of the person who will make the connection and then follow that with the IP Address of the server that they will connect to. On an internal network you will not be able to ascertain any speed difference from a local application vs. the application running off the server.. The username precedes IP Address of the server followed by a space and then the path to any application the user has rights to on the server. This information is then directed into a terminal session so the user can type a password for accessing the application. The sleep 2 command allows the terminal to close after 2 seconds and just cleans up the desktop



# Script to start X Window Session
# Main()
ssh -X -f This e-mail address is being protected from spambots. You need JavaScript enabled to view it /opt/openoffice.org2.0/program/swriter > aterm
sleep 2

This script can then be duplicated with small modifications for any program you would like to run on the server. This also also allows the user to save on the server instead of the local device. This is an important feature in an organization that needs to have backups of important information.


The Menu is the list of programs that are available on the system. Right click the desktop to see the menu. Menus are developed to give users quick access to programs by creating logical groups for programs. This example shows the myDSL extensions or additional programs that were added after install.


You also see in the example that the menu is divided into categories which makes it easier for the user to find the programs that they need fast.


Menus can float, that means that a user can open the menu and then use the mouse to grab the top bar and pull the menu apart in sections. Here is an example of a floating menu.

Turn off menus by right clicking on the top bar.

Remember that only a small portion of the programs actually available are listed in the Menu. Hundreds of programs that can be run from the terminal are not show here like cal. Open a terminal and type the command cal and you have a calendar program for example.


Modify the Menu


If you decide to modify the menu for Fluxbox it is located in the .fluxbox folder which is a hidden folder. The first thing to do if you want to modify the menu is to create a backup...just in case. At a termina type this command:


cp /home/dsl/.fluxbox/menu /home/dsl/.fluxbox/menu_bk


Note that .fluxbox is a hidden directory. Appendix B is a listing of the complete menu so you can use that as a reference.


Here is a section of the menu so that you can see who it is put together. A simple menu created for a science section is listed below the games section and an explanation follows.



 [submenu] (Games) {}
[exec] (xTris ) {/usr/games/xtris -flashy}
/usr/games/tetrinet DamnSmall localhost }
[submenu] (Ace of Penguins) {}
[exec] (Canfield) {ace_canfield}
[exec] (Freecell) {ace_freecell}
[exec] (Golf) {ace_golf}
[exec] (Mastermind) {ace_mastermind}
[exec] (Minesweeper) {ace_minesweeper}
[exec] (Pegged) {ace_pegged}
[exec] (Solitaire) {ace_solitaire}
[exec] (Taipedit) {ace_taipedit}
[exec] (Taipei) {ace_taipei}
[exec] (Thornq) {ace_thornq}

[submenu] (Science) {}
[exec] (Help Menu ) {dillo file:/usr/share/doc/dsl/help.html}
[submenu] (Science Curriculum) {}
[exec] (School Site) {/usr/local/bin/firefox}
[exec] (Online Class) {ssh -X -f m}

As you compare the two menus you can see that there are basic components that are important to the configuration.

[submenu] (Science) {}
This is not only a submenu item but it is also a title of the submenu. Note that the {} is empty indicating ensuing that a click on the heading will do nothing, it is only text.

[exec] (Help Menu) {dillo file:/usr/share/doc/dsl/help.html}
The [exec] is an executable indicator. When you click on the text (Help Menu) the dillo browser will execute and the user will be sent to the URL indicated. This enables you to configure Dillo to be used as an in house Help Menu if you are sharing the desktop.

[submenu] (Science Curriculum) {}
This provides an addtional submenu. These submenus are basically unlimited. This submenu explores the Science Curriculum options.
[exec] (School Site) {/usr/local/bin/firefox}

In this example firefox is used locally and connects to a school website automatically when started. This brings all community members to a common site to share information and training online.


The Panel is a rectangular block that contains open programs, workspaces and the date/time. Basically, the Panel is a tool to provide resources for you the user.


This example, which by default is located in the bottom center of the page, shows that the user is in Workspace 1, that they have two programs open in this workspace (Dillo and Bash) and it shows the time.


Workspaces allow you to have four separate desktops, each with different programs running. This is a convenience factor that many users like. Often people will run a web browser in one desktop, their work project in another and a game in the third. You get the idea, configure the desktops how they will be most usable for you. By default there are 4 workspaces numbered 1 to 4. When you right click the Panel you will have the option to rename the current Workspace.


Styles which change the looks of the background, windows, icons and text are available by right clicking the desktop and selecting desktop/styles. A list of styles will show you what is available. Make a selection and the style will change.


When you have a number of windows open on the desktop you will only be able to interact from the keyboard with one window at a time, this is called focus. Focus is the selection of a window in order to interact with the program that is represented in the window.


If you choose Desktop/Configuration and Focus Model this window will open that will allow you to adjust how a window receives focus. By default you must click on a window with the mouse for it receive focus. You can use Sloppy Focus which will achieve focus by moving your mouse over a window. You can easily experiment with this by selecting different focus models, opening several windows and watch how focus is achieved. Sloppy focus gets some in trouble because they do not recognize that they have selected a window and they start typing with problematic results.

Transparent XShell

Version 1.3 brought the transparent shell which is a very nice feature. This is a XShell interface that you can see through instead of having a solid color. Here you can see that the transparent XShell is easily selected from the menu.


There are other options which give you a Light or Dark XShell depending on what is easiest for you to use. The Root Access XShell is for issuing commands as root.


Here is an example of the XShell as you see through it to view the desktop.




The Slit

The Slit was removed in version 2 and replaced with a desktop version. The Slit was originally a Blackbox feature that was inherited into Fluxbox, thus DSL. A small version of the Slit now provides the audio controls and allows users to mount partitions form the desktop.

The Slit is not only unique but very helpful is the vertical bar that provides information about how your computer is working. This bar is divided into six sections:


Network Usage – indicates what percentage of your network is being used

CPU Usage – indicates what percentage of your CPU is used

Memory – the top line shows and indicator in text MEM 515264 of total RAM

- the second line is a visual bar to indicate percent of used RAM

- the third line indicates percent free

- SWAP shows how big your SWAP file is

- the bottom line in this box is the percentage of SWAP used


Drives – this indicates Floppy / CDROM or USB Drives

Workspaces – the four squares represent workspaces

Sound - the bottom section provides a way to configure and adjust sound

- the bottom scroll bar allows you to shift more focus on left and right



Sound area allows you to configure sound using the small arrows that you see. When you select an arrow a sound level will appear on the desktop. This will allow you to adjust, different areas of sound:


Master Volume Level

PCM Wave

CD Volume

Microphone Volume

Input Gain

Line In

Phone Input and Output

Video Input and Output


Desktop Stats

Version 2 brought another innovative feature to DSL, and that is the desktop see through version of the Slit.


The new feature shows network usage a the top, traffic up and down. It shows CPU usage, RAM, Swap, the / directory, /home, uptime, if you are on battery, Linux kernel and hostname with IP Address. These features are nice and actually provide more desktop space.



There has been a lot of interest in the installation of DSL on Pendrives, CFDisks, and rebuilding DSL with your own tweaks. Now all of these options are available from the Menu. By selecting Apps/Tools this window is shown that will allow you to make your choices.



Mirror Selector – select the DSL mirror to download extensions
myDSL Browser – allows you to review extensions you may want to download and install
Net MAN – find MAN pages online to help with problems

emelFM – file manager

Midnight Commander – file manager that can run as a user or root

Find – tool to find a file

Upgrade to GNU Utils

Enable Apt – apt allows you to download and install applications easily

Synaptic – allows you to add applications from a database online

Install to Hard drive – install DSL to the hard drive

Frugal Install – install compressed image

Install to USB Pendrive – install DSL to a Pendrive– installation is read only

Make a Boot Floppy

CD remaster – script that allows you to rebuild DSL the way YOU want
CD Burn App – burn a CD with DSL
Editres – a tool that edits the X toolkit widget resources
X Window Snapshot – take a snapshot of the X Window (screen shot)
Xkill – program that allows you to kill a rogue application