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.