Capitolo 7. Sistema GUI

# Capitolo 7. Sistema GUI

## 7.1. Ambiente desktop GUI

Ci sono diverse scelte di ambienti desktop GUI completi nel sistema Debian.

Tabella 7.1. Lista di ambienti desktop

pacchetto con task | popcon | dimensione | descrizione
--- | --- | --- | ---
`task-gnome-desktop` | I:187 | 9 | ambiente desktop GNOME
`task-xfce-desktop` | I:88 | 9 | ambiente desktop Xfce
`task-kde-desktop` | I:93 | 6 | ambiente desktop KDE Plasma
`task-mate-desktop` | I:31 | 9 | ambiente desktop MATE
`task-cinnamon-desktop` | I:36 | 9 | ambiente desktop Cinnamon
`task-lxde-desktop` | I:20 | 9 | ambiente desktop LXDE
`task-lxqt-desktop` | I:17 | 9 | ambiente desktop LXQt
`task-gnome-flashback-desktop` | I:9.9 | 6 | ambiente desktop GNOME Flashback

| Suggerimento

I pacchetti di dipendenza selezionati da un metapacchetto per task possono essere fuori sincrono rispetto al più recente stato di transizione nell'ambiente Debian `unstable`/`testing`. Per `task-gnome-desktop`, può essere necessario aggiustare la selezione dei pacchetti come segue:

- Avviare aptitude(8) con `sudo aptitude -u`.

- Spostare il cursore su "Task" e premere "Invio".

- Spostare il cursore su "Utente finale" e premere "Invio".

- Spostare il cursore su "GNOME" e premere "Invio".

- Spostare il cursore su `task-gnome-desktop` e premere "Invio".

- Spostare il cursore su "Dipende" e premere "m" (selezionato manualmente).

- Spostare il cursore su "Raccomanda" e premere "m" (selezionato manualmente).

- Spostare il cursore su "`task-gnome-desktop`" e premere "-" (eliminare).

- Aggiustare i pacchetti selezionati abbandonando quelli problematici che causano conflitti tra i pacchetti.

- Premere "g" per iniziare l'installazione.

Questo capitolo si concentrerà soprattutto sull'ambiente desktop predefinito in Debian: `task-gnome-desktop` che fornisce GNOME su wayland.

## 7.2. Il protocollo di comunicazione della GUI

Il protocollo di comunicazione della GUI usato nel desktop GNOME può essere:

- Wayland (protocollo per display server) (nativo)

- protocollo principale del sistema X Window (via `xwayland`)

Controllare sul sito freedesktop.org in cosa l'architettura Wayland è differente dall'architettura X Window.

Dal punto di vista dell'utente le differenze possono essere a grandi linee riassunte in:

- Wayland è un protocollo di comunicazione GUI per unico host: nuovo, più semplice, più veloce, senza binario con setuid root

- X Window è un protocollo di comunicazione GUI con funzionalità di rete: tradizionale, complesso, più lento, con binario con setuid root

Per le applicazioni che usano il protocollo Wayland, l'accesso al contenuto delle loro schermata da un host remoto è supportato da VNC o RDP. Vedere Sezione 7.8, «Desktop remoto».

I server X moderni hanno l'estensione MIT Shared Memory e comunicano con i loro client X locali usando la memoria condivisa locale. Ciò scavalca il canale di comunicazione tra i processi Xlib trasparente alla rete e fa guadagnare in prestazioni. Questa situazione è stata il punto di partenza per la creazione di Wayland come protocollo di comunicazione GUI solo locale.

Usando il programma `xeyes` avviato dal terminale GNOME si può controllare il protocollo di comunicazione GUI usato da ciascuna applicazione GUI.

     $ xeyes

- Se il cursore del mouse è su un'applicazione come "Terminale di GNOME", che usa il protocollo per display server Wayland, gli occhi non si muovono con il movimento del cursore.

- Se il cursore del mouse è su un'applicazione come "xterm", che usa il protocollo base del sistema X Window, gli occhi si muovono insieme al cursore del mouse rendendo evidente la natura non-così-isolata di un'architettura X Window.

