Índice
There are several choices for the full featured GUI desktop environment on the Debian system.
Tabela 7.1. List of desktop environment
task package | popcon | tamanho | descrição |
---|---|---|---|
task-gnome-desktop
|
I:198 | 9 | GNOME desktop environment |
task-xfce-desktop
|
I:96 | 9 | Xfce desktop environment |
task-kde-desktop
|
I:81 | 6 | KDE Plasma desktop environment |
task-mate-desktop
|
I:43 | 9 | MATE desktop environment |
task-cinnamon-desktop
|
I:41 | 9 | Cinnamon desktop environment |
task-lxde-desktop
|
I:29 | 9 | LXDE desktop environment |
task-lxqt-desktop
|
I:18 | 9 | LXQt desktop environment |
task-gnome-flashback-desktop
|
I:13 | 6 | GNOME Flashback desktop environment |
Dica | |
---|---|
Dependency packages selected by a task metapackage may be out of sync with
the latest package transition state under the Debian
|
This chapter will focus mostly on the default desktop environment of Debian:
task-gnome-desktop
offering GNOME on wayland.
GUI communication protocol used on the GNOME desktop can be:
Wayland (display server protocol) (native)
X Window System core
protocol (via xwayland
)
Please check freedesktop.org site for how Wayland architecture is different from X Window architecture.
From user's perspective, differences can be colloquially summarized as:
Wayland is a same-host GUI communication protocol: new, simpler, faster, no setuid root binary
X Window is a network-capable GUI communication protocol: traditional, complex, slower, setuid root binary
For applications using Wayland protocol, the access to their display contents from a remote host is supported by the VNC or RDP. See Secção 7.8, “Remote desktop”
Modern X servers have the MIT Shared Memory Extension and communicate with their local X clients using the local shared memory. This bypasses the network transparent Xlib interprocess communication channel and gains performance. This situation was the background of creating Wayland as a local-only GUI communication protocol.
Using the xeyes
program started from the GNOME terminal,
you can check GUI communication protocol used by each GUI application.
$ xeyes
If the mouse cursor is on an application such as "GNOME terminal" which uses Wayland display server protocol, eyes don't move with the mouse cursor.
If the mouse cursor is on an application such as "xterm" which uses X Window System core protocol, eyes move with the mouse cursor exposing not-so-isolated nature of X Window architecture.
As of April 2021, many popular GUI applications such as GNOME and LibreOffice (LO) applications have been
migrated to the Wayland display server protocol. I see
xterm
, gitk
,
chromium
, firefox
,
gimp
, dia
, and KDE applications still
use X Window System core protocol.
Nota | |
---|---|
For both the xwayland on Wayland or the native X Window System, the old X
server configuration file " |
Here are notable GUI infrastructure packages for the GNOME on Wayland environment.
Tabela 7.2. List of notable GUI infrastructure packages
pacote | popcon | tamanho do pacote | descrição |
---|---|---|---|
mutter
|
V:1, I:60 | 187 | GNOME's mutter window manager [auto] |
xwayland
|
V:240, I:319 | 2388 | An X server running on top of wayland [auto] |
gnome-remote-desktop
|
V:35, I:221 | 1068 | Remote desktop daemon for GNOME using PipeWire [auto] |
gnome-tweaks
|
V:21, I:229 | 1170 | Advanced configuration settings for GNOME |
gnome-shell-extension-prefs
|
V:13, I:213 | 60 | Tool to enable / disable GNOME Shell extensions |
Here, "[auto]" means that these packages
are automatically installed when task-gnome-desktop
is
installed.
Dica | |
---|---|
|
Dica | |
---|---|
Detail features of GNOME desktop environment can be configured with
utilities started by typing " |
Many useful GUI applications are available on Debian now. Installing
software packages such as scribus
(KDE) on GNOME desktop
environment are quite acceptable since corresponding functionality is not
available under GNOME desktop environment. But installing too many packages
with duplicated functionalities may clutter your system.
Here is a list of GUI applications which caught my eyes.
Tabela 7.3. List of notable GUI applications
pacote | popcon | tamanho do pacote | tipo | descrição |
---|---|---|---|---|
evolution
|
V:30, I:239 | 486 | GNOME | Gestor de Informações Pessoais (groupware e email) |
thunderbird
|
V:48, I:119 | 224760 | GTK | Email client (Mozilla Thunderbird) |
kontact
|
V:1, I:12 | 2208 | KDE | Gestor de Informações Pessoais (groupware e email) |
libreoffice-writer
|
V:117, I:435 | 31474 | LO | processador de texto |
abiword
|
V:1, I:8 | 3542 | GNOME | processador de texto |
calligrawords
|
V:0, I:7 | 6097 | KDE | processador de texto |
scribus
|
V:1, I:16 | 31345 | KDE | desktop publishing editor to edit PDF files |
glabels
|
V:0, I:3 | 1338 | GNOME | editor de etiquetas |
libreoffice-calc
|
V:111, I:432 | 26009 | LO | folha de cálculo |
gnumeric
|
V:4, I:14 | 9910 | GNOME | folha de cálculo |
calligrasheets
|
V:0, I:5 | 11396 | KDE | folha de cálculo |
libreoffice-impress
|
V:69, I:429 | 2646 | LO | apresentação |
calligrastage
|
V:0, I:5 | 5339 | KDE | apresentação |
libreoffice-base
|
V:26, I:121 | 5003 | LO | gestão de base de dados |
kexi
|
V:0, I:1 | 7118 | KDE | gestão de base de dados |
libreoffice-draw
|
V:72, I:430 | 10312 | LO | editor de gráficos vectoriais (desenho) |
inkscape
|
V:15, I:112 | 99800 | GNOME | editor de gráficos vectoriais (desenho) |
karbon
|
V:0, I:6 | 3610 | KDE | editor de gráficos vectoriais (desenho) |
dia
|
V:2, I:22 | 3741 | GTK | editor de fluxogramas e diagramas |
gimp
|
V:50, I:252 | 19304 | GTK | editor de gráficos bitmap (pintura) |
shotwell
|
V:17, I:255 | 6263 | GTK | organizador de fotos digitais |
digikam
|
V:1, I:9 | 293 | KDE | organizador de fotos digitais |
darktable
|
V:4, I:13 | 30554 | GTK | lighttable and darkroom for photographers |
planner
|
V:0, I:4 | 1394 | GNOME | gestão de projectos |
calligraplan
|
V:0, I:2 | 19013 | KDE | gestão de projectos |
gnucash
|
V:2, I:8 | 28928 | GNOME | contas pessoais |
homebank
|
V:0, I:2 | 1218 | GTK | contas pessoais |
lilypond
|
V:0, I:7 | 16092 | - | music typesetter |
kmymoney
|
V:0, I:2 | 13937 | KDE | contas pessoais |
librecad
|
V:1, I:15 | 8963 | Qt-app | computer-aided design (CAD) system (2D) |
freecad
|
I:18 | 36 | Qt-app | computer-aided design (CAD) system (3D) |
kicad
|
V:3, I:14 | 236461 | GTK | electronic schematic and PCB design software |
xsane
|
V:12, I:144 | 2339 | GTK | frontend para digitalizador (scanner) |
libreoffice-math
|
V:51, I:432 | 1898 | LO | editor de fórmulas/equações matemáticas |
calibre
|
V:6, I:28 | 63385 | KDE | conversor de e-books e gestor de biblioteca |
fbreader
|
V:1, I:9 | 3783 | GTK | leitor de e-book |
evince
|
V:92, I:314 | 941 | GNOME | visualizador de documentos (pdf) |
okular
|
V:40, I:123 | 17728 | KDE | visualizador de documentos (pdf) |
x11-apps
|
V:31, I:463 | 2460 | pure X-app | xeyes (1), etc. |
x11-utils
|
V:192, I:566 | 651 | pure X-app | xev (1), xwininfo (1), etc. |
Default names for user directories such as "~/Desktop
",
"~/Documents
", ..., used by the Desktop environment
depend on the locale used for the system installation. You can reset them
to the English ones by:
$ LANGUAGE=C xdg-user-dirs-update --force
Then you manually move all the data to the newer directories. See
xdg-user-dirs-update
(1).
You can also set them to any names by editing
"~/.config/user-dirs.dirs
". See
user-dirs.dirs
(5).
Many useful scalable fonts are available for users on Debian. User's concern is how to avoid redundancy and how to configure parts of installed fonts to be disabled. Otherwise, useless font choices may clutter your GUI application menus.
Debian system uses FreeType 2.0 library to rasterise many scalable font formats for screen and print:
Type 1 (PostScript) fonts which use cubic Bézier curves (almost obsolete format)
TrueType fonts which use quadratic Bézier curves (good choice format)
OpenType fonts which use cubic Bézier curves (best choice format)
The following table is compiled in the hope to help users to chose appropriate scalable fonts with clear understanding of the metric compatibility and the glyph coverage. Most fonts cover all Latin, Greek, and Cyril characters. The final choice of activated fonts can also be affected by your aesthetics. These fonts can be used for the screen display or for the paper printing.
Tabela 7.4. List of notable TrueType and OpenType fonts
Here:
"MCM" stands for "metric compatible with fonts provided by Microsoft"
"MCMATC" stands for "metric compatible with fonts provided by Microsoft: Arial, Times New Roman, Courier New"
"MCAHTC" stands for "metric compatible with fonts provided by Adobe: Helvetica, Times, Courier"
Numbers in font type columns stands for the rough relative "M" width for the same point size font.
"P" in mono font type columns stands for its usability for programming having clearly distinguishable "0"/"O" and "1"/"I"/"l".
The ttf-mscorefonts-installer
package downloads
Microsoft's "Core fonts for the
Web" and installs Arial, Times New Roman, Courier New, Verdana, ... . These installed font data are
non-free data.
Many free Latin fonts have their lineage traced to URW Nimbus family or Bitstream Vera.
Dica | |
---|---|
If your locale needs fonts not covered well by the above fonts, please use aptitude to check under task packages listed under "Tasks" -> "Localization". The font packages listed as "Depends:" or "Recommends:" in the localization task packages are the primary candidates. |
Debian uses FreeType to rasterize fonts. Its font choice infrastructure is provided by the Fontconfig font configuration library.
Tabela 7.5. List of notable font environment and related packages
pacote | popcon | tamanho | descrição |
---|---|---|---|
libfreetype6
|
V:560, I:997 | 938 | FreeType font rasterization library |
libfontconfig1
|
V:554, I:849 | 587 | Fontconfig font configuration library |
fontconfig
|
V:437, I:721 | 680 | fc-* : CLI commands for Fontconfig |
font-manager
|
V:2, I:8 | 1022 | Font Manager: GUI command for Fontconfig |
nautilus-font-manager
|
V:0, I:0 | 37 | Nautilus extension for Font Manager |
Dica | |
---|---|
Some font packages such as |
You can list font configuration state from the command line, too.
"fc-match(1)
" for fontconfig font default
"fc-list(1)
" for available fontconfig fonts
You can configure font configuration state from the text editor but this is
non-trivial. See fonts.conf
(5).
Many mostly GUI applications on Linux are available in binary formats from non-Debian sources.
Atenção | |
---|---|
Binaries from these sites may include proprietary non-free software packages. |
There is some raison d'être for these binary format distributions for Free Software aficionados using Debian since these can accommodate clean set of libraries used for each application by the respective upstream developer independent of the ones provided by Debian.
The inherent risk of running external binaries can be reduced by using the sandbox environment which leverages modern Linux security features (see Secção 4.7.5, “Linux security features”).
For binaries from AppImage and some upstream sites, run them in firejail with manual configuration.
For binaries from FLATHUB, run them in Flatpak . (No manual configuration required.)
For binaries from snapcraft, run them in Snap . (No manual configuration required. Compatible with daemon programs.)
The xdg-desktop-portal
package provides a standardized
API to common desktop features. See
xdg-desktop-portal (flatpak) and xdg-desktop-portal (snap) .
Tabela 7.6. List of notable sandbox environment and related packages
pacote | popcon | tamanho | descrição |
---|---|---|---|
flatpak
|
V:65, I:70 | 7499 | Flatpak application deployment framework for desktop apps |
gnome-software-plugin-flatpak
|
V:20, I:29 | 254 | Flatpak support for GNOME Software |
snapd
|
V:67, I:70 | 60022 | Daemon and tooling that enable snap packages |
gnome-software-plugin-snap
|
V:1, I:2 | 121 | Snap support for GNOME Software |
xdg-desktop-portal
|
V:303, I:394 | 1936 | desktop integration portal for Flatpak and Snap |
xdg-desktop-portal-gtk
|
V:274, I:392 | 715 | xdg-desktop-portal backend for gtk (GNOME) |
xdg-desktop-portal-kde
|
V:53, I:72 | 1438 | xdg-desktop-portal backend for Qt (KDE) |
xdg-desktop-portal-wlr
|
V:0, I:4 | 135 | xdg-desktop-portal backend for wlroots (Wayland) |
firejail
|
V:1, I:4 | 1771 | a SUID security sandbox program firejail for use with AppImage |
This sandbox environment technology is very much like apps on smart phone OS where apps are executed under controlled resource accesses.
Some large GUI applications such as web browsers on Debian also use sandbox environment technology internally to make them more secure.
Tabela 7.7. List of notable remote access server
Access to the desktop and applications which use Wayland protocol and run on the remote host is supported by the GNOME Remote Desktop on the remote host through VNC or RDP to the local client.
Access to the desktop capabilities of all QEMU virtual machines is supported by the SPICE (the Simple Protocol for Independent Computing Environments) protocol.
pacote | popcon | tamanho | protocols | descrição |
---|---|---|---|---|
gnome-remote-desktop
|
V:35, I:221 | 1068 | RDP | GNOME Remote Desktop server |
xrdp
|
V:22, I:24 | 3202 | RDP | xrdp, Remote Desktop Protocol (RDP) server |
x11vnc
|
V:6, I:23 | 2107 | RFB (VNC) | x11vnc, Remote Framebuffer Protocol (VNC) server |
tigervnc-standalone-server
|
V:4, I:15 | 2768 | RFB (VNC) | TigerVNC, Remote Framebuffer Protocol (VNC) server |
gnome-connections
|
V:0, I:1 | 1356 | RDP, RFB (VNC) | GNOME remote desktop client |
vinagre
|
V:2, I:68 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME remote desktop client |
remmina
|
V:15, I:72 | 953 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK remote desktop client |
krdc
|
V:1, I:17 | 3873 | RDP, RFB (VNC) | KRDC: KDE remote desktop client |
guacd
|
V:0, I:0 | 83 | RDP, RFB (VNC), SSH / HTML5 | Apache Guacamole: clientless remote desktop gateway (HTML5) |
virt-viewer
|
V:5, I:52 | 1284 | RFB (VNC), SPICE | Virtual Machine Manager's GUI display client of guest OS |
There are several ways to connect from an application on a remote host to
the X server including xwayland
on the local host.
Tabela 7.8. Lista de métodos de ligação ao servidor X
pacote | popcon | tamanho | comando | descrição |
---|---|---|---|---|
openssh-server
|
V:730, I:814 | 1804 | sshd with option X11-forwarding |
SSH server (secure) |
openssh-client
|
V:866, I:996 | 4959 | ssh -X |
SSH client (secure) |
xauth
|
V:165, I:961 | 81 | xauth |
X authority file utility |
x11-xserver-utils
|
V:302, I:528 | 568 | xhost |
server access control for X |
Access to the local X server by the local applications which use X core
protocol can be locally connected through a local UNIX domain socket. This
can be authorized by the authority file holding access cookie. The authority file location is
identified by the "$XAUTHORITY
" environment variable and
X display is identified by the "$DISPLAY
" environment
variable. Since these are normally set automatically, no special action is
needed, e.g. "gitk
" as the following.
username $ gitk
Nota | |
---|---|
For |
Access to the local X server display from the remote applications which use X core protocol is supported by using the X11 forwarding feature.
Open an gnome-terminal
on the local host.
Run ssh
(1) with -X
option to establish
a connection with the remote site as the following.
localname @ localhost $ ssh -q -X [email protected] Password:
Run an X application command, e.g. "gitk
", on the remote
site as the following.
loginname @ remotehost $ gitk
Este método pode mostrar o resultado de um cliente X remoto como se ele estivesse ligado localmente através de um socket de domínio UNIX local.
See Secção 6.3, “O servidor de acesso remoto e utilitários (SSH)” for SSH/SSHD.
Atenção | |
---|---|
A remote TCP/IP
connection to the X server is disabled by default on the Debian system for
security reasons. Don't enable them by simply setting " |
Access to the X server by the applications which use X core protocol and run
on the same host but in an environment such as chroot where the authority
file is not accessible, can be authorized securely with
xhost
by using the User-based access,
e.g. "gitk
" as the following.
username $ xhost + si:localuser:root ; sudo chroot /path/to # cd /src # gitk # exit username $ xhost -
For clipping text to clipboard, see Secção 1.4.4, “Mouse operations”.
For clipping graphics to clipboard, see Secção 11.6, “Ferramentas de dados gráficos”.
Some CLI commands can manipulate character clipboard (PRIMARY and CLIPBOARD), too.
Tabela 7.9. List of programs related to manipulating character clipboard
pacote | popcon | tamanho do pacote | alvo | descrição |
---|---|---|---|---|
xsel
|
V:9, I:42 | 55 | X | command line interface to X selections (clipboard) |
xclip
|
V:12, I:63 | 62 | X | command line interface to X selections (clipboard) |
wl-clipboard
|
V:3, I:14 | 162 | Wayland | wl-copy wl-paste : command line
interface to Wayland clipboard |
gpm
|
V:10, I:12 | 521 | Consola do Linux | a daemon that captures mouse events on Linux console |