Cap. 7. Sistemul de interfață grafică

Cuprins

7.1. Mediul de birou cu interfață grafică
7.2. Protocolul de comunicare al interfeței grafice
7.3. Infrastructura de interfață grafică
7.4. Aplicații cu interfață grafică
7.5. Directoarele utilizatorilor
7.6. Tipuri de litere
7.6.1. Fonturi de bază
7.6.2. Conversia și redarea fonturilor
7.7. Cutia cu nisip (sandbox)
7.8. Mediu de birou la distanță
7.9. Conexiune la serverul X
7.9.1. Conexiune locală la serverul X
7.9.2. Conexiune de la distanță la serverul X
7.9.3. Conexiune chroot la serverul X
7.10. Clipboard

Există mai multe opțiuni pentru mediul grafic de birou în sistemul Debian.


[Indicație] Indicație

Pachetele de dependențe selectate de un metapachet de sarcini pot fi nesincronizate cu cea mai recentă stare de tranziție a pachetului în mediul Debian unstable/testing. Pentru task-gnome-desktop, poate fi necesar să ajustați selecțiile de pachete după cum urmează:

  • Porniți aptitude(8) ca sudo aptitude -u.

  • Deplasați cursorul la „Sarcini” și apăsați tasta «Enter».

  • Deplasați cursorul la „Utilizator” și apăsați tasta «Enter».

  • Deplasați cursorul la „GNOME” și apăsați tasta «Enter».

  • Deplasați cursorul la task-gnome-desktop și apăsați tasta «Enter».

  • Deplasați cursorul la „Depinde” și apăsați tasta «m» (selectat manual).

  • Deplasați cursorul la „Recomandă” și apăsați tasta «m» (selectat manual).

  • Deplasați cursorul la task-gnome-desktop și apăsați tasta «-». (abandonare)

  • Ajustați pachetele selectate, eliminând cele problematice care provoacă conflicte între pachete.

  • Apăsați tasta «g» pentru a începe instalarea.

Acest capitol se va concentra în principal pe mediul grafic de birou implicit al Debian: task-gnome-desktop care oferă GNOME pe wayland.

Protocolul de comunicare al interfeței grafice utilizat în mediul grafic de birou GNOME poate fi:

Vă rugăm să consultați situl freedesktop.org pentru a afla în ce fel arhitectura Wayland diferă de arhitectura X Window.

Din perspectiva utilizatorului, diferențele pot fi rezumate în mod colocvial astfel:

  • Wayland este un protocol de comunicare cu interfața grafică pe aceeași gazdă: nou, mai simplu, mai rapid, fără binar setuid root

  • X Window este un protocol de comunicare cu interfața grafică cu capacitate de rețea: tradițional, complex, mai lent, binar setuid root

Pentru aplicațiile care utilizează protocolul Wayland, accesul la conținutul afișat pe ecranul acestora de la o gazdă la distanță este acceptat de VNC sau RDP. Consultați Secțiune 7.8, „Mediu de birou la distanță”

Serverele X moderne dispun de MIT Shared Memory Extension și comunică cu clienții X locali utilizând memoria partajată locală. Acest lucru ocolește canalul de comunicare interproces Xlib transparent pentru rețea și îmbunătățește performanța. Această situație a stat la baza creării Wayland ca protocol de comunicare cu interfața grafică de utilizator (GUI) numai local.

Folosind programul xeyes pornit din terminalul GNOME, puteți verifica protocolul de comunicare GUI utilizat de fiecare aplicație GUI.

 $ xeyes
  • Dacă cursorul mouse-ului se află pe o aplicație precum „GNOME terminal” care utilizează protocolul serverului de afișare Wayland, ochii nu se mișcă odată cu cursorul mouse-ului.

  • Dacă cursorul mouse-ului se află pe o aplicație precum „xterm”, care utilizează protocolul de bază al sistemului X Window, ochii se mișcă odată cu cursorul mouse-ului, dezvăluind natura nu tocmai izolată a arhitecturii X Window.

Începând cu aprilie 2021, multe aplicații GUI populare, precum GNOME și LibreOffice (LO), au fost migrate la protocolul serverului de afișare Wayland. Văd că xterm, gitk, chromium, firefox, gimp, dia și aplicațiile KDE încă utilizează protocolul central al sistemului X Window.

[Notă] Notă

Atât pentru xwayland pe Wayland, cât și pentru sistemul nativ X Window, vechiul fișier de configurare a serverului X „/etc/X11/xorg.conf” nu ar trebui să existe în sistem. Plăcile grafice și dispozitivele de intrare sunt acum configurate de către nucleu cu DRM, KMS și udev. Serverul X nativ a fost rescris pentru a le utiliza. Consultați „suportul modului video implicit modedb” în documentația nucleului Linux.

