General Info
Window Manager
A Window Manager (WM) is what actually controls the window placement and their look and feel. A few examples are: Awesome, Blackbox, bspwm, Enlightenment, i3, Sway, and WindowMaker. There are a few types of WMs:
- Compositing DEs create each window independantly. The only gotcha here is that windows cannot overlap each other.
- Dynamic DEs create window spaces automagically and can actually switch between tiliing or floating layouts.
- Stacking DEs are the most common types of DEs. They are geared to mouse users and windows can easily be moved around. They are similar to Compositing, except, windows can overlap each other.
- Tiling DEs force into moving your windows around so that they connect to each other (commonly called snap). Like Compositing, tiling WMs do not allow windows to overlap. These are for hardcore keyboard junkies.
Desktop Environment
A Desktop Environment (DE) runs on top of a Window Manger. The DE is the software that provides a graphical user interface (GUI) for an end user. This is what gives us the pretty interfaces, icons, toolbars, wallpapers, and overall window interface. Different DEs include veried amounts of additional software. A few examples are: CDE, Gnome, KDE, or Xfce
To get a list of avaialable desktop environments:
Display Manager
A Display Manager (DM) manages user logins and graphic display servers and it is used to begin a session on an X server. The user is presented with a login screen in a DM and the session can start when the user enters valid credentials. Commond DMs are listed below.
gdm
Defaut: Gnome
This is the default Display Manager in Gnome. If Gnome is installed on your distribution, then you are probably using this without your knowledge. It is on the heavier side of the display managers. Note, Gnome is heavy on system resources.
Notable features of gdm are: efficient and fast User Switching Support, have accessibility options for specially-abled people, compatible with an X server (Xorg) and Wayland, and allows users to customize settings without touching the Terminal.
lightdm
lightdm is a gdm alternative developed by Canonical. The main feature is that it’s light weight. This means it offers great performance while using little memory. It is also very customizable.
It has Qt and Gtk support. Besides various desktop technologies, it supports various display technology, such as Wayland, Mir, and X windowing systems. The complexity of code in this display manager is not high.
Other features which are supported include remote login, as well as sessions from guest users. Themes are rendered using a web kit. It is completely independent of Gnome.
sddm
Defaut: KDE
Simple Desktop Display Manager (sddm) is the default graphical login program for KDE desktop, also called Plasma. It operates on Wayland windowing systems and X11 systems. It is quick, easy to use, beautifully designed. It also offers customization, with a wide range of themes.
It's base is Qt and the QML language. SDDM is the default DM for KDE. It was written from the ground up in C++11.
Testing
I tried the following WMs and DEs along with any comments.
Type:
Comment:
Install Command:
Dynamic
sudo dnf -y install awesome
Type:
Comment:
Install Command:
Stacking
sudo dnf -y install blackbox
Type:
Comment:
Install Command:
Tiling
sudo dnf -y install bspwm
Type:
Comment:
Install Command:
Compositing
Mint OS default
sudo dnf -y group install "Cinnamon Desktop"
Type:
Comment:
Install Command:
Stacking
sudo dnf -y install cwm
Type:
Comment:
Install Command:
Compositing
Resource heavy
sudo dnf -y group install "Deepin Desktop"
Type:
Comment:
Install Command:
Compositing
sudo dnf -y install e16
Type:
Comment:
Install Command:
Compositing
sudo dnf -y install enlightenment
Type:
Comment:
Install Command:
Compositing
Based on GTK
sudo dnf -y groupinstall "GNOME Desktop Environment"
Type:
Comment:
Install Command:
Dynamic
sudo dnf -y install i3
Type:
Comment:
Install Command:
Stacking
sudo dnf -y install jwm
Type:
Comment:
Install Command:
Compositing
Based on Qt
sudo dnf -y group install "KDE Plasma Workspaces"
Type:
Comment:
Install Command:
Compositing
Based on GTK
sudo dnf -y group install "LXDE Desktop"
Type:
Comment:
Install Command:
Compositing
Based on Qt
sudo dnf -y group install "LXQt Desktop"
Type:
Comment:
Install Command:
Compositing
sudo dnf -y group install "MATE Desktop"
Type:
Comment:
Install Command:
Stacking
sudo dnf -y install openbox
Type:
Comment:
Install Command:
Compositing
Eelementry default
sudo dnf -y group install "Pantheon Desktop"
Type:
Comment:
Install Command:
Tiling
sudo dnf -y install sway
Type:
Comment:
Install Command:
Stacking
NeXTSTEP
sudo dnf -y install WindowMaker
Type:
Comment:
Install Command:
Compositing
Manjaro OS default
sudo dnf -y group install "Xfce Desktop"
Desktop Environment Install
Background
Now for the hard part... deciding on which DE to run. It is a very personal decision. Growing up, I started on a IBM AT, to several Macs, to a Windows, etc. So I had already played with different operating systems. Switching from Windows, KDE seemed the most natrual. Back then, Gnome wasn't as robust as it is today. Gnome today, is more like a Mac interface. I have run KDE the longest. When I decided to run Linux on my main PC, I had a bake off between KDE and Xfce.
KDE is extrememly customizeable, almost too much. Histrocially, Xfce has the longest history of being the most lean. KDE has come a long way and I have seen some data to say that KDE is almost as lean as Xfce. Xfce is also very customizable. The core part is a little lacking. In classic fashion (or my preferance) start vanihalla then add as ncessary. So with a few plugins, Xfce will run wide open.
KDE
If you use the group install "KDE Plasma Workspaces" it comes with a lot of helpful tools. To see a list of what is installed in the group, use "group list" command. The following is a sample output on Rocky 8.
- [localadmin@rocky8 ~]$ sudo dnf -y group info "kde-desktop-environment"
- Environment Group: KDE Plasma Workspaces
- Description: The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications.
- no group 'libreoffice' from environment 'kde-desktop-environment'
- Mandatory Groups:
- Core
- Fonts
- Hardware Support
- KDE (K Desktop Environment)
- Multimedia
- base-x
- dial-up
- guest-desktop-agents
- input-methods
- networkmanager-submodules
- print-client
- standard
- Optional Groups:
- Firefox Web Browser
- KDE Applications
- KDE Educational applications
- KDE Multimedia support
Some guides say to install "base-x." As you can see from above, it is installed by default.
If you would like to see what is included in the "Optional Group" follow the example below. The output will be the same as above but with another section added for the specific otpional group. An abridged version is below.
- [localadmin@rocky8 ~]$ sudo dnf -y group install "KDE Plasma Workspaces" --with-optional "KDE Applications"
- Group: KDE Applications
- Description: A set of commonly used KDE applications
- Mandatory Packages:
- ark
- digikam
- kde-connect
- kmahjongg
- kmines
- kolourpaint
- konversation
- kpat
- krdc
- krfb
- krusader
- ktorrent
For KDE, I usually do the default. To include the "Optional Groups," you have to speficy the package.
Install KDE (using mandatory only)
Xfce
To learn more about the various "group install" and "group info" commands, read the KDE section above. For postarity, a sample output is listed below.
- [localadmin@rocky8 ~]$ sudo dnf -y group info Xfce
- Group: Xfce
- Description: A lightweight desktop environment that works well on low end machines.
- Mandatory Packages:
- Thunar
- xfce4-panel
- xfce4-session
- xfce4-settings
- xfconf
- xfdesktop
- xfwm4
- Default Packages:
- NetworkManager-gnome
- gdm
- mousepad
- openssh-askpass
- thunar-archive-plugin
- thunar-volman
- tumbler
- xfce-polkit
- xfce4-appfinder
- xfce4-power-manager
- xfce4-pulseaudio-plugin
- xfce4-screensaver
- xfce4-terminal
- Conditional Packages:
- pinentry-gtk
Install Xfce WITH Gnome
As you can see from above, gdm is included in "group install" of Xfce. Remenber that gdm is the default login interface for Gnome. As a result, a light weight version of Gnome is installed. GROSS!!! To avoid this, we use a custom list basied on the "group info" output.
Install Xfce WITHOUT Gnome
"network-manager-applet" is new in Rocky 9
Display Manager Install
LightDM
Validate if the system is booting to a terminal window or a graphical user interface.
To change boot target to the text mode (reboot required):
To change boot target to the GUI mode (reboot required):
In the cases above, the DM runs as a service. So make sure you only have one enabled at a time.
Install Light DM and set it to start at system boot time.
Show the config file without comments.
Update the startx command to use: KDE.
Update the startx command to use: Xfcce.
Copy the default hammondent logo to the following path and make sure it is a png.
Make some backups before change the Light DM config.
Update the Light DM background image.
Start the KDE Window Manager.
Start the Xfce Window Manager.
After the changes in this section have been applied, a reboot is a good idea.
KDE Modding
Performance
KDE Optimizations - Disables Annimations. This will disable the translucent abilities.
Menu Changes
KDE Optimizations - Startup and Shutdown
Shortcuts
Bring up a desktop search bar
Map the meta (Windows) key in KDE. This seemed to be required if you switch between KDE and Xfce.
- Right click on the Start menu icon.
- Click on Configure Application Launcher.
- Go to Keyboard Shortcut tab.
- Click on the None icon.
- Type: ALT+F1
- Click Apply in the window.
- Test the Start menu icon.
Konsole
Create a new profile and use the following settings:
Open Dyslexic Mono or Px437_IBM_ISO9
Restore the menu bar if removed.
Panel Setup
Lock the Panels and Widgets
KDE used to have a way to lock panels but for whatever reason, some genious decided to remove it. The following command will lock the widgets so the shortcuts can't accidently be moved.
Panel 01
On the Panel diaglog box:
Add the following Widgets (in order):
Dolphin
Bitwarden
Brave
Firefox
Thunderbird
Sublime
Remmina
Secure CRT
ASA Manager
Libre Writer
Libre Calc
Slack
Signal
Spotify
Zoom
System Settings
Panel 02
On the Panel diaglog box:
Add the following Widgets (in order):
Panel 03
On the Panel diaglog box:
Add the following Widgets (in order):
Xfce Modding
Shortcut Commands
For a great list of shortcut commands, check out: https://defkey.com/xfce-shortcuts.
- Click the Add button.
- You will be prompted to add the command.
- Click Ok
- You will then be prompted to select the key combonation you would like to use.
- Use the settings in the table below.
Terminal Settings
Px437 IBM DOS ISO9
14pt
Panel Setup
Panel 01
I started out with "Window Menu" and figured to give it a shot. After using it for a year plus, I have come to really like it. I have always liked lists of text. Figure it is easier to navigate. There are still small icons, so that helps too.
America/Detroit
%I:%M %p%n%B%n%Y-%m-%d # HR:MIN AM/PM fullMonth YY-MM-DD
%I:%M %p%n%A%n%B%n%Y-%m-%d # HR:MIN AM/PM day fullMonth YYYY-MM-DD
Lock
Restart
Shutdown
Panel 02
Thunar
Bitwarden
Brave
Firefox
Thunderbird
Sublime
Remmina
Cisco ASDM*
Libre Writer
Libre Calc
Slack
Signal
Spotify
Zoom
Settings Manager
* To create a Cisco ASDM Shortcut in the Panel Setup 02, add a new Launcher item with the following settings:
Look n Feel
For some fantastic themse, check out: https://www.xfce-look.org. One of my favorites is the CDE theme. RIP Sun OS.
The following commands are more genearl referance rather than explicit examples.
Themes
Desktop Themes
- cd ~/Downloads
- tar -xzvf cdetheme*.tar.gz
- sudo mv ~/Downloads/cdetheme*/cdetheme-solaris/ /usr/share/themes/
- sudo chmod 755 -R /usr/share/themes/cdetheme*
- sudo chown root:root -R /usr/share/themes/cdetheme*
- rm -rf ~/Downloads/cdetheme*
Icon Themes
- cd ~/Downloads
- cp /home/thammond/mnt/software/sw-linux/themes/icons/* /home/thammond/Downloads
- sudo mv ~/Downloads/* /usr/share/icons/
- sudo chmod 755 -R /usr/share/icons/
- sudo chown root:root -R /usr/share/icons/
Tip/Trick
If you go on a downloading spree, beacuse I would never do that... here are some cool commands to extract a ton of different packages.
Don't forget to cleanup after yourself.
Thunar Mods
Thunar color updates based on CDE theme.
Add Meld Compare Menu
This can be done manually through menus by opening Thunar. Go to Edit > Configure custom actions. Add a new custom action called "Compare with Meld" and use the command "meld %F" and in the "Appearance Conditions" tab, select: directories, text files, and other files.
- For a specific user: ~/.config/Thunar/uca.xml
- For system wide changes: /etc/xdg/Thunar/uca.xml
- sudo sed -i 's/<\/actions>/<!-- <\/actions> -->/g' ~/.config/Thunar/uca.xml
It is probably best to close Thunar after making the previous changes. Then re-open the Thunar to verify the changes were applied.
Fonts
Note: This section is optional.
On some machines, the default console text is really small. To change console terminal font, check out this article:
https://martin.rpdev.net/2017/01/21/setting-console-font-size-on-hidpi-screens-in-fedora.html
I have become obsessed with fonts lately because it drives me up a wall on what is the differeance between: 0Ol1 etc. In my travels, I sumbled upon: The Old School PC Font Resource. My favoriet front is the: Px437_IBM_ISO9.
I was clinically diagnosed with dyslexia while I was early grade school. God bless my parents! I wouldn't be anything that I am today without their love and kindness. They found a news article about a really cool group of people that were creating a font specifically for people with dyslexia. To read more, checkout: OpenDyslexic: A typeface for Dyslexia. For our needs, we will want: Open Dyslexic Mono.
IBM_ISO9
- Download the "FULL" zip file from: https://int10h.org/oldschool-pc-fonts.
- Extract them to ~/Downloads.
- Find all fonds that contain "ISO9."
- cd ~/Downloads
- unzip oldschool_pc_font_pack_*.zip
- find ~/Downloads -name "*ISO9*"
- Copy the files you want to: /usr/share/fonts
- Update the font cache.
Open Dyslexic
- Extract them to ~/Downloads
- cd ~/Downloads
- unzip "OpenDyslexic2 Alt*.zip" -d openDyslexic2_alt_a
- unzip "OpenDyslexic2 (Windows*.zip" -d openDyslexic2
- unzip "OpenDyslexic Mono*.zip" -d openDyslexic_mono
- Copy the files you want to: /usr/share/fonts
- Update the font cache.