Sh4dow’s Desktop Environment (SDE) 3.0

SWM

Full Official Stable Code

There may be several versions of the program, however, I recommend that you use the most updated stable version, which you will find by clicking here . This link will redirect you to my github.

Overview

This guide teaches how to perform a clean install of Arch Linux, as well as how to use the “Sh4dow’s Desktop Environment Installer”(SDE) which will be used to install window managers with custom settings, plus various additional programs that will complement and enhance the desktop environment for the user.

I will assume that you are comfortable with Linux based operating systems and command line interfaces.

If you have a previous Debian 11.5 installation, I recommend you to backup your files and reinstall Debian. This because, can be problems if it not is a clean installation.

Version

Version: 3.0

License

This project is licensed under a GNU General Public License v3.0.

If you want to know about this license, click here

What is a Window Manager?

The window manager is the program that aims to allow the user to manage the size of the application windows on the screen.

Tile window managers only focus on arranging the windows on the screen by making sure of two things:

  • Each window will use all available space on the screen

  • If several windows are opened, they will all be displayed at the same time according to certain rules (layouts).

WINDOWMANAGER

If you want to know more about this, you can visit this site for more information

Debian 11.5 Installation

DEBIAN

Debian 11.5 should run on any “x86_64”-compatible machine with a minimum of “512 MB” in “RAM”. A basic installation should take less than “2 GB” of disk space. As the installation process needs to retrieve packages from a remote repository, this guide assumes a working internet connection is available.

First at all, you need to download the “.iso” that you can find here: Debian ISO Download

Now, read the Debian 11.5 Installion Guide , but in the part that you can install a Desktop Environment, only choose standard system utilities. Later, after reboot the system, as a tip, enter as root to install sudo.

To install the program sudo do:

apt install sudo
gpasswd -a <your_user> sudo
systemctl reboot

This lines will allow you to use sudo when you reboot the system.

Using SDE (Installer)

LOGO

To use the “Sh4dow’s Desktop Environment Installer” you need the program git, that you can install with apt:

sudo apt install git

Later, you will clone this repository:

git clone https://github.com/sh4dow18/sde.git

Now, go to “sde” folder:

cd sde/

Finally, to execute the installer, put:

sudo bash installer.sh

SDE Installer Information

Sh4dow’s Desktop Environment Installer introduces itself first:

PRESENTATION

Now, the installer begins with the installation of system updates. This is because it is best if the system is updated to obtain the best performance from the programs that would be installed later:

UPDATES

After that, will be install the programs about window manager and extras for that one. Immediately, it will download and install all the necessary packages.

PROGRAMS

After, the installer automatically will install all the configuration that was created previously:

CONFIG

Later, the installer, if this hasn’t errors, tell you that the installation was finished and if you want to reboot now, because, the system need it for apply changes:

INSTALL

When you reboot your system, you will see the next window to login.

LIGHTDM

And tada! You have now a window manager pre configured that you can use freely.

Qtile is a window manager that has a filosofy that use many part of time the key bindigs. It is a “advance” window manager. If you want to know how is the window management of Qtile here is an example:

WINDOWQTILE

SDE Uninstaller Information

To uninstall all the programs and the settings, first you need to go to another terminal (tty2), that you can use with the key binding “Ctrl + Alt + F2”:

TTY2

IMAGE CHANGE NEEDED

Now, you will go to the sde/ directory and put

sudo bash uninstaller.sh

First, the uninstaller will alert you if you really want uninstall all.

WARNINGSWM

Then, the uninstaller introduce itself.

PRESENTATION2

After that, the uninstaller will prepare itself to uninstall the programs. This have to do it to do not create problems.

PREPARING

Later, the programs will uninstall

UNINSTALLING

Then, the uninstaller delete the installed programs cache

CACHE

IMAGE CHANGE NEEDED

Now, the uninstaller will remove all the configuration files that was installed.

REMOVING

Finaly, the program need to reboot your system to apply changes.

UNINSTALL

Do you want to know more? Read THIS :D

Here, the software that was used in the installer will be shown in more depth. Also, the key bindings that are pre configured in the window manager and installed themes will be shown.

Software

