How to Assemble a GNU/linux desk(top) Part 1 : Get to know your Desktop

asem bused
Script Diary.sh
Published in
10 min readMar 20, 2018

--

Desk(top) as most people main interface when operating with a computer software have an important role on everyday use, whether just to make it work out of the box, or looking good in some way or another. In this article i gonna try to give an overview about GNU/Linux desktop and how you could assemble your own desk(top). This article will based mostly on my experience and my perception on information available on internet.

So before we start assembling our own desk we need to know what our desk material is made of, is it made from cardboard, dry wood, wood plank, or sturdy metal, this way we would know how we can assemble and use our desk properly without breaking it, or hurt ourselves in the process. In general our desktop is consist of several part as it’s component.

  1. Display Server (Good Footing for your stable desktop)
Display Server Overview (from Wikipedia)

First thing we should look at is a good footing where our desk will stands to make sure our desktop stays straight up,stable (not sliding everywhere), and comfortable for us to work with, this footing itself are called display protocol or maybe display server ( in gnu/linux case it’s called X11 ). Display server work by communicating with it’s client or your running software to understand what it need’s to draw into the screen, and render your very desired image (GUI) into the screen of your monitors. By the time i write this article there also a new technology called wayland protocol that have a similar job with existing display protocol (X11), but have a different work process (wayland are said to be much more efficient than X11). i wont get into much more detail since information about display server or protocol X11 would need an article exclusive for it.

2. Window Manager (Literally the desk itself)

The main component of your desktop is basically this window manager. Window Manager handle’s most of your operations with software, including panel, and application launcher. As gnu / linux provide freedom, there also a freedom in choosing your window manager. Window manager are categorized into several category to separate window manager based on how they works. window manager are categorized as Compositing Window Manager, Stacking Window Manager, Tiling Window Manager, and Dynamic Window Manager. I believe i will need another specific article to cover window manager difference since it’ll be another long description on how window manager work. In short, window manager is a windowing system that manage every application window(including size and position), and workspace, this include other application that doesn’t have window as well, since X already have it’s own parameter to identify their client if they need to, a window surrounding them or not. Here are a list consist of several window manager i managed to find out.

  • Stacking Window Manager : openbox (LXDE default), xfwm (XFCE default), mutter (GNOME Shell Default), Kwin (KDE Default), and IceWM
  • Tiling Window Manager : Awesome WM, BSPWM, dwm, HersbluftWM, i3, Xmonad
  • Compositing Window Manager : Compiz, Compton
  • Dynamic Window Manager : most tiling WM are also dynamic WM

The above component is main component of working desktop that computer savvy need to operate everything inside a system. Following component after this section is considered as optional and an quality of life component that increase functional and aesthetic of an desktop. As of the ever changing desktop purpose is to become an user friendly interface , and aesthetic media of an interface, desktop environment always come with additional component to comfort their user in operating and configuring their desktop.

3. Application Launcher ( magical drawer that get you working)

Application launcher is a component intended to be an quality of life enhancement for desktop environment. Application Launcher comes in many variation, most of people would identify it as desktop shortcut, pinned task, or start menu. I am not saying that most people call them wrong or anything but, the purpose of those applications mostly launch an application from an desktop so we could access it easier, instead of calling a terminal and call them. Window manager already provide these launcher with their own way, which sometime is not comfortable enough for us to use. There are bunch of application launcher you can use for your desktop some of them are integrated inside a panel (that we will cover after this), integrated with your file manager, or launch as an standalone software.

4. Panel , taskbar, dock, or / and statusbar ( your go to information, and toolbox corner )

Panel, and it’s kind can work with many different usage as it’s intended to be, that’s why most desktop have panel feature rich with many additional functionality such as window navigation, workspace navigation, application launcher, system indicator (system tray, battery, etc). There also panel that also work good on specific task, like status indicator, and let the other ( panel / software ) handle the rest. It’s your choice whether you like more single tasked panel or more multi tasked panel. Here are some panel application i know, that might help you get started (i sort this list from more complex scripting to easier configuration) .

  • dzen2 —Dzen is a general purpose messaging, notification and menuing program for X11.
  • Lemonbar —A featherweight, lemon-scented, bar based on xcb
  • Polybar —A fast and easy-to-use status bar
  • Tint2 —A lightweight panel/taskbar for Linux and BSD
  • Plank — Plank is meant to be the simplest dock on the planet
  • Cairo-Dock — desktop interface that takes the shape of docks, desklets, panel, etc

5. Display Manager, Lock Screen, Widget (Eye Candy that decorate your desk)

Every component in this section are considered as optional accessory for your desktop. But as optional these components are, it might also add another aesthetic factor that might piqued your interest. Just another reminder that as the optional word means, this component isn’t really needed for a working desktop, but some people might consider some component in this section as required in their case since we all work in various cause.