Alla data di aprile 2021 molte popolari applicazioni GUI come GNOME e le applicazioni LibreOffice (LO) sono migrate al protocollo per display server Wayland. L'autore nota come `xterm`, `gitk`, `chromium`, `firefox`, `gimp`, `dia` e tutte le applicazioni KDE usino ancora il protocollo di base del sistema X Window.

| Nota
Sia per xwayland in Wayland che per il sistema X Window nativo, il vecchio file di configurazione del server X "`/etc/X11/xorg.conf`" non dovrebbe esistere sul sistema. I dispositivi grafici e di input sono ora configurati dal kernel con DRM, KMS e udev. Il server X nativo è stato riscritto per usarli. Vedere "supporto modedb predefinito delle modalità video" nella documentazione del kernel Linux.

## 7.3. Infrastruttura GUI

Questi sono pacchetti degni di nota dell'infrastruttura GUI per l'ambiente GNOME su Wayland.

Tabella 7.2. Elenco di pacchetti importanti per l'infrastruttura GUI

pacchetto | popcon | dimensione del pacchetto | descrizione
--- | --- | --- | ---
`mutter` | V:1, I:24 | 215 | Il gestore di finestre mutter di GNOME [auto]
`xwayland` | V:249, I:329 | 2652 | Un server X in esecuzione sopra a wayland [auto]
`gnome-remote-desktop` | V:139, I:236 | 2453 | Demone per desktop remoto per GNOME che usa PipeWire [auto]
`gnome-tweaks` | V:16, I:228 | 1145 | Impostazioni avanzate di configurazione per GNOME
`gnome-shell-extension-prefs` | V:7, I:121 | 73 | Strumenti per abilitare/disabilitare le estensioni per GNOME Shell

Qui "[auto]" significa che questi pacchetti sono installati automaticamente quando viene installato `task-gnome-desktop`.

| Suggerimento

`gnome-tweaks` è l'indispensabile utilità di configurazione. Per esempio:

- Si può forzare la "sovra-amplificazione" del volume dell'audio da "Generale".

- Si può forzare "Maiusc" a diventare "Esc" da "Tastiera e mouse" -> "Tastiera" -> "Opzioni aggiuntive disposizione".

| Suggerimento
I dettagli delle funzionalità dell'ambiente desktop GNOME possono essere configurati con utilità avviate digitando "`settings`", "`tweaks`" o "`extensions`" dopo aver premuto il tasto `Super`.

## 7.4. Applicazioni GUI

In Debian sono ora disponibili molte utili applicazioni GUI. L'installazione di pacchetti software come `scribus` (KDE) nell'ambiente desktop GNOME è piuttosto accettabile dato che le funzionalità corrispondenti non sono disponibili nel desktop GNOME. Tuttavia l'installazione di troppi pacchetti con funzionalità duplicate può rendere il sistema affollato.

Ecco un elenco di applicazioni GUI che hanno attirato la mia attenzione.

Tabella 7.3. Elenco di applicazioni GUI degne di nota

