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:25, I:223 488 GNOME gestionarea informațiilor personale (software de lucru în grup și poșta electronică)
thunderbird V:45, I:102 274189 GTK client de poștă electronică (Mozilla Thunderbird)
kontact V:1, I:10 2305 KDE gestionarea informațiilor personale (software de lucru în grup și poșta electronică)
libreoffice-writer V:94, I:414 33283 LO procesor de text
abiword V:0.9, I:5.0 3596 GNOME procesor de text
calligrawords V:0.3, I:2.9 6932 KDE procesor de text
scribus V:1, I:12 32415 KDE editor de tehnoredactare computerizată pentru editarea fișierelor PDF
glabels V:0.3, I:2.5 1283 GNOME editor de etichete
libreoffice-calc V:91, I:411 28297 LO foaie de calcul
gnumeric V:3, I:10 9945 GNOME foaie de calcul
calligrasheets V:0.2, I:1.9 13593 KDE foaie de calcul
libreoffice-impress V:78, I:410 2445 LO prezentare
calligrastage V:0.1, I:1.8 6011 KDE prezentare
libreoffice-base V:19, I:68 4986 LO gestionare a bazei de date
kexi V:0.06, I:0.80 7565 KDE gestionare a bazei de date
libreoffice-draw V:79, I:410 10989 LO editor de grafică vectorială (desen)
inkscape V:12, I:75 112538 GNOME editor de grafică vectorială (desen)
karbon V:0.2, I:2.3 3958 KDE editor de grafică vectorială (desen)
dia V:1, I:16 3801 GTK editor de diagrame și organigrame
gimp V:34, I:211 32779 GTK editor grafic (pictură)
shotwell V:14, I:241 6334 GTK organizator de fotografii digitale
digikam V:1.5, I:8.2 325 KDE organizator de fotografii digitale
darktable V:3, I:11 35876 GTK masă de lumină și cameră obscură pentru fotografi
gnome-video-trimmer V:0.1, I:1.1 1665 GNOME tăierea fără pierderi a fișierelor video
kdenlive V:3, I:21 19821 KDE editor video neliniar
shotcut V:1.0, I:6.8 7830 aplicație Qt editor video neliniar
openshot-qt V:0.7, I:8.8 196007 aplicație Qt editor video neliniar
flowblade V:0.2, I:2.2 42213 GTK editor video neliniar
planner V:0.2, I:3.9 1400 GNOME gestionarea proiectelor
calligraplan V:0.1, I:2.6 23545 KDE gestionarea proiectelor
gnucash V:2.1, I:6.8 29451 GNOME contabilitate personală
homebank V:0.3, I:1.5 3194 GTK contabilitate personală
kmymoney V:0.5, I:1.9 18945 KDE contabilitate personală
frescobaldi V:0.2, I:1.4 11102 aplicație Qt editorul de text pentru partituri LilyPond
librecad V:1, I:13 9164 aplicație Qt sistem de proiectare asistată de calculator (CAD) (2D)
freecad V:1, I:19 112 aplicație Qt sistem de proiectare asistată de calculator (CAD) (3D)
kicad V:3, I:14 213268 GTK software pentru proiectarea schemelor electronice și a plăcilor cu circuite imprimate
xsane V:9, I:128 1512 GTK interfață scaner
libreoffice-math V:74, I:413 1914 LO editor de ecuații/formule matematice
calibre V:6, I:24 66260 KDE convertor de cărți electronice și gestionarea bibliotecii
fbreader V:0.6, I:5.7 3827 GTK cititor de cărți electronice
evince V:71, I:279 942 GNOME program de vizualizare a documentelor(pdf)
okular V:40, I:129 4419 KDE program de vizualizare a documentelor(pdf)
x11-apps V:30, I:438 2461 aplicație X pură xeyes(1), etc.
x11-utils V:224, I:549 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:171, I:282 224 59 - - Cantarell (GNOME 3, afișare)
fonts-noto I:149 30 61 63 40 Fonturi Noto (Google, multi-lingvistice cu CJK)
fonts-dejavu I:381 34 58 68 40 DejaVu (GNOME 2, MCM:Verdana, extins Bitstream Vera)
fonts-liberation2 V:44, I:170 15 56 60 40 Fonturi Liberation pentru LibreOffice (Red Hat, MCMATC)
fonts-croscore V:19, I:35 5260 56 60 40 Chrome OS: Arimo, Tinos și Cousine (Google, MCMATC)
fonts-crosextra-carlito V:19, I:89 2696 57 - - Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea V:11, I:84 347 - 55 - Chrome OS: Caladea (Google, MCM:Cambria ) (doar Latin)
fonts-freefont-ttf V:77, I:200 14460 57 59 40 GNU FreeFont (URW Nimbus extins)
fonts-quicksand V:205, I:444 392 56 - - Debian task-desktop, Quicksand (afișare, doar Latin)
fonts-hack V:33, I:135 2507 - - 40 P Un tip de font conceput pentru codul sursă Hack (Facebook)
fonts-sil-gentiumplus V:0, I:27 14345 - 54 - Gentium SIL
fonts-sil-charis V:1, I:27 6704 - 59 - Charis SIL
fonts-urw-base35 V:181, I:526 15558 56 60 40 URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2.0, I:4.5 4339 58 - 33 P Fonturi Ubuntu (afișare)
fonts-terminus V:0.3, I:3.9 451 - - 33 Fonturi retro faine pentru terminale
ttf-mscorefonts-installer V:1, I:39 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”.

Accesul la afișajul serverului X local din aplicațiile la distanță care utilizează protocolul central X este acceptat prin utilizarea funcției de redirecționare X11.

  • Deschideți un gnome-terminal pe gazda locală.

  • Rulați ssh(1) cu opțiunea -X pentru a stabili o conexiune cu situl la distanță, după cum urmează.

    localname @ localhost $ ssh -q -X loginname@remotehost.domain
    Password:
  • Rulați o comandă a aplicației X, de exemplu „gitk”, pe situl la distanță, după cum urmează.

    loginname @ remotehost $ gitk

Această metodă poate afișa ieșirea de la un client X la distanță ca și cum ar fi conectat local printr-un soclu de domeniu UNIX local.

Consultați Secțiune 6.3, „Serverul și instrumentele de acces la distanță (SSH)” pentru SSH/SSHD.

[Avertisment] Avertisment

O conexiune la distanță TCP/IP la serverul X este dezactivată în mod implicit în sistemul Debian din motive de securitate. Nu o activați prin simpla configurare a „xhost +” și nici prin activarea conexiunii XDMCP, dacă puteți evita acest lucru.

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).