Iată câteva pachete importante de infrastructură de interfață grafică pentru mediul grafic de birou GNOME în Wayland.


Aici, „[auto]” înseamnă că aceste pachete sunt instalate automat atunci când este instalat pachetul task-gnome-desktop.

[Indicație] Indicație

gnome-tweaks este instrumentul de configurare indispensabil. De exemplu:

  • Puteți forța „supra-amplificarea” volumului sunetului din „General”.

  • Puteți forța „Caps” să devină „Esc” din «Tastatură și mouse» -> «Tastatură» -> «Opțiuni suplimentare de configurare».

[Indicație] Indicație

Caracteristicile detaliate ale mediului grafic de birou GNOME pot fi configurate cu ajutorul instrumentelor pornite prin tastarea „settings”, „tweaks” sau „extensions” după apăsarea tastei Super.

Multe aplicații utile cu interfață grafică sunt disponibile acum în Debian. Instalarea pachetelor software precum scribus (KDE) în mediul grafic de birou GNOME este acceptabilă, deoarece funcționalitatea corespunzătoare nu este disponibilă în mediul grafic de birou GNOME. Însă instalarea unui număr prea mare de pachete cu funcționalități duplicate poate aglomera sistemul.

Iată o listă cu aplicațiile cu interfață grafică care mi-au atras atenția.

Tabel 7.3. Lista aplicațiilor cu interfață grafică notabile

pachet popcon(popularitate) dimensiunea pachetului tipul descriere
evolution V:29, I:239 492 GNOME gestionarea informațiilor personale (software de lucru în grup și poșta electronică)
thunderbird V:44, I:110 274658 GTK client de poștă electronică (Mozilla Thunderbird)
kontact V:1, I:11 2298 KDE gestionarea informațiilor personale (software de lucru în grup și poșta electronică)
libreoffice-writer V:123, I:441 33266 LO procesor de text
abiword V:1.1, I:5.4 3596 GNOME procesor de text
calligrawords V:0.4, I:3.7 6937 KDE procesor de text
scribus V:1, I:14 32289 KDE editor de tehnoredactare computerizată pentru editarea fișierelor PDF
glabels V:0.4, I:2.8 1283 GNOME editor de etichete
libreoffice-calc V:118, I:437 28288 LO foaie de calcul
gnumeric V:4, I:12 9958 GNOME foaie de calcul
calligrasheets V:0.2, I:2.4 13593 KDE foaie de calcul
libreoffice-impress V:100, I:436 2440 LO prezentare
calligrastage V:0.2, I:2.4 6017 KDE prezentare
libreoffice-base V:25, I:77 4985 LO gestionare a bazei de date
kexi V:0.05, I:0.92 7565 KDE gestionare a bazei de date
libreoffice-draw V:101, I:436 10992 LO editor de grafică vectorială (desen)
inkscape V:13, I:85 110787 GNOME editor de grafică vectorială (desen)
karbon V:0.2, I:2.9 3962 KDE editor de grafică vectorială (desen)
dia V:2, I:18 3812 GTK editor de diagrame și organigrame
gimp V:33, I:229 32032 GTK editor grafic (pictură)
shotwell V:16, I:259 6334 GTK organizator de fotografii digitale
digikam V:1.9, I:9.2 302 KDE organizator de fotografii digitale
darktable V:4, I:12 35892 GTK masă de lumină și cameră obscură pentru fotografi
planner V:0.2, I:4.7 1400 GNOME gestionarea proiectelor
calligraplan V:0.2, I:3.2 23545 KDE gestionarea proiectelor
gnucash V:2.5, I:7.6 29455 GNOME contabilitate personală
homebank V:0.4, I:1.8 3194 GTK contabilitate personală
lilypond V:0.8, I:6.3 16924 - compozitor de partituri muzicale
kmymoney V:0.5, I:2.2 18877 KDE contabilitate personală
librecad V:1, I:15 9100 aplicație Qt sistem de proiectare asistată de calculator (CAD) (2D)
freecad V:1, I:21 107 aplicație Qt sistem de proiectare asistată de calculator (CAD) (3D)
kicad V:3, I:16 163907 GTK software pentru proiectarea schemelor electronice și a plăcilor cu circuite imprimate
xsane V:10, I:136 1512 GTK interfață scaner
libreoffice-math V:93, I:439 1909 LO editor de ecuații/formule matematice
calibre V:9, I:27 65618 KDE convertor de cărți electronice și gestionarea bibliotecii
fbreader V:0.9, I:6.8 3783 GTK cititor de cărți electronice
evince V:82, I:302 952 GNOME program de vizualizare a documentelor(pdf)
okular V:44, I:135 4415 KDE program de vizualizare a documentelor(pdf)
x11-apps V:33, I:463 2461 aplicație X pură xeyes(1), etc.
x11-utils V:227, I:568 651 aplicație X pură xev(1), xwininfo(1), etc.

