How to Install and Configure Linux for a Workstation with an i3 Desktop | Hacker Noon

The project is an X Window System server that allows the user to organize a graphical working environment for themselves. There are 2 main types of graphical environments: Window managers Tiling managers and graphical environments. The main advantage is the lightness of the window manager taunting the floating window options: LXQ, XFC, LXQ and LXQ. The Xorg is network-aware, which allows you to run a program on one system and look at another on another. For a virtual machine, you can use the entire disk in your own way.


Maksim Kuznetsov Hacker Noon profile picture

Maksim Kuznetsov

Just a Senior Python Developer.

In this article, I want to talk about the Linux operating system, and specifically about how to assemble a workstation from a minimal image and fully configure it for various purposes.

Choosing a distribution kit: I first saw this method when installing Arch Linux, when the entire installation is done by entering commands into the terminal. This gives the maximum installation flexibility, but I’m more used to using Ubuntu at work.

Earlier I collected various Linux images, since almost all the necessary programs were preinstalled and configured in them, and most importantly the graphical interface, but in the end, most of the programs had to be removed, which makes me do double the amount of work.

In this article, I will use Ubuntu as an example, since I have tried this method more than a dozen times and I remember most of the commands, package names, and so on.

Briefly about the approach. For this approach, I will use a minimal Ubuntu image or Ubuntu Mini. This is Ubuntu version 20.04, which is not the latest, but I think it will not be difficult to upgrade to the latest one already on the installed system if necessary. Although in the comments on Reddit, you can find that you need to use Ubuntu Server to install the minimum version, but I have not tried this option yet, since I use the old and proven one. I really like the fact that the image is less than 100 MB and uses the TUI installer.

If you are installing Linux for the first time, I recommend using the following guide on a virtual machine, and in general, it is a good practice to test the functionality of new operating systems.

Let’s move on to the installation.

During the installation, I will only cover the main points, since when installing on a virtual machine you do not have to think too much about long-term use.


Start screen. We choose install.


We choose the language of the system. I recommend choosing English, later this can be changed if necessary.


We choose No. Configure the keyboard manually. Select in the following windows English (US), English (US).


We set a name for the computer. It should be noted that not all special characters are available.


Here we select the desired mirror for your or the nearest country for fast download. In the next window set proxy if needed.


Enter your full name and username on the next screen.


Now let’s move on to the partitioning of the disk. For a virtual machine, you can use the entire disk, if you want, you can partition it in your own way. I will be using the entire disk.


This is how the entire disk markup looks. Then we are waiting for the installation of the base system.


On this screen, I recommend disabling automatic updates.


List of available and configured packages. Part 1. You can choose nothing here.


List of available packages. Part 2. As you can see, graphical environments are already available here. Spoiler alert: we will install manually the one that is not on the list.


Install GRUB bootloader by clicking Yes.


Installation completed. You can remove the image from the virtual machine.


First login. Be sure to export your virtual machine, this will allow you to roll back to a state where you have a clean system.

Now let’s install an initial set of tools that can be useful for loading various scripts or repositories with programs:

sudo apt install git curl wget htop -y

Xorg and Xserver.

Xorg is an X Window System server that allows the user to organize a graphical working environment for themselves.

The project is created and maintained as a free and open-source implementation of the X11 system. And it is also an X11-based desktop framework.

Xorg provides the interface between your hardware and the graphics software you want to run. In addition, Xorg is network-aware, which allows you to run a program on one system and look at another.

Installing X-Server (Xorg)

sudo apt install xorg --no-install-recommends -y

Choosing a Graphical Environment

There are a huge number of different graphical environments. There are 2 main types: Window managers and Tiling managers. The tiling manager is different in that it tries to occupy the maximum available screen area, and the floating mode (more familiar windows, you need to turn it on for each window). Moreover, by default, the tiling manager supports many desktops at once, which simplifies the work and allows you to switch between desktops instead of windows, in turn, on which there may be more than one window. Also, a significant advantage is the lightness of the tiling over the window manager.

 The main window manager options are: KDE, XFCE, LXQT, GNOME (default Ubuntu Desktop Environment), Budgie, Deepin.

Tiling managers include i3, awesome, xmonad, Qtile, dwm.

I always look for interesting variations on Reddit where you can find very nice themes for the design and usually dotfiles (prepared settings).

For now, I’ll choose the i3 as an example.

Installing i3 and the Terminator Terminal Emulator:

sudo apt install i3 terminator -y

Before finishing, you need to install Display Manager. This is a graphical screen that appears at the end of the boot process instead of the standard command line prompt. The screen manager is a screen for entering a username and password to log in to the system. There are many screen managers, as well as desktop environments. Almost all display managers can be customized by changing their style and behavior.

I will focus on the sddm I am used to. But there is a huge selection: console and graphical. A good example of the former is Ly, graphical examples: sddm, lightdm, xdm, gdm.

Selecting the login window

sudo apt install sddm -y

Additional View Improvement Programs:

  • Conky is a desktop add-on that allows you to dynamically display various system metrics. It has a very fine configuration and various themes.
  • Feh is a console utility for viewing images, can also be used as an image installer on the desktop.
  • Compton is a lightweight compositing manager for the X graphics server based on xcompmgr-dana that allows you to add different animations and transparency to different windows.

How it looks after the actions are taken:


You can see that i3 uses only 240 MB RAM.

Command to Set Desktop Wallpaper:

feh --bg-fil wallpaper.png

This guide shows that with minimal knowledge, you can collect various combinations of the Linux operating system environment according to your preferences, as well as customize and decorate them in various ways.


Join Hacker Noon