To begin the the description let’s start by looking at the first prompt we see after booting a linux machine, a login prompt that could also be disabled on some case. if the login prompt you use isn’t a graphical one you can ignore some information i said here. In GNU/Linux operating system this graphical login prompt is called display manager, display manager usually started automatically by your system and service manager (on my machine systemd). When interacting with display manager you could choose which window manager or desktop session you want to use and log into it through provided login prompt. It is also possible to use display manager as a lock screen, but there are also a standalone lock screen that work without any display manager. I haven’t explored display manager when i write this article, so i wont be able to give anymore information regarding that. but for standalone lock screen it usually just work out of the box.

i3 lock

Another information i learned that, if you have problem regarding screen (monitor) while right on login prompt, this problem might be caused by display manager configuration ( in additional to failure X configuration possibility ).

After you finished logging in and launched your WM/ Desktop your desktop is the next prompt you’ll met (you know where you see your wallpaper). Not much thing you could possibly do with desktop, but it is the place where other application will work with or for you. most window manager didn’t provide any wallpaper configuration, because they try to keep it simple. So when you use window manager you are most likely gonna see a black screen with cursor that you can hover around.

To fill our desktop darkness there are some application that provide desktop wallpaper configuration and give some light, or maybe some affection for your desktop. some desktop wallpaper manager that i know is nitrogen, and feh.

Next you might find that panel and application launcher are the next application you would access.

what about desktop shortcut ?

sorry i don’t have much information about it, please fill me up if you have any information regarding that.

either way, i myself doesn’t found any condition where i prefer using cluttering desktop shortcut over accessing application easily via dedicated application for application launcher.

There also another component that you might stumble upon looking at desktop in common. Widget is a component that sits on your desktop to give additional functionality or information when you look at it. Panel itself also count as desktop widgets itself, but widget is not bound to the edge of the screen, and providing more content than panel could provide with it’s small size. Widget usually comes as additional application that completely configurable in order to provide many customizable widget that can be shared around the internet. some widget application that i know is conky and dzen2

6. Themes and Configuration

Next we got themes and configuration, i intentionally put this in last because it’s available in internet and covers everything i already mention in previous sections. Themes and configuration are the back bone of beautiful desktop. This means in order to beautify your desktop you need to configure or themes these application that you use. Every component that i mentioned before could be harmoniously configured and themed to become a desktop that have fitting component. Here are some theme category that i know and sorted by it’s usability in your desktop (in my own opinion).

  • terminal color scheme , and fonts (usable even without desktop)
  • icon themes (usable in any window manager, and desktop)
  • gtk themes ( usable in several application )
  • window manager theme ( related to your window manager )

There are bunch of theme, in the internet regarding these category but make sure you choose appropriate theme for your desktop (window manager) when you look it up. Of course you wont be able to use theme that aren’t designated for your window manager. You could also create your own theme but you’ll need an understanding on how the application theme engine work and find an “taste” to design your desktop aesthetically. There are many available theme that already spread on the internet, you can find, use, learn, and modify those theme (just don’t forget about license stuff to keep you away from trouble).

For configuration it is usually much easier and shorter since configuration only applies to it corresponding software, even so configuring an application have many impact for it’s functionality, and aesthetic value of your desktop. Since everything desktop component that i mentioned above are configure-able, it means you have many possibilities for configuration from window manager to widget so you could have beautiful, aesthetic, and harmonized desktop. But wait, from these many possibilities come question’s and problem’s.

How do i configure my desktop ?

“go google it”

In order to personalize and customize some application you’ll need an understanding on how the application you want to configure work. That’s why in my earlier remark “go google it” because most application already provide a documentation about it’s configuration. There also many user made configuration that available on the internet just like theme does, but maybe you won’t get much with “Theme” keyword. Instead of “Theme”use “dotfiles” as a keyword it’s a term for configuration file in linux desktop (ofc don’t forget to include the application name). It’s also possible to find configuration and themes at subreddit that discuss about beautifying linux desktops, it’s called r/unixporn. There you can find many people that decorate their linux desktop into an abomination( of extremely beautiful desktop).

Unixporn Post from u/addy-fe

Conclusion

My Intention to create this article is to share an information about beauty of linux desktops, and it’s ability to be customized without limit. But before you start to tamper you desktop to become a beautiful workspace, i believe that you should know about main components of a running desktop. The reason is to ease, and cut the process of troubleshooting your configuration and themes in your desktop. I myself just started learn about linux desktop customization a month ago, and find that understanding how linux desktop work helped me when troubleshooting any configuration in my desktop.

I’m sure there might be some information that i didn’t describe properly, that’s why feel free to ask, or maybe point out any fault in my writing. I would be really happy to know that someone actually read my article.

Here some additional information for anyone who read this last section, a git repository consist of information about linux desktop customization tools

In the next part i would like to cover about display protocol or server. But in order to write an article about it i need to understand more about how display protocol works and present it with general understanding.

--

--