What Features Would Make a "Better" GUI?
Rudyatek asks: "When it comes to desktop OSs, there has been much talk about 'the end of the desktop', 'reinventing the GUI', etc. Usability has become increasingly important as we battle the ugly UIs of Windows and X11, and watch companies like Red Hat and Ximian try to improve them. But I'm curious if anyone has any clear ideas on what a truly 'better' UI would really be like? As a hobby OS programmer I have a great interest in alternative OS ideas, and this is one that I hear more complaining about than actual ideas. Anyone have ideas?"
Everyone keeps talking about a "Better GUI" but nothing ever emerges. Why? Because there's really nothing wrong with the Windows GUI (or the various GUIs for Linux that are essentially knock-offs of Windows). The real problem is that nobody can stop hating Microsoft long enough to admit that they've done something well.
Maybe you can play around with text files to tweak your system's fonts, but most users have neither the technical expertise nor the inclination.
If you release a distro with unreadable font, people don't say "hey, this distribution isn't configured very well". They say "Linux is hard to read".
Oh, and can we please have checkboxes that make it obvious whether they're checked or not?
Everything out there now sucks.
:)
:)
There have been some neat ideas tossed around, including those with are not only 3d.. but '4d', allowing you to track file and system history through a 3d interface.
Eventually we will have commonity hardware that can display 3d (opposed to hardware which currently only displays on a 2d surface).. at which point we will need a truely 3d interface, we should develop this interface now... rather than waiting for the hardware before building the software. History has proven that progress is best done with software pushing the development of hardware, not the other way around... current hardware is fast enough to write software that could be viewed from a 3d display, even if such displays aren't available yet
There are a few features I'd suggest for 2d widget s like those with GTK..
The tabs in GTK are done terribly wrong as they are modelled after Microsoft's equally bad tab widget. If there are more tabs than can be displayed, then the tabs should either create a new row (causing problems with nested tabs which shouldn't ever be used anyhow), or it should provide a menu for the selection of the hidden tabs like with SGI's Motif (which is different than plain Motif).
Close buttons for windows should be on the upper left side of the window.. I'm not sure why Microsoft changed this (and hence creating a whirlpool effect); Windows 3.1 had a upper-left close button, MacOS has it, MWM (and clones/spinoffs), etc. It much faster, easier, and more natural to have it on the upper left. I believe Microsoft's intention was that it should be difficult and slow to close windows.. something that may help novices from making mistakes (which is why MWM and clones, including Windows 3.1 require it to be double-clicked); however, I find that a lot of people new to computers cannot find the close button due to it's location... advanced users are just annoyed or learn to use keyboard shortcuts.
Speakers of languages based on latin are instinctfully drawn to the upper-left.. this is why having a menu in the upper-left is more effective than one in the lower-left (Microsoft Windows 95, per default). This can be different for those who read/write languages from right->left or from bottom->top. I believe Microsoft put their menu on the lower-left as it was initially designed to be 'supplimental' to the desktop icons which would be more prominently placed in the upper-left. However, desktop icons are a bad idea.
Desktop icons are a bad idea. There should be a distinction between the execution layer and the runtime layer. A menu-bar which provides the execution layer then a 'viewport' for the runtime layer. Putting launchers in the runtime 'viewport' causes confusion between the runtime and execution layers. Think of a panel in Gnome as the 'execution layer', this is where programs are executed from.. and then the desktop where windows are allowed as the 'runtime layer'. This also means that programs should not be allowed to overlap the panel.
I must agree; however, that the PalmOS interface is quite adequate considering some of it's defiance of some of my suggestions (desktop icons , for instance). However, their desktop icons could be easily replaced with a 'spring-loaded' folder such as in MacOS.. this would provide the abstraction of the 'execution' and 'runtime' layers by providing a panel, while still being usable on a small display. This 'spring-loaded' folder while minimized would sit along the bottom of the display for easy access while the user is utilizing any programs within the 'runtime' layer.
A distinction between 'runtime' and 'execution' layers should require that the 'runtime' layer cannot overlap the viewport of the 'execution' layer, but the 'execution' layer's programs should be able to visually overlap programs contained within the 'runtime' layer.. as would be necessary for menus or usage on small displays as found on PDAs.
1. circular context menues, with common items in the center, can less common ones on the outside, I belive that there is no GUI API which makes this easy.
2. Nothing radicaly different from whats gone before, no one likes to leave old habits.
3. Non of that rearanging of menues which apperared in ME ond office, it just gets confusing when menu its move arround.
Also speed is the most imnportant, responsivness aids learning and easy of learning is key to easy of use, as well as a whole host of other factors of course
If you read a speed reading book, does it take you less time to read the second half?
So you wind up with a command line prompt, but it uses the GUI space to handle things that get a bit clunky in a regular command line prompt, like history, pipes, etc.
Needs work, but it's clear in my mind...that's the basic idea anyway.
- adam
I've seen a fair number of people mention that they want something closer to the command-line, and more involved file-system management. That may be fine for you, but what about for my grandma who just wants to use word, outlook, and her knitting pattern designer. She dosen't want anything to do with the command line - she wants a (virtual) button to press that will "make it go" and run what she means.
So when you say a better GUI, I challenge you to qualify what you mean. Do you want a better GUI for the programmers and hardcore command-line-junkies out there, or do you want somthing for the majority of users who don't give a shit about the command line or the filesystem, and who just want to "make it go?"
Fos us who like the line (and like things like gcc, regexps, or **nix), then maybe a GUI with command lines everywhere is what we need. But all my grandma (or Joe Sixpack) needs is a bunch of buttons - like (as someone suggested) PalmOS. Or a Mac.
Cue The Sun...
-speed.
i want speed, i dont want to drag a window accross the screen and have to wait for it to arive, or have it jerk its way to where i want it. i want windows to pop up quickly. i want instant and accurate feedback on what my program is doing, is it busy? is it truely busy or is the UI lagging?
-simplicity
i want more control with less controllers. i dont need 7 buttons on each window to decide if i want to close, min, max, put to the back, bring forward, menu, etc. it should be(in my opinion):
left, minimize and maximize
right, close
double click titlebar, shade
right click title bar, menu
maybee-right click minimize, put to back
and and click in the window brings that window forward.
any border should resize.
-standards
i want standard controls throughout apps. the file,edit,view, etc should all have the same layout on each application. preferences should always be in the same spot, everywhere, and help should always be on the right end.
id also like the option of puting the menu bar on the top ala Mac, but i want that choice.
-usable space
i want usable desktop space. see fluxbox/blackbox. i dont want my file explorer to force me into a left side info bar. this should be optional. as in not like windows, but like mozilla.
-solid code
how about some solid bugfree code. something that wont crash because i did a rightclick/properties on a file while also doing a file copy.
-personal
i do like "skinning" to a certain extent. i like to be able to set color schemes and taskbar locations. but the buttons should be pretty much standard. Maybee be able to increase or decrease their size.
-keyboard
100% keyboard capable UI.
easy to tab through open windows, easy to launch programs. standard shourtcut keys(cut/paste/copy/search) i dont run with just a keyboard, but some do mostly and i like keyboard shortcuts. using the keyboard and mouse together makes the UI way faster to navigate, assuming that your not running windows and have to wait for every little thing to happed before you even get input back.
thats about it.
kinda like BeOS..
"Now granted, the apps on a PDA are much simpler than those on a desktop machine, but the concept is still good."
Scale matters. Many good models based on narrow functionality break down when more general functionality is required. Remember all the talk of making software as easy to use as a toaster? Well, you can do it easily as long as the functionality only requires a slider control and a start button. You can't even make a radio as easy to use as a toaster.
Few random ideas:
/usr like traditional Unix does.
(i)
Well, I, for one, would like to see the window title bars becoming task bars/tabbed panes, and the start menu attached to the title bar, not buried in the bottom left of the screen. I'm not talking exactly about a tabbed-wm like PWM, more like each window being an xemacs buffer, so that every application is "in" every window, just only one in the foreground of the window at a time.
(ii)
Right-button menus. Context menus aren't bad as such, but why aren't ALL menus available on right click ANYWHERE. Grey out inapplicable entries, don't shuffle them around for each different object. Think Amiga+MagicMenu - all actions available in the same places each time, just greyed out if they are irrelevant. Also, make sure they appear on button down, not on click. Windows RMB menus really suck that way.
(iii)
Well integrated GUI/CLI combo. Think Common Lisp CLIM. If you've never used it, check it out. XMLTerm is a similar idea.
(iv)
A decent file manager. Think Directory Opus.
(v)
Animated icons and sounds.
(vi)
Vector graphics for most operations.
(vii)
Resolution-independence. MY SCREEN is 120DPI, DAMMIT, but a 10pt font should be THE SAME PHYSICAL hold-a-ruler-to-the-screen size as on any other screen. Just more readable than on a lower DPI screen. Very few GUIs get this right.
(viii)
No more cryptic little icons on toolbars. Humans invented writing for a reason. If you need an obscure little picture, put the writing underneath or beside it. "Tooltips" are an admission of defeat by lazy GUI designers.
(ix)
Bring back the on-screen FKey bar. F1-F12 printed along the bottom of the screen, along with what each key does, was immensely usable, fast, and obvious. "modern" GUIs really neglect the keyboard.
(x)
Amiga-like removable media handling. Disk goes in, icon appears on desktop. Disk comes out, Icon disappears. Icon corresponds to the volume label, not the drive the disk is in. So one can take the disk out and put it in a different drive, AND THE SYSTEM DOESN'T CARE. You can install a program from your fifteenth CDROM drive, AND THE SYSTEM DOESN'T CARE.
(xi)
AppDirs. Don't confuse the user. Make the filesystem hierarchy where applications live. Means installing is "drag icon off the cdrom onto the harddrive". Don't invent an alternate hierarchy in the Start Menu like Windoze does, or glom everything together in