Howto make a good user interface for Free Software and Open Source software

The main characteristics in making a good interface for a Free Software project are most of the time the same as any other interface.

The widgets
However, there are some differences. One of them is that it is recommended to use free widgets and widgets that are more popular and can compile on various platforms (including Microsoft's operating system). If the main platform of your application is Linux, then i recommended you stay with GTK+ or QT only in most situations. WX-Widgets and TK are other solutions, but they are not as popular as GTK+ and QT.

If you want your application to be even more easy to use, then just choose the widget that best fits your desktop:
 * QT for KDE
 * GTK+ for GNOME, XFCE and many other
 * FLTK for Enlightenment Desktop
 * TK for little programs written in TLC/Python/Perl that must run on all platforms without having a big size.
 * WX-Widgets if your main platform is Windows, but GTK+ should work just as fine under Windows (you can optionally include the hole library into your program, about 4 more than with WX-Widgets but you will have the Windows skin or any other)

For more details see Guide to free widget libraries.

Desktop compatibility
Please test your application to work on various Desktops. Not only on KDE and GNOME, but also in more exotic environments like Enlightenment and Window maker.

A good practice is to test it on a ion3 desktop. Actually, many bad-written applications do not display well on ion3.

Usability
There are some specific standards for free software projects. Both KDE and GNOME try to follow this standards:
 * freedesktop
 * tango-project created by SUSE Linux (Novel).
 * better desktop created by OpenSuse.

From HowTo Wiki, a Wikia wiki.