glugt-mgl

 

GNOME

Page history last edited by taggy 2 yrs ago

In graphical computing, a desktop environment (DE, sometimes desktop manager) offers a graphical user interface (GUI) to the computer. The name is derived from the desktop metaphor used by most of these interfaces, as opposed to the earlier, textual command line interfaces (CLI). A DE typically provides icons, windows, toolbars, folders, wallpapers, and abilities like drag and drop. As a whole, the particularities of design and function of a desktop environment endow it with a distinctive look and feel.

 

 

 

There are two things that essentially makes up a good desktop

  1. The front end that the user is exposed to ,all the themes ,icons,wallpapers and GUI that he will work with .
  2. The backend which the operating system will need to work with .For eg, The GUI to mount will have two parts,the GUI the user will use to choose the disk he wants to mount ,setting its mount point and mounting it but the  backend would be to use a command to identify the disks present,mount them by using the mount point and label provided by the user .
  3. The interaction between the GUI's and the operating system is what makes desktop a challenging task,how various components of a desktop work together in providing   a fullfilling experience .

 

 

The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop.

 

The GNOME project puts heavy emphasis on simplicity, usability, and making things “just work”. The other aims of the project are:

  • Freedom—to create a desktop environment that will always have the source code available for re-use under a free software license.
  • Accessibility—ensuring the desktop can be used by anyone, regardless of technical skill or physical disability.
  • Internationalization and localization—making the desktop available in many languages.
  • Developer-friendliness—ensuring it is easy to write software that integrates smoothly with the desktop, and allow developers a free choice of programming language.
  • Organisation—a regular release cycle and a disciplined community structure.
  • Support—ensuring backing from other institutions beyond the GNOME community.

 

GNOME was launched by the GNU project in August 1997 in response to licensing concerns over software used by KDE,[2] a free software desktop environment that relies on the Qt widget toolkit. At the time, Qt did not use a free software license and members of the GNU project became concerned about the use of such a toolkit for building a free software desktop and applications. Two projects were started: the Harmony toolkit, to create a free replacement for the Qt libraries, and GNOME to create a new desktop without Qt and built entirely on top of free software.[3] The initial project leaders for GNOME were Miguel de Icaza and Federico Mena.

 

GNOME is designed around the traditional computing desktop metaphor. Its handling of windows, applications and files is similar to that of contemporary desktop operating systems. In its default configuration, the desktop has a launcher menu for quick access to installed programs and file locations; open windows may be accessed by a taskbar along the bottom of the screen and the top-right corner features a notification area for programs to display notices while running in the background. However these features can be moved to almost anywhere the user desires, replaced with other functions or removed altogether.

The appearance of GNOME can be changed by the use of themes, which are sets consisting of an icon set, window manager border and GTK+ theme engine and parameters. Popular GTK+ themes include Bluecurve and Clearlooks (the current default theme).

GNOME puts emphasis on being easy for everyone to use. The HIG helps guide developers in producing applications which look and behave similarly, in order to provide a cohesive GNOME interface.

 

Since GNOME v2.0, a key focus of the project has been usability. As a part of this, the GNOME Human Interface Guidelines (HIG) were created, which is an extensive guide for creating quality, consistent and usable GUI programs, covering everything from GUI design to recommended pixel-based layout of widgets.

 

GNOME releases are made to the ftp.gnome.org FTP server in the form of source code with configure scripts, which are compiled by operating system vendors and integrated with the rest of their systems before distribution. Most vendors use only stable and tested versions of GNOME, and provide it in the form of easily installed, pre-compiled packages. The source code of every stable and development version of GNOME is stored in the GNOME Subversion source code repository

 

There are many sub-projects under the umbrella of the GNOME project, and not all of them are currently included in GNOME releases. Some are considered purely experimental concepts, or for testing ideas that will one day migrate into stable GNOME applications; others are code that is being polished for direct inclusion. Some examples include:

  • Project Soylent – making “people” and their interactions first-class objects within the GNOME framework.[33]
  • Project Ridley – to consolidate several small undermaintained libraries into GTK+, such as libgnome and libgnomeprint.
  • The use of the Mozilla project’s XUL on the GNOME desktop.

 

Architecture of GNOME :

  • Bonobo – a compound document technology.
  • GConf – for storing application settings.
  • GNOME VFS – a virtual file system.
  • GNOME Keyring – for storing encryption keys and security information.
  • GNOME Translation Project – translate documentation and applications into different languages.
  • GTK+ – a widget toolkit used for constructing graphical applications. The use of GTK+ as the base widget toolkit allows GNOME to benefit from certain features such as theming (the ability to change the look of an application) and smooth anti-aliased graphics. Sub-projects of GTK+ provide object oriented programming support (GObjects), extensive support of international character sets and text layout (Pango) and accessibility (ATK). GTK+ reduces the amount of work required to port GNOME applications to other platforms such as Windows and Mac OS X.
  • Human interface guidelines (HIG) – research and documentation on building easy-to-use GNOME applications.
  • LibXML – an XML library.
  • ORBit – a CORBA ORB for software componentry.

 

 

What these components achieve is better coordination and more usablity . For example using Bonobo or Orbit i could embed one property of application in to another .consider the example

