Bab 7. GUI System

Daftar Isi

7.1. GUI desktop environment
7.2. GUI communication protocol
7.3. Infrastruktur GUI
7.4. Aplikasi GUI
7.5. Fonta
7.5.1. Basic fonts
7.5.2. Font rastarization
7.6. Sandbox
7.7. Remote desktop
7.8. X server connection
7.8.1. X server local connection
7.8.2. X server remote connection
7.8.3. X server chroot connection
7.9. Papanklip

There are several choices for the full featured GUI desktop environment on the Debian system.


[Tip] Tip

Dependency packages selected by a task metapackage may be out of sync with the latest package transition state under the Debian unstable/testing environment. For task-gnome-desktop, you may need to adjust package selections as follows:

  • Mulailah aptitude(8) sebagai sudo aptitude -u.

  • Move cursor to "Tasks" and press "Enter".

  • Move cursor to "End-user" press "Enter".

  • Move cursor to "GNOME" press "Enter".

  • Move cursor to task-gnome-desktop and press "Enter".

  • Move cursor to "Depends" and press "m" (manually selected).

  • Move cursor to "Recommends" and press "m" (manually selected).

  • Move cursor to "task-gnome-desktop and press "-". (drop)

  • Adjust selected packages while dropping problematic ones causing package conflicts.

  • Press "g" to start install.

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:

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 Bagian 7.7, “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.

[Catatan] Catatan

For both the xwayland on Wayland or the native X Window System, the old X server configuration file "/etc/X11/xorg.conf" shouldn't exist on the system. The graphics and input devices are now configured by the kernel with DRM, KMS, and udev. The native X server has been rewritten to use them. See "modedb default video mode support" in the Linux kernel documentation.

Berikut adalah paket infrastruktur GUI yang terkenal untuk GNOME di lingkungan Wayland.


Here, "[auto]" means that these packages are automatically installed when task-gnome-desktop is installed.

[Tip] Tip

gnome-tweaks is the indispensable configuration utility. For example:

  • You can force "Over-Amplification" of sound volume from "General".

  • You can force "Caps" to become "Esc" from "Keyboard & Mouse" -> "Keyboard" -> "Additional Layout Option".

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.

Tabel 7.3. Daftar aplikasi GUI yang terkenal

paket popcon ukuran paket jenis deskripsi
evolution V:32, I:237 484 GNOME Personal information Management (groupware and email)
thunderbird V:59, I:133 201927 GTK Klien surel (Mozilla Thunderbird)
kontact V:1, I:14 2203 KDE Personal information Management (groupware and email)
libreoffice-writer V:161, I:440 40255 LO pengolah kata
abiword V:2, I:11 5133 GNOME pengolah kata
calligrawords V:0, I:7 5908 KDE pengolah kata
scribus V:2, I:22 31781 KDE desktop publishing editor to edit PDF files
glabels V:0, I:4 1327 GNOME editor label
libreoffice-calc V:158, I:436 32875 LO lembar kerja
gnumeric V:5, I:20 9959 GNOME lembar kerja
calligrasheets V:0, I:5 11289 KDE lembar kerja
libreoffice-impress V:133, I:433 10097 LO presentasi
calligrastage V:0, I:5 5193 KDE presentasi
libreoffice-base V:94, I:245 6975 LO manajemen basis data
kexi V:0, I:2 7118 KDE manajemen basis data
libreoffice-draw V:133, I:433 14469 LO vector graphics editor (draw)
inkscape V:38, I:178 89027 GNOME vector graphics editor (draw)
karbon V:0, I:6 3588 KDE vector graphics editor (draw)
dia V:4, I:29 3620 GTK editor diagram dan diagram alur
gimp V:63, I:312 19729 GTK bitmap graphics editor (paint)
shotwell V:18, I:237 6454 GTK pengorganisasi foto digital
digikam V:2, I:12 2647 KDE pengorganisasi foto digital
darktable V:6, I:16 24145 GTK lighttable and darkroom for photographers
planner V:0, I:4 1146 GNOME manajemen proyek
calligraplan V:0, I:1 18517 KDE manajemen proyek
gnucash V:3, I:10 32435 GNOME akuntansi pribadi
homebank V:0, I:2 1114 GTK akuntansi pribadi
lilypond V:1, I:8 7363 - music typesetter
kmymoney V:0, I:2 12850 KDE akuntansi pribadi
librecad V:2, I:17 7893 app-qt computer-aided design (CAD) system (2D)
freecad I:18 53 app-qt computer-aided design (CAD) system (3D)
kicad V:2, I:15 98819 GTK electronic schematic and PCB design software
xsane V:16, I:165 2346 GTK frontend pemindai
libreoffice-math V:121, I:437 2335 LO mathematical equation/formula editor
calibre V:8, I:34 55463 KDE e-book converter and library management
fbreader V:1, I:13 2698 GTK pembaca e-book
evince V:111, I:327 977 GNOME document(pdf) viewer
okular V:42, I:117 15376 KDE document(pdf) viewer
x11-apps V:29, I:469 2437 pure X-app xeyes(1), dsb.
x11-utils V:180, I:589 712 pure X-app xev(1), xwininfo(1)dsb.

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:

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 fonts, Greek, and Cyril character glyphs. 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.

