Callisto Desktop

From IoWiki
Jump to navigation Jump to search

An X11 desktop environment centered around FVWM and MATE. It has been lovingly described as "terminally Mac-brained."

Etymology

"Callisto Desktop" is a working title for a body of work that has coalesced into my daily-use graphical computing environment. It is named for callisto, my first self-built PC and my first foray into "modern" generic x86 machines. It grew up in a family mostly consisting of Macs and SGIs, and it was my first run with the world of noncommercial Unix-like desktop software that stuck. Over 15 years of research, experimentation, and migrations back and forth among a few platforms, the tentative stabs at getting comfortable on a Linux desktop I began on that machine ultimately led here.

Philosophy

Callisto Desktop works toward a set of goals that may be familiar to those who had a taste for Mac advocacy in the 1990s. These concepts are very much out of fashion and tend not to be well understood, even by people who were avid Mac OS users, so I will try to lay them out concisely.

  • Objects stay where you put them.
  • Objects unambiguously indicate their state.
  • Direct manipulation is encouraged.
  • Modes are bad. All functionality should be available from a single, coherent interface.
    • As a corollary, applications and documents in use must share the screen gracefully. No maximizing, and no Alt-Tabbing!

Modern applications often violate these simple principles, automatically moving or resizing themselves, reaching to claim the entire screen for themselves, using decorations that very little between different states, taking user input in indirect, obtuse ways, and restricting user activity to a single view at a time. Callisto Desktop aims to override or manage this behavior for control and consistency.

The general style and anticipated use follows the original "desktop metaphor," representing windows and icons as the documents and tools that one would keep on a physical desk. Some are larger than others, but the "virtual desk" is a constant, all-encompassing presence. Applications do not get to control the experience. This is generally in conflict with Windows conventions and most modern software, which (in my view) conceive of applications as interchangeable, immersive appliances that take over the user experience upon launch and only yield it when closed or exchanged for another application.

To put it very briefly, it works kind of like BeOS, which works kind of like Mac OS.

Shortcomings

Some Callisto Desktop features do not work the way they ideally would, either because the desired behavior is unfinished, or because implementing it is difficult, impractical, impossible, or at odds with something fundamental about the way X11 works.

Menu System

Ideally, Callisto Desktop would would take one of two approaches for application menu bars.

  • Feature a single menu bar positioned along a screen edge, as in Mac OS
  • Use context menus, like in RISC OS, or NEXTSTEP's option to spawn a menu bar under the cursor.

Global menu bars are controversial and uncommon outside of the Mac community, but several implementations exist for X11. Unfortunately, they are irrelevant to this environment (GNUstep, KDE), cumbersome to use outside of a specific vendor context (Ubuntu), obsolete (the old GNOME Panel 2.x implementation), or incompatible with applications not using their given toolkit (all of them). While per-window horizontal menu bars are one of my least favorite features of non-Mac environments, I see no good way to do a global menu bar on X11 except in a GNUstep or KDE environment with no foreign toolkit presence. Callisto Desktop depends on software not part of those environments to meet its other goals, so they are out of scope for any possible solution. Global menu bars are also impossible to reconcile with mouse focus; the focused application would change as the cursor moved over unrelated windows and the Desktop on its way to the menu bar, and the desired application's menus would no longer be accessible.

The RISC OS/NEXTSTEP approach is closer to the realm of possibility. Some older GTK+ applications (the GIMP, Xchat/HexChat) already do this, and others could theoretically be modified for it, but any resulting patch set would be intrusive and difficult to maintain.

Application Management

Zoom Widget

References

  • MacKiDo: User Interface - Late-1990s apologia for the traditional Macintosh desktop (mostly defined in opposition to Windows, and to Mac OS X). The articles are not perfect, but they illustrate the nuts and bolts of what makes Mac OS "good" from an end user perspective. This site was a favorite of mine at the time, and my work continues to share most of the values expressed within.
  • About the Finder... - John Siracusa's (in)famous defense of traditional Macintosh file management.
  • The Spatial Way - An early introduction to spatial file management in Nautilus 2.6. Its successor, Caja, is Callisto Desktop's file manager.