pacchetto | popcon | dimensione del pacchetto | tipo | descrizione
--- | --- | --- | --- | ---
`evolution` | V:25, I:225 | 489 | GNOME | gestione di informazioni personali (groupware e posta elettronica)
`thunderbird` | V:41, I:103 | 274581 | GTK | programma di posta (Mozilla Thunderbird)
`kontact` | V:1.0, I:9.3 | 2360 | KDE | gestione di informazioni personali (groupware e posta elettronica)
`libreoffice-writer` | V:107, I:418 | 34123 | LO | elaboratore di testi
`abiword` | V:0.9, I:5.2 | 3596 | GNOME | elaboratore di testi
`calligrawords` | V:0.2, I:2.9 | 7134 | KDE | elaboratore di testi
`scribus` | V:1, I:12 | 32415 | KDE | editor per desktop publishing per modificare file PDF
`glabels` | V:0.3, I:2.6 | 1283 | GNOME | editor di etichette
`libreoffice-calc` | V:104, I:415 | 28733 | LO | foglio di calcolo
`gnumeric` | V:3, I:11 | 9945 | GNOME | foglio di calcolo
`calligrasheets` | V:0.1, I:1.8 | 14012 | KDE | foglio di calcolo
`libreoffice-impress` | V:91, I:414 | 2485 | LO | presentazioni
`calligrastage` | V:0.1, I:1.8 | 6194 | KDE | presentazioni
`libreoffice-base` | V:21, I:69 | 5050 | LO | gestione di database
`kexi` | V:0.06, I:0.86 | 7565 | KDE | gestione di database
`libreoffice-draw` | V:91, I:414 | 11209 | LO | editor di grafica vettoriale (draw)
`inkscape` | V:11, I:76 | 113353 | GNOME | editor di grafica vettoriale (draw)
`karbon` | V:0.1, I:2.3 | 4004 | KDE | editor di grafica vettoriale (draw)
`dia` | V:1, I:15 | 3846 | GTK | editor di grafi e diagrammi di flusso
`gimp` | V:41, I:214 | 32779 | GTK | editor di grafica bitmap (paint)
`shotwell` | V:14, I:243 | 6334 | GTK | organizzatore di foto digitali
`digikam` | V:1.5, I:8.6 | 325 | KDE | organizzatore di foto digitali
`darktable` | V:4, I:11 | 35876 | GTK | tavolo luminoso e camera oscura per fotografi
`gnome-video-trimmer` | V:0.2, I:1.1 | 1665 | GNOME | lossless cutting of video files
`kdenlive` | V:3, I:22 | 19821 | KDE | non-linear video editor
`shotcut` | V:1.0, I:7.1 | 7943 | applicazione Qt | non-linear video editor
`openshot-qt` | V:0.9, I:9.3 | 196007 | applicazione Qt | non-linear video editor
`flowblade` | V:0.2, I:2.3 | 42213 | GTK | non-linear video editor
`planner` | V:0.1, I:3.2 | 1400 | GNOME | gestione progetti
`calligraplan` | V:0.1, I:1.8 | 23545 | KDE | gestione progetti
`gnucash` | V:2.3, I:7.2 | 29451 | GNOME | contabilità personale
`homebank` | V:0.3, I:1.7 | 3194 | GTK | contabilità personale
`kmymoney` | V:0.5, I:2.0 | 19289 | KDE | contabilità personale
`frescobaldi` | V:0.2, I:1.5 | 11102 | applicazione Qt | LilyPond sheet music text editor
`librecad` | V:1, I:12 | 9164 | applicazione Qt | sistema CAD (Computer-Aided Design) (2D)
`freecad` | V:1, I:19 | 112 | applicazione Qt | sistema CAD (Computer-Aided Design) (3D)
`kicad` | V:3, I:13 | 222895 | GTK | sofware per progettazione di schemi elettronici e PCB
`xsane` | V:8, I:129 | 1512 | GTK | frontend per lo scanner
`libreoffice-math` | V:87, I:417 | 1958 | LO | editor di equazioni matematiche e formule
`calibre` | V:7, I:26 | 69924 | KDE | convertitore e gestione di una biblioteca per libri elettronici
`fbreader` | V:0.6, I:6.0 | 3827 | GTK | Lettori di ebook
`evince` | V:72, I:282 | 942 | GNOME | visualizzatore di documenti (pdf)
`okular` | V:41, I:129 | 4419 | KDE | visualizzatore di documenti (pdf)
`x11-apps` | V:30, I:440 | 2461 | applicazione X pura | xeyes(1), ecc.
`x11-utils` | V:222, I:551 | 651 | applicazione X pura | xev(1), xwininfo(1), ecc.

## 7.5. Directory dell'utente

I nomi predefiniti per le directory dell'utente, come "`~/Desktop`", "`~/Documenti`", ..., usate dagli ambienti desktop dipendono dalla localizzazione usata per l'installazione del sistema. Possono essere reimpostate a quelle in inglese usando:

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

Poi si spostano manualmente tutti i dati nelle nuove directory. Vedere xdg-user-dirs-update(1).

È anche possibile impostarle manualmente a qualsiasi nome modificando "`~/.config/user-dirs.dirs`". Vedere user-dirs.dirs(5).

## 7.6. Tipi di carattere

