Linux GUI: where to start?

I have long been interested in developing the user interface of the OS, taking into account my needs and interests. When I was younger, I was crazy about playing with the Stardock tools for Windows. I liked developing my own window styles and layouts. Since then I have had an immodest itch.

  • I'm not really interested in playing with lower-level kernel operations, namely with presentation aspects. I examined some features of Linux.
  • While I would like to have some basic integrated tools / applications that I create myself, I am primarily interested in presentations of the main windows, toolbars, desktop and file management.
  • I do not want me to be blocked from using existing applications, if possible. For example, I am not interested in writing my own web browser, but having the opportunity to work with existing tools in the design would be a big plus.
  • My ideas are sometimes very visual in nature, so it would be useful to use more complex transparency effects and unusual window shapes. Ideal might be the ability to reproduce the graphic accuracy of existing user interface models for OS X or Windows.
  • OS priority and tools that let me start from scratch and work from scratch or include basics are encouraged. The idea of ​​a β€œdesktop” in the traditional sense does not have to be mandatory. Flexibility in doing different things is important to me.

What I'm looking for:

I'm wondering which Linux / OS options might make sense, which tools / frameworks would be useful for completing a task (Qt seems to be a popular suggestion here), and basic information on how and where to start developing / testing such a user interface. I would also be interested to know about any "personal" user interface that people may have developed.

This interest is far beyond my usual development work, as a disclaimer, excuse my naivety if I seem to be confused. Corrective understanding was welcome.

I understand that this is a big question, so thanks to those who took the time to make suggestions.

+51
user-interface linux
Sep 05 '10 at 13:51
source share
5 answers

You want to create your own DE (desktop environment). Common examples are GNOME and KDE, although many have been popular. In fact, it is very popular for creating your own DE, and specialized scripting tools are often created.

Usually you need to combine several tools: window manager, toolbar, desktop manager (icons), session manager, possibly more. Of this, only the window manager is a mandatory part (it usually does not make sense not to run any WM inside the X server), while others are optional. Usually you do not write these tools from scratch (this is a lot of work), but use existing components.

Note that both GNOME and KDE actually consist of these elements (well integrated). For example, GNOME consists of a window manager ( metacity ), toolbars ( gnome-panel ), a desktop manager ( nautilus ), etc. You can change one element to another if you want: it was used to use sawfish as a window manager instead of metacity , keeping all other elements intact. Now it is popular to use compiz instead of metacity .

I used FVWM , which is a window manager with additional (good) scripting capabilities that can be used to create toolbars, menus and other things. One nice example is FVWM-Crystal , which is a complete DE built-in to FVWM, and several other tools written in a combination of FVWM and Python scripts. In fact, you can change any behavior at runtime by simply opening the FVWM script console and input commands. FVWM-Crystal can be a good starting point if you want to start with something already usable; Naked FVWM is good if you want to build your DE from scratch.

[UPDATE: it seems that gnome-shell is very similar in this regard to FVWM . Most of his behavior is written using JavaScript (instead of the custom language in FVWM), and it is very easy to change. It is also very active, as it is an important part of GNOME3, with very good composition support. This is a hacker sky; -)]

[UPDATE2: it seems like I was right on gnome-shell. There's Cinnamon , which uses the same mutter window manager as gnome-shell , but creates a desktop that works differently from gnome-shell .]

There was a website that was a good source of ideas for implementation: lynucs.org . He has not been working for two years, but he received in the archive .

Warning: many of these components are no longer supported, especially since GNOME / KDE is actually being used. Development in this area is usually driven by the special needs of embedded devices: telephones or netbooks .

Now, to answer your current questions:

  • Linux / OS flaver: everything is easy to configure: Debian, Arch, Gentoo, LFS ...
  • Tools / framework: it depends on what you want to achieve. If you want to write a custom toolbar, you can simply use some scripting languages ​​(like FVWM), custom tools like adesklets , or write your own in Qt (if most of your other components are in Qt) or GTK (if most of your other components located in GTK).
  • Personal interfaces: there were many, and sites like lynucs.org were a good compilation of them (lynucs lists the components used on each desktop).
  • Complicated transparency effects: old tools usually don’t process it initially or do simple things, for example, just reuse part of the desktop as their own background (the so-called fake transparency). Most likely, you will need to write your own code, i.e. as a plugin before compiz .
+43
Sep 05 '10 at 15:11
source share

I would probably start by installing Ubuntu and OpenBox window manager and going from there.

OpenBox is very minimal, but you can add applications (e.g. Docky, Awn, etc.) to provide desktop elements or write your own.

+2
Sep 05 '10 at 2:00
source share

If you're fast and cool in customizing the user interface, I would suggest looking at Enlightenment . Its older than Gnome, and I found it to be an extremely fast and low resource.

+1
Aug 28 '13 at 14:42
source share

Have you tried Tcl / Tk? Tcl is a scripting language. Tk is part of the GUI language. Your application will run everywhere, even on Android, using AndroWish.

So simple and so fast.

Only for an hour I was able to make an agenda with a calendar.

0
Jan 28 '14 at 17:25
source share

Have you tried OpenSUSE? If you want to test yourself, you can try to create it using Scratch, but this will require a LOT of code, even if you create an application store or web browser for your OS!

0
Jan 24 '19 at 18:07
source share



All Articles