One of the strengths of RISC OS is the flexibility it allows in handling applications. You can put them where you choose and can subsequently move them easily. This allows you to group like applications together and to impose a logical structure upon your collection of programs. I suspect that this is one of the reasons that RISC OS GUI feels so easy to use. It gives you the feeling, at least, that you are in control of your machine.
This contrasts with the Microsoft approach where the placing of applications is very much under the control of the installation program, and moving programs to somewhere other than where they were installed should not be undertaken lightly.
However, with RISC OS, there is a price to be paid for this freedom. It is easy to get into a muddle, scatter applications all over the place and later not be able to find them.
My initial solution to this problem was to put everything into the Apps directory. Not a brilliant idea. The Resources:$.Apps directory quickly filled up with rarely used items, and opening the Apps directory to look for an application fired up every !Boot and !Sprites file contained within it.
The method I use now is to keep applications inside their own alphabetically ordered directories.
The picture of the Apps directory on my Iyonix shows the alphabetical directories with S1 open. The second picture shows the contents of the S1 directory.
The directory names are deliberately kept short so that fully qualified names can be listed without spilling over to the next line.
It is now fairly easy to find any application on my machine, provided I remember that I have it!
Although it is easy to find files with this method, it is not always very convenient. I use Dave Ruck's !WorkSpace utility to give me six separate screens to work on. Each screen is used for a different purpose, photos, email, programming, documentation, etc. The Apps directory is not always available on whichever screen I happen to be using.
The rest of this article describes the method I now use to locate and run applications on my RISC OS machines. It is a simple but effective system which involves creating a list of applications which can be viewed and executed via StrongED.
Some customisation of StrongED is required.
You need to define some terms in your UserPrefs copy of the StrongED's BaseMode mode file. If you have not got a copy, make one by opening the directory !StrongED.Defaults.Modes and copying the BaseMode directory to !StrED_cfg.UserPrefs.Modes.
(Hint - on the StrongED iconbar icon, Shift-Select opens UserPrefs and Shift-Adjust opens Defaults.)
Open the ModeFile, find the start of the Search section, and then add the following three lines.
Filename "ADFS::" {~(Ctrl|White) Any}+ App < * "!" {~"." Any}+ > notreadme ~"readme" {Any}6 >
Now define an entry which will allow you to launch an application by double-clicking on its name. Find the Clicklist Select2 section, and add the following as a single line:
Filename Run("Filer_Run <StrongED$Tmp_MarkWord>")
If you want to be able to open an application by a shift double-click, you will need to add a new section to the mode file. Use the following three lines.
ClickList s-Select2 Filename Run("Filer_OpenDir <StrongED$Tmp_MarkWord>") End
Now save your new BaseMode file. Close StrongED and restart it to apply the changes. This may not be necessary if you have set up your preferences to reload changed modes automatically.
First list everything in your top-level applications directory. Then use StrongED to extract just the files that are applications.
To create the file list, I use !EnumDir written by Mike Hobbs(1999). It is written in Basic so runs on 32-bit machines. The following explanation is from the help text.
"This program does a catalog of a directory rather like the *EnumDir command but it operates from the Desktop and outputs in TSV format (tab separated variable). When run, the program sits on the iconbar and when directories are dragged to it the directory structure and all files are listed in TSV format, and the output file can be dragged to your chosen destination."
Enumerate your top-level applications directory, e.g. ADFS::HardDisc4.$.Apps and save the output. This creates a file called !Apps. Rename this to AppList and set the filetype to Text.
(You can modify the program to output a textfile instead of CSV: filetype$="Text" :REM output filetype )
Now open !AppList in StrongED and press <f2>. Set the search window to Advanced and use the predefined search term - App.
This will open a 'ListOfFound' window which contains a line for each line in AppList that ends with a leafname preceded by "!". This will be all of your applications - plus a few lines that you don't need.
Save this ListOfFound as a file. Call it templist.
Open templist in StrongED and use Advanced search with the predefined search term - notreadme. This will produce a ListOfFound window and remove the !Readme files from the list of applications.
Save the ListOfFound window as !AppList in the Apps folder. I have put in the "!" so that it sorts to near the top in the directory.
Your !AppList should look something like the example screenshot.
Make a convenient shortcut to !AppList. I put mine on the iconbar at boot time using AddTinyDir in the Desktop obeyfile.
Open !AppList with StrongED. Find the application you wish to launch, by inspecting the alphabetically ordered list or by using StrongED's search facilities.
Double-clicking anywhere on the line containing the fully qualified application name will launch it.
If you prefer, you can open the application directory by holding down shift and double-clicking.
The !AppList technique really has made it much easier to find an application without opening and closing lots of folders. I have also used a similar technique to index all the documentation in my machine. The list includes Help files, PDFs, HTML manuals and plain text ReadMes.
The above process is a bit long-winded, but once you have made the changes to the StrongED mode file you can produce a new !AppList in a few minutes. Or, if you prefer, it is easy to maintain the list by adding new applications manually.
As well as the alphabetic list of applications I keep additional sublists in the !AppList file. These contain lists of related applications. Thus I have sets for internet, drawing, music, photos, web development, and 26-bit only programs. These bundles are a lot easier to maintain than the directories of shortcuts I used to keep.
While developing the above technique I received an email from Gavin Wraith suggesting that the job could be done easily by using a scripting language in conjunction with StrongED. This looks like a good excuse to try out StrongED's scripting capability. I mean to try to automate the steps using AWK or LUA.
The above technique was developed with help from Fred Graute, the StrongED maintainer, and from the c.s.a.Apps Usenet contributors.