In Debian sono a disposizione degli utenti molti tipi di carattere utili scalabili. La preoccupazione per l'utente è come evitare ridondanze e come configurare la disabilitazione di parte dei tipi di carattere installati. Altrimenti scelte di tipi di carattere inutili possono ingombrare i menu delle applicazioni GUI.

Il sistema Debia usa la libreria FreeType 2.0 per rasterizzare molti formati di tipi di carattere scalabili per lo schermo e la stampa:

- Tipi di carattere Type 1 (PostScript) che usano curve di Bézier cubiche (formato quasi obsoleto)

- Tipi di carattere TrueType che usano curve di Bézier quadratiche (buona scelta di formato)

- Tipi di carattere OpenType che usano curve di Bézier cubiche (migliora scelta per il formato)

### 7.6.1. Tipi di carattere base

La tabella seguente è compilata nella speranza che aiuti gli utenti a scegliere i tipi di carattere scalabili appropriati con una chiara idea della compatibilità delle metriche e delle coperture dei glifi. La maggior parte dei tipi di carattere copre tutti i caratteri latini, greci e cirillici. La scelta finale dei tipi di carattere da attivare può anche essere influenzata da gusti estetici personali. Questi tipi di carattere possono essere usati per la visualizzazione a schermo o per la stampa su carta.

Tabella 7.4. Elenco di tipi di carattere TrueType e OpenType degni di nota

pacchetto | popcon | dimensione | senza grazie | con grazie | monospazio | nota sul carattere
--- | --- | --- | --- | --- | --- | ---
fonts-cantarell | V:173, I:285 | 224 | 59 | - | - | Cantarell (GNOME 3, visualizzazione)
fonts-noto | I:151 | 30 | 61 | 63 | 40 | Tipi di carattere Noto (Google, multi-lingua con CJK)
fonts-dejavu | I:384 | 34 | 58 | 68 | 40 | DejaVu (GNOME 2, MCM:Verdana, Bitstream Vera esteso)
fonts-liberation2 | V:44, I:168 | 15 | 56 | 60 | 40 | Tipi di carattere Liberation per LibreOffice (Red Hat, MCMATC)
fonts-croscore | V:20, I:36 | 5260 | 56 | 60 | 40 | Chrome OS: Arimo, Tinos e Cousine (Google, MCMATC)
fonts-crosextra-carlito | V:20, I:91 | 2696 | 57 | - | - | Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea | V:12, I:85 | 347 | - | 55 | - | Chrome OS: Caladea (Google, MCM:Cambria ) (solo latini)
fonts-freefont-ttf | V:79, I:203 | 14460 | 57 | 59 | 40 | GNU FreeFont (URW Nimbus esteso)
fonts-quicksand | V:207, I:447 | 392 | 56 | - | - | Quicksand del task-desktop Debian (visualizzazione, solo latini)
fonts-hack | V:34, I:136 | 2507 | - | - | 40 P | Un carattere progettato per il codice sorgente, Hack (Facebook)
fonts-sil-gentiumplus | V:0, I:28 | 14345 | - | 54 | - | Gentium SIL
fonts-sil-charis | V:1, I:28 | 6704 | - | 59 | - | Charis SIL
fonts-urw-base35 | V:190, I:528 | 15558 | 56 | 60 | 40 | URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu | V:2.2, I:4.7 | 4339 | 58 | - | 33 P | Tipi di carattere Ubuntu (visualizzazione)
fonts-terminus | V:0.3, I:4.0 | 451 | - | - | 33 | Bei tipi di carattere per terminale retrò
ttf-mscorefonts-installer | V:1, I:39 | 85 | 56? | 60 | 40 | Scaricatore per tipi di carattere non liberi di Microsoft (vedere più sotto)

Qui:

- "MCM" sta per "Metrica Compatibile con tipi di carattere forniti da Microsoft"

- "MCMATC" sta per "Metrica Compatibile con tipi di carattere forniti da Microsoft: Arial, Times New Roman, Courier New"

- "MCAHTC" sta per "Metrica Compatibile con tipi di carattere forniti da Adobe: Helvetica, Times, Courier"

