Windows GUI Emulation -- a character-cell shell
Community project
[Library]

Why?

Presenting some (or all!) Windows Desktop/Explorer GUI buttons and other controls as pure ASCII text appears, at first, a bizarre waste of time! Wouldn't we lose all that "productivity" and "ease of use" by going back to the Dark Ages of the man-computer interaction -- the character cell interface? Remember those non-proportional fonts (that actually make tabular text readable)? A "console", text-based, application (with recallable and editable commands), today?

After all, one can "easily" click one's way to any dialog box, as in this real-life example. Ready? Start clicking: Start, Settings, Control Panel, Display, Settings tab, Advanced, Monitor tab, Properties, Driver tab, Update Driver (brings up the Wizard -- what took him so long?), Next, Next, OK, OK, all the way back... the usual GUI experience, cherished and perpetuated by 95% of all users today (based on observation in hi-tech environments). It's probably above 99% elsewhere, among non-professionals.

The above sequence, which is not infrequent, is accepted as normal, user-friendly, computer-man interaction. But it should be triggering an alarm in a healthy, self-respecting personality...

This is part of the often-quoted "just a mouse click away" propaganda, but, rest assured, it is not reserved to any specific GUI environment. Mac, Windows, Motif and CDE (both part of the X Window System), Gnome, KDE, GeoShell -- all essentially share the same "vision": mouse, icons, scroll-bars, no automation whatsoever. They are visually pleasing, easy to start using, but lead to almost irreversible "addiction", humiliation and slavery.

The GUI seems to paralyze and "dumb-down" the brain, as the user does not seek to find new ways for getting the work done faster and more reliably. "Beaten men follow beaten paths", somebody said. The above and similar long-winded paths are being taken millions times every day.

To be fair, for the majority of daily tasks, the buttons are somewhat more accessible -- somewhere on the visible screen, in fixed or floating toolbars, behind pull-down and pop-up menus, but most users ignore obvious ways of speeding up their work.

In a login dialog, for example, it appears that a large majority of users tend to type in their name, reach for the mouse to click on the password entry field, type it in, then reach for the mouse in order to click the OK button. Very few use the TAB and Enter keys that completely eliminate taking the hands off the keyboard.

What's the problem?

Granted, it's easier to type "Smith"[TAB]"secret123"[Enter], but what's the big deal if the user is happy with moving back and forth from one entry device to the other?

It may not be immediately obvious, but the "use the mouse whenever you can and the keyboard only when you must" mindset is a high price to pay in the long run.

Disclaimer

This may be the right place to tell the reader that all of the opinions expressed here are my own, based on experience, personal preferences, and (non-scientific) observation. They do not reflect those of my employers, co-workers, friends or familly. It is possible that nobody, not even ZTree Forum readers, share any of these views :-)

If the tone is sometimes harsh, patronizing, or arrogant, it is because I believe that how an overwhelming majority of people interact with computers is very sad and wasteful.

This is not a scientific report, although some of the absurd behavioural patterns are obvious and measurable.

This is not about saving a few seconds here and there (although billions of planetary clicks per day do add up). It is the repetitious, insulting routine, that takes out all the fun and challenge to learn and grow that I find saddening.

A system requiring so much repetition from a human being is not user-friendly. It's irrelevant that some people are extremely fast and precise with the mouse; it's the number of quantifiable steps needed to take that is objectionable.

A Prophecy

"Slave-friendly" seems a more fitting name. One needs to watch Charlie Chaplin's "The Modern Times" (1936) from time to time to realize at which stage we actually are.

Chaplin saw the inhumanity in the debilitating, repetitive man-machine interaction almost seventy years ago. When it comes to desktop devices currently in use, we have not evolved a bit. The tools have changed, but the machine is still fully in charge. Today, we are sitting, not standing in front of the assembly line conveyor belt, and we are clicking and typing, not tightening bolts. From some future point in time, both epochs would appear equally shocking and inhumane.

Ironically, the original IBM PC ad from the 1980's uses Chaplin's Tramp character as the mascot. The prophet is now back with the "GUI times"!

Servers and Clients