Package Description
xorg Graphic Controller
lightdm Login Manager
lightdm-gtk-greeter Lightdm User Interface
lightdm-gtk-greeter-settings Settings for the Lightdm User Interface
python3-pip Python3 Package Manager
snapd Package Manager like apt
firefox-esr Browser
vlc Video Visualizer and Audio Player
zip Files Compressor
unzip Files Decompressor
scrot Screen Capturing Application
rofi Program Launcher
udiskie Automounter of Removable Media
ntfs-3g Stable NTFS Driver
exa Modern Replacement for ls
fish Smart and user-friendly command line shell
pulseaudio Multiplatform Sound Server
pavucontrol Pulseaudio grafical tool
neofetch View hardware and software information
feh Wallpaper Changer
x11-xserver-utils Utilities that has xrandr
bat cat, but on steroids
lxappearance GTK Theme Switcher
xcffib, cairocffi, dbus-next Needed Libraries to use qtile
qtile Window manager configured in Python
pinta Image editing and drawing program
code Code Text Editor
alacritty OpenGL Terminal Emulator

What the software do?

  • The package xorg allow the system to use grafic user interfaces (GUI).

  • The programs lightdm, lightdm-gtk-greeter and lightdm-gtk-greeter-settings provide a login manager GUI with a theme.

  • The package python3-pip is a package management system used to install and manage software packages written in Python3.

  • The Program snapd is a universal package management system used to install programs that can not be installed with apt.

  • The package firefox-esr is an open-source browser that allows you to navigate in internet.

  • The package vlc is a GUI visualizer. Vlc allows you to watch videos and listen to music.

  • The packages zip and unzip allows the user to compress and decompress files and folders.

  • The program scrot allows you to make screenshots and save them in the actual directory.

  • The program rofi is a GUI menu that can allow you to call any program installed in your system.

  • The program udiskie allows the system to mount automatically removable devices. The program ntfs-3g help udiskie to mount external hard disk drives that was come from “Windows”.

  • The program exa is a ls, but pretty. This one has colors and more options. In the configuration, the installer “transforms” exa in ls, because you can use exa like ls command. For example:

    ls /home/sh4dow18
    
    ---> The output of "exa"
    
  • fish is a better shell than bash. Fish has an autocompleter, can you install plugins for it, has more help for the user, etc. Fish is more intuitive to the user.

  • pulseaudio is a program that allows you to interpret digital sound to analog and vice versa. The pavucontrol program is the graphical manager of pulseaudio.

  • The neofetch program is a script written in bash with more than 8000 lines of code, which obtains the information from your software and your hardware so that it can be displayed on the screen by console.

  • feh allow the system to have wallpapers.

  • x11-xserver-utils has the package xrandr that allows the user to change the screen resolution.

  • bat is the enhanced version of cat, because it colors syntax of different languages, in addition to working with vim underneath for a better visualization of the file.

  • The Package lxappearance is a GTK+ theme switcher developed for LXDE, the Lightweight X11 Desktop Environment. It is able to change GTK+ themes, icon themes, and fonts used by applications.

  • The programs xcffib , cairocffi and dbus-next are libraries that need Qtile to run, because these worked with X11 Functions.

  • qtile is a window manager that how explain before, control how the windows will be use. Qtile has a tool bar included.

  • pinta is a program like the famous Windows “Paint” program that allows drawing and basic image editing.

  • The program code is the package for Visual Studio Code and this is a code text editor to create your own programs.

  • The package alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. This work with OpenGL so, is faster than other common terminal emulators.

Themes

Theme Description
Material Black Black Theme for Qtile
Breeze Cursor Theme

Fonts

Theme Description
UbuntuMono Nerd Font Font for Qtile bar
Agave Nerd Font Font for Alacritty

Key Bindings for Qtile

Key Binding Action
Super/Hyper + j Move Window Focus to Down
Super/Hyper + k Move Window Focus to Up
Super/Hyper + Shift + j Move Window to Down
Super/Hyper + Shift + k Move Window to Up
Super/Hyper + Return Launch Alacritty
Super/Hyper + z Launch Rofi Menu
Alt + Tab Change Layout
Alt + w Kill Focused Window
Alt + f Launch Firefox
Alt + c Launch Visual Studio Code
Alt + s Make a Screenshot
Super/Hyper + Ctrl + r Restart Qtile
Super/Hyper + Ctrl + q Quit Qtile

The Key bindings can be changed in the Qtile Config File that is in the config user directory.

Here ends the documentation for now. Eat vegetables and have a Nice Day :D