- I numeri nelle colonne del tipo di carattere rappresentano la larghezza "M" approssimata relativa per il carattere alla stessa dimensione di punto.

- "P" nelle colonne dei tipi di carattere mono a spaziatura fissa rappresenta l'usabilità per la programmazione grazie a "0"/"O" e "1"/"I"/"l" chiaramente distinguibili.

- Il pacchetto `ttf-mscorefonts-installer` scarica i "Tipi di carattere principali per il Web" di Microsoft e installa Arial, Times New Roman, Courier New, Verdana, ... Questi tipi di carattere installati sono dati non liberi.

Molti tipi di carattere Latin sono una discendenza dalla famiglia URW Nimbus o Bitstream Vera.

| Suggerimento
Se la propria localizzazione necessita di tipi di carattere non coperti bene dai tipi di carattere elencati sopra, usare aptitude per controllare nei pacchetti task elencati in "Task" -> "Localizzazione". I pacchetti di tipi di carattere elencati come "Dipende:" o "Raccomanda:" nei pacchetti dei task di localizzazione sono i candidati principali.

### 7.6.2. Rasterizzazione dei tipi di carattere

Debia usa FreeType per rasterizzare i tipi di carattere. La sua infrastruttura di scelta dei caratteri è fornita dalla libreria per configurazione dei tipi di carattere Fontconfig.

Tabella 7.5. Elenco di ambienti per i tipi di carattere degli di nota e pacchetti correlati

pacchetto | popcon | dimensione | descrizione
--- | --- | --- | ---
`libfreetype6` | V:583, I:997 | 1018 | FreeType, libreria per rasterizzazione di tipi di carattere
`libfontconfig1` | V:573, I:810 | 344 | Fontconfig, libreria per la configurazione dei tipi di carattere
`fontconfig` | V:464, I:692 | 415 | `fc-*`: comandi CLI per Fontconfig
`font-manager` | V:2.4, I:7.0 | 1116 | Font Manager: comando GUI per Fontconfig
`nautilus-font-manager` | V:0.11, I:0.43 | 38 | Estensione di Nautilus per Font Manager

| Suggerimento

Alcuni pacchetti di tipi di carattere, come `fonts-noto*` installano troppi tipi di carattere. Si può anche voler mantenere installati alcuni pacchetti di caratteri ma disabilitarli per le situazioni normali d'uso. Per alcuni punti del codice Unicode sono necessari glifi multipli a causa della unificazione Han e glifi non desiderati possono essere scelti dalla libreria Fontconfig non configurata. Uno dei casi più noiosi sono "U+3001 IDEOGRAPHIC COMMA" e "U+3002 IDEOGRAPHIC FULL STOP" nei paesi CJK. Si può facilmente evitare questa situazione problematica configurando la disponibilità dei tipi di carattere usando la GUI per la gestione dei tipi di carattere (font-manager).

È possibile anche elencare lo stato di configurazione dei tipi di carattere dalla riga di comando.

- "`fc-match(1)`" per le impostazioni predefinite per i tipi di carattere di fontconfig

- "`fc-list(1)`" per i tipi di carattere disponibili per fontconfig

Si può impostare lo stato di configurazione di un tipo di carattere dall'editor di testo, ma non è una cosa banale. Vedere fonts.conf(5).

## 7.7. Sandbox

Molte applicazioni, soprattutto GUI, in Linux sono disponibili solamente in forma binaria da fonti non-Debian.

- AppImage -- App Linux che funzionano ovunque

- FLATHUB -- App per Linux, proprio qui

- snapcraft -- Negozio di app per Linux

| Avvertimento
I binari da questi siti possono includere pacchetti software proprietari non liberi.

Esiste una ragione d'essere per queste distribuzioni in formato binario per gli aficionados del Software Libero che usano Debian, dato che queste possono fornire un insieme pulito di librerie usato per ciascuna applicazione dal corrispondente sviluppatore a monte, indipendentemente da quelle fornite da Debian.

Il rischio intrinseco dell'esecuzione di binari esterni può essere ridotto utilizzando un ambiente sandbox che sfrutta le funzionalità di sicurezza moderne di Linux (vedere Sezione 4.7.5, «Funzionalità di sicurezza di Linux».