Numele implicite pentru directoarele utilizatorilor, cum ar fi „~/Desktop”, „~/Documents”, ..., utilizate de mediul grafic de birou, depind de configurația regională utilizată pentru instalarea sistemului. Le puteți reinițializa la cele în limba engleză astfel:

 $ LANGUAGE=C xdg-user-dirs-update --force 

Apoi mutați manual toate datele în directoarele mai noi. Consultați xdg-user-dirs-update(1).

De asemenea, le puteți atribui orice nume dorit, editând „~/.config/user-dirs.dirs”. Consultați user-dirs.dirs(5).

Utilizatorii Debian au la dispoziție numeroase fonturi scalabile utile. Preocuparea utilizatorilor este cum să evite redundanța și cum să configureze dezactivarea anumitor fonturi instalate. În caz contrar, fonturile inutile pot aglomera meniurile aplicațiilor cu interfață grafică.

Sistemul Debian utilizează biblioteca FreeType 2.0 pentru a reproduce multe formate de fonturi scalabile pentru ecran și imprimare:

Tabelul următor a fost întocmit în speranța de a ajuta utilizatorii să aleagă fonturi scalabile adecvate, cu o înțelegere clară a compatibilității metrice și a acoperirii glifelor. Majoritatea fonturilor acoperă toate caracterele latine, grecești și chirilice. Alegerea finală a fonturilor activate poate fi influențată și de preferințele estetice. Aceste fonturi pot fi utilizate pentru afișarea pe ecran sau pentru imprimarea pe hârtie.

Tabel 7.4. Lista fonturilor notabile TrueType și OpenType

pachet popcon(popularitate) dimensiune sans serif mono informații despre font
fonts-cantarell V:183, I:305 223 59 - - Cantarell (GNOME 3, afișare)
fonts-noto I:157 31 61 63 40 Fonturi Noto (Google, multi-lingvistice cu CJK)
fonts-dejavu I:405 35 58 68 40 DejaVu (GNOME 2, MCM:Verdana, extins Bitstream Vera)
fonts-liberation2 V:64, I:214 15 56 60 40 Fonturi Liberation pentru LibreOffice (Red Hat, MCMATC)
fonts-croscore V:22, I:39 5274 56 60 40 Chrome OS: Arimo, Tinos și Cousine (Google, MCMATC)
fonts-crosextra-carlito V:21, I:99 2696 57 - - Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea V:12, I:93 347 - 55 - Chrome OS: Caladea (Google, MCM:Cambria ) (doar Latin)
fonts-freefont-ttf V:83, I:208 14460 57 59 40 GNU FreeFont (URW Nimbus extins)
fonts-quicksand V:211, I:466 392 56 - - Debian task-desktop, Quicksand (afișare, doar Latin)
fonts-hack V:34, I:140 2507 - - 40 P Un tip de font conceput pentru codul sursă Hack (Facebook)
fonts-sil-gentiumplus I:30 14345 - 54 - Gentium SIL
fonts-sil-charis V:1, I:29 6704 - 59 - Charis SIL
fonts-urw-base35 V:195, I:542 15560 56 60 40 URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2.3, I:5.1 4339 58 - 33 P Fonturi Ubuntu (afișare)
fonts-terminus V:0.3, I:4.1 452 - - 33 Fonturi retro faine pentru terminale
ttf-mscorefonts-installer V:1, I:42 85 56? 60 40 Descărcător de fonturi Microsoft care nu sunt libere (vedeți mai jos)

Aici:

  • „MCM” înseamnă „compatibil metric cu fonturile furnizate de Microsoft”

  • „MCMATC” înseamnă „compatibil metric cu fonturile furnizate de Microsoft: Arial, Times New Roman, Courier New

  • „MCAHTC” înseamnă „metric compatibil cu fonturile furnizate de Adobe: Helvetica, Times, Courier”

  • Numerele din coloanele tipului de font reprezintă lățimea relativă aproximativă „M” pentru fontul cu aceeași dimensiune a punctului.

  • Litera „P” din coloanele cu font mono indică utilitatea acestuia pentru programare, având caractere „0”/„O” și „1”/„I”/„l” clar distincte.

  • Pachetul ttf-mscorefonts-installer descarcă „Core fonts for the Web” și instalează Arial, Times New Roman, Courier New, Verdana, ... . Aceste date de fonturi instalate nu sunt date libere.

Multe fonturi latine libere își au originea în familia URW Nimbus sau Bitstream Vera.

