DEV Community

Cover image for The Linux Desktop Deep Dive

The Linux Desktop Deep Dive

Angad Sharma on April 04, 2020

Linux has definitely made a lot of sense even in a purely materialistic sense. Linus Torvalds In a world where existing software design pract...
Collapse
 
preciouschicken profile image
Precious Chicken

That was an interesting read, thank you. I run Regolith OS, which is Ubuntu packaged with i3, and is a really nice way to get a working set-up of i3 without wading through configuration after configuration file.

Collapse
 
jc00ke profile image
Jesse Cooke

Regolith is the most productive OS (variant) I've used in like 13+ years of using Linux on the desktop. I HIGHLY recommend it for anyone wanting to try a tiling WM.

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

That's great. I hadn't heard of it before. thanks ✌️

Collapse
 
gergelypolonkai profile image
Gergely Polonkai

All these are pretty Ubuntu specific. For example, Fedora puts the display manager on the first terminal (instead of the 7th). Also, the TTYs are not started unless you switch to a specific terminal, so getty tty2 is only spawned when you press Alt-F2 (or Ctrl-Alt-F2 if you are currently in a graphical environment).

Also, Fedora runs GNOME on Wayland by default, and as far as i know Ubuntu is planning a slow transition, too[citation needed](en.wikipedia.org/wiki/Citation_(ho...]. Wayland is a completely different beast of which you could write a whole article. GNOME and KDE are actively developed to use Wayland, and there is also an i3 (a popular tiling window manager) replacement for Wayland called Sway.

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Thanks for the info Gergely. I read up a bit about Wayland after your comment and it amazed me. I tried sway and was (quite amusingly) greeted by the following message:

Alt text

Ubuntu LTS more inclined towards stability. This is the reason why 18.04 did not come with Wayland by default. It does give you an option to switch though. I'll be interested to see if the next LTS comes wayland default

Collapse
 
gergelypolonkai profile image
Gergely Polonkai

Yeah, NVIDIA is notoriously not supporting Linux for some reason. Yes, there is a Linux driver, but it’s far behind the Windows driver in terms of features, plus it doesn’t support a lot of newer interfaces related to Linux. Nuoveau is a good alternative (and is present in Ubuntu 18.04), but still with a lot of missing features.

About Wayland; i guess Ubuntu doesn’t support it by default because their mouth is still a bit sour that MIR (a very similar protocol, developed by Canonical) “lost” against Wayland. Let’s see if they can get pass that, as Wayland is a good way to proceed (although it has its own shortcomings). Also note that 18.04 is exactly two years old now. Wayland grew a lot in the past 2 years, so it may become default (or at least well supported) in the upcoming LTS.

Collapse
 
bulletmark profile image
Mark Blakeney • Edited

The most popular DE is GNOME which by default uses Wayland, not X11. Wayland architecture is quite different so you should probably at least mention that. Perhaps add a separate section or even full post about it?

Collapse
 
q2dg profile image
Osqui LittleRiver

In fact, this article is already so old-fashioned...

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Yeah. I wanted to get the fundamentals right before going into modern systems. I guess its how I learn :)

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

In the LTS release of ubuntu GNOME, there was an option to use both X11 as well as Wayland. But for ubuntu 18.04 at least, it was shipped with X11 by default.

Collapse
 
phantas0s profile image
Matthieu Cneude

Nice article!

I wrote not long ago an article for beginners to try i3. I try to explain everything, and I show how to build a basic configuration step by step.

Hope it can help!

thevaluable.dev/window-manager-mou...

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Thanks Matthieu. The next article I was about to write was on i3 only :)

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Your website looks awesome. Are you using a static site generator?

Collapse
 
phantas0s profile image
Matthieu Cneude

Thanks! I'm using Hugo, with this theme I modified: github.com/vjeantet/hugo-theme-casper

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Excellent article! Very insightful. I knew most of this, but it confirmed and cemented a few things that were a bit shaky for me. Thanks!

Would you consider doing a full series of deep dives on Linux?

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Thanks Jason. Right now I am doing a series on Window Manager Hopping. But I would love to do such a series!

Collapse
 
smitpatelx profile image
Smit Patel

For those folks who tried installing lightgdm and didn't work, you might see a message "/dev/nvme3/: clean" and you waited for a long time.

Try these commands. (Alt + F2 to login, if you are still stuck).
sudo service gdm3 status (in you case it might be gdm)

If its not already running try:
sudo service gdm3 start

Collapse
 
utkarsh profile image
Utkarsh Talwar

Great post, Angad! I shared it in our Telegram newsletter/channel for devs. 👉🏼 Link

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Thanks Utkarsh. I'm glad there is a telegram group for Dev 😄

Collapse
 
utkarsh profile image
Utkarsh Talwar

It's kind of an unofficial thing, not endorsed by the DEV team. 😅 But we love to share the best dev resources, articles, videos, etc. there anyway. Hope to see you there. Cheers!

Collapse
 
machooper profile image
Mac

Which display manager are you using in the screenshot that says Erik? That looks pretty cool

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

It is a lightdm configuration. I found it online. See this video for reference 😄 : youtu.be/_dYqisDIcC0

Collapse
 
machooper profile image
Mac

Awesome thank you!

Collapse
 
nicolasfella profile image
Nicolas Fella

"A window manager also provides client side decorations, such as title-bars, buttons etc"
Window decoration drawn by the window manager is called server side decoration.

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

X11 has a flipped view of client and server: en.wikipedia.org/wiki/Client-side_...

Collapse
 
biros profile image
Boris Jamot ✊ /

This post is amazingly useful and dead simple to understand.

Thank you so much!

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

I'm glad I could help :)

Collapse
 
consciousness_dev profile image
Ario Setiawan

Love this technical Explanations!

Collapse
 
x3m profile image
Eduard Lucena

I switched from cinnamon to i3wm and the experience is wonderful. Thanks for this article, it clarifies several things I wasn't sure how they work.

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

I'm glad this article helped :)

Collapse
 
acro5piano profile image
Kay Gosho

Great Post!
When I used Linux Desktop, I didn't use any display managers. Instead I login to TTY console and run startx manually ;)

Collapse
 
deadlysyn profile image
Mike Hoskins

I've been using UNIX/X since the mid-90's, and still found your post enlightening...nice review of parts often forgotten behind the scenes. Keep 'em coming!

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Thanks a lot Mike, appreciate it.

Collapse
 
ahmedmohiduet profile image
MD. Mohiuddin ahmed

Cool post along with plenty of details (y). Any tools recommendation for record/replaying X11 events like 'cnee' but more human readable scripts?

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Hmmmm I was hoping I could find any binding for higher level programming languages, but there are none! both PYPI and npm ran dry. This never happens often

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

No wonder it runs 90% of the world :)