From kde-usability Mon Jul 30 03:55:38 2001 From: Pandurang Rao Date: Mon, 30 Jul 2001 03:55:38 +0000 To: kde-usability Subject: KDE Usability: Ideas, opinions and rants X-MARC-Message: https://marc.info/?l=kde-usability&m=99646541923038 Hello everybody, I've been using KDE since its early days and have seen it grow to become the best desktop out there. However, there's a lot more work to be done in the area of usability. I've put together a few of my thoughts in the area of usability. I'd like to discuss the feasibility/practicality and general foolhardiness of the ideas. Here's looking up to a great desktop and its luminous feature! :-)) Best regards, Pandu Rao KDE Usability: Ideas, opinions and rants What it is { #A desktop environment provides windows and widgets, with keyboard and mouse access to every underlying function. This is the primary aim of the desktop environment. } What it is not { #A desktop environment is an accessor; not a simplifier. i.e. It allows users to execute every available function. It does not not create the illusion of a simplified environment. } Usability is affected by the following factors: Flexibility, Predictability, customize-ability Flexibility { #A flexible desktop is a natural visual-extension of the underlying UNIX operating system. For example, when I bought a Logitech Internet Keyboard, it was a trivial task for me to map the special keys to common KDE functions(via Xmodmap). In Windows however, I had to install special keyboard drivers from Logitech. #The people at KDE employed the flexibility inherited from the creators of UNIX and X. This is good practice and must be continued. } Predictability { #Users quickly acquaint themselves with predictable environments. If a method works and works well and is well liked by users, it should not be changed unless the new method is vastly superior to the old and/or demanded by the users. e.g. single mouse-click to select an icon, double-click to launch the associated application. #A standard complex interface is better than a convoluted simple one. e.g. In their thirst for simplification Microsoft hid all but the most used menu options in Windows 2000. This menu simplification is seen even when the administrators logs on! #Users will acquire dexterity through repeated use. I suggest that the user interface be logical, thereby predictable. The effort on the users part to learn interface concepts will pay off in terms of productivity(as demonstrated by advanced command line users). } Customize-ability { #An important feature of a powerful desktop environment. A customize-able desktop environment increases productivity(e.g. customize-able keyboard shortcuts) and the quality of the experience(changing fonts, icons, and wallpapers). The customize-ability of the UNIX command line environment must be extended to the desktop environment. The desktop environment must allow the users to select alternate widgets. e.g. Tabs allow for the logical grouping of controls, but inadvertently conceal many of the functions provided. In many cases it easier to access the functions if they're all presented in a single scrollable page, with lines demarcating the logical groups. This is seen in Lotus Notes. To make navigation easier- in case of a very long page- we could provide a tree control on the left. #KDE comes very close to delivering all the customize-ability that one expects from a DE. A little more effort in this direction would wrap things up quite nicely. Portability { #A user must be able to copy his .kde directory or home directory to another machine and every aspect of the user's environment must be recreated on the new machine. I think this is already possible, I'm not sure though. #Its a good idea to store the user's document templates, spreadsheet templates } } Feature levels and versioning { #Feature levels are a way of classifying features. Some features form the core of the functionality e.g. Keyboard shortcuts, KMenu and Kicker. Other features such as animation fall under the full featured desktop environment. This feature would make KDE the ideal desktop for laptop use. #Features may be classified as follows: -Lightweight -Basic -Full featured Feature versioning { #Each release of KDE comes with bug fixes, plus new features or minus others. Even though these come bundled in a single release, the user must not be given an all or nothing option. Users may want the bug fixes but may be comfortable with features of the older release. And the older way could actually be better than the newer way. For example, in Windows 98 Explorer, there was a cycle-through-views button/menu. Clicking the button repeated cycled through icon, list and detail views or the user could drop down the menu and select icon, list or detail view. I only used the cycle click method. With Windows 2000 Microsoft completely got rid of the button/menu and replaced it with a menu. No more quick cycling of views (Some people prefer three quick clicks to one click-and-hunt-menu-item). An older, useful feature gone. } } Intuitiveness { #Intuitiveness is overrated. Its a desktop environment. Not a mind-reading device. If I want to save a .jpg file I don't want the default directory to be "My pictures". } Complexity shielding { #This is an error committed by the folks at Redmond. This attempt at simplification takes away much of the power from a desktop environment. e.g The usability experts at Microsoft felt that file extensions confuse the novice user. So they hid the file extension by default. Today, novice users run untrusted executables disguised as documents. } Icons { #Can increase or decrease the appeal of a desktop environment. Too few icons can make a desktop look drab and too many can make it sluggish. Users must be able to toggle icon usage for applications. KDE 2 Konsole lets users toggle icons for the many terminal sessions it displays. #Icons can convey different meanings to people of different cultures. I suggest icon localization as a means of overcoming this. Iconset { #The same icon in multiple sizes, multiple color depths, etc. } One iconset per application { #Each application will use its associated icon. The icon used will be one from the iconset that's most appropriate. e.g. if a 16x16 icon is required the application will use the 16x16 icon with the maximum color depth possible or a color depth permitted by the user. } One iconset per class of formats/MIME content { #If a file has no associated application, the desktop environment will use one based on the MIME content of the file. } #Devices such as cdroms, floppy drives get their own iconsets. #Most of what I've suggested here is probably already being employed in KDE. This sections rounds up my ideas about icons. } Dialog boxes { #Yes, No and Cancel buttons must be selectable by Y, N and Esc keys respectively. Y and N shoud be underlined to indicate this. #OK and Cancel buttons must be selectable by Enter and Esc keys respectively. } Animation { #Window/widget animation is good when intended to provide valuable feeback. This must be entirely optional since it consumes processor cycles and the user may wish to use these cycles elsewhere. For example, Windows Explorer animates every copy operation with a sheet of paper flying from one "folder" to another. There is nary an option to turn of this kind of "inanemation". } Installation scripts { #Must offer a pre installation report as follows: The following files will be added to your system. Sortable by directories, permissions, size, etc. #All questions that need to be answered must be presented upfront. Allowing a user to generate a single "answer file". The install script then proceeds with the installation and gets its answers from the answer file. #Wizard based installation scripts such as Install shield are downright frustrating. } Tabs { #Tab widgets must be standardized. Tab labels should not have shortcut keys. Control PageUp/PageDown must allow the user to cycle through tabs. } Optimized widgets { #Lightweight widgets are important. e.g. If 2D widgets consume less resources, then provide the user with an option to use 2d widgets globally. } Window layout templates { #WLTs are guides that define window placement. #An example template divides the desktop into two panes: pane A(90% of the desktop width) and pane B(10%). #Pane A is for major applications, pane B is for minor applications. Each pane is made up of stacked multiple layers such as Konsole layer, Konqueror layer and so on. The Konsole layer defines the size and position of a the Konsole windows launched by the user. #Pane B is reserved for minor applications such as reminders, imporant system messages, calendars, notes, etc. i.e. Reminders always show up in the designated area, system messages show up only in the designated area. When a user selects a word in the Konqueror running in the Major application pane A, the dictionary applet displays the meaning in its designated area in pane B. Another useful application for the minor pane is to show clipboard contents in the designated area. ------------------------- |PANE A |PANE B | ------------------------- |konqueror |dict | | konsole | | | emacs |cal | | | | | | | ------------------------- #Applications can be maximized to occupy the width of the major pane or full desktop width. Meaning that pane view must be toggled on or off with just one key stroke. #The layer is just a concept of dealing with layout. Users do not see layers unless they wish to. } Timed windows { #Some applications are ethereal. e.g. calendar, clock, notes, etc. When the user lauches a timed window application, the window shows up and disappears after a fixed interval of time, say 3-4 seconds. The use can keep the timed window alive as long as the mouse cursor rests over it. #Other examples that come to mind are ping, traceroute and so on. These applications would do well to surface, inform the user and then terminate themselves. #A timed window manager keeps track of the various timed windows that popup and disappear so a user can recall them if needed or relaunch a timed application. } Visual pipes { #Self descriptive. An application that displays its input and stores it in a temporary buffer for later use. #Here's an example: Let's say I'm trying to delete files in a directory except one $ls | vp:0 the output of the ls command is piped to the visual pipe:0 visual pipe launches a little window numbered 0 which contains the output of the ls command visual pipe:0 has an editable buffer that I edit. i.e delete the filenames from the buffer then go back to the shell and type $rm `vp:0 ` or I could even type "rm *" in the visual pipe:0's command line. The * wildcard resolves to all filenames in the buffer rather than on all the filesnames in the actual directory. } Navigation grid for Konqueror { #One feature that's missing in every web browser out there is the ability to navigate web pages using the keyboard. Using the Tab key to move from widget to widget works well in familiar screens. This concept cannot and should not be extended to navigate web pages. I suggest an alternative: The navigation grid. #The navigation grid consits of a transparent spreadsheet-like grid superimposed upon the webpage. Only the wire-frame of the grid is visible to the user. This makes it very easy to navigate to specific areas of the webpage, using the keyboard alone. Of course, the granularity of the grid is user controllable. The grid can be hidden or shown based on user commands. #This grid makes it easy to select areas of the web page comprising of text and/or images to mark for printing. #This grid makes it easy to hide sections of webpages that annoy users.(e.g. GIGANTIC BANNERS) } Miscellaneous { #Menu items in the K start menu must have shortcut keys. #TrueType font support is very important. A standard set of usable TrueType fonts(Serif, Sans serif, etc.) #Keyboard shortcut standardization. e.g. Konqueror has j,k for scroll-line-down and scroll-line-up resp. These need to be documented(unless, I've missed them). } __________________________________________________ Do You Yahoo!? Make international calls for as low as $.04/minute with Yahoo! Messenger http://phonecard.yahoo.com/ _______________________________________________ kde-usability mailing list kde-usability@master.kde.org http://master.kde.org/mailman/listinfo/kde-usability