- Per i binari da AppImage e alcuni siti a monte, eseguirli in firejail con configurazione manuale.

- Per i binari da FLATHUB, eseguirli in Flatpak . (Non è necessaria una configurazione manuale).

- Per i binari da snapcraft, eseguirli in Snap . (Nessuna configurazione manuale richiesta; compatibile con programmi demone.)

Il pacchetto `xdg-desktop-portal` fornisce un'API standardizzata per le funzionalità comuni del desktop. Vedere xdg-desktop-portal (flatpak) e xdg-desktop-portal (snap).

Tabella 7.6. Elenco di ambienti sandbox degni di nota e pacchetti correlati

pacchetto | popcon | dimensione | descrizione
--- | --- | --- | ---
`flatpak` | V:107, I:115 | 9278 | Flatpak, infrastruttura di messa in produzione di applicazioni per app per desktop
`gnome-software-plugin-flatpak` | V:30, I:42 | 283 | Supporto Flatpak per il Software GNOME
`snapd` | V:61, I:64 | 78931 | Demone e strumentazione che abilitano i pacchetti snap
`gnome-software-plugin-snap` | V:1.5, I:2.3 | 145 | Supporto Snap per il Software GNOME
`xdg-desktop-portal` | V:365, I:434 | 2291 | Portale di integrazione nel desktop per Flatpak e Snap
`xdg-desktop-portal-gtk` | V:329, I:432 | 715 | backend xdg-desktop-portal per GTK (GNOME)
`xdg-desktop-portal-kde` | V:79, I:111 | 3324 | backend xdg-desktop-portal per Qt (KDE)
`xdg-desktop-portal-wlr` | V:2.3, I:5.4 | 159 | backend xdg-desktop-portal per wlroots (Wayland)
`firejail` | V:1.3, I:4.7 | 1827 | programma per sandbox con sicurezza SUID firejail per l'uso con AppImage

Questa tecnologia per ambiente sandbox è molto simile a come le app nei SO degli smartphone vengono eseguite con accesso controllato alle risorse.

Anche alcune grandi applicazioni GUI come browser web in Debian usano internamente la tecnologia degli ambienti sandbox per renderle più sicure.

## 7.8. Desktop remoto

Tabella 7.7. Elenco di server per l'accesso remoto degni di nota

L'accesso al desktop e alle applicazioni che usano il protocollo Wayland e sono eseguite su un host remoto è supportato da GNOME Remote Desktop sull'host remoto attraverso VNC o RDP al client locale.

L'accesso alle funzionalità del desktop di tutte le macchine virtuali QEMU è supportato dal protocollo SPICE (the Simple Protocol for Independent Computing Environments, il semplice protocollo per ambienti di calcolo indipendenti).

pacchetto | popcon | dimensione | protocolli | descrizione
--- | --- | --- | --- | ---
`gnome-remote-desktop` | V:139, I:236 | 2453 | RDP | server GNOME Remote Desktop
`xrdp` | V:27, I:29 | 4669 | RDP | xrdp, server RDP (Remote Desktop Protocol)
`x11vnc` | V:9, I:44 | 1863 | RFB (VNC) | x11vnc, server Remote Framebuffer Protocol (VNC)
`tigervnc-standalone-server` | V:5, I:15 | 2960 | RFB (VNC) | TigerVNC, server Remote Framebuffer Protocol (VNC)
`gnome-connections` | V:6, I:139 | 1695 | RDP, RFB (VNC) | client per desktop remoto GNOME
`vinagre` | V:1, I:23 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: client per desktop remoto di GNOME
`remmina` | V:16, I:62 | 983 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: client GTK per desktop remoto
`krdc` | V:2, I:14 | 4144 | RDP, RFB (VNC) | KRDC: client KDE per desktop remoto
`virt-viewer` | V:3, I:38 | 1278 | RFB (VNC), SPICE | client con display GUI di Virtual Machine Manager del sistema operativo ospite

## 7.9. Connessione a server X

Ci sono diversi modi per connettersi da un'applicazione su un host remoto al server X, incluso `xwayland` sull'host locale.

