Desktop Environment

A Linux distribution usually has two types of interfaces. One of them is virtual console (CLI) and the other is GUI. Virtual console is the default interface from Linux kernel and does not support Unicode. For example, in Debian/Ubuntu, type <ctrl>+<alt>+F@{1-6@} can change between virtual console and GUI. Specifically, <ctrl>+<alt>+F2 can change to the GUI, and <ctrl>+<alt>+F@{3,4,5,6@} are different virtual consoles. Desktop environment is a collection of GUI programs that replaces CLI and is one of the most complicated subsystem in Linux. It breaks up the limitation of shell and provides a more flexiable interface for users. By default, the startup program, i.e., systemd, will initialize the GUI desktop. The desktop also can be opened manually. For example, sudo startx is the command to start an x11 service. x11 and Wayland are two communication protocol that relates a display server and the client. Most of the desktop and libraries are based on them.

Below are part of the most popular desktop environments

  KDE GNOME xfce LXQT
Toolkit QT GTK GTK QT
Display manager SDDM gdm LightDM SDDM
Session manager ksmserver gnome-session xfce4-session lxqt-session
Windows manager KWin gnome-shell xfwm4 Openbox
Desktop manager - - xfdesktop -
File manager Dolphin Nautilus Thunar PcManFm-qt
Launcher Kickoff - xfce-panel lxqt-runner
Editor Kate gnome-text-editor Mousepad -
Terminal Konsole gnome-terminal xfce4-terminal QTerminal
Network Network Manager Network Manager - -
Capturer Spectacle GNOME Screenshot xfce4-screenshooter Screengrab
Document viewer Okular Evince - -
Image viewer Gwenview Loupe Ristretto Lximage-qt
Input method - - - -
Advanced setting - gnome-tweaks - -
Development KDevelop GNOME Builder - -

GNOME

Advanced Setting

gnome-tweaks gives advanced settings for gnome. It support swap of Caplock and Ctrl. Download it in Debian with

sudo apt install gnome-tweaks

This swap is only useful in gnome-based GUI. Windows has a similar tool that named as PowerToys.

xfce4

xfce4 is a lightweight desktop environment. It uses xfce4-terminal and firefox as the default applications for terminal and web browser, respectively.

Window Manager

Openbox

Install Openbox with apt

sudo apt install openbox

By default, openbox has a refresh issue in Ubuntu. The applications will not automatic refresh after opening them. To fix this, change the configuration file

sudo vim /usr/lib/x86_64-linux-gnu/openbox-autostart

Uncommand the line test -z $BG || $BG -solid "#303030"

tmux

Tmux is a famous terminal multiplexer. It works like a window manager in terminal. This is only part of the common keys and commands for tmux. To read the full list, use man tmux or type <C-b> + ?. The keybindings are in the “DEFAULT KEY BINDINGS” section.

<C-b> is the default prefix key of tmux. The follow shortcuts omit the prefix key.

Normal mode

@example # Session d # Detach the window from the session s # Select a new session (/) # Move to the previous/next session

tmux ls/list                            # List sessions
tmux attach/detach                      # Attach/Detach the window to the session
tmux kill-session -t <session-name>     # Close (Kill) the session

# Window
c       # Create new window
l       # Toggle last active window
n/p     # Next/Previous window
w       # List windows

tmux new -s <session-name>              # Create a new window for the session

# Pane
o             # Go to next pane
q <num>       # Switch to the pane
x             # Close the pane
z             # Toggle pane zoom
@{ or @}      # Move the pane to left/right
% or "        # Split pane with vertical/horizontal
<Up>/<Down>/<Left>/<right>          # Go to the up/down/left/right pane

@end example

Copy mode

In copy mode, user can view the contents in tmux pane. The user also can use vim-like commands to view and copy the content.

[       # Enter copy mode.

Command line mode

The follow key does not need prefix key.

:       # Enter command-line mode

Input Method

This chapter is related to the chinese input method. In openSUSE, the fcitx5 framework can be installed from the repository with command

sudo zypper in fcitx5

This command will install a GUI configuration tool fcitx5-configtool. The chinese input method can be chosen from it.