3D-Accelerated Haiku Desktop
Using the 3D accelerated power of modern
video cards to do basic 2D desktop tasks is a novel concept. OS X
pioneered it. Vista and Linux copied it. Haiku should improve it. This will involve significant
-- major, in some cases -- changes to the Deskbar,Tracker, the app_server, and possibly other system components, but
the changes will be well worth it. Visual effects detailed here are not
merely "eye candy", as some would call it, but have the dual purpose of
giving the user a better idea of what his computer is doing while
making the interface more visually appealing.
Services Provided:
The windowing system and desktop are intended to provide a number of services
No More Deskbar
What?! Am I crazy? Nah. It's just that the Deskbar's time has come. There are four current uses for it: launcher, up-to-date system information, system settings, and a loose collection of system-level functions, such as About BeOS and Find. They will all be replaced with better solutions.
Launcher Replacement: Tab-Based Task Organization
Instead of a single point of access to collect everything together (the Be menu), there will be a small group of tabs to provide better organization similar to the OS X product DragThing (screenshot below) and OS 9's Tab Menus. The user clicks on a tab and it expands to display a grid menu which contains the name and icon for each folder/symlink. Subfolders spawn a submenu in the direction moving away from the screen border where the tab originated, i.e. upward when at the bottom, downward when at the top, etc., and the parent menu places a light-colored overlay over all items except for the selected item to make the submenu stand out while still allowing the user to easily see other items in the parent menu. The images below (click for a larger version) show the steps.
This method will provide more width-depth balance -- the current organizational structure is shallow and wide: the top menu has 10 items; the Applications and Preferences submenus -- which are at only the second level of nesting -- have many more choices. Two clicks and significant mouse navigation are required. This method takes advantage of Fitts' Law in at least one direction. The large menu items also increase speed and have a bevelled edge to convey the large size of each item.
System Information: Enhanced System Tray
It seems like the current trend in user interfaces (OS X's Dashboard, Vista's Sidebar, and Google's Gadgets) is to provide some method for the user to download add-ons which look really cool and provide more than what is provided in the system tray. This is because the system tray's small size limits the amount of information that can be provided. The Sidebar's Widgets and Google's Gadgets simply add a window which consumes more desktop space. Worse yet, the add-ons themselves tend to be not fit with the rest of the UI's look and are larger than necessary, wasting the precious space taken up by the new window and adding insult to injury.
The new system tray is similar to the Sidebar in Windows Vista, but is less intrusive. As an option, it can always remain on top, but by default it can be covered up by other windows. Add-ons are required to be simple and uncluttered -- a few words and perhaps a picture. Instead of using miniature controls, each entry is clickable. The default action (such as starting the mail program for the e-mail add-on) is invoked on left click and configuration is done by way of a pop-up menu on right-click.
System-Level Settings and Functions: the Computer Tab
In a way quite similar to the Programs tab, the Computer tab houses access to global functions and settings. The Preferences apps find themselves placed here in submenu. The Find, About Haiku, Restart, and Shutdown items are also placed here.
Window Management Improvements
Minimize in Place
Minimizing a window can actually be a source of confusion for some users. Merely by double-clicking on a window tab, the window disappears and there is no apparent reason why or where it has disappeared to. In fact, unless the user specifically looks at the Deskbar's running program list or there are multiple windows open, the program appears to have closed. In latter case, the document seems to have been closed. The solution is to minimize the window to a miniature version of itself, add the program's icon to its corner to further aid in identification, and place it on the desktop. When a window is minimized this way, the scaling-down process is animated to show its placement on the desktop.
Right-click Desktop Menu (Window management functions)
Window management functions until now have been largely ignored and have been limited to Hiding or Showing one or more windows in a program. While these functions can still be used in the Running Programs addon for the system tray, these functions will also be placed in a submenu of the Desktop, so the user can right-click on the Desktop and choose an item like "Hide Program Foo."
Show Desktop
Minimize in Place increases the need for being able to see the Desktop because suddenly it is no longer just a kind of computer junk drawer. Because of this new need, it is more important than before to be able to quickly see it. Invoking this function from the Desktop context menu (see above) or by hitting F11, all windows slide almost completely off-screen. Hitting F11 again returns all windows to their original positions.
Minimize All
Does a Minimize in Place for all open windows in the current workspace.
Workspaces View
Workspaces are feature of BeOS which set it apart from other OSes (except the *NIXes) back in the day. Mainstream OSes today still don't do justice to utilizing them because for them, workspaces are just a bolted-on feature not originally intended in the design of the interface. More so than before, workspaces will be a major part of the user experience -- they allow the user to do much more at once and still remain organized. The workspaces control will be similar to a Replicant, but will be an integrated part of the Desktop, defaulting to the center of the bottom edge of the screen. By having a 3D-accelerated desktop, it will be possible to see live updates of all programs.
While all of this may be nothing particularly special so far -- integration and visual enhancement of a current feature -- there is one more tool in the window management toolbox: a zoomed workspace view. By hitting F12 or choosing the appropriate option from the Desktop window management menu, the Workspaces control expands to full-screen size (with a corresponding zoom animation). At this point, the user can double-click on a particular workspace to switch to it, move windows around, or just watch multiple apps working at once. Switching from this full-screen view to a workspace results in yet another appropriate zooming animation into the requested workspace to give context to the user.
Enhanced Twitcher
Some users will not necessarily want to work with multiple workspaces and prefer to keep everything in the same workspace, piled on top of each other. For these users, there will be some small enhancements to the current Twitcher. It will show a live preview of the window along with the program name and the title of the window switched to when released. A semi-transparent black overlay is placed in between the screen and the Twitcher previews (in the Z order) In order to increase the visual contrast from the actual desktop. The selected app's preview has a "glow" selection rectangle placed around it and the title header is shown in a slightly larger font size. The previews themselves are as large as possible -- up to the full size of the window -- and are scaled down only enough to fit all windows within the width of the window. They are also placed close enough together that the selection indicator slightly overlaps the others to visually "push" the selected preview in front of the others.
Window Movement Constraints
Sometimes the user gets himself into a bit of a mess when a window is somehow off the screen and he can't get it back on the screen. Small changes in window dragging will help prevent these situations.
Hardware Considerations
One problem with depending on a 3D graphics card to do certain tasks in the main part of the interface is figuring out what to do when there *isn't* a 3D card or how to handle the differences in the capabilities of each card. The solution is three-fold: implement certain functions in software, turn certain enhancements off, and provide lower-overhead alternatives to enhancements.
An example of using these methods to provide a good user experience with less-capable hardware can be found in the new Twitcher. Live previews would be processor-intensive, so instead of providing live ones, the user is given a snapshot of each app's state when the Twitcher was invoked -- a non-live preview. The soft-glow of the selection could be replaced simply with one generated with a simple solid-color rounded rectangle. Live updates to the goings-on under the overlay would be handled in the same way as the live previews - take a snapshot of the desktop, apply the overlay, and show the Twitcher. While the enhancements will not run nearly as fast as the hardware-accelerated versions, they should still be quite usable and responsive.
Another low-power handling example can be found in the new Workspaces control. Visually speaking, the control would look like the current version -- small representations of the windows with text labels. The zooming effect when switching between to full-screen mode and a workspace could be eliminated or an outline rectangle could be used.
Final Thoughts
These changes are by no means small, but they have the potential to make Haiku an operating system that makes the user's experience much more enjoyable and productive for users of all levels of experience.
Services Provided:
The windowing system and desktop are intended to provide a number of services
- Up-to-date status information (time/date, new mail, reminders, etc)
- Program-launching facilities (desktop icons, quick launcher, etc)
- Functionality to work with multiple open programs (Twitcher, workspaces, etc)
- Window management tools (resize, minimize, move, move to front/back)
No More Deskbar
What?! Am I crazy? Nah. It's just that the Deskbar's time has come. There are four current uses for it: launcher, up-to-date system information, system settings, and a loose collection of system-level functions, such as About BeOS and Find. They will all be replaced with better solutions.
Launcher Replacement: Tab-Based Task Organization
Instead of a single point of access to collect everything together (the Be menu), there will be a small group of tabs to provide better organization similar to the OS X product DragThing (screenshot below) and OS 9's Tab Menus. The user clicks on a tab and it expands to display a grid menu which contains the name and icon for each folder/symlink. Subfolders spawn a submenu in the direction moving away from the screen border where the tab originated, i.e. upward when at the bottom, downward when at the top, etc., and the parent menu places a light-colored overlay over all items except for the selected item to make the submenu stand out while still allowing the user to easily see other items in the parent menu. The images below (click for a larger version) show the steps.
This method will provide more width-depth balance -- the current organizational structure is shallow and wide: the top menu has 10 items; the Applications and Preferences submenus -- which are at only the second level of nesting -- have many more choices. Two clicks and significant mouse navigation are required. This method takes advantage of Fitts' Law in at least one direction. The large menu items also increase speed and have a bevelled edge to convey the large size of each item.
System Information: Enhanced System Tray
It seems like the current trend in user interfaces (OS X's Dashboard, Vista's Sidebar, and Google's Gadgets) is to provide some method for the user to download add-ons which look really cool and provide more than what is provided in the system tray. This is because the system tray's small size limits the amount of information that can be provided. The Sidebar's Widgets and Google's Gadgets simply add a window which consumes more desktop space. Worse yet, the add-ons themselves tend to be not fit with the rest of the UI's look and are larger than necessary, wasting the precious space taken up by the new window and adding insult to injury.
The new system tray is similar to the Sidebar in Windows Vista, but is less intrusive. As an option, it can always remain on top, but by default it can be covered up by other windows. Add-ons are required to be simple and uncluttered -- a few words and perhaps a picture. Instead of using miniature controls, each entry is clickable. The default action (such as starting the mail program for the e-mail add-on) is invoked on left click and configuration is done by way of a pop-up menu on right-click.
System-Level Settings and Functions: the Computer Tab
In a way quite similar to the Programs tab, the Computer tab houses access to global functions and settings. The Preferences apps find themselves placed here in submenu. The Find, About Haiku, Restart, and Shutdown items are also placed here.
Window Management Improvements
Minimize in Place
Minimizing a window can actually be a source of confusion for some users. Merely by double-clicking on a window tab, the window disappears and there is no apparent reason why or where it has disappeared to. In fact, unless the user specifically looks at the Deskbar's running program list or there are multiple windows open, the program appears to have closed. In latter case, the document seems to have been closed. The solution is to minimize the window to a miniature version of itself, add the program's icon to its corner to further aid in identification, and place it on the desktop. When a window is minimized this way, the scaling-down process is animated to show its placement on the desktop.
![]() Before
|
![]() |
![]() After
|
Right-click Desktop Menu (Window management functions)
Window management functions until now have been largely ignored and have been limited to Hiding or Showing one or more windows in a program. While these functions can still be used in the Running Programs addon for the system tray, these functions will also be placed in a submenu of the Desktop, so the user can right-click on the Desktop and choose an item like "Hide Program Foo."
Show Desktop
Minimize in Place increases the need for being able to see the Desktop because suddenly it is no longer just a kind of computer junk drawer. Because of this new need, it is more important than before to be able to quickly see it. Invoking this function from the Desktop context menu (see above) or by hitting F11, all windows slide almost completely off-screen. Hitting F11 again returns all windows to their original positions.
Minimize All
Does a Minimize in Place for all open windows in the current workspace.
Workspaces View
Workspaces are feature of BeOS which set it apart from other OSes (except the *NIXes) back in the day. Mainstream OSes today still don't do justice to utilizing them because for them, workspaces are just a bolted-on feature not originally intended in the design of the interface. More so than before, workspaces will be a major part of the user experience -- they allow the user to do much more at once and still remain organized. The workspaces control will be similar to a Replicant, but will be an integrated part of the Desktop, defaulting to the center of the bottom edge of the screen. By having a 3D-accelerated desktop, it will be possible to see live updates of all programs.
![]() The control up close
|
While all of this may be nothing particularly special so far -- integration and visual enhancement of a current feature -- there is one more tool in the window management toolbox: a zoomed workspace view. By hitting F12 or choosing the appropriate option from the Desktop window management menu, the Workspaces control expands to full-screen size (with a corresponding zoom animation). At this point, the user can double-click on a particular workspace to switch to it, move windows around, or just watch multiple apps working at once. Switching from this full-screen view to a workspace results in yet another appropriate zooming animation into the requested workspace to give context to the user.
Enhanced Twitcher
Some users will not necessarily want to work with multiple workspaces and prefer to keep everything in the same workspace, piled on top of each other. For these users, there will be some small enhancements to the current Twitcher. It will show a live preview of the window along with the program name and the title of the window switched to when released. A semi-transparent black overlay is placed in between the screen and the Twitcher previews (in the Z order) In order to increase the visual contrast from the actual desktop. The selected app's preview has a "glow" selection rectangle placed around it and the title header is shown in a slightly larger font size. The previews themselves are as large as possible -- up to the full size of the window -- and are scaled down only enough to fit all windows within the width of the window. They are also placed close enough together that the selection indicator slightly overlaps the others to visually "push" the selected preview in front of the others.
Window Movement Constraints
Sometimes the user gets himself into a bit of a mess when a window is somehow off the screen and he can't get it back on the screen. Small changes in window dragging will help prevent these situations.
- Top / Bottom Tab Constraints - window tabs cannot be dragged below the bottom edge or above the top edge of the screen.
- Left / Right Screen Alignment - Using the Snap-and-Go techniques pioneered by Patrick Baudisch, allow the user to easily align a window to the side of the screen without preventing him from moving it further.
Hardware Considerations
One problem with depending on a 3D graphics card to do certain tasks in the main part of the interface is figuring out what to do when there *isn't* a 3D card or how to handle the differences in the capabilities of each card. The solution is three-fold: implement certain functions in software, turn certain enhancements off, and provide lower-overhead alternatives to enhancements.
An example of using these methods to provide a good user experience with less-capable hardware can be found in the new Twitcher. Live previews would be processor-intensive, so instead of providing live ones, the user is given a snapshot of each app's state when the Twitcher was invoked -- a non-live preview. The soft-glow of the selection could be replaced simply with one generated with a simple solid-color rounded rectangle. Live updates to the goings-on under the overlay would be handled in the same way as the live previews - take a snapshot of the desktop, apply the overlay, and show the Twitcher. While the enhancements will not run nearly as fast as the hardware-accelerated versions, they should still be quite usable and responsive.
Another low-power handling example can be found in the new Workspaces control. Visually speaking, the control would look like the current version -- small representations of the windows with text labels. The zooming effect when switching between to full-screen mode and a workspace could be eliminated or an outline rectangle could be used.
Final Thoughts
These changes are by no means small, but they have the potential to make Haiku an operating system that makes the user's experience much more enjoyable and productive for users of all levels of experience.





Comments
Window movement
Maybe you intended to do it that way, but I think that snap-n-go should also work in vertical direction.
When snapped, the window border should disappear (not possible at the top, though). That way, you could efficiently access the scroll bars.
In order for this to work, snap-n-go should probably start when the window border is moved out of the screen area (instead of when it touches the screen border), but that's a detail we could try out.
Re: Window movement
Sure, but the border shouldn't disappear. For some decorators, the only way to resize the window is via the border. If it disappears, the window can no longer be resized. You could, though, have the window snap to the inside of the border and not the outside, thus making scrollbars easily accessible while still being able to resize the window. Snap-and-go for the bottom edge of the screen sounds good, too.
Re: Window movement
You could, though, have the window snap to the inside of the border and not the outside, thus making scrollbars easily accessible while still being able to resize the window.
That's what I tried (but failed :) to explain with my last paragraph.
Re: 3D-Accelerated Haiku Desktop
DarkWyrm,
This might be of interest...
http://www.pangeasoft.net/tabmeister/info.html
Re: Launcher Replacement: Tab-Based Task Organization
I generally like the idea of Tab-Based Task Organization, but I'm against the proposed interface for it.
- As DarkWyrm noted the proposed interface only helps with one side of Fitt's Law (big targets are efficient). The problem with big targets in a grid layout is that most targets are far away and inefficient to acquire. This is not a big deal if you are using a mouse, but using e.g., a touch-pad can become a drag. Considering how common laptops have become, I don't think a major part of an OS can be optimized for use with a mouse.
-Another, more serious, problem is that looking trough a grid/row of icons with names underneath requires a lot of eye movements, which is slow. Unless you happen to recognize the icon of your target, you have to fixate to the name under each icon, which is very inefficient. This grid/row design puts too much importance to the icons, which are irrelevant every time you don't already know what the icon of your target is. Icons are important, but they only serve habituated use and recognition.
To improve the main idea, I would suggest using something like the Column based navigation in Tracker http://haiku-os.org/files/TrackerBrowser.png . I'm not suggesting identical, just similar as far as rational :-).
What I like about in the TrackerBrowser interface is that it shows lists that are easy to scan trough (you can fit about 4 item names to your sharpest vision area i.e. fovea on your retina). The icons in TrackerBrowser are small, but still recognizable, and as easy to scan trough as names of items. Items in the TrakerBrowser like interface are smaller than in the proposed grid/row interface, but they are also much closer to each others. I believe that reduced visual search time compensates for the time saving gained with bigger targets. Furthermore, having items close to each other, should be equally good for most input devices (e.g., only one finger stroke needed on touch-pad and only finger/wrist movements needed with tablet input).
Tasks/Applications mostly fall into neat categories, so using similar interface for navigating categories of applications and folders of files should make sense. I would think that some visual differences between file and application browsers would help to prevent confusion between the two. E.g., icons could be a bit larger in the application browser ui and other appropriate eye-candy chances.
Re: Launcher Replacement: Tab-Based Task Organization
Stubborn as I usually can be, you make very good points and methinks I'm going to go back to the drawing board on that one and use something much more like the column browser. Doing something similar to the Start menu (without being a menu) could be much easier for laptop users.
Tabs and some other stuff
I have some doubts about tab-based organisation as well...
1. It relies on classification of programs, which can be a bit problematic due to bad metadata. For example, in the categories you provided in the screenshot, office applications are difficult to guess. Applications come in all strange varieties, and categorising can become unintuitive.. That's what I found out when I tried to [unsuccessfully] categorise the programs in my start menu a long time ago.
2. Is it reliable when dealing with lots of programs? That's the case with many using MS Windows, of course including myself.
3. It doesn't let the user see all the programs at once.. Depends on whether he wants to see them or no.
As said by hma, something like a mini-tracker would be good; provided we come up with a good category system. Otherwise, we can implement something like vista start menu - clicking the button will show the icons, which can then be filtered to get the file/app we want.
I like this idea about window-management but I always had these two doubts:
1. While this is great for novices, won't this cause the same probs that OS X Dock has [absence of file-name makes it difficult to distinguish between plain-text files..].
2. Will this handle multiple windows effectively...?
Re: Tabs and some other stuff
Re: Tabs and some other stuff
Some thoughts about application categories and filtering
I believe having some categorization is necessary and good. Some applications, like games, are easy to classify. Many applications have specific enough use that puts them in the same category. For example, I have all my graphics applications in one and programming related applications in another category. Applications that come as a group, like OpenOffice, can stay together in their own category. Applications that are used only to chance something, like firewall settings, can go with other setting chancing applications. Applications that are really hard to place can always be put to "Accessories" or other junk drawer category.
Junk drawer category (e.g., Accessories) seems bad, but having few "obvious" categories narrows down search possibilities. For instance, a bittorrent client should not be in "Graphics", "Games" etc. so it probably is in "Accessories".
More important than what categories are used, is that users have easy access to their most important applications. Something where users can explicitly choose to put applications for easy access (kind of like the most used programs area in WindowsXP start menu, but without any attempt to guess what should be there, only what has been chosen to be there).
The problem with Vista's start menu filtering is that it requires that you remember at least partially the name of the application. If I tried to use name filtering to find that other solitaire game that comes with windows, I would only find Solitaire and not FreeCell that I wanted. Humans simply recognize a lot better than they remember. Its not that filtering would be a bad feature, for this purpose its just not as good as combination of recognition and habituation.
However, since searching seems to be so popular feature on both Vista and OS X, I would not be surprised if something similar was in a future version of Haiku.
Re: Tabs and some other stuff
I agree with you that over-reliance upon searching can be painful [often do I just sit in front of the PC and wonder what the name is so that I can type it into the program launcher] but the thing is, if we're to employ a categorical system it has to be extremely effective otherwise will be more of a bane than boon, that's what I felt:
For example: Mozilla Suite [including firefox and thunderbird], OO.o Suite, Adobe Suite, Python IDE + Compiler, etc...
Categories like 'graphics' or 'audio' would not have many programs within them; while 'multimedia' would contain a good number.
However a category like 'multimedia' may get flooded by viewers, convertors and editors. In such a case, categories seperating the viewers from editors would be good, which not only reduces the load but also benefits end-users for they have less to bother about any development applications.
-> Lastly, the user should be allowed to view all the applications at once, sans categories.
Of course this will face some difficulties e.g., word processor v/s text editor category; online v/s offline; editors v/s viewers; system v/s third-party etc.. Ultimately the 'utilities' folder will have to be introduced, but it should only act as a place for essential tools, hopefully.
- My 2 cents (kinda..)
Re: Tabs and some other stuff
It is best not to over-engineer any categorization.
Having a lot of items in a category is actually not as bad as dividing into subcategories. For example, according to Hick's Law, choosing from one menu of 10 items is faster than choosing form two menus of 5 items [Dan Saffer 2006, Designing for Interaction].
Furthermore, the more you try to categorize, the more subjective hierarchy you get. Trust me, you do not want anything where complex subjective hierarchy meets fuzzy categories. :)
I would just settle with maybe 4 default categories, and let users have as much other/sub categories as they want. For example, application could suggest where in the hierarchy it should go, when it is installed, but let user chose differently (its been a while since I had beos installed so I don't remember how application installation worked).
Re: Tabs and some other stuff
>>For example, according to Hick's Law, choosing from one menu of 10 items is faster than choosing form two menus of 5 items [Dan Saffer 2006, Designing for Interaction].<<
Hick's law is applicable only for its applicable only when the user knows the name of the item he wants and the data is available in a sorted form... Nevertheless doesn't this go in favour of my view i.e., fusing audio and video as multimedia? I don't think we would have more than five in audio and video as well..
I didn't say sub-categories, i said grouping - as in, editors are on top of the menu and viewers on bottom, etc.. Dunno how effective or detrimental this can be to the user experience though. Secondly, deeply thought out doesn't imply fuzzy subjective categories; but something that's not thought over means poorly designed categories that leads to confusion and frusturation which is exactly the point we are here to address. I'm not asking for well-defined categories for each kind of data.. if that's what you understood from my post for which I apologise. But yes, if the the number of categories is overwhelming or few but rigid, I don't think it can be called effective. I'm thinking of 4~6 categories..
Re: Tabs and some other stuff
My bad. I misunderstood that you suggested sub-categories when you meant grouping. I was also overly cynical because of that. It seems that we were not far from agreeing.
You are right that deeply thought does not imply fuzzy and subjective, but it can lead to that if it turns into over-engineering. In that case, only the designer understands it and others have fuzzy ideas how it should be used. Over doing it can also mean that the organization is technically correct accordingly logic, but incomprehensible to the users.
Now that I have been sufficiently lethargic about categorization attempts, I have an idea how good, informative categorization could be implemented in efficient and usable way. When I was against anything more than very simple hierarchy, I was thinking too much inside drop-down menus.
-----------------
I was skeptical about groupings inside categories, but thinking how that would look in a new type of Deskbar, I see how It could lead to a really innovative "start menu". I'm thinking something like a single column index menu, where clicking a header opens another column to show whole content of that category. Some subset of applications (or all if space allows) would be shown under each header.
I cant think of an existing example, but conceptually something like the list and description below.
To launch Firefox, user would click [something] to open Deskbar, and then click Firefox.
To launch IRC, user would click "Internet >". A new column would appear, containing all apps in Internet group. In the new column, under "Communications" header would be IRC client along with VoIP and email.
The number of apps shown below each header would be configurable and users could select which apps are shown there.
The first column would have a header named "Quick Access >" that would show all applications when clicked (your feature requirement). And under the "Quick Access >" header would be a selection of user's important apps for fast access (my feature requirement).
Theres a lot of need for deep thought about how to chose categories and how populate the category subsets (app lists below headers). If there is interest for this concept, I could whip up a better explanation with pictures (assuming I'm not stepping any toes here).
Re: Tabs and some other stuff
>>Over doing it can also mean that the organization is technically correct accordingly logic, but incomprehensible to the users.
Agreed, just that we have to make sure that vital flaws dont creep in. The design doesn't necessary have to be limited to one person, or within the hands of the developer... Before the categories are implemented we might even take opinion of the users..
Your concept certainly seems interesting, there is both grouping and foldering implemented in a neat manner..
Categories are dependent on one's point of view
I think you sort-of answered my question but I'll probably add some value; How about a category search.
Take for example VLC. In Zeta this was once renamed to DVD player, very good because of the icon, I wouldn't know it is actually a multi- or media player at all.
I'd go for a menu with different views and search integrated so you could filter/search for 'office' apps or just type 'write stuff' and it'll come up with both OO and StyledEdit and a mail program. Then the user would say "I want to write a letter" and sure enough there is a magical description attribute which matches the query. Make some description and category attributes and be done with it. Because I really do think that different people will categorize the same stuff differently.
You can go furtur and let the user be able to enter filetypes eg. m4a, avi or doc and click Search for App which can open this file type and it will find an App which can display, playback, edit this type of file!
Re: Tabs and some other stuff
I hope an email client will also come up in the office category, and how about a calculator, office or accesoiry?
I think categorizing is just old thinking. Like trying to reduce much information by dividing it more into pieces which are not common to everyone. And because there are obviously programs which fullfill more roles and to make it even harder will get more roles as they get developed more (Google talk getting VOIP for instance)... you get what I mean?
I think the only *sure* way to categorize is to do that by applying a logical standard like can it edit or just view or both, which file types can it edit or view or playback or none (IRC), can it send and receive in that direction I'd go.
My mom will tell me she needs internet when she actually needs email but you can also have webmail so which one is it, the browser or the email program? Therefore I think it is important to realize that some people have an abstract goal and need to find the right way to get there.
Back to BeOS: with R5 it was obvious the Applications menu was too small to contain many many apps installed during the lifetime of an R5 install but 1 thing was divided very well; apps and prefs... Except for workspaces which is again a proof of how difficult it is to categorize IMHO! But back to R5, I would leave it like it is just change it's purpouse in that it should be a *prefered* or better, custom short list for users and adding buttons for Viewing all apps, categories View, search and perhaps category or search by file type it can open/edit and more...
When I installed Zeta and Phos I can tell you I spend more time finding apps and trying to remember in which category it was.
Minimize in place
I couldn't disagree less with your minimize idea except for one thing: animation!
Just add a little bit of animation to the minimization currently implemented in BeOS R5 and users will see what is happening.
No need for adding more (minimized) icons to the desktop... which would not be seen because they would be below windows(!).
Re: Minimize in place
I completely agree with you. Animation is valuable for transitions. I'm pretty sure that's one reason why Apple has one for windows being minimized into the Dock -- the user will see where his window went.
Re: Minimize in place
I think there are 2 types of animation-behaviour found in OSes.
1. is after the user activly did something.
2. is when the system does something.
I'd prefer only animation for the first point, to emphasize what I just did. But of course I do not want that kind of animation to slow me down.
The 2nd point I do not want because it distracts me.
Window Movement Constraints
I seriously would not want that eventough I did experience bad behaviour which would have been solved by contraining window movement.
I believe that you came up with this also because of another 'problem', namely that the borders of a BeOS window are quite thin, and thus hard to grab (or even raising a different window beneath thus obscuring the window the user wanted to grab!).
A better sollution IMHO would be pressing the 'menu-key' found on modern MS Windows-branded ;-) keyboards while the particular window has focus and having a menu pop up with options to move, close, resize etc, the window.
And...I'd honestly like to know how you would combine "Window Movement Constraints" with your "F11, show desktop"-behaviour... ;-))
Re: Window Movement Constraints and Minimize in Place
I think there are 2 types of animation-behaviour found in OSes.
1. is after the user activly did something.
2. is when the system does something.
I'd prefer only animation for the first point, to emphasize what I just did. But of course I do not want that kind of animation to slow me down.
The 2nd point I do not want because it distracts me.
I agree with you with one exception: progress indicators, like the throbber in the top right of a browser window, for example. The reassurance that my fellow codemonkey who wrote a program didn't hang the app is worth the extra visual distraction IMO.
I seriously would not want that eventough I did experience bad behaviour which would have been solved by contraining window movement.
I believe that you came up with this also because of another 'problem', namely that the borders of a BeOS window are quite thin, and thus hard to grab (or even raising a different window beneath thus obscuring the window the user wanted to grab!).
A better sollution IMHO would be pressing the 'menu-key' found on modern MS Windows-branded ;-) keyboards while the particular window has focus and having a menu pop up with options to move, close, resize etc, the window.
And...I'd honestly like to know how you would combine "Window Movement Constraints" with your "F11, show desktop"-behaviour... ;-))
I don't see how the constraints would conflict with Show Desktop. The constraints would only apply when the user was moving the window, not the system. Everything I've described there is already done on the GNOME desktop, including the left/right alignment thing. Showing the desktop would work just like it does on the Mac.
BTW, I like you idea of mapping the menu key to window management functions. Another good one. :)
Re: Window Movement Constraints and Minimize in Place
OK so you come up with one example, well that's not enough. I strongly believe that when you're are using some programs long enough you don't need to see all of it or don't need them to be on top. Why couldn't you have a tiny instant message window on top for example? Maybe a an RSS feed too. And a weather indicator. And perhaps, stock info? Winamp?
You see I think multitasking is about having more than one window open, I see no need for maximized windows unless you want to concentrate on that particular window alone or need all the space you can have. Yes I read a about a program which could be made full screen on Mac OS X, yes I think it's a good idea but why should it always be the upper most?
Come on people, isn't it just that it has always been so that you think the program you are working with has to be the topmost window?
Maybe if the 'lower-window' function (right click tab) wouldn't lower a window to the bottom but just one below (-1). Like before you would have 4 windows, 1,2,3,4 and lowering the topmost (4) would do 1,2,4,3 instead of the now 4,1,2,3.
Going further I think a lot of newcomers will think "Oh where has that window gone?" Not realizing it is obscured below all the others. I think we'd need an animation for that too, like maybe temporarily make the window it has gone underneath transparent and opaque again so that one can see were the lowered window has gone too?
Re: Tabs and some other stuff
How about category attributes? Search for internet and applications, like email, browsers, bittorrent etc. will be found and displayed...
Re: Window Movement Constraints and Minimize in Place
OK so you come up with one example, well that's not enough. I strongly believe that when you're are using some programs long enough you don't need to see all of it or don't need them to be on top. Why couldn't you have a tiny instant message window on top for example? Maybe a an RSS feed too. And a weather indicator. And perhaps, stock info? Winamp?
You see I think multitasking is about having more than one window open, I see no need for maximized windows unless you want to concentrate on that particular window alone or need all the space you can have. Yes I read a about a program which could be made full screen on Mac OS X, yes I think it's a good idea but why should it always be the upper most?
Come on people, isn't it just that it has always been so that you think the program you are working with has to be the topmost window?
You clearly have your own way of working. That's fine. Just be aware that it is your personal preference... an opinion. Mine is no more or less valid than yours.
Does this mean that I think what you've mentioned should be the default? Nah. Every major desktop OS uses click-to-raise as the default. Fighting standardization like that only annoys people. It's also tiring and largely pointless -- kinda like trying to convince everyone to use a Dvorak keyboard. Considering that OS X does it unobtrusively, there shouldn't be any reason not to do something similar. :)
Going further I think a lot of newcomers will think "Oh where has that window gone?" Not realizing it is obscured below all the others. I think we'd need an animation for that too, like maybe temporarily make the window it has gone underneath transparent and opaque again so that one can see were the lowered window has gone too?
You're assuming that newcomers are beginners, which is not likely to be the case. The vast majority of users of R1 will end up being developers, hobbyists, and enthusiasts.
Re: Window Movement Constraints and Minimize in Place
You clearly have your own way of working. That's fine. Just be aware that it is your personal preference... an opinion. Mine is no more or less valid than yours.
Of course I am aware that it is my personal opinion but because all the others do it, doesn't make it right or sensable. Think about how many people use MS Windows eventough they are aware of its shortcomings.
Does this mean that I think what you've mentioned should be the default? Nah. Every major desktop OS uses click-to-raise as the default. Fighting standardization like that only annoys people. It's also tiring and largely pointless -- kinda like trying to convince everyone to use a Dvorak keyboard. Considering that OS X does it unobtrusively, there shouldn't be any reason not to do something similar. :)
I agree it is a logical thing to raise windows but certainly not all the time and maybe only if you click on the title bar or tab.
But ask yourself this "If a lot of people think it is a good idea, will it become the default?"
Usually it is not about what works best but who is the first to set a standard. Look like everybody is bashing MS Windows, but KDE and Gnome copied its start menu quite clearly. Their windows also steal your focus, they also pop-up etc. Did Be Inc. copy MS Windows?
So I'm not fighting a 'standard' I'm just saying that we could reconsider the usefulness of raising windows when you click inside them. An option to not raise them when you click inside would be a sensible step to make IMO.
You're assuming that newcomers are beginners, which is not likely to be the case. The vast majority of users of R1 will end up being developers, hobbyists, and enthusiasts.
I thought you were assuming that :-) Still I think moving windows to the background is sometimes confusing in the same way as you describe the current minimize feature in R5, in the "Minimize in place" part. Unless you know what you did, you might not know what happened. And that IMHO could be handled better, don't you agree?
Re: Window Movement Constraints and Minimize in Place
Of course I am aware that it is my personal opinion but because all the others do it, doesn't make it right or sensable. Think about how many people use MS Windows eventough they are aware of its shortcomings.
An opinion can't be right or wrong, just different. Like Coke vs Pepsi.
So I'm not fighting a 'standard' I'm just saying that we could reconsider the usefulness of raising windows when you click inside them. An option to not raise them when you click inside would be a sensible step to make IMO.
Ah. I misunderstood what you were referring to. That is something up to the developer ATM - deciding whether a window should be raised or to accept the first click. I can see what you're getting at and it's worth looking into.
I thought you were assuming that :-) Still I think moving windows to the background is sometimes confusing in the same way as you describe the current minimize feature in R5, in the "Minimize in place" part. Unless you know what you did, you might not know what happened. And that IMHO could be handled better, don't you agree?
Yes. That would be the reason for proposing Minimize in Place with a corresponding animation. :)
Re: Window Movement Constraints and Minimize in Place
Ah I'm glad we understand each other! And about the opinions, what I wanted to say, but failed :), is that it would be good to do a survey. Nothing about right or wrong :-) Have a nice weekend.
KDE as a test bed: a short guide
I found out that I can do everything concerning different (esoteric) window behaviour with KDE. I was playing with it right now and I see I can make it almost BeOS-like. (KDE even does a minimize animation like Windows does)
If you go to Control Center choose Desktop and after that Window Behaviour. In the Focus tab I set the Focus policy to Focus Follow Mouse (I dislike too much clicking, we can commence discussions about advantages/disadvantages elsewhere) and deactivated(!) Click to raise active window for testing how it is like when the window won't be raised when you click inside it. If you prefer click to focus set it to that.
In the Actions tab I set Titlebar double click to Minimize, and in section Titlebar & Frame, Left button to Raise, Middle button to operations menu and Right Button to Lower.
For section Inner Window, Titlebar & Frame I left the Modifier key to Alt, and then for the mouse buttons (in order): Raise, Resize and Move. The other tabs I left like they were before IIRC. Note that if you use Click to focus in the Focus tab, you might want to experiment with Activate/Rais/Pass click options in the Inactive Inner Window section and the Inactive section of Titlebar & Frame.
I must say I find the Control Center not the most intuitive piece of SW but it gets the job done. Funny is that the section Inactive Inner Window is useless for users which use Focus Follow Mouse same applies for the Inactive section.
If you want even more BeOS fun set Window decorations in Appearance and Themes to B II and set the colours in Colors to BeOS.
BeOS R5 windows: 'do not raise when moved or clicked inside'!
Note: with Focus Follow Mouse enabled (have to check for Click to Focus), BeOS-windows will generally not be raised when clicked inside, Tracker is an exception to this rule (as well as Sequitur and maybe more).
I think this behaviour has obvious benefits but I wish I could also raise windows when clicked inside them with a modifier key and move them by clicking and dragging anywhere inside the window and holding the modifier key. This could be done with the same mouse+key combination since BeOS will not raise a window when moved(!) but will raise when only clicked upon its tab or border. KDE does this too (moving without raising) but only when clicked with the right mouse button.
Does Haiku work exactly the same way as R5 in this regard?
Re: Tabs and some other stuff
I agree.
It occurs to me that the idea of having an application exclusively placed in one category seems wrong. If, when working on task A, I think of a program as one category, but during task B, it's another, well, why not both?
I don't see why one would want to chain a user to any preset categories, either. Providing a very efficiently selected set makes things easier, and can demonstrate the power of the mechanisms provided, but there is no universally "correct" list. Some people will want to do very different things with their box than others.
On a different note, I'd like to point out that it would be nice to consider some mechanism for keyboard selection for this element. The Tracker Browser model seems to be an easier fit for that, as well.
Subcategories could be used to narrow the field in the case of overlapping categories, actually. That may bear some consideration as well, but I can't think of a good way to use that.
Re: Minimize in place
I second this.
The window minimizing could be shown effectively with line drawings. (that is to say, the same information is conveyed to the user) I tend to prefer this method of animating and moving windows when given the preference.
A line connecting some part (or lines connecting some parts) of the window to the new location would convey such information as well as a window animation. For example, a line drawn for a couple tenths of a second from the upper left of the window to some point on the ultimate destination.
Also, while tiny live versions of the window are all kinds of spiffy, they generally don't actually provide much in the way of usable information to a user.
Some interfaces I've seen use a sort of tab bar for the list of windows, instead of minimizing to a desktop icon. I can't recall the name, but one of the replacement GUI's for Windows Xp did this instead of having a start menu/application bar.
Such a list could contain the minimized windows, all windows (perhaps as a submenu), and optionally list only those windows from the current workspace.
Just some food for thought. As stated, some eye-candy really does provide information in an efficient and useful manner, but some doesn't.
Re: Minimize in place
I really need to get around to revising this RFC. The original intention behind Minimize in Place was to eliminate the taskbar list. I have yet to see an implementation that does what I had in mind -- it's kind of a hack under OS X and a similar effect was merely under development for Compiz Fusion (last I knew). Xfce has an iconify to desktop feature that gave me a chance to work with something close. The problem is that if you work with a lot of windows at once, you have to slide the windows out of the way or use Alt+Tab to access them. I have an alternative which works pretty well minus all the nice 3D effects, but I'll describe that in the revised version.
Re: Minimize in place
Fair enough, I'll wait to see what you come up with in the next incarnation. Removing the taskbar list seems like a reasonable goal, at least as a requirement.
(By the by, the post previews had my previous notes adjacent to the posts I was responding to. Sorry for any confusion.)