Tabella 7.8. Elenco di metodi di connessione al server X

pacchetto | popcon | dimensione | comando | descrizione
--- | --- | --- | --- | ---
`openssh-server` | V:772, I:820 | 3594 | `sshd` con l'opzione `X11-forwarding` | server SSH (sicuro)
`openssh-client` | V:657, I:996 | 3521 | `ssh -X` | client SSH (sicuro)
`xauth` | V:189, I:973 | 81 | `xauth` | utilità per file X authority
`x11-xserver-utils` | V:304, I:528 | 559 | `xhost` | controllo degli accessi al server per X

### 7.9.1. Connessione locale al server X

L'accesso al server X locale da parte delle applicazioni locali che usano il protocollo di base X può essere connesso localmente attraverso un socket locale di dominio UNIX. Ciò può essere autorizzato dal file di autorità che contiene i cookie di accesso. Il file authority è identificato dalla variabile d'ambiente "`$XAUTHORITY`" e il display X è identificato dalla variabile d'ambiente "`$DISPLAY`". Dato che queste vengono normalmente impostate automaticamente, non è necessaria alcuna azione speciale, ad es. "`gitk`" come segue.

    username $ gitk

| Nota
Per `xwayland`, `XAUTHORITY` contiene un valore come "`/run/user/1000/.mutter-Xwaylandauth.YVSU30`".

### 7.9.2. Connessione remota a server X

L'accesso al display del server X locale da parte di applicazioni remote che usano il protocollo principale X è supportato usando la funzionalità di inoltro di X11.

- Aprire un `gnome-terminal` sull'host locale.

- Eseguire ssh(1) con l'opzione `-X` per stabilire una connessione con il sito remoto nel modo seguente.

      localname @ localhost $ ssh -q -X loginname@remotehost.domain
      Password:

- Eseguire un comando applicativo X, ad esempio "`gitk`", sul sito remoto nel modo seguente.

      loginname @ remotehost $ gitk

Questo metodo può mostrare l'output da un client X remoto come se fosse connesso localmente attraverso un socket UNIX locale.

Vedere Sezione 6.3, «Il server e le utilità per l'accesso remoto (SSH)» per SSH/SSHD.

| Avvertimento
La connessione TCP/IP remota al server X è disabilitata in modo predefinito nel sistema Debian per ragioni di sicurezza. Non abilitarla impostando semplicemente "`xhost +`", né abilitando connessioni XDMCP, se lo si può evitare.

### 7.9.3. Connessione chroot a server X

L'accesso al server X da parte delle applicazioni che usano il protocollo centrale di X e vengono eseguite sullo stesso host ma in un ambiente come una chroot dove il file di autorità non è accessibile può essere autorizzato in maniera sicura con `xhost` usando l'accesso basato su utente, es. "`gitk`" come segue:

    username $ xhost + si:localuser:root ; sudo chroot /path/to
    # cd /src
    # gitk
    # exit
    username $ xhost -

## 7.10. Appunti

Per ritagliare testo negli appunti, vedere Sezione 1.4.4, «Operazioni del mouse».

Per tagliare grafica negli appunti vedere Sezione 11.6, «Strumenti per dati grafici».

Anche alcuni comandi CLI possono manipolare gli appunti a carattere (PRIMARY e CLIPBOARD).

Tabella 7.9. Elenco di programmi correlati con la manipolazione degli appunti a caratteri

pacchetto | popcon | dimensione del pacchetto | target | descrizione
--- | --- | --- | --- | ---
`xsel` | V:7, I:42 | 55 | per X | interfaccia a riga di comando per la selezione in X (appunti)
`xclip` | V:18, I:79 | 62 | per X | interfaccia a riga di comando per la selezione in X (appunti)
`wl-clipboard` | V:9, I:27 | 174 | Wayland | `wl-copy` `wl-paste`: interfaccia a riga di comando per gli appunti di Wayland
`gpm` | V:8.2, I:9.1 | 524 | Console Linux | un demone che cattura eventi del mouse sulla console Linux

Capitolo 6. Applicazioni per la rete |  | Capitolo 8. I18N e L10N