Linked by Eugenia Loli on Tue 20th Jul 2004 18:50 UTC, submitted by Jono Bacon
Linux Jono Bacon has written an article on my O'Reilly Blog called The path to unified interaction which looks at the challenges of making our software work natively in the different desktop environments on Linux. Do you think this is something we should strive for, and if so, do you think it is technically possible?
Permalink for comment
To read all comments associated with this story, please click here.
Re: Uno Engborg
by Dutch_Cap on Wed 21st Jul 2004 00:14 UTC

"Perhaps we need a new manager in the X Window System. We already have window managers and session managers, why not a menu manager.

It could cooperate with the window manager and place the ROX menu as a menubar on top of each window in a windows like desktop or place the menu at the top of the screen in a MacOS like theeme."


I'm not sure if you entirely got my point. Well, you got my overall point, but not my specific example. I can see how what I wrote was a bit unclear, though.

I was actually referring to non-ROX applications integrating into a ROX desktop environment. As I mentioned ROX apps have no menu menu bar at the top of the window, like this:
http://rox.sourceforge.net/screens/edit.png

ROX apps only have a right-click menu. So to have one of the adaptive apps as proposed in the article integrate into ROX, it'd have to get rid of the menu-bar somehow and integrate it into the context menu. That would really clutter up the context menus, though.

Similarly, if I am on ROX and I write an adaptive application, I would probably be tempted to only define a context menu. Now if someone on KDE or Gnome ran my application, they'd find there is no menu-bar at the top of the window, since me and my ROX-head didn't define one.

My point, in case anyone missed it, is that it would be very hard to make a system for programs that integrates well into different environments, especially when the differences between these environments are very big. I fear it leads to the same problems webdesigners have sometimes. A webpage that works in Internet Explorer will often not work correctly in Mozilla or Konqueror and vice-versa. Making a webpage that works well in all browsers requires lots of testing and tricks. Making an adaptive application would probably also require a lot of testing on different desktop environments. Then again, I suppose it'd be less work than making a different graphical front-end for each desktop.

I think you're right that a scheme for applications that adapt to the local environment would need things like a "menu manager". Or maybe one manager that manages the position of various interface elements. Something tells me that adding another layer of software will slow down applications, though.

Maybe it'd be better to create a number of libraries in which a programmer can create a kind of unfinished graphical front-end to a program. With this library the programmer would define a number of buttons, views and more such things. Then, a programmer could use the native GUI API, like QT or GTK to put the buttons and other interface elements into a position that is appropriate to the local desktop environment. This wouldn't make a program work immediately work in different environments, but it'd be a lot easier to port.