LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop
User Name
Password
Linux - Desktop This forum is for the discussion of all Linux Software used in a desktop context.

Notices


Reply
  Search this Thread
Old 07-31-2009, 03:05 AM   #1
General
Member
 
Registered: Aug 2005
Distribution: Debian 7
Posts: 526

Rep: Reputation: 31
Linux is not very configurable


Many proud users promote Linux for its configurability. Although the desktop environments certainly provide greater configuration freedom than the desktops of familiar close-source systems, I would argue that Linux has only touched the iceberg of its potential, in this regard. I would further argue that if Linux thrived for total configuration freedom, users would have a more consistent, coherent, and productive computing experience.

1 PROBLEMS

First, look at some of the problems and limitations of existing desktops. Look at your current desktop environment and the applications that you commonly use while you answer these questions.

Can you remove or rearrange any item in the tool bars or file menus in all of your applications?

Example 1: Remove all 'Undo'/'Redo' and 'Cut'/'Copy'/'Paste' icons from the tool bars. [1]

Can you reassign the keyboard shortcuts for every action? Can you assign new keyboard shortcuts to all actions that currently lack a shortcut?

Example 2: Assign F1 to 'File', F10 to 'Help' in all applications. [2]

Can you add new tool bar icons for any item within the file menu?

Example 3: Add a 'Close Window' or 'Exit' button to the main tool bars in every application. [3]

Now that you've completed this exercise, consider more questions. When you made these changes, did they take effect in applications one at a time or in all of your applications? Was your method of configuring these changes in each application consistent? Did you have to edit source code and recompile? How easily can you accurately simulate other desktops, such as OS X, OpenWindows, or BeOS using your existing applications and desktop? [4] If your desktop supports drag and drop, how consistent are these interactions between all of your applications? Are your applications really configurable?

2 SOLUTION

I put forth a simple solution to these problems: a framework that redefines the relationship between applications and the desktop. Applications define too much. Much responsibility should be passed onto the desktop.

2.1 DEFINING ACTIONS

Applications should not specify where and how items should be placed, rather, they should tell the desktop environment what they need. Then the desktop environment should decide where and how all of these action elements should appear to the user and then collect the necessary action events (key strokes, mouse clicks) and pass this information back to the application.

Example 4: The application shouldn't define the option 'New' inside the 'File' menu and 'Word Count' inside 'Tools'. Rather, the application should just tell the desktop environment that it will need some way for the user to access the 'New' and 'Word Count' actions. The desktop environment then specifies how and where the 'New' and 'Word Count' actions should appear, be they tool bar icons, inside hierarchal file menus, pie menus, on external panels, or some other newfangled means.

2.2 FORMING HIERACHCIES

If hierarchies are to be used, these should be defined by the desktop environment, so that they are consistent and so that the user or distributer wants to change the hierarchy, they happen in all applications. Thus, the desktop environment must have a central list of most potential actions that it will encounter in software.


2.3 DESCRIBING THE INTERFACE

Application developers should not design interfaces with a WYSIWYG mentality, but one of WYSIWYM. In this system, the E-mail application will tell the desktop environment, “I need a large space where the user can type in the body of his E-mail,” the browser application will tell the desktop environment, “I need a large space where the user can view Web pages”, and the photo editing software will say, “I need a large space where the user can view a picture.” This is called Element A. The desktop environment then looks at all applications that call for Element A, and provide space based on its rules. Some applications, such as a calculator or instant messaging client won't call for an Element A, but they might have Elements C or D and the desktop environment know how to present those to the user.

In this manner, the developers can write all of the features of one program, but discover that is has been configured differently in different places, taking on many different forms for different users. The same application might have traditional file menus and tool bars on a home computer, locked-features and extra large buttons on a touch-based kiosk, and a reduced feature set and tiny icons on a tiny pocket computer. Furthermore, one user might be using the application with a really fast and straight-forward toolkit, on an older computer, while their friend might be using the very same application, with unmodified source code, on their new gaming computer, with a different toolkit sporting a highly dynamic interface with heavy effects. Yet another user might even be running it with SVGAlib.

Meanwhile, all of these users, on these different computers, will find that all of the other applications on their computers behave in manner that is consistent with this application.

