From VirtualDesktops:
Enlightenment has the usual ways of switching to a different desktop (hotkeys and clicking on a pane of the thumbnail view). But the usual way of switching to a different desktop, which ironically enough is "optional", is simply to move the mouse pointer to an edge of the screen. This will cause the screen to flip to the corresponding adjacent desktop.
So for example, let's say you're in desktop X.
+-----------+-----------+ | | | | X X1|Y1 Y Y3| | X2 | | +-----------+-----------+ | | | | Z | W | | | | +-----------+-----------+then moving the mouse beyond the edge X1 will cause the screen to flip to desktop Y and moving the mouse back beyond X2 will cause it to move to desktop Z. Oh, and after the first flip the mouse pointer is in Y1, not Y3, so you can easily flip back. So basically, you move your mouse wherever you want on XYZW and the screen follows the mouse around the lattice in a spectacularly jerky fashion (ie, one screenful at a time).
I think this edge jumping is less useful than you think. It's natural with many real desktops, but with virtual desktops you (or rather I) do not think of the multiple desktops as one large field, but as separate spaces. This is thus rather a semantical relation, than a spatial one (your mileage may vary). This can be seen in the first poster's sentence "For example I like to run xmms and its playlist on one desktop, run several emacs frames on one desktop, run my browser on one desktop and have various xterms open on another." And in this setup your individual desktops have borders where it must stop and you use full-sizing and you do not want your pointer to disappear at that border. -- GunnarZarncke
Actually, I do. Edge flipping is the primary means of switching desktops I use. And it doesn't matter that the relation between desktops is semantic instead of spatial. In my case, every semantic relation has to be reified as a spatial relation for me to be able to navigate. Why is that? Because I need maps and when people give me directions it's just so much meaningless blah blah blah to me. So yes, I do want that damned edge flipping, of necessity. Edge flipping and thumbnail views of the insides of the desktops (which most virtual desktop managers do not provide any more than edge flipping) are the correct idioms for switching between desktops as far as I'm concerned.
Note that for people who use semantic relations and that rely on directions, virtual desktop managers are still entirely inadequate for their needs. What they need is a switcher where they can see each task running inside a desktop as an icon representing its type. Something vaguely like the task-switching bar in Windows but much more sophisticated and intelligent. In other words, the common idioms of clicking on a teeny tiny opaque icon representing the different desktops or of hotkeying to them are complete bullshit.
Incidentally, Enlightenment provides a stack of virtual desktops. You go through the stack using the scroll wheel and you move through the desktops using edge flipping or clicking on a thumbnail view of the virtual expanse. I have never used the stack for anything, ever. Despite the fact that it is seemingly more immediately accessible. That's because beyond two or three desktop expanses, it's too easy to get lost in them, even if they all have different backgrounds. I can easily have 4 desktops in a single expanse without getting lost, despite them all having the same background. Actually, I could have 8 but Enlightenment doesn't allow an asymmetric star configuration like the one below.
+-------+ | | +-----+-----+ +-----| | |-----+ | +-----+-----+ | +-----| | |-----+ +-----+-----+ | | +-------+By no coincidence whatsoever, the ObjectBrowser I want relies on spatial relations. Three dimensional polar coordinates in fact. And not only that, but I've toyed with the idea of having more than 360 degrees horizontally. It would be entirely feasible to have 540 or 720 degrees of rotation if no more than 30 or so degrees of arc were visible at any one time. All you have to do then is provide directional cues (ie, a compass) but I don't think the user will be able to tell that they're actually rotating only half as fast as they perceive they're rotating. It would also be useful to have less than 360 degrees vertically. But anyways, none of this applies if you've got a multi-screen system with a good 60-100 degrees of horizontal view. -- RK
Rather than doing such painful non-Euclidean geometry, you could simply define the screen to be only a 10 degree arc. Then you'd still have your endless rotatable screen that you want. Simply have the content "further away" - after all, a smaller arc is really just zooming in.
Research has shown (citation requested) that showed that larger screens, and by extension more physical screens, are not necessarily more efficient. Once you have to move your eyes more than a certain distance it becomes less efficient than swapping what's on a single, smaller screen. Yes, having virtual desktops is drastically different from having more monitors. Sometimes it's better.
Having "Focus follows eyes" requires a delicate balance. Research has shown that people's eyes move a lot during work, often to unrelated areas. Having the screen respond too quickly is counter-productive, having it respond too slowly is frustrating, and the line between the two varies not just from person to person, but also for the same person from time to time.
Some find flipping betwen desktops by moving the mouse off the edge of this one onto another very annoying. Several systems do this in different ways, and despite initially expecting it would be useful and productive, people have often ending up switching it off. Getting too close to the edge sometimes makes it flip when you don't expect it to, which is deeply disorienting. That means you start to regard areas near the edge of the screen as "no go" areas, which reduces the effective size of the screen. Even people who, like Richard, need maps for navigation and for whom directions are just "blah blah blah" have reported that their greatest success (so far) comes from using a system which requires an explicit switch, done by hot key or by mouse click. They say it doesn't slow them down at all.
Some also report that using systems where the physical monitor is a window on a single, larger desktop, and moving the mouse to the edge scrolls it smoothly, almost more frustrating than anything else.
Work has been reported in which 360 degree simulators of bridge systems and flight controllers were used to map a desktop and then work done on that. The findings suggest that it's significantly worse than a single, moderate-sized monitor and good, explicitly-switched virtual desktops. You spin about, you hunt for things, you spend time wandering about looking for exactly what you want. It's slow and frustrating.
Everyone is different, and one person's experiences with these interfaces may be less negative than others. Your scorn heaped on icon based and hot-key based switching does not match the experiences reported by others, although your comments about needing maps are well known. In short, each person will have a different wish-list, and each person will find different things more natural. However, some research and some reported experiences show that things people think are cool and productive sometimes aren't.
The moral: be careful what you wish for.
-- WikiGnome
PS: All the research results are quoted from memory. No specific references provided, and more concrete, explicit and well-founded results would be a useful thing. -- wg
My purpose for having a wider field of view is to enable peripheral vision to enter into the picture. I neither need nor want to be able to use the non-central screens in the same way as the central one. But I question the result regarding the eyes having to move more than a certain distance. The head certainly, but the eyes are absurd. Eye movement is quick and efficient, whereas swapping is slow and requires conscious attention.
I've never read up on focus follows eyes. It's always seemed horribly unworkable to me.
Flipping between desktops is most disorienting when it triggers an accidental backflip. This can be minimized by briefly increasing resistance to flips after a flip is performed. The dead zone issue only applies to completely broken systems since resistance allows you to set the effective transition boundary beyond the edge of the screen. If you set the resistance very high, it might be several centimeters beyond the edge of the screen. There's no dead zone in Enlightenment. And it certainly doesn't help to have used a number of different systems if they're all broken in the same way.
(The whole water to ice transition occurs at 0 degrees Celsius. If you cool water, its temperature drops until it hits zero. At zero it stays there until it's frozen solid, and only then does the temperature continue dropping. Edge transitions in enlightenment are exactly like that. Except they're even weirder since if you started with water, it will take no heat and no time to liquefy any ice that's formed. And if you started out as ice it will take no time and produce no heat to refreeze entirely. There is no possible physical analogy to what Enlightenment does, but it works and it's very easy to understand even after the first time you use it.)
Incidentally, I do plan to have panning accessible from hotkeys, but "hotkeying" to me refers to "go to desktop 1" rather than "go down one desktop". The former is retarded because it hardwires bookmark locations and forces the user to rely on bookmarks rather than on their extensive spatial navigation capabilities.
I concur with the frustration induced by scrolling the monitor. It is indeed one of the most retarded systems imaginable, second only to Self's onscreen buttons that you click on to induce scrolling, which combines the worst possible aspects of everything. -- RK
Richard, it seems to me, that you want to build a system, that is very well suited to you and your spatial predisposition, but may be less useful for everyone. Thats not to say, that it could not be used by me or whoever, but just, that it might be less profitable than you might guess. I'd say, that my spatial capabilities are average, but my semantic (not strictly in the linguistic sense) abilities are very strong. Therefore I really really prefer semantic hotkeys. I currently have six desktops and each one has its own meaning. I never click on any icon to switch. I know, where my applications run and they are started automatically on the right screen. I added backgrounds recently, but I don't need them. I could work with more screens, but there is no need currently.
Anecdote concerning absolute versus relative hotkeys: My son (2 years old) knows which keys to press to get to the desktop with the cat on it (he likes it). But I think it were more difficult for him to repeatedly press a "next screen" key to get there. Its simply a longer chain and he doesn't see the switching. Maybe relative switching were better, if the screen wouldn't just appear, but slide in very quickly from its corresponding side.
I tested panning (like the WikiGnome mentioned above) a long time ago, but found it horrible. I used edge flipping, but as I said above, with negative result (mostly in university where it was the default). Maybe it was due to broken realization, but maybe it not giving me enough advantage.
I think the switching method depends largely on the intended use of the virtual desktop. If you perceive/use it largely as one large space without strong boundaries, than edge switching is more important. If you have distinct semantic screens, absolute hotkeys may be more appropriate.
Another thing is multiple monitors. The urge to move the mouse from one monitor to the next is very strong. I often "tried" it unconsciously when monitors stood beneath each other, even if one ran windows and the X. The problem, that one wants to enter something and types on the wrong keyboard is horrible too. My wife once complained, that she couldn't enter the password and just had the wrong keyboard.
And yet another wish I had was multiple input devices on one screen for collaboration, but thats probably unusable (not due to focus, which could be attached to the corresponding mouse, but due to limited screen estate and overlapping windows).
I agree, that FocusFollowsEyes? is probably impossible due to the saccades (http://en.wikipedia.org/wiki/Saccade). Now, FocusFollowsAttention? is what is really wanted and thats AiComplete anyway.
Screen estate and windows isn't what's limiting collaboration. And even if it were, it's only a temporary problem until we get better display technology. And even if it weren't, I'm targetting large screen estates so it's not relevant to me. What's limiting multiple input devices is simply the hardware design of PCs and the assumption built into OSes that there is only one input focus. So much so that screen sharing applications specifically built for collaboration usually don't have multiple foci.
Maybe relative switching were better, if the screen wouldn't just appear, but slide in very quickly from its corresponding side.
That's exactly what I plan to do, and that's also what Enlightenment does. Another advantage of edge flipping is that it provides a very large target area for switching to another desktop. Icons provide a miserable target area. And even hotkeys provide a very small target area.
I think the switching method depends largely on the intended use of the virtual desktop.
It has nothing to do with the use the user puts it to and everything to do with the capabilities of the user. A person that has fantastic symbolic short-term memory will get along very well using just arbitrary bookmarks. In the WAIS intelligence test, one of the subtests involves recoding a string of arbitrary symbols into a corresponding string in a different alphabet. If you do fantastic on this test then you won't have any problem, if you do poorly then it will be impossible.
Richard, it seems to me, that you want to build a system, that is very well suited to you and your spatial predisposition, but may be less useful for everyone. Thats not to say, that it could not be used by me or whoever, but just, that it might be less profitable than you might guess.
The opposite of a system that's designed for a select group of users is a poorly designed system. There's no such thing as a system that's well-designed for everyone. Now, having said that, 90% of what I plan will be perfectly usable by others, and of the rest 90% will be reusable in a modified form by others.
Now, having said that, I only have a bare inkling what someone who thinks, shall we say, semantically would require in a system so it's not a good idea to ask me to cater to them. Now, having said that, landmarking and bookmarking were both things I've investigated and rejected as useless and inferior respectively.
Landmarking because I literally can't find any good use for it, though it is interesting in theory. Bookmarking because it doesn't make any sense to me, at least not the numbered variety. If you want numbered bookmarking then it would be trivial to add but I won't add it. -- RK
'Screen estate and windows isn't what's limiting collaboration.' Can you qualify that? I'm interested, because I pondered a uniform GUI a long time ago, which had multiple foci (following logically from its uniform event model). But put it back, because considered these the limiting factors (together with hardware limitations, which could be overcome simply by networking).
'I'm targetting large screen estates so it's not relevant to me.' I'l take that as an assumption for now. You are aware, that this limits your user base.
'Icons provide a miserable target area. And even hotkeys provide a very small target area.' Icons yes, hotkeys no: For icons you have the mouse targeting properties (there is some law relating distance and size with clicking time), but hotkeys are always in range of your typing fingers.
I don't claim a fantastic short time memory. I don't understand, what you want to say with the symbol recoding reference.
'The opposite of a system that's designed for a select group of users is a poorly designed system.' I understand, that you shun compromises and go for the best. Again, thats a choice you can very well make (and possibly profitably so). It limits your (initial) user base.
Could you please restate, what you mean with 'Landmarking' and 'Bookmarking' in this context. I understand that you effectively mean hotkeys when you say 'numbered bookmarks'. I have no problem with pressing CTRL-F4 if I want to jump to my screen named 'Mail+Contact'. And I will have no problem if this screen evolves over time to mean 'Mail' only and 'Contact+ICQ' becomes CTRL-F5 (say).
-- .gz
Screen estate only limits 'collaboration' if you accept two people working on radically different tasks and only loosely supervising each other as collaboration. If two people are working at the same task, one presumes they will be reusing windows and screen between them. Take the example of an editor. It should be possible for a simple text editor to function as an instant messenger by having two input foci and configuring 'enter' to mean "go to the end of the file and insert a CR". Or alternatively, define a file write protocol that lets you "insert at end of file" and "insert 10 from end of file".
Hotkeys are not always in range of your typing fingers. They're in range only if exceptionally designed so that they're always under the off-mouse hand. And even then they only stay in range if there are consistently enough useful hotkeys that the user always keeps a hand on the keyboard when mousing. This is not always the case, as for example when you're watching a movie. I am almost prepared to pay the penalty of not having mouse accessible actions because I really hate buttons but I'd rather not and the important thing here is that relying on the keyboard is indeed a penalty.
By symbolic short term memory, I mean if you can memorize:
1 -> x 2 -> t 3 -> z 4 -> p 5 -> Awithin a short span of time, then you have great symbolic short term memory. If you can read a typical graduate math book without having to go back half a dozen times to see the definition of a symbol that's just been introduced, or without committing it to long term memory, then again you have great symbolic short term memory. Most people don't.
Current so-called "mnemonic" hotkeying relies on symbolic short term and long term memory. There is no relation between the letter chosen for the "mnemonic" and the function it invokes, none whatsoever, it is purely arbitrary. Most people don't do well with this miserable hotkeying.
Bookmarking is more general than the hotkey directly invoked ones. Web browsers have what are commonly called bookmarks but they are in a menu system and are inspectable before the user commits to them. I intend to provide the direct analogue of this functionality, including an action that performs "add this current node to the bookmark heap". Numbered bookmarks are less important to me and I intend to let them slide except, possibly, for my virtual siblings idea.
By landmarking I mean the deliberate creation of landmarks by the system for their usage as landmarks by users. Landmarks are one of the 5 concepts of spatial navigation, alongside nodes, paths, districts and edges (of districts). -- RK
Your examples seem to indicate, that I have a very good symbolic short (and long) term memory. Wheras my spatial (esp. 3D) skills are less pronounced.
Also I avoid the mouse if possible. Because of the penalty for switching between mouse and keyboard I go for the keyboard where you go for the mouse. As you can imagine I'm a fan of the command line, but I also switch between windows and screens with keys, scroll my emails with cursors and I hate it, if an application cannot be used by keys. I close windows with ALT-F4 and so on. You are for what I use the mouse at all?
-- .gz
Landmarking metaphor topic moved to UrbanDesignMetaphor.
I moved this sub discussion here (and 'd like to move it to a further page, maybe VirtualDesktopGeometry?) to avoid ThreadMess:
Personally, I detest virtual desktops in general, and am simply used to keeping a bloated taskbar and various compact tools. However, I can see the appeal. What I was thinking would be best of both woulds would be spatial hotkeys - consider 9 screens in a 3x3 grid, and the hotkey being a chord of "myhotkey THEN numericalkeypad" _or_ "myhotkey THEN arrowkey" where arrowkey navigates relatively around the 3x3 grid, and the numerical keypad is used for an absolute jump. If you've a fast enough WM that can show all 9 screens at once, you could show a compacted representation of all 9 in the time between the user hits "myhotkey" and then selects their screen. -- MartinZarate
At work (where I have to use Win) I don't use virtual desktops whereas at home (with X) I do. I'm not completely sure why. Partly its because I don't know good fast and free virtual desktops for Win. Partly its because there seems to be less need for it than at home, which again may be partly because at work I have a larger screen and more screen estate. My solution at work is actually more spatial and less symbolic (hi Richard, are you listening, this could help identify out middle ground). I have a rather fixed positioning of all the windows (I open most of them in the morning (partly automatically) in a fixed order, which results in a fixed task bar order (notes: a) I'd like to move the taskbar entries around; b) I hate the automatical grouping of XP and am grateful, to work with 2000 still; and I acutally use two lines to identify all my open windows). The windows overlap and most have always at least a corner visible for clicking on, but I also use ATL-TAB* a lot for switching. I mouse more at work, but can't exactly say why. -- .gz