I design a scientific tool that needs mathematics,plotting of graphs  and document conversions .I could use GNU plot in to my tool so that i dont have to write another graph plotter or i could use a media codec or imaging library for my tool instead of sitting them and writing my own  . These two projects server the above purpose of communication between two different applications .

 

 

Usability

Since GNOME v2.0, a key focus of the project has been usability. As a part of this, the GNOME Human Interface Guidelines (HIG) were created, which is an extensive guide for creating quality, consistent and usable GUI programs, covering everything from GUI design to recommended pixel-based layout of widgets.

From the GNOME HIG introduction:[13]

This document tells you how to create applications that look right, behave properly, and fit into the GNOME user interface as a whole. It is written for interface designers, graphic artists and software developers who will be creating software for the GNOME environment. Both specific advice on making effective use of interface elements, and the philosophy and general design principles behind the GNOME interface are covered.

During the v2.0 rewrite, many settings were deemed to be of little or no value to the majority of users and were removed. For instance, the preferences section of the Panel were reduced from a dialog of six tabs to one with two tabs. Havoc Pennington summarized the usability work in his 2002 essay "Free Software UI", emphasizing the idea, that all preferences have a cost, and it's better to "unbreak the software" than to add a UI preference to do that:[14]

A traditional free software application is configurable so that it has the union of all features anyone's ever seen in any equivalent application on any other historical platform. Or even configurable to be the union of all applications that anyone's ever seen on any historical platform (Emacs *cough*).

Does this hurt anything? Yes it does. It turns out that preferences have a cost. Of course, some preferences also have important benefits - and can be crucial interface features. But each one has a price, and you have to carefully consider its value. Many users and developers don't understand this, and end up with a lot of cost and little value for their preferences dollar.

[...]

The annoying problem here is that sometimes you have to temporarily cause regressions in order to get things fixed. For GNOME 2 for example, we wanted to fix the window list (task bar) applet; under GNOME 1.4, it has to be manually sized via preferences. We wanted it to Just Work. But it took a while to make it Just Work and we were flamed regularly during its period of brokenness, because we didn't get it quite right. Most of those flames demanded re-adding all the manual sizing preferences. But that would have been wrong. (Now that the applet is mostly working, it may even make sense to add a "maximum size" preference as a useful feature.)

This less-is-more design methodology is not without detractors, one of them being Linus Torvalds, creator of the Linux kernel, who commented in a usability-related discussion on the GNOME mailing list:[15]

 

 

 

Applications

 

Along with those applications bundled with the desktop, a large amount of other applications have been developed for use in GNOME. See List of GNOME applications for a more complete list.

The following selection of applications typically supplied as part of a GNOME release:

The following is a selection of applications that use technology from the GNOME project and are likely to be used on an average GNOME desktop:

 

The following is a selection of applications that use technology from the GNOME project and are likely to be used on an average GNOME desktop:

 

Getting Started

Now that we have read enough about GNOME ,lets get started with it .

  • The first stop is the COntrol center . command on most GNU/Linux variants is gnome-control-center  . This will contain the options to optimise and customise GNOME . Utilities like accessibility enabling,wallpaper changes,theme,icons could be done here .You can also setup your application choice or in other words your default application for certain file type ( opening of .html files in firefox and not galeon ) .
  • Gdesklets are meant to be what you will call as dashboard or widgets . The user can add small widgets on to their desktop like an animated clock/ weather notifier/ rss reader .These are inspired from the dashboard you would find in the mac os .Although not that powerful or useful they still provide that fancy look to a desktop that many would love .
  • GnomeDesktopManager(gdm) is the one responsible for the login screen you see first up . You can change the login screen by the command gdmsetup .You can even install your own login theme through the interface .
  • Gaim - this is the default gnome internet messenger you have .It supports a variety of protocols like Y! ,Jabber,Aim,IRC and msn . The command would be gaim .
  • Nautilus - This is the file manager in gnome .You can launch it in the more comfortable user mode by the command nautilus --browser . Natutilus is multipurpose .It can be even used to write data/image to a disc (CD/DVD) . The command to do so would be nautilis-cdburner .
  • TODO ..........

 

 

 

 

 

 

 

 

 

 

Source code

 

GNOME releases are made to the ftp.gnome.org FTP server[31] in the form of source code with configure scripts, which are compiled by operating system vendors and integrated with the rest of their systems before distribution. Most vendors use only stable and tested versions of GNOME, and provide it in the form of easily installed, pre-compiled packages. The source code of every stable and development version of GNOME is stored in the GNOME Subversion source code repository.[32]

The process of downloading the source code, compiling and installing the entire GNOME desktop manually is a laborious and time-consuming process[citation needed], and a number of build-scripts (such as JHBuild or GARNOME) can be used to automate it.

 

The source code of GNOME can be viewed on the web here  http://svn.gnome.org/viewcvs/

and the power of any opensource/free software is in its ability convert users in to developers . So if you are looking to try and contribute . There are many channels to do so .

 

The mother website is http://developer.gnome.org/ .It contains all the information that you will need to get started .

 

Useful Links :

 

Comments (2)

yazhini said

at 11:00 am on Jul 9, 2007

hi, won't it be better if we can have stuff like how to work with GNOME instead of history and theoretical aspects of GNOME. We can add points on how to configure things in GNOME or KDE.

suren said

at 6:05 pm on Jul 12, 2007

exactly !!!

You don't have permission to comment on this page.