[Indicație] Indicație

Dacă configurația dvs. regională necesită fonturi care nu sunt acoperite corespunzător de fonturile de mai sus, vă rugăm să utilizați aptitude pentru a verifica pachetele de sarcini listate la „Sarcini” -> „Localizare”. Pachetele de fonturi listate ca „Depinde de:” sau „Recomandă:” în pachetele de sarcini de regionalizare sunt principalele candidate.

Debian utilizează FreeType pentru conversia și redarea fonturilor. Infrastructura sa de selectare a fonturilor este furnizată de biblioteca de configurare a fonturilor Fontconfig.


[Indicație] Indicație

Unele pachete de fonturi, cum ar fi fonts-noto*, instalează prea multe fonturi. Este posibil să doriți să păstrați unele pachete de fonturi instalate, dar dezactivate în condiții normale de utilizare. Mai multe glyphs sunt așteptate pentru unele puncte de cod Unicode din cauza unificării Han, iar glyphs nedorite pot fi alese de biblioteca Fontconfig neconfigurată. Unul dintre cele mai enervante cazuri este „U+3001 IDEOGRAPHIC COMMA” și „U+3002 IDEOGRAPHIC FULL STOP” în țările CJK. Puteți evita cu ușurință această situație problematică configurând disponibilitatea fonturilor folosind interfața grafică Font Manager (font-manager).

De asemenea, puteți afișa starea configurației fonturilor din linia de comandă.

  • "fc-match(1)" pentru fontul implicit al fontconfig

  • "fc-list(1)" pentru fonturile fontconfig disponibile

Puteți configura starea configurației fonturilor din editorul de text, dar acest lucru nu este trivial. Consultați fonts.conf(5).

Multe aplicații cu interfață grafică pentru Linux sunt disponibile în format binar din surse non-Debian.

[Avertisment] Avertisment

Fișierele binare de pe aceste situri pot include pachete software proprietare care nu sunt libere.

Există o anumită rațiune de a fi pentru aceste distribuții în format binar pentru pasionații de software liber care utilizează Debian, deoarece acestea pot acomoda un set curat de biblioteci utilizate pentru fiecare aplicație de către dezvoltatorul din amonte, independent de cele furnizate de Debian.

Riscul inerent asociat rulării fișierelor binare externe poate fi redus prin utilizarea mediului sandbox, care exploatează caracteristicile moderne de securitate ale Linux (consultați Secțiune 4.7.5, „Caracteristici de securitate Linux”).

  • Pentru fișierele binare din AppImage și unele situri upstream, rulați-le în firejail cu configurație manuală.

  • Pentru fișierele binare din FLATHUB, rulați-le în Flatpak ; (nu este necesară configurarea manuală).

  • Pentru fișierele binare din snapcraft, rulați-le în Snap ; (nu este necesară configurarea manuală. Compatibil cu programele demon).

Pachetul xdg-desktop-portal oferă o API standardizată pentru funcțiile comune ale mediului de birou. Consultați xdg-desktop-portal (flatpak) și xdg-desktop-portal (snap) .


Această tehnologie de mediu sandbox este foarte asemănătoare cu aplicațiile de pe sistemele de operare ale telefoanelor inteligente, unde aplicațiile sunt executate sub acces controlat la resurse.

Unele aplicații cu interfață grafică de mari dimensiuni, precum navigatoarele web din Debian, utilizează și ele tehnologia mediului sandbox la nivel intern pentru a le face mai sigure.


Există mai multe modalități de conectare de la o aplicație de pe o gazdă la distanță la serverul X, inclusiv xwayland din gazda locală.


Accesul la serverul X local de către aplicațiile locale care utilizează protocolul X core poate fi conectat local printr-un soclu de domeniu UNIX local. Acest lucru poate fi autorizat de fișierul de autoritate care conține cookie-ul de acces. Locația fișierului de autoritate este identificată de variabila de mediu „$XAUTHORITY”, iar afișajul X este identificat de variabila de mediu „$DISPLAY”. Deoarece acestea sunt definite în mod normal automat, nu este necesară nicio acțiune specială, de exemplu „gitk” după cum urmează.

username $ gitk
[Notă] Notă

Pentru xwayland, XAUTHORITY conține valori precum „/run/user/1000/.mutter-Xwaylandauth.YVSU30”.

Pentru a copia textul în clipboard, consultați Secțiune 1.4.4, „Operații cu mouse-ul”.

Pentru a copia elemente grafice în clipboard, consultați Secțiune 11.6, „Instrumente pentru date grafice”.

Unele comenzi CLI pot manipula de asemenea clipboardul de caractere (PRIMARY și CLIPBOARD).