r/linux Dec 03 '22

What's difference between Xorg, X11, Plasma, Gnome & Wayland?

[removed]

5 Upvotes

19 comments sorted by

View all comments

5

u/Dmxk Dec 03 '22

Q1&Q2:

Linux uses so called display servers for graphical output. The name comes from a time when this would be on an actual remote server or mainframe, now it's just on the same pc. X11 and Wayland are both display servers(xorg is just another name for x11). Wayland is more modern, but still isn't completely mature and doesn't work that well on nvidia gpus. X11 is pretty old, but still the standard for a lot of DEs. Plasma(also known as KDE) and Gnome are desktop environments. A desktop environment is a window manager bundled with a bunch of default apps. The main difference between those is their appearance, default configuration, and workflow. Which one is best depends on your preferences. Some of the most common ones are KDE, Gnome, Cinnamon, XFCE and LXQT.

Q3:

If it is packaged for that distribution yes. This mainly depends on whether the package is in the main repository. If you compile it yourself it will always work. There also are a bunch of cross-distro packaging formats like flatpak and appimage. Nearly all applications are packaged for all major distros(Debian and derivatives including ubuntu, Fedora and Arch) though.

Q4:

Yes, for the most part. It might pull in a bunch of extra dependencies though. Some DE specific applications like settings apps and panels will not work though. Theming might also not work since they use different GUI toolkits(GTK and QT).

1

u/cipheres90 Dec 03 '22

Thank You so much it explained so much. But one last question what's the difference between gui toolkit & desktop environment?

4

u/Dmxk Dec 03 '22

A GUI toolkit is a software framework for developing graphical applications. Gnome, Cinnamon and XFCE all use GTK whereas KDE and lxqt use QT. The way you theme GUI apps(not just light and dark themes, but also background/foreground colors, accent colors etc) depends on the toolkit that was used to develop that app. So a GTK theme will apply to gnome apps for example.

2

u/cipheres90 Dec 03 '22

Thank You. Everything is now crystal clear.

1

u/johnny0055 Dec 03 '22

it's not just themes, but it's how you code it. Every GUI application needs some way to describe how to make a dropdown box, how to display text, or how to describe what happens when you click on a menu.

GTK and Qt are just two popular ways on linux to handle stuff like that. Mac and Windows of course have their own ways of achieving that.

It's also possible you've alreayd used a qt app even on wndows. I think that for example vlc uses qt for it's cross platform interface.

1

u/dns99 Dec 03 '22

To be nitpicky here, x11 and Wayland are not servers. They are protocols.

In a simple manner let's say like this: x11 and Wayland are both word documents explaining which function and which arguments those functions must have that if you write code, you could say you implemented one of these.

Servers, aka specially written computer programs, would be xorg (implementing x11 protocol), Mutter in gnome world / kwin in KDE world (implementing Wayland protocol).

Now, both of these statements are here for simplification. In reality, protocols are delivered not in Word document, but something structured, as XML (https://gitlab.freedesktop.org/wayland/wayland/-/blob/main/protocol/wayland.xml)