PART 15: THE KEYS TO SUCCESS
Form and function
Both NeoDesk 4 and the official Atari desktops in TOS versions from 2.05 on up have programmable hotkeys. These keys operate only on the desktop. (In other words, while you can program them to run any application, you cannot program them to perform functions within an application. They are cleared out of memory whenever an application or desk accessory is active as the top window. Hotkeys you create on the desktop will not interfere with hotkeys or function keys that are built into any of your programs.
By "hotkeys" I am referring to both the set of separate keys at the top of the keyboard labeled "F1" through "F10" and the keys on the main keyboard. Both NeoDesk and the later TOS desktops allow you to assign any "Fkey" function key and any keyboard character key to certain actions, but in other ways the two desktops differ. NeoDesk 4's method uses an actual macro program, which records a series of desktop operations for later playback, while Atari's method merely links a single keystroke to a single operation. The NeoDesk method is much more powerful and far more flexible.
The TOS desktops have these limitations:
They allow the assignment of only 20 Fkeys, from F1 to Shift-F10.
They do not let you use Control- or Alt-key combinations with either the Fkey assignments or keyboard hotkeys.
They do not recognize the Esc, Tab, Backspace, Delete, Help or Undo keys as assignable hotkeys.
They will not perform any function associated with a file except to run an executable program.
NeoDesk 4 offers these advantages:
You can choose from a total of 120 possible Fkey combinations alone. That is, any Fkey can use Control, Left Shift, Alternate, Right Shift, Control-Left Shift, Alternate-Left Shift, Left Shift-Right Shift (and so on) as modifier keys.
Any keyboard keys can be used with any of the modifier keys, in any combination, for macros. Thus you could assign a particular action to Control-LShift-Alt-RShift-A, for example.
Any key on the keyboard except the four modifier keys (Control, Alternate and the two shift keys) can be used as a macro hotkey. For example, the Undo key, which ordinarily has no function on the desktop, can be mapped as the "Close Window" key.
Most importantly, a NeoDesk 4 macro can perform any function that can be done from the desktop. It can run an application, show a text, open a specific drive or folder window, move a window, load a NeoDesk information file, and do any of dozens of other functions. A NeoDesk macro can even load a different set of NeoDesk macros. Without question, NeoDesk's macro function is one of its salient strengths.
How NeoDesk does it
NeoDesk does not record keystrokes and mouse movements when you create a macro. Instead, it keeps track of system activity. This is, at the same time, a much better way of recording macros than the typical method of mimicking keystrokes and mouse clicks, and a much worse way. It all depends on what you want a macro to do. If you want a macro to exactly reproduce every keystroke and every single- and double-click of your mouse, you should purchase the Geneva Macro utility from Gribnif or CodeKeys from CodeHead Software. However, if you only want your macros to reproduce the results of your keystrokes or mouse clicks, NeoDesk's macro function is ideal.
Perhaps an example will make this distinction clear. Suppose you have installed the icon for EDGE.PRG, the Diamond Edge hard-disk maintenance utility, on your desktop. You start the begin-macro function in NeoDesk, run Diamond Edge, and then exit. At that time you end the macro and assign a key combination to it.
Any time you want to run Diamond Edge, you can simply press that hotkey. Does that mean that NeoDesk is double-clicking on the EDGE.PRG icon for you? (This is what CodeKeys would do, if you were to create a macro to run Diamond Edge from the NeoDesk desktop with CodeKeys.) You can find out by removing the EDGE.PRG icon from your desktop and pressing the hotkey again; Diamond Edge runs as before. What NeoDesk recorded when it monitored your activity when creating the macro was that a file named EDGE.PRG in a specified folder and path was being opened and, therefore, run.
This difference between the way NeoDesk records and runs macros and the way an external program such as the Geneva Macro utility or CodeKeys runs them is crucial. Because NeoDesk monitors all its system activity, its macros can do anything that you can do at the keyboard or with the mouse. We'll have a few dramatic examples of this below.
Make me a macro. (ZAP! You're a macro.)
NeoDesk macros are easy to create and even easier to use. You can drop the "Options" menu down and click on "Begin Macro," or press Control-Esc. From that point on, your desktop operations will be recorded until you end the macro with a menu click or a second Control-Esc. NeoDesk 4 then asks you to assign a "Keyboard Shortcut" -- a hotkey -- to the macro. You can click on the "Read Key" box and press any key on the keyboard, and then decide whether you want to add any of the modifier keys to the hotkey by clicking on one or more of the four modifier-key buttons. (Any combination is possible.)
Then click on one of the three radio buttons at the bottom (Install, Remove, Cancel). "Install" saves the macro in the NeoDesk 4 configuration stored in your computer's memory. The macro will run, but it will not be saved permanently unless you choose "Save Configuration" under the "Options" drop-down menu. "Remove" erases the macro from memory. "Cancel" does not operate the way you might expect: Rather than canceling the macro, it cancels your decision to end the macro. Think of it as the "Cancel-macro-end" button and you'll understand it better. If you are creating a macro and decide to cancel it, you must click on "Remove" and not "Cancel."
Macros that do more than run programs
NeoDesk macros are great for running your favorite applications with one keystroke. But if that is all you do with NeoDesk macros, you are missing out on a lot of NeoDesk's flexibility.
Macros can chain programs together; that is, a single NeoDesk macro can run a series of programs, with each succeeding application running when the previous one stops. (Just keep the macro recorder on while you do this yourself from the desktop.)
Macros can show text files. Big deal, right? It IS a big deal if one of your text files happens to be a list of macro-key assignments -- in other words, a Help file. After you have set up your macros, open up your word processor or text editor and write a neat, single-page list of macros and their functions. Entries could look something like this:
Diamond Edge............F2 Close all windows....RS-Undo
ST Fax..................F3 Close window............Undo
ST Writer...............F4 Close folder..........A-Undo
Flash II................F5 Select all items......Insert
Good HD backup..........F6 Send formfeed............C-F
GEnieLamp............LS-F3 Reload configuration.....A-R
Spell check...........A-F4 Load macro set #2.......LS-2
In this list, "LS" stands for "Left Shift" and "RS" stands for "Right Shift." "A" means "Alternate" and "C" means "Control."
If you decide to create a macro that lists macro-key assignments, I suggest you follow the convention of using F1 to display the Help file. Then make use of the NeoDesk Desktop Notes function by writing a short desktop note that says the following:
Press F1 for Help
This keeps most of the Desktop Notes capacity free for other memos.
Special macros, or how to make them call themselves
One of the mysteries of NeoDesk, to many users, seems to be one of the menu items under the "Options" drop-down menu. It's always grayed out, and that means you can't do anything with it. So why is it there?
In truth, this menu item -- "Load Configuration" -- is not always grayed out, but there is something you need to do to before you can use it. It switches from gray (the universal indication in most user interfaces that a menu item is turned off) to normal as soon as you click on any NeoDesk configuration file. In other words, if a NeoDesk configuration file ending in the extensions ".INF," ".MAC" or ".NOT" is selected, the "Load Configuration" function is enabled. This allows you to load another configuration into NeoDesk -- another complete NeoDesk information file, another set of macros or another collection of desktop notes.
NeoDesk's pre-assigned hotkey for that function is Control-L. So, by clicking once on an alternate NeoDesk information file and pressing Control-L, NeoDesk will immediately take on a new configuration.
But that's too much trouble, especially since a macro can do it all. Do the same thing while recording a macro, and then save the macro under a key combination that makes intuitive sense -- Alt-I for the main alternative information file, for example, and Alt-Shift-I for a lesser-used one.
Do the same for macro keys. Somehow, there's a sense of minor triumph in getting a macro program to load and unload its own keys. First, of course, you'll need to create separate sets of keyboard macros, saving them under different names (but all with ".MAC" extensions). Then click on each of the macro-key sets one at a time, creating new macros among the primary macro keys that load each of the other macro-key files. But be careful to include one macro in each set of macros that reloads the main set.
If this is confusing, let me try a simple explanation. Here is a set of three macro keys, which in this small example could be the primary NeoDesk macros:
F1 Show Help file
F2 Run Aladdin
F3 Load macro set 2
Here is macro set 2:
F1 Run Calligrapher
F2 Run spell checker
F3 Load macro set 1
That's how easy it is. Keep your layout simple at first; if you're not careful, your macros-calling-macros operation can become too convoluted to follow. This, in itself, is a good reason to maintain a Help file that can be viewed with a single keystroke. (Ideally, of course, each set of macro keys should share many common macros -- keystrokes for closing windows, for selecting all files in a window, and so on, and especially for viewing the Help file. But I cannot emphasize enough the need for a macro in each set of macros that returns you to the master macro assignments. If you leave that out, you will have to manually load the original macros back in.)