Tabel 7.4. List of notable TrueType and OpenType fonts

paket popcon ukuran sans serif mono catatan pada fonta
fonts-cantarell V:84, I:295 836 59 - - Cantarell (GNOME 3, tampilan)
fonts-noto I:137 35 61 63 40 Noto fonts (Google, multi-lingual with CJK)
fonts-dejavu I:458 39 58 68 40 DejaVu (GNOME 2, MCM:Verdana, extended Bitstream Vera)
fonts-liberation2 V:90, I:364 4290 56 60 40 Liberation fonts for LibreOffice (Red Hat, MCMATC)
fonts-croscore V:15, I:47 5278 56 60 40 Chrome OS: Arimo, Tinos and Cousine (Google, MCMATC)
fonts-crosextra-carlito V:22, I:235 2732 57 - - Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea I:234 258 - 55 - Chrome OS: Caladea (Google, MCM:Cambria ) (Latin only )
fonts-freefont-ttf V:68, I:253 6656 57 59 40 GNU FreeFont (extended URW Nimbus)
fonts-quicksand I:385 392 56 - - Debian task-desktop, Quicksand (display, Latin only)
fonts-hack V:15, I:94 2508 - - 40 P A typeface designed for source code Hack (Facebook)
fonts-sil-gentiumplus I:38 5756 - 54 - Gentium SIL
fonts-sil-charis V:3, I:20 8900 - 59 - Charis SIL
fonts-urw-base35 V:94, I:243 11095 56 60 40 URW Nimbus (Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2, I:5 4103 58 - 33 P Fonta Ubuntu (tampilan)
fonts-terminus V:0, I:1 450 - - 33 Cool retro terminal fonts
ttf-mscorefonts-installer V:1, I:60 92 56? 60 40 Downloader of Microsoft non-free fonts (see below)

Sini:

  • "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.

[Tip] Tip

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.

Many mostly GUI applications on Linux are available in binary formats from non-Debian sources.

[Awas] Awas

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 Bagian 4.7.4, “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)


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.


There are several ways to connect from an application on a remote host to the X server including xwayland on the local host.


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
[Catatan] Catatan

For xwayland, XAUTHORITY holds value like "/run/user/1000/.mutter-Xwaylandauth.YVSU30".

For clipping text to clipboard, see Bagian 1.4.4, “Operasi tetikus”.

For clipping graphics to clipboard, see Bagian 11.6, “Graphic data tools”.

Some CLI commands can manipulate character clipboard (PRIMARY and CLIPBOARD), too.