2.4 WHAT DOES THIS MEAN FOR GNOME OR KDE USERS?

This system does not eliminate desktops by making them similar, or making a hybrid, rather, makes it makes bridges between them, while allowing them to develop more independently. No longer does a word processing application need to be developed for either GNOME or KDE, the developers just write the application and let GNOME decide to present it the GNOME way, KDE present it the KDE way, and some other desktop present it in some other radically different way.

NOTES

[1] I find these keys buttons are a completely useless waste of precious space to me and everyone I know, who rely on the keyboard for these actions.

[2] Modern applications really don't put the function keys to good use, do they? Yet, these keys appear on every keyboard.

[3] After all, this is the number one most popular action, why should it be religated to a tiny X in the corner of the window?

[4] BeOS had a really clean, efficient desktop, yet no existing desktop, XFCE or otherwise, on Linux has the ability yet to simulate this, hense most users use something closely mimicking the OS from Redmond.
 
Old 07-31-2009, 03:59 AM   #2
texasone
Member
 
Registered: Jun 2008
Location: /home/lorax
Distribution: Debian Testing
Posts: 141

Rep: Reputation: Disabled
Quote:
Example 1: Remove all 'Undo'/'Redo' and 'Cut'/'Copy'/'Paste' icons from the tool bars. [1]
As far as I know, these are features that are programed into individual programs (such as firefox, OOo, gedit, etc) and not part of the actual Linux system. These programs can be installed on multiple Operating Systems and not just Linux.

Quote:
Example 2: Assign F1 to 'File', F10 to 'Help' in all applications. [2]
These are also part of the programs, not the operating system so if this were to happen, you would probably have to make sure the program has keyboard shortcuts in the program. But there is probably a way, with some programing, to manually do that and that takes a lot, if possible.