Another disclaimer is in place: we must differentiate mission-critical, reliable, secure, zero-downtime, disaster-tolerant computers ("servers") from the desktop GUI-based gadgets ("clients").

The servers are designed and programmed to run unassisted "eternally", that is, until a severe power cut, a major disaster, and so on. Typically, the human side of this environment starts batch processes and services and the machine does the work: financial transactions, similations, real-time process control, web serving, image rendering, and so on.

On a desktop machine, the roles are completely reversed, when it comes to who does the real "work". This is by design, and we are not doing anything about it...

Consider this simplistic, non-scientific observation: ??? all year round ...

Slaves and Masters

The Power Users Defintion

It is not easy to define such a computer user, but we can easily identify some of the attributes found in most of them.

The Keyboard and the Mouse

Fortunately, most GUIs (still, but for how long?) provide excellent keyboard shortcuts, allowing power users to perform useful work efficiently, if they choose to. Most don't, it appears. They find it hard to break the debilitating mouse-only, mouse-everywhere, habit.

Let's hope that Windows will continue to support the keyboard as before, although many applications do so miserably by violating well-know style guides in this domain.

The above brilliantly executed dozen operation (a dozen or so steps) by a typical mouse-only user appears somewhat extreme, but is it? Really, is there a quicker way to do the above? Couldn't the user tell Windows to remember his clicks and choices, so that they could later be replayed, or bound to a single shortcut? It appears not.

In the days of Windows 3.x, there existed a utility called Macro Recorder. In those days, even basic users still used the command line, wrote and understood simple batch scripts, were used to command line history. I don't know how popular the Macro Recorder was, but the fact that it disappeared from the product is telling.

Obviously, it attracted no attention. The GUI seduced the user by its external beauty and ease of getting started with computers by looking at colorful pictures and clicking with the mouse. Most users seem to have remained in that infantile state.

Both the keyboard and the mouse may have serious health side-effects, but I personally find the mouse more destructive to my shoulder, arm hand and fingers. Unlike the keyboard, where one can easily type without looking at the tool itself, the mouse absolutely requires looking at it's "nose" -- the pointer on the screen. It may sound like a detail, but it is not. Instead of concetrating on text or other areas of interest, we must, from time to time, search for the pointer and manipulate it. Our eyes often have to zoom-in at the pixel level to perform an action. Errors are frequent and not always immediately obvious.

The Keyboard and the Mouse

Probably the most horrible invention is the scroll bar, especially when used with very large screens and high resolutions. Users who are trapped into using the mouse+scroll bar diabolic combination go through this every time: they click on the tiny arrow on the bottom of the scroll bar to scroll the screen, presumably to read something, but often when editing in an editor or word processor as well! Very frequently they will want to go to the other extreme, the tiny arrow on top. This requires forgetting the work at hand, eye movement to locate the pointer, precise and stead hold on an area of maybe, 16x16 pixels. This trip is performed too frequently and joyfully. As one clicks repeatedly on the arrows, one needs to glance at the arrows occasionally, either out of habit, or becuase your hands naturally tends to wander away, to reduce the tension and the stiffness iposed by this action. If you lift the hand from the mouse to type something, or scratch your head, a healthy mouse (even the cordless one) will tend to run away a few pixels. If it doesn't at that point, it's likely it will when you bring your hand back, even if very gently. Again, you may need to use your eyes to adjust the pointer.

With the keyboad scrolling using the paging and arrow keys, no such problems exist -- you never look at the tool and you can scroll in small increments and big leaps with great precision.

The scroll bar sports another gadget, a slider whose size reflects the relative portion of the file you are viewing. This is very useful, and I often glance at it as I hit PageDown or PageUp. The problem with using the slider is its practical uselessness: when it is large, say one third of the screen height, it's obvious that you can view the file with one or two, at most, paging keys. As the file gets bigger, auto-repeating paging keys make scrolling easy as well, and the speed is always the same.

When dragging the slider with the mouse, interesting things happen -- the scrolling speed increases, making it humanly almost impossible to control it. I have recently spent some time with a person using this approach exclusively. Unfortunately, the log file we were looking at was so huge that the slider went down to several pixels high (an obvious programming oversight to stop shrinking it after a certain absurdly small size, but that's not the point). The speed at which the text was flashing before our eyes and the difficulty of locating information were incredible. Still, no keyboard keys were used, rather, huge doses of clicks on the tiny scroll bar arrows were used to bring the information into view. This went on, and is going on at this very moment millions of times...

"Thou Shalt not automate thy work"

Today, the GUI consumer is not encouraged to improve, automate or program anything fundamental in the environment. The interface is inherently too rigid, impenetrable, definite, despite appearences.

To "fix" that, we have the extravaganza of numerous, confusing, and overlapping ways of doing the very same thing from the Start menu, Explorer, Desktop, user-defined keyboard shortcuts, System Tray, Quick Launch, built-in WinKey shortcuts, Task Bar, application menus and customizable (floating) toolbars...

Who would want a car with several steering wheels, accelerator pedals and breaks? Less is definitely safer and more productive in all man-machine interaction.

Yes, there is still the command prompt, but for how long? I seem to remember reading something about this being completely removed in future Windows versions!

Granted, with very long paths and file names, and the mysteries of the Registry, there is little one can or dare do from the command line interactively.

But batch facilities and and command line tools must never go away, even on machines destined for 100% MS Office, mouse-only users. In GUI-only hell, an advanced user has nothing better than litter the Desktop with dozens of shortcuts as the only way of somewhat automating and speeding up the work.

As the above example shows, there is no such thing as an easy click: what you must go through is a lot of navigation, where you must understand and remember all the steps -- how would you otherwise decide which button to click? There are no easy ways to create "black boxes" and abstractions, so you are forced to see and perform a lot of unnecessary, uninteresting chores repeatedly.

Full concentration is required all the time as you are making decisions which of the many crossroads to take. Most users progress and navigate step by step -- of course, it is not impossible to skip a step (a dialog box level) with the mouse! As in life, shorcuts exist in the GUI, so some users (finally) decide to try them out and never regret. Unlike the mouse, keyboard shortcuts allow skipping steps: hit Win+E and you have Explorer in front of you. Hit Win+R and enter \\server\docs\may to reach some far away folder. But how many users do this, even after being reminded repeatedly?

If we don't perform an action often, we tend to forget where exactly to start the clicking process, and later, which path to take when faced with so many choices.

Is it in one of the current application's buttons with names like Settings, Options, Properties, Configure, Tools, Customize, Advanced -- or maybe via Control Panel's Modems, Dial-up Connections (Network Connections, Internet Options, Mail Options, or whatever other names that change or get added with every new version) applets; or is it Start, Programs, Administrative Tools? Or maybe go directly to the Registry and modify a key (there are thousands)? Or use the TweakUI type of tools?

Yes, there are too many choices and ways of doing things and it is easy to mix things up. No doubt, the environment is very complex, and the Control Panel, for example, is layed out very logically, but the complexity now seems to be totally exposed, not hidden from the user. No doubt, the original goal was to make the interface simple and easy to learn and use, but somehow, it no longer is.

"Use Personalized Menus"

An example is the recent, annoying, "enhancement" where certain menu items are hidden from the user because they were not used recently! This is controlled via the Registry IntelliMenus key, and can also be set via Start, Settings, Taskbar & Start Menu. Of course, there is at least one more way: Right-click on an empty spot on the Taskbar (if you can find one), click Properties.

This seems to be proof that the number of options that are constantly creeping in is out of control, and that by hiding some of them the interface would still look manageable. I personally like seeing all available options in a drop-down menu and now need to adjust this on every PC I use.

Some users may want to enable this, but is should not be imposed as the default! It takes time to figure out what the wording "Personalized Menus" really mean, then to try to figure out where to modify it.

Underlined shortcut characters

Another of my preferences is seeing, at all times, the underlined characters to be used to execute commands using the Alt+character combination. In well-written, keyboard-friendly applications, almost every command can be executed this way, making you gain time by avoding the mouse clicking overhead.

Unfortunately, again, to make the GUI in recent Windows look cleaner, this was quietly disabled by default. The characters become visible only after pressing the Alt key. I find this an impossible way to function, so I always toggle this option to suit me. But the real issue is that users who are not aware of keyboard advantages will never discover that they even exist. An underlined character offers some hope...

This is one of the first things I customize. One would expect to find the relevant checkbox somewhere down the Start, Settings, Taskbar & Start Menu path, but it's not there. The path is: Start, Settings, Control Panel, Display, Effects tab. If you don't do this very often, you'll probably search for it under the Settings tab or the Appearence tab, because these terms are easily mixed up.

Internet Explorer, which has almost become the OS in itself, has many visual aspects, which are handled inside this application, and not, as we are used to, in the Control Panel Display applet. In this application, the path to follow is: Tools, Internet Options, Advanced. There we will find "Enable Personalized Favorites Menu". It is not related to the global "Use Personalized Menus" option described earlier.

The good news is that this gives us per-application flexibility, but what if all other applications allowed that? Many do, and we end up with an ever-growing number of control panels to understand and navigate. Hardly a well-designed, user-friendly, environment

??? The above "offenders" show the flaws of over-design and feature-creep

Where do I click?

It's not just the casual user that you hear cry in despair: "What happened?", "Where did it go?", "Where am I?". Watching both experienced and novice users can be so much fun, up to a point, when it becomes unbearable...

You miss one pixel, and your hard work disappears.

Also, it's not unusual for an expert user trying to control an aspect of the GUI to run in circles for a few minutes until the correct path is found. For exmaple, one may start with IE's View, Toolbars, Customize..., only to find that it's not there and try Internet Options, Advanced, then abandon and go into the Control Panel. Still no luck; let's try Explorer and its View, Customize This Folder... option; no, it's Tools, Folder Options, General tab, followed by View tab.

All this to reach that last, magic click that is supposed to give this user interface its glamour! The road to that, in reality, "far, far, far, away mouse click" it often uncertain, slippery and risky...

Scripting

Most Windows GUI elements are nothing but single-line commands, and as such are ideal for ZTree's Application Menu execution, manipulation, modification, and enhancing. In fact, examining Windows shortcuts (*.LNK files) reveals the good old command line language everywhere -- it's just wrapped in about one kilobyte of eye-candy and Registry/machine specific information.

Note that all the executables launched from F9 will still run in their familiar GUI clothes, exactly as if launched with the .LNK files; what differs is the total control and flexibilty as to how they are organized and how fast you can reach and launch them!

You control the names, categories, sequences of execution, and so on. You do so in pure, no-nonsense text mode, with its unparalleled speed, efficiency, portability. You avoid the GUI noise and bloat and the imminent, destabilizing changes in the next Windows GUI incarnation.

The above risky, boring, humiliating, clicking adventure (12 levels deep!) to reach a dialog box becomes a single item in the ZTree Application Menu. (Of course, you must do some work in advance and find the command line equivalent for the action we want to execute, but it is usually there, either in Windows itself or using a freeware utility.)

You decide to place the action script on a prominent level in the menu hierarchy, not suffer through the hard-coded layout imposed by the platform (it cannot possibly fit everybody's needs). Your action may start at a prominent top level, or whatever suits you at the moment. Later, it can be moved and grouped under one or several catogies or tasks.

In addition, you can bind one or more Application Menu scripts to a single keyboard macro, for instant execution of a complex, frequent, task. You can reclaim your rigth to automate the way you work. The more programming you succeed building into your desktop, the closer you are to switching the roles of the Master and the Slave.

Some obvious benefits for power users

Mimicing the Windows GUI in ZTree's Application Menu can be done as an excercise, purely for fun, or for educational purposes, for better understanding how the interface is organized. But it could also boost your productivity and change the way you use desktop devices in general.

The following are some obvious and not so obvious benefits:

Warning: Use with moderation. You will miss dearly the Application Menu on platforms where it does not exist.


ZTreeMenu             2004-03-16 23:25:39

(This is just a skeleton of one of the many possible ways of
organizing the emulated Windows Desktop/Explorer GUI.
The example focuses on the US Windows 2000 and XP, and not all branches are
shown -- the area is too vast to be covered here.

This could best be handled as a set of community projects, to avoid work duplication. Each branch or specific domain could be a separate mini-project owned by a single person and the changes later merged into the master .ZDB file.) +--Windows 95/98/ME +--Windows 2003 +--Windows 2000 and XP | +--Control Panel (French) | +--Control Panel (German) | |--Control Panel (US) | | +--Accessibility (Win+U) | Keyboard | Sound | Display | Mouse | General | | | +--Add/Remove Hardware: WIZARD | | +--Add/Remove Programs: | | +--Administrative Tools: | | | +--Task Manager (Ctrl+Shift+ESC) | | | +--Component Services | | | +--Computer Management | | | +--Data Sources (ODBC) | | | +--Event Viewer | | | +--Local Security Policy | | | +--Performance -- Displays graphs of system performance and configures data logs and alerts | | | +--Services -- Starts and stop services | | | +--Telnet Server Administration -- View and modify telnet server settings and connections | | +--Automatic Updates | | +--Date/Time | Date&Time | Time Zone | | | +--Display | Background | Screen Saver | Appearance | Web | Effects | Settings | | | +--Fax | | +--Folder Options | General | View | File Types | Offline Files | | | +--Fonts | File | View | | | +--Game Controllers | | +--Internet Options | Genereal | Security | Privacy | Content | Connections | Programs | Advanced | | | +--Keyboard | Speed | Input Locales | Hardware | | | +--Java Plug-in | Basic | Advanced | Browser | Proxies | Cache | Certificates | Update | About | | | +--Mail | E-mail Accounts | Data Files | Show Profiles | | | | +--Exchange server: XXXXXXX Username: Vujnovic, Slobodan Personal Folders: YYYYYYY | | +--Mouse | Buttons | Pointers | Motion | Hardware | | | +--Network and Dial-up Connections | File | View | Advanced | | | +--Phone and Modem Options | | +--Power Options | Power Schemes | Advanced | Hibernate | UPS | | | +--Printers | File | View | | | +--Regional Options | General | Numbers | Currency | Time | Date | Input Locales | | | +--Scanners and Cameras: | | +--Scheduled Tasks | File | View | Advanced | | | +--Sounds and Multimedia | Sounds | Audio | Hardware | | | +--Speech | Speech Recognition | Text To Speech | About | | | +--System properties (Win+Break) | General | Network Identification | Hardware | User Profiles | Advanced | | | +--Text Services | Settings | | | +--Users and Passwords | Users | Advanced | | | | +--Contractors (Outlook DL exported to text) | | | +--List ALL users in %USERDOMAIN% to #ZTtemp\%USERDOMAIN%\%USERDOMAIN%_users.TXT | | | +--View ANY user in %USERDOMAIN% | | | +--View %USERNAME% in %USERDOMAIN% | | | +--Send quick messages to users (NET SEND) | | | +--Managers' mobile phone numbers | | +--Protocols | +--Favorites | +--Programs | +--Send To popup | | +--3½ Floppy (A) | | +--3½ Floppy (A) -- FAST and DIRTY | | +--COPY | | +--XCOPY | | +--XXCOPY | | | +--Check for updates www.xxcopy.com | | | +--Cloning -- non-SOURCE files are DELETED on DESTINATION! | | +--Robocopy | +--Start Menu | | +--Programs | | +--Accessories | | +--Admin | | +--Diagnostics | | +--Backup | +--Task bar System Tray area | | +--TClockEx V1.4.2 (Taskbar Clock Enhancement) -- RUN this to install on this PC | | +--Go to website: Dale Nurden http://users.iafrica.com/d/da/dalen/tclockex.htm | | +--TCset (controls TClockEx display) examples | +--My Windows shortcuts (Ctrl+Alt+x) | +--My IE shortcuts (Ctrl+Alt+number) | | +--Ctrl+Alt+2 ZTreeWin Forum | | +--Ctrl+Alt+9 vujnovic.free.fr/ztw


Updated: 16:52 2004-04-26
Copyright 2004 vujnovic@free.fr. All rights reserved.