I'm having a hard time understanding the dependencies of software on (the combination of) Ubuntu distributions, desktop environments, window managers, file managers and what have you.

What I'm particularly worried about is that I might install software that doesn't play nice with any of the aforementioned processes and that it messes up those processes and/or uses different config files, spread in different locations, etc.

Could you give a short overview of what elementary knowledge, about the architecture of linux systems, is needed to determine whether a software package is suitable for a particular set-up?

  • 1
    If it is in the repositories it should work when you install it. If it does not , it is likely a bug. If you are using a ppa you may be a greater risk, depending on the ppa. If you are installing from source and or editing config files, you are on your own ;)
    – Panther
    Jul 14, 2014 at 22:37
  • Is it really that simple? Am I perhaps mixing up generic software with software aimed at altering settings of the processes I mentioned in my question? For instance, the dconf-editor (which is available in my default repositories) doesn't seem to do a whole lot for my set-up (Xubuntu/XFCE). Is this because this is configuration software specifically aimed at another setup, perhaps? Or am I simply imagining things? Jul 14, 2014 at 22:59
  • Now you are asking about cosmetics. Did dconf-editor break anything? No. From there, what are you trying to do?
    – Panther
    Jul 15, 2014 at 0:01
  • It didn't appear to break anything, but without a good grasp of how things intermingle with each other, how can I know for sure? Also, a better grasp of the relationships between the mentioned processes would allow me to understand why, for instance, editing in dconf-editor doesn't do a whole lot for my set-up. I'm just trying to get a better grasp of the linux architecture, and trying to get the bigger picture, without having to read whole encyclopedia's worth of information, scattered around. Jul 15, 2014 at 0:07

2 Answers 2


Here's a quick overview of the Desktop Environments available:

├── Enlightenment
├── GNOME2 -> MATE
├── GNOME3
│   ├── Cinnamon
│   │   └── Muffin
│   ├── Gnome-Shell
│   │   └── Mutter
│   └── Unity
│       └── compiz
├── KDE
├── LXDE
├── MATE
└── XFCE

Gnome (both the erstwhile GNOME2 [now MATE] and GNOME3) and KDE are comprehensive suites, with components tightly integrated with each other. They can include a lot of things, even office suites. Enlightenment, XFCE and LXDE considerably lighter and have fewer apps under their respective umbrellas. Some rules of thumb:

  • If you install something from the heavyweight DEs, be prepared to have half the DE dragged in. This is very much component dependent - some lower-level components do not depend on a lot of things. For example:
    1. Gnome3 has three major shells that I know of - Unity, Gnome Shell and Cinnamon (developed by the friendly devs at Linux Mint) and two file explorers (Nautilus and Nemo). In the old days, Nemo used to depend on the Cinnamon shell itself, so you had to install it along with Nemo even if you didn't use it.
    2. Installing yakuake (a drop-down terminal) one my Gnome3-based setup drags in about 60 packages (and 301 on a headless server). For comparison, Terminator (an independent terminal) needed 2 (and 144 on the same headless server).
  • The lighter DEs have a much sparser feature set. LXDE doesn't even have its own Window Manager that I am aware of (it uses OpenBox).
  • In general, GNOME apps are developed in GTK, and KDE apps in Qt. Enlightenment apps use the EFL (Enlightenment Foundation Libraries).
  • In general, things should work even if you mix and match. Especially with XFCE and LXDE, you should have no problem using their components in the other DEs.
  • There might be themeing issues. These are the biggest headaches - every now and then you can see a question here asking how to get back the old look after installing kde-desktop on a standard Ubuntu. You can look around the answers to find out what goes where.
  • This is exactly the kind of information I was hoping to get; thank you very much. Very clear and concise. I'm starting to understand things a bit better now. I'm going to let this soak in for a while, and will probably be back with few minor follow-up questions. Thank you, so far; very helpful. Jul 14, 2014 at 23:59

You shouldn't worry about it. The packaging system will take care of dependencies. Some apps will integrate with your desktop better than others, and you may have extra config systems, but nothing should break.

  • 1
    How do I get a better grasp of what makes a package integrate better with a particular desktop environment, though? I feel that understanding this better would help me achieve a much more consistent overall desktop experience. Do you (or anybody else) know of a concise overview of how the processes, I mentioned in my question, relate to one another and in what way these relations are important to software packages? Jul 14, 2014 at 23:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .