Pat's Log
Sat, 25 Dec 2004

User Interface Idea
xbox/20041225 Now that exams are over, as are Christmas festivities, I am proceeding full-steam with producing software I envisioned while studying for exams.

It occurred to me that the flaw in DashPC's design philosophy is that it's just a launcher. It sits on top of a window manager and launches applications (and a few other things). What is needed in an automobile is an interface, something that does not hide behind windows, but rather allows control over them, and is always available to switch to other programs. However, it should not be a window manager, as that would have to take control of any child windows that a program starts, and that is not the goal. The idea is that child windows are the exception rather than the rule, and those should be handled by a window manager when they do occur.

The result of my ideas is a tab interface with large, simple tabs on the driver side of the screen. Tabs can be added or removed from a configuration file, and each tab corresponds to a different program, always running. The program corresponding to each tab is held within the tab's content area, as pictured for gpsdrive (this is only a concept graphic).

The difficulty lies in embedding the program. Several protocols were considered, including xembed. However, it needs to set up a socket and communicate with the client program, which would require modification for each program to be used. Finally, today, I came across gnome-swallow, which literally swallows any window into its panel window. The whole program is approximately 500 lines, with 75% of that being the panel code. The remaining swallow code should be very easily portable to any other GTK application. If all goes as planned, this means the program will be fairly trivial to write.

To make things even easier on the user, a high-contrast GTK theme could be easily designed to make it very clear which tab is selected. This theme could also enforce larger text, as needed for readability on smaller screens. I am also thinking of designing a hardware switch that would make the software automatically tint to a dark green or red when the vehicle's lights are on. This could be executed right at X11's level via colour-correction functions.


[/xbox] | posted @ 22:19 | link

copyright ©2004-2016 pat suwalski