Linux: From Server to Desktop-Environment
Tags: linux
Published: 2023-11-08 06:49:16

Greetings, tech aficionados! Today, we embark on a thrilling exploration: the art of crafting your own operating system. In a landscape often confined by Windows and macOS, Linux emerges as a sanctuary of customization.

In the Linux universe, you're the **architect of your digital world**. Unlike Windows' rigidity, Linux empowers you to curate every element of your desktop environment. It's a playground of **modularity**, offering freedom from predefined components and default settings.

But Linux isn't just an OS; it's a canvas of diversity and innovation. With endless flavors and desktop environments, it caters to your every desire and preference. Prepare for an exciting journey where you sculpt your **dream operating system**. Let the Linux adventure commence! 🚀✨

### Understanding Linux Distributions

Linux comes in various flavors known as distributions or distros. Each distro caters to specific user needs, offering different levels of customization, stability, and support. Popular distributions like Ubuntu, Fedora, Debian, and Arch Linux provide unique features, making Linux accessible for both beginners and advanced users.

- **Ubuntu**: User-friendly, suitable for beginners, and widely supported.
- **Fedora**: Cutting-edge features and great for developers.
- **Debian**: Stable and reliable, preferred for servers.
- **Arch Linux**: Highly customizable and favored by Linux enthusiasts.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7gsq7rbstkn28tlfdbn0.png)

### Transitioning from Windows or macOS to Linux

Making the switch to Linux involves learning new tools and workflows. Here are some essential steps to facilitate a smooth transition:

- **Mastering Basic Terminal Commands**: Familiarize yourself with fundamental terminal commands. Commands like `cd`, `ls`, `sudo`, and package management commands (`apt`, `dnf`, `pacman`) are invaluable for system management and software installation.
    
- **Understanding File System Hierarchy**: Linux organizes files differently from Windows or macOS. Understand the file system hierarchy, including the `/home` directory where user data and configurations are stored.
    
- **Embracing Open-Source Software**: Explore the rich ecosystem of open-source software alternatives available on Linux. LibreOffice, GIMP, and Inkscape are excellent replacements for proprietary applications.
    
- **Customizing Your Desktop**: Linux allows extensive customization. Experiment with themes, icons, and desktop widgets to tailor your desktop environment to your liking.

### Our Agenda:
> In this article, we're going to customize a Fedora Linux server installation, transforming it from a basic server into a fully functional desktop environment tailored to our specific needs!

---
### Downloading the base server

Site Link: https://fedoraproject.org/server/download/

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/romsc42t7rrdffeluyys.png)

#### For proper server installation guide, I recommend this article:

[How to Install Fedora Server 37 Step-by-Step](https://www.linuxtechi.com/install-fedora-server-step-by-step/)

---

### Update your system

Run the command to update your system.
```bash
sudo dnf update 
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/44oklmr3jq3cho4gcpbt.png)

---
After successfully updating your newly installed system, it's time to transition from the basic Command Line Interface (CLI) to a more appealing **Graphical User Interface (GUI)** that can enhance the overall user experience. Nobody wants to be greeted by a plain black screen with a console after logging in, right?

To achieve this, we can begin with display managers.
 **Display managers** function similarly to the lock screens or login screens you encounter in operating systems like Windows or macOS. In the X Window System, an X display manager serves as a graphical login manager, initiating a login session on an X server, whether it's on the same computer or a different one.

A display manager presents the user with a login screen.
- GDM (Gnome)
- LightDM (ALL)
- SDDM (KDE)

You can go with any display managers and install them but here we are going to install SDDM display manager, a cross-desktop display manager for X11 and Wayland.
```bash
sudo dnf install sddm
```

It automatically picks Xorg server, which we are going to use rather than wayland here.

> [**Xorg**](https://www.x.org/wiki/) (commonly referred to as simply **X**) is the most popular **display server** among Linux users. Its ubiquity has led to making it an ever-present requisite for GUI applications, resulting in massive adoption from most distributions.
For the alternative and successor, see [Wayland](https://wiki.archlinux.org/title/Wayland "Wayland").

>  A **display server** is a program which is responsible for the input and output coordination of its clients, to and from the rest of the operating system, and among the hardware and the operating system.

---
### Make the system boot to SDDM rather than the command line server

```bash
sudo systemctl enable sddm
```

#### Changing from CLI target to a Graphical target

```bash
sudo systemctl set-default graphical.target
```

#### Config auto-login

```bash
sudo vi /etc/sddm.conf
```
 or 
```bash
sudo nano /etc/sddm.conf
```
based on the editor of your choice

Then uncomment the `#User` and change it to your username
You can also uncomment the `#Session` tag present above the user and set it to the WM or DE you are going to use.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/crte09jbjf1vm3piucsn.png)

---

This command enables us to login to the **SDDM login manager**, but what comes next? Where do you want to log in? This decision is in your hands, allowing you to tailor your system according to your preferences. You can choose to log into a comprehensive **desktop environment** or opt for a lightweight **window manager**, depending on your specific needs and choices.

For **Linux newcomers**, desktop environments are recommended because they provide a **familiar user experience** similar to Windows or macOS. These environments come with **pre-installed essential software**, including a built-in Bluetooth manager, audio manager, and a comprehensive settings application – features often absent in lightweight window managers.

If you're feeling adventurous and curious about setting up and customizing a window manager, you're welcome to explore that path. However, for now, we'll be focusing on **user-friendly desktop environments**, perfect for beginners.

### Exploring Different Desktop Environments

Unlike Windows and macOS, Linux allows users to choose from various desktop environments, altering the look, feel, and functionality of the system. You can list available desktop environments using the default package manager, `dnf`. In a terminal use the `dnf group list` command to list all available desktop environments:

```bash
dnf group list --available *desktop
```

Some popular desktop environments include:

- **GNOME: Modern and user-friendly, ideal for beginners**.
	![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/49b2zh708hbvfim8a2sz.png)To install:
	 ```bash
	sudo dnf group install -y "GNOME Desktop Environment"
```
---
- **KDE Plasma: Feature-rich and highly customizable, suitable for power users**.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ixny26xgca8h03yy0y5.png)To install:
	 ```bash
	sudo dnf group install -y "KDE (K Desktop Environment)"
```
---
- **XFCE: Lightweight and fast, perfect for older hardware**.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lxq75woctcydptyow7fc.png)To install:
	 ```bash
	sudo dnf group install -y "Xfce Desktop"  
```
---
- **Cinnamon: Intuitive and reminiscent of traditional desktop layouts**.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrcx519o6thrnr76bhie.png)To install:
	 ```bash
	sudo dnf group install -y "Cinnamon Desktop"
```

---
After successfully setting up your Desktop Environment, it's time to reboot and enter your freshly installed system. Adapting to the new user interface might require some time, but soon enough, you'll find delight in navigating your new system.


> Tip:
> You can install more than one desktop-environment and window-managers in a system and switch them form your login-manager.


In the vast realm of Linux, the fusion of power and freedom awaits you. Once you've installed your preferred environment, you can enhance your desktop experience by tailoring themes, fonts, sounds, package managers, and software to your liking. Linux provides **unparalleled flexibility**, allowing you to not only customize the visual aspects but also modify the entire spectrum of functionality. With the aid of extensions, your desktop experience can be elevated to new heights as you explore the endless possibilities and expand your expertise.

##### Happy Linuxing!