Quote:
Example 3: Add a 'Close Window' or 'Exit' button to the main tool bars in every application. [3]
Again, part of the program, not the operating system. (It's like saying Firefox doesn't have a certain function so OSX, *BSD's, Linux, Unix, Windows, and any other OS's that firefox can run on, and saying that OS lacks compatibility because of it.

Quote:
2.1 DEFINING ACTIONS

Applications should not specify where and how items should be placed, rather, they should tell the desktop environment what they need. Then the desktop environment should decide where and how all of these action elements should appear to the user and then collect the necessary action events (key strokes, mouse clicks) and pass this information back to the application.

Example 4: The application shouldn't define the option 'New' inside the 'File' menu and 'Word Count' inside 'Tools'. Rather, the application should just tell the desktop environment that it will need some way for the user to access the 'New' and 'Word Count' actions. The desktop environment then specifies how and where the 'New' and 'Word Count' actions should appear, be they tool bar icons, inside hierarchal file menus, pie menus, on external panels, or some other newfangled means.
Again, if this were to happen, the program would have no consistency among different Operating Systems and they would have to program for all operating systems and window managers. Remember desktop environments are not the only gui's available. There is also window managers that doesn't just rely on QT or GTK, some use other libraries. You are just asking for the very improbable solutions.

Quote:
2.2 FORMING HIERACHCIES

If hierarchies are to be used, these should be defined by the desktop environment, so that they are consistent and so that the user or distributer wants to change the hierarchy, they happen in all applications. Thus, the desktop environment must have a central list of most potential actions that it will encounter in software.
Same as above.

Quote:
2.3 DESCRIBING THE INTERFACE

Application developers should not design interfaces with a WYSIWYG mentality, but one of WYSIWYM. In this system, the E-mail application will tell the desktop environment, “I need a large space where the user can type in the body of his E-mail,” the browser application will tell the desktop environment, “I need a large space where the user can view Web pages”, and the photo editing software will say, “I need a large space where the user can view a picture.” This is called Element A. The desktop environment then looks at all applications that call for Element A, and provide space based on its rules. Some applications, such as a calculator or instant messaging client won't call for an Element A, but they might have Elements C or D and the desktop environment know how to present those to the user.

In this manner, the developers can write all of the features of one program, but discover that is has been configured differently in different places, taking on many different forms for different users. The same application might have traditional file menus and tool bars on a home computer, locked-features and extra large buttons on a touch-based kiosk, and a reduced feature set and tiny icons on a tiny pocket computer. Furthermore, one user might be using the application with a really fast and straight-forward toolkit, on an older computer, while their friend might be using the very same application, with unmodified source code, on their new gaming computer, with a different toolkit sporting a highly dynamic interface with heavy effects. Yet another user might even be running it with SVGAlib.

Meanwhile, all of these users, on these different computers, will find that all of the other applications on their computers behave in manner that is consistent with this application.
Again, there are many Window Managers, along side Desktop Environments (for just Linux alone, they also have to program for other Operating systems you know) so it wouldn't be possible to program it to interact with all of them.

Also, the programs have always done that for as long as I have used the computer. The Internet Browser has always given me space to view the web/net, Gimp always gives you the whole screen for editing, email applications always give a lot of space for you to type in. For example, I just opened up Thunderbird and in its default sized 'write message' window, i got 13 lines to write. That's a lot of space for simple text emails, plus most graphical email applications and internet browsers have built in scroll bars.

Quote:
2.4 WHAT DOES THIS MEAN FOR GNOME OR KDE USERS?

This system does not eliminate desktops by making them similar, or making a hybrid, rather, makes it makes bridges between them, while allowing them to develop more independently. No longer does a word processing application need to be developed for either GNOME or KDE, the developers just write the application and let GNOME decide to present it the GNOME way, KDE present it the KDE way, and some other desktop present it in some other radically different way.
Again, this takes a lot of (useless) programing that takes up too much space and time. Again, Gnome and KDE are not the only gui's around.


All in all, I think that you are focusing too much on programs that are not just for Linux. When people say Linux is configurable, they mean that you can change the code of most programs, you can set it up with only a base install and go from there (unlike Windows and Mac OS). They are not talking about how firefox or netscape or gedit/kate.
 
Old 07-31-2009, 05:42 AM   #3
AGer
Member
 
Registered: Oct 2007
Distribution: Slackware current
Posts: 136
Blog Entries: 22

Rep: Reputation: 19
This is a very good proposal for the XXII century, if any. Everybody understands that we do need exactly one excellent configurable desktop. The problem is that with the current FOSS ecosystem we can either have many good enough desktops or none.

If I remember correctly, a BeOS application was a subclass of the system provided application class. Applications based on static main functions are very unlikely to emulate all the features BeOS could provide. The very idea of an OS managing processes and files is archaic, but nobody wants to invest big time into something new when what we already have is good enough.

If you are a great fan of conspiracy theories, you may find the Java and .NET design highly indicative of a desire to prevent rapid advancement in software development. If I remember correctly, BeOS founders were asked if the choice of C++ for the main language was justified and the answer was "for the time given, yes". I guess the best case scenario is like that: a new programming language appears first, FOSS practices change accommodating to it, less fragmented FOSS community creates a new OS, and finally your grandchildren configure all applications the way you propose.

My favorite indicator of the state of affairs in Linux is multimedia playback. Currently the KDE Dragon Player mostly plays from KDE but shows just a black rectangle from XFCE. With problems like that...
 
Old 07-31-2009, 05:46 AM   #4
salasi
Senior Member
 
Registered: Jul 2007
Location: Directly above centre of the earth, UK
Distribution: SuSE, plus some hopping
Posts: 4,070

Rep: Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897
Quote:
Originally Posted by General View Post
Many proud users promote Linux for its configurability. Although the desktop environments certainly provide greater configuration freedom than the desktops of familiar close-source systems, I would argue that Linux has only touched the iceberg of its potential...
It is not clear how you got for here to there... Linux, is not a GUI, the GUI is not Linux. Certainly you can configure linux with a choice of GUIs, and this choice is wider, more flexible and more versatile than the range available to many traditional systems, but you seem to want more. To be honest, the stuff that you mention doesn't really hit any of my hot buttons, but if you build it, I will take a look.
 
Old 07-31-2009, 06:01 AM   #5
catkin
LQ 5k Club
 
Registered: Dec 2008
Location: Tamil Nadu, India
Distribution: Debian
Posts: 8,578
Blog Entries: 31

Rep: Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208
Hello General

I like your suggestions. A more integrated desktop environment would be nice. Given that we necessarily start from here, it is a long-term project for the reasons well-stated in replies.

Another feature that would be useful is a "start minimised" option. During desktop stratup, the userr might like to start several applications but not want their windows open immediately.

Perhaps this has to start from the desktop rather than from the applications; the desktop standard could define a set of features that an application must/could implement to be compliant with that desktop, perhaps via configuration files or command line options. Application developers could then evolve the applications to suit.

Best

Charles
 
Old 07-31-2009, 09:07 AM   #6
General
Member
 
Registered: Aug 2005
Distribution: Debian 7
Posts: 526

Original Poster
Rep: Reputation: 31
Quote:
Originally Posted by texasone View Post
Again, if this were to happen, the program would have no consistency among different Operating Systems and they would have to program for all operating systems and window managers.
Yes, the same program would behave inconsistantly across diffent systems, this framework would tailor applications to better suit each system. The idea is to create consistancy on individual computers, not consistancy for the same application across every computer. Kindly note that this would allow a Linux user to make all applications behave exactly like Windows applications and visa versa, so in that way, application Y on system J would behave exactly like application Y on system W, assuming developers produced identical frameworks on the two systems.

Many are in the camp who propose that KDE and GNOME merge or become more similar. Just look at Mandriva or Red Hat and see how KDE and GNOME have been made similar. This is not what I am recoomending. What I'm suggestion would allow applications to thrive in any environment, XFCE, LXDE, OS X, what have you, so that the various desktops no longer have to be all alike. This would also allow the lone developer of a new desktop to come in and make use of a bunch of already existing applications and tailor them to meet their own grand scheme.

Quote:
Remember desktop environments are not the only gui's available. There is also window managers that doesn't just rely on QT or GTK, some use other libraries. You are just asking for the very improbable solutions.
What you are describing is directly in the opposite direction of what I am describing. Currently, programs like OpenOffice.org have lots of extra code just so that they can display in QT or GTK. This framework would the need for the developers to do this.

Quote:
The program would not have to be designed to work in all environments.
The programs would only have to be designed to meet one standard framework. Any number of programs on any number of systems could be written to interpret that standard framwork to allow the programs to mesh (the programs would still have to be compiled for the system they would run on). Different programs on different platforms would be written to render the progroams in a way that blends them in with its environment.

Quote:
Again, this takes a lot of (useless) programing that takes up too much space and time. Again, Gnome and KDE are not the only gui's around.
Obviously I'm not describing a simple task. Furthermore, I'm well aware of the diversity of tool kits and environments available. Furthermore, the programs to interpret this framework don't have to be very large. One developer could write a program that renders applications in FLTK in X with absolutely no configuration options. The user would be stuck with everything exactly as that developer wanted them. A completely seperate team of developers could write a program that renders those same applications in a much more advanced tool kit and meanwhile provide a vast array of configuration options.
 
Old 07-31-2009, 09:22 AM   #7
GrapefruiTgirl
LQ Guru
 
Registered: Dec 2006
Location: underground
Distribution: Slackware64
Posts: 7,594

Rep: Reputation: 556Reputation: 556Reputation: 556Reputation: 556Reputation: 556Reputation: 556
starting application minimized

Quote:
Originally Posted by catkin View Post
Hello General ...
Another feature that would be useful is a "start minimised" option. During desktop startup, the userr might like to start several applications but not want their windows open immediately.

Charles
This functionality definitely exists in KDE (check out 'Advanced window/app properties' from the top-left icon of any window) and IIRC, Gnome offers similar functionality by the same means.

It would be nice though if, at the users choice, this could be done in ANY window manager or desktop environment. I suspect that it could, and would require some sort of little script or auto-start [desktop.config] type of file written in such a way that the window/app started as desired.


Sasha
 
Old 07-31-2009, 09:56 AM   #8
catkin
LQ 5k Club
 
Registered: Dec 2008
Location: Tamil Nadu, India
Distribution: Debian
Posts: 8,578
Blog Entries: 31

Rep: Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208
Quote:
Originally Posted by GrapefruiTgirl View Post
This functionality definitely exists in KDE (check out 'Advanced window/app properties' from the top-left icon of any window) and IIRC, Gnome offers similar functionality by the same means.
Thanks Sasha

I did a lot of netsearching, wanting to do this (for GKrellM) on Gnome and was convinced in the end that Gnome cannot do it unless the application is designed to be told to do it. Always possible I'm wrong. Actually I'd like to be wrong!

Best

Charles
 
Old 07-31-2009, 03:06 PM   #9
XavierP
Moderator
 
Registered: Nov 2002
Location: Kent, England
Distribution: Debian Testing
Posts: 19,192
Blog Entries: 4

Rep: Reputation: 475Reputation: 475Reputation: 475Reputation: 475Reputation: 475
Moved: This thread is more suitable in Linux-Desktop and has been moved accordingly to help your thread/question get the exposure it deserves.
 
Old 08-02-2009, 02:14 AM   #10
speck
Member
 
Registered: Nov 2001
Location: US
Distribution: Slackware 14.2
Posts: 375

Rep: Reputation: 115Reputation: 115
Do you think very many application developers would adopt this new interface (considering it would be a non-mandatory API that they would need to track)? I can imagine, from most developers perspectives, they wouldn't see much benefit in a complete redesign of their application. This would also invariably introduce additional bugs, due to the semi-intelligent communication between the DE and application. I use Openbox (no Gnome or KDE), so my WM would expect the application to supply all pertinent menus, buttons, etc.

This might be a good idea to build into a new OS, but I don't think it would ever gain traction on Linux (especially considering how disparate and fast changing the FOSS world is).
 
Old 08-09-2009, 05:35 PM   #11
gangettan
LQ Newbie
 
Registered: Aug 2009
Posts: 7

Rep: Reputation: 0
This is an interesting thread ...


linux

Last edited by gangettan; 08-24-2009 at 04:47 AM.
 
Old 08-09-2009, 06:23 PM   #12
jschiwal
LQ Guru
 
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682
It sounds like you want to write your own window manager and desktop environment. A windows manager will be responsible for how a programs menu bar looks like. Instead of Linux being unconfigurable as you first thought, you may find quite the opposite is true thanks to the design of X.
 
Old 08-10-2009, 04:47 AM   #13
mushroomboy
Member
 
Registered: Jan 2006
Distribution: Debian Testing ALWAYS!!!
Posts: 363

Rep: Reputation: 43
You also fail to see that some of us install linux to minimize all of this, to have the smallest amount of running code. overhead is somethings not nessicary, too much overhead can cause huge problems. FF/IE have been known to eat up over 100MB of ram in windows, and that IS 32bit. That way you can make programs with whatever you have, leave out what you don't, and it all still runs. what your really getting at is having the major programs all coded in one language, say C++ or C... and so what if programs have extra code to support other libs? they chose to support those libraries or options. once you compile it, if your not using the QT code you can have it ignore. That's the beauty of linux, compile what you want to your specifics. Features are not based off a universal framework, but based off how much time the coder wants to put in

Last edited by mushroomboy; 08-10-2009 at 04:50 AM.
 
Old 08-10-2009, 02:28 PM   #14
arizonagroovejet
Senior Member
 
Registered: Jun 2005
Location: England
Distribution: openSUSE, Fedora, CentOS
Posts: 1,094

Rep: Reputation: 198Reputation: 198
"Linux is not very configurable"

Yes it is.
 
Old 08-11-2009, 05:25 AM   #15
mushroomboy
Member
 
Registered: Jan 2006
Distribution: Debian Testing ALWAYS!!!
Posts: 363

Rep: Reputation: 43
Quote:
Originally Posted by arizonagroovejet View Post
"Linux is not very configurable"

Yes it is.
Hahaha so much easier than what all of us would say. =P We need more replies like this.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Is DamnSmallLinux configurable? asilentmurmur DamnSmallLinux 8 08-02-2008 10:35 AM
LXer: Configurable ARM-powered SoCs target Linux devices LXer Syndicated Linux News 0 03-09-2007 11:46 AM
Monitor is configurable in several Linux distros, but not Kubuntu? Perquisitor Linux - Hardware 4 12-07-2006 08:31 AM
LXer: Configurable, extensible processor cores run Linux LXer Syndicated Linux News 0 12-05-2006 06:54 AM
firewall is not configurable alvi2 Linux - Networking 1 08-23-2005 03:44 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop

All times are GMT -5. The time now is 11:55 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration