Changing the basics of a GUI

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
UbarDPS
Posts: 14
Joined: Wed May 06, 2009 10:57 pm

Re: Changing the basics of a GUI

Post by UbarDPS »

NickJohnson wrote:
UbarDPS wrote:I want to take the OP seriously but I have a hard time when someone keeps trying to tell everyone else how everyone uses their computer when they really don't know.
UbarDPS wrote:Even some Linux/UNIX OSes are shipping with the default to 2 Virtual Desktops, because many (most?) people simply don't use or need that many virtual desktops.
Isn't this sort of hypocritical? :lol:
How so? It depends on whether or not you read the statement to be what it is, or whether you have some wild translation of it.

I read the thread and the OP states many times what rhetorical statements and questions like "people don't do this" or "do you even do this" when it's obvious that people do. If it weren't, then people would be removing these features because it would lower the cost of software development, as well as the amount of QA needed on them.
I use a lot of virtual desktops - it is significantly faster than bringing windows to the top, because it is one key command instead of one mouse movement and click. In my experience, the keyboard is almost always faster than the mouse if you use it correctly. I generally only use 2-3 virtual desktops when programming, but that's because I only have 2-3 windows *open*. If I'm doing other things, like word processing or general multitasking, I'll use 5-6. Having 1-2 windows per virtual desktop means that people don't use many virtual desktops, but that doesn't mean that virtual desktops are not really useful.
But I didn't say Virtual Desktops aren't useful. I just said their usefulness is limited. Eroded by software and hardware capabilities. It's no different than people who used to use different X terminal sessions on one computer and switch between them (certainly convenient, but hardly needed anymore).

It is easier to switch from window to window than from desktop to desktop, and no one says you can't tile or cascade your windows. Taskbars usually group the windows by type, and the keyboard shortcuts are usually standardized across operating systems and implementations.

Programs that don't need to be run in windows can be minimized to system trays, etc. Even when running 5-8 programs at the same time, I hardly ever have to deal with more than 3-4 windows on the screen concurrently.

I can't really vouche for the task splits, I've always used separate computers for different tasks. I do this so that I don't unnecessarily lose things that I don't need to when one computer or another craps out :P

Fixing a problem that doesn't exist is not innovation.

I guess I can see the point if you use lots of 15" CRTs, or low video resolutions (1024*768 and below).

Constant Screen swapping/panning would hurt my eyes, Lol. and it would significantly limit UI design since applications would have some interesting constraints placed upon them by the Operating System/Window Manager.
User avatar
quanganht
Member
Member
Posts: 301
Joined: Fri May 16, 2008 7:13 pm
Location: Hanoi, Vietnam

Re: Changing the basics of a GUI

Post by quanganht »

earlz wrote:I believe the answer is in using transparency properly.. it makes it so you can see two windows at once in the same place..
Ha ha. That's funny. Because if you do so, you won't be able to see even 1 window. Things will mess up themselves.
"Programmers are tools for converting caffeine into code."
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Changing the basics of a GUI

Post by earlz »

quanganht wrote:
earlz wrote:I believe the answer is in using transparency properly.. it makes it so you can see two windows at once in the same place..
Ha ha. That's funny. Because if you do so, you won't be able to see even 1 window. Things will mess up themselves.
maybe that is true lol..

What if you had a 3d mouse?

also, I'm watching this E3 show thing about "project NATAL" which is like somehow microsoft pioneered technology that can recognize your movements and stuff very accurately.. what if you could just flip through windows on your computer? very interesting AI stuff in it too..
User avatar
quanganht
Member
Member
Posts: 301
Joined: Fri May 16, 2008 7:13 pm
Location: Hanoi, Vietnam

Re: Changing the basics of a GUI

Post by quanganht »

earlz wrote:also, I'm watching this E3 show thing about "project NATAL" which is like somehow microsoft pioneered technology that can recognize your movements and stuff very accurately.. what if you could just flip through windows on your computer? very interesting AI stuff in it too..
And it will shot your computer down to hell, 'cause your computer is so weak, just have like 4GB of RAM and 1G of video RAM and so on... :lol:
"Programmers are tools for converting caffeine into code."
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Changing the basics of a GUI

Post by AndrewAPrice »

Most modern GUI's have been built around the desktop metaphor, and I have done some long and hard thinking about alternatives, until I can across the white board metaphor. White boards are a productive tool to use and I'll dot point the ideas I have in my head below. Most of these are likely to break compatibility with standard GUI programs, but if you're trying to do something new/different that's a sacrifice you have to usually make.

- Everything is done through single-button pointing devices (mouses, tablets, touch screens).
- A core feature is multi-touch, and as such programs accept multiple input devices, and there is a focus on multiple users collaborating at once.
- No program is in focus, so on very large displays (table surfaces, projection displays, multi monitor set ups), multiple people can be interacting with multiple programs at the same time.
- To move a window around the screen, you must use two pointers (see below how this can work with a single stylus/mouse yet still be intuitive for multi-touch devices). If both pointers drag a window in one direction, it will move. If both pointers drag a window in an opposite direction, it will scale and rotate (a compositing Window Manager will be required).
- Interacting with a window won't bring it to the front. A window moves to the front when it has been moved/rotated (you can jiggle it if needed).
- All drawing (with exceptions like video rendering) uses vector graphics and as such can be scaled and rotated.
- Since no program can be in focused, a keyboard effectively becomes unused. However, when you select an input field in a program that requires text entry, a small semi-transparent window will expand allowing you to assign a hardware keyboard to the field, or expand into a full-size on screen keyboard, or a handwriting recognition pad for styluses.
- Like the above, no program has exclusive control over a pointing device. However, a hardware mouse can be temporarily assigned to, say, a first person shooter game (providing there in a way to release mouse capture if it's your only pointing device).
- The same applies to the monitor, but resizing a program so it takes up an entire display will snap it, so it effectively becomes full screen (most useful for movies).
- To open a program, you drag a rectangle out of the background (starting at the background), then select what program to load into that window.
- There are no dialogue boxes, except small windows can expand out from under a pointer. For example when you press over a file, a semi-transparent window will expand allowing you to select Open, Rename, Delete, Duplicate, etc.

Multi-touch can be imitated quite efficiently with a standard desktop mouse (when you hold down the right button you duplicate the pointer, the second pointer stays still and disappears when you release the right mouse button, however when you hold down the left button, the second pointer also is held down and moves in the direction of the mouse (to drag), if you move the scroll wheel you toggle it so the mouse moves in the opposite direction (to resize/rotate)).

I think this GUI wouldn't have that many benefits on a standard keyboard/mouse desktop setup. On a single user system, you could have various productivity shortcuts, such as automatically assigning the hardware keyboard when a text entry is selected, disable rotations, etc. But on devices that are very much pointer-oriented - tablet PCs, touch screens, surface computers - this could be a significant improvement over the desktop metaphor.

So I have settled on the white board for my GUI. Implementation specifically I decided to also use L*A*B colour space natively in the window manager (converted to RGB by a display profile before final output).
My OS is Perception.
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Changing the basics of a GUI

Post by AndrewAPrice »

I've been finalizing the above idea for my OS, and as such I'm removing drawing windows to open them, and instead I'm adding dialogue boxes. But when windows open, they start in the orientation of the previous window (the only exception is the log-in window).

Orientation is playing a big role in this design, because tablets and surface PCs (not like I see my self having access to the latter though :() are going to be my target, where there is not always a correct 'up', and the user(s) can be viewing the screen from any orientation and able to move around it.
My OS is Perception.
Post Reply