Kapitel 7. GUI-system

Innehållsförteckning

7.1. GUI-skrivbordsmiljö
7.2. GUI-kommunikationsprotokoll
7.3. GUI-infrastruktur
7.4. GUI-applikationer
7.5. Användarkataloger
7.6. Typsnitt
7.6.1. Grundläggande teckensnitt
7.6.2. Rasterisering av teckensnitt
7.7. Sandlåda
7.8. Fjärrskrivbord
7.9. Anslutning till X-server
7.9.1. Lokal anslutning till X-server
7.9.2. Fjärranslutning till X-server
7.9.3. X-server chroot-anslutning
7.10. Urklipp

Det finns flera valmöjligheter för den fullständiga GUI-skrivbordsmiljön på Debian-systemet.


[Tips] Tips

Beroendepaket som valts av ett uppgiftsmetapaket kan vara osynkroniserade med det senaste paketövergångsläget under Debian unstable/testing-miljön. För task-gnome-desktop kan du behöva justera paketvalen enligt följande:

  • Starta aptitude(8) som sudo aptitude -u.

  • Flytta markören till "Tasks" och tryck på "Enter".

  • Flytta markören till "Slutanvändare" och tryck på "Enter".

  • Flytta markören till "GNOME" och tryck på "Enter".

  • Flytta markören till task-gnome-desktop och tryck på "Enter".

  • Flytta markören till "Depends" och tryck på "m" (manuellt valt).

  • Flytta markören till "Recommends" och tryck på "m" (manuellt val).

  • Flytta markören till "task-gnome-desktop " och tryck på "-". (släpp)

  • Justera valda paket samtidigt som du tar bort problematiska paket som orsakar paketkonflikter.

  • Tryck på "g" för att starta installationen.

Detta kapitel kommer att fokusera mest på Debians standardskrivbordsmiljö: task-gnome-desktop som erbjuder GNOMEwayland.

GUI-kommunikationsprotokoll som används på GNOME-skrivbordet kan vara:

Se webbplatsen freedesktop.org för att se hur Wayland-arkitekturen skiljer sig från X Window-arkitekturen.

Från användarens perspektiv kan skillnaderna sammanfattas som:

  • Wayland är ett kommunikationsprotokoll för GUI med samma värd: nytt, enklare, snabbare, ingen setuid root-binär

  • X Window är ett nätverkskompatibelt GUI-kommunikationsprotokoll: traditionellt, komplext, långsammare, setuid root binärt

För program som använder Wayland-protokollet stöds åtkomsten till deras skärminnehåll från en fjärrvärd av VNC eller RDP. Se även Avsnitt 7.8, ”Fjärrskrivbord”

Moderna X-servrar har MIT Shared Memory Extension och kommunicerar med sina lokala X-klienter med hjälp av det lokala delade minnet. Detta förbigår den nätverkstransparenta Xlib-kommunikationskanalen mellan processer och ger bättre prestanda. Denna situation var bakgrunden till att Wayland skapades som ett kommunikationsprotokoll för enbart lokala GUI:er.

Med hjälp av programmet xeyes som startas från GNOME-terminalen kan du kontrollera GUI-kommunikationsprotokollet som används av varje GUI-program.

 $ xeyes
  • Om muspekaren är på ett program som "GNOME terminal" som använder Wayland display server protocol, rör sig inte ögonen med muspekaren.

  • Om muspekaren befinner sig i ett program som "xterm", som använder X Window Systems kärnprotokoll, rör sig ögonen med muspekaren, vilket visar att X Window-arkitekturen inte är helt isolerad.

Från och med april 2021 har många populära GUI-program som GNOME- och LibreOffice (LO) -program migrerats till Wayland-displayserverprotokollet. Jag ser att xterm-, gitk-, chromium-, firefox-, gimp-, dia- och KDE-applikationer fortfarande använder X Window System-kärnprotokollet.

[Notera] Notera

För både xwayland på Wayland och det inbyggda X Window System bör den gamla konfigurationsfilen för X-servern "/etc/X11/xorg.conf" inte finnas på systemet. Grafik- och inmatningsenheterna konfigureras nu av kärnan med DRM, KMS och udev. Den inbyggda X-servern har skrivits om för att använda dem. Se"modedb default video mode support" i dokumentationen för Linux-kärnan.

Här är några viktiga GUI-infrastrukturpaket för GNOME på Wayland-miljön.


Här betyder "[auto]" att dessa paket installeras automatiskt när task-gnome-desktop installeras.

[Tips] Tips

gnome-tweaks är det oumbärliga konfigurationsverktyget. Till exempel:

  • Du kan tvinga fram "Over-Amplification" av ljudvolymen från "General".

  • Du kan tvinga "Caps" att bli "Esc" från "Keyboard & Mouse" -> "Keyboard" -> "Additional Layout Option".

[Tips] Tips

Detaljerade funktioner i skrivbordsmiljön GNOME kan konfigureras med hjälp av verktyg som startas genom att skriva "settings", "tweaks" eller "extensions" efter att du tryckt på Super-tangenten.

Många användbara GUI-program finns nu tillgängliga på Debian. Att installera programpaket som scribus (KDE) på GNOME-skrivbordsmiljön är helt acceptabelt eftersom motsvarande funktionalitet inte är tillgänglig under GNOME-skrivbordsmiljön. Men att installera för många paket med duplicerade funktioner kan göra ditt system rörigt.

Här är en lista över GUI-applikationer som fångade mina ögon.

Tabell 7.3. Lista över anmärkningsvärda GUI-applikationer

paket popcon förpackningsstorlek typ beskrivning
evolution V:26, I:236 492 GNOME Hantering av personlig information (grupprogram och e-post)
thunderbird V:46, I:111 273862 GTK E-postklient(Mozilla Thunderbird)
kontact V:1, I:11 2258 KDE Hantering av personlig information (grupprogram och e-post)
libreoffice-writer V:117, I:439 33053 LO ordbehandlare
abiword V:0, I:5 3576 GNOME ordbehandlare
calligrawords V:0, I:5 6937 KDE ordbehandlare
scribus V:1, I:14 32052 KDE desktop publishing editor för att redigera PDF-filer
glabels V:0, I:2 1283 GNOME etikettredaktör
libreoffice-calc V:111, I:435 28164 LO kalkylblad
gnumeric V:3, I:11 9958 GNOME kalkylblad
calligrasheets V:0, I:4 13593 KDE kalkylblad
libreoffice-impress V:92, I:434 2469 LO presentation
calligrastage V:0, I:4 6017 KDE presentation
libreoffice-base V:24, I:82 5031 LO databashantering
kexi V:0, I:0 7565 KDE databashantering
libreoffice-draw V:92, I:434 10985 LO redigerare för vektorgrafik (draw)
inkscape V:12, I:86 113183 GNOME redigerare för vektorgrafik (draw)
karbon V:0, I:5 3962 KDE redigerare för vektorgrafik (draw)
dia V:1, I:19 4086 GTK editor för flödesscheman och diagram
gimp V:45, I:232 32135 GTK bitmappsgrafikredigerare (paint)
shotwell V:15, I:255 6334 GTK digital fotoorganisatör
digikam V:1, I:9 302 KDE digital fotoorganisatör
darktable V:4, I:12 35873 GTK lighttable och mörkrum för fotografer
planner V:0, I:5 1400 GNOME projektledning
calligraplan V:0, I:3 19241 KDE projektledning
gnucash V:2, I:7 29748 GNOME personlig redovisning
homebank V:0, I:1 3196 GTK personlig redovisning
lilypond V:0, I:6 16924 - musik sättare
kmymoney V:0, I:2 18826 KDE personlig redovisning
librecad V:1, I:15 9100 Qt-app cAD-system (datorstödd konstruktion) (2D)
freecad I:20 110 Qt-app cAD-system (datorstödd konstruktion) (3D)
kicad V:3, I:15 163802 GTK programvara för elektroniska scheman och PCB-design
xsane V:10, I:135 1512 GTK skanner frontend
libreoffice-math V:83, I:437 1904 LO editor för matematiska ekvationer/formler
calibre V:7, I:27 65174 KDE e-bokskonverterare och bibliotekshantering
fbreader V:0, I:7 3783 GTK e-bokläsare
evince V:79, I:300 963 GNOME dokument(pdf)-visare
okular V:41, I:135 4415 KDE dokument(pdf)-visare
x11-apps V:31, I:467 2461 ren X-app xeyes(1), etc.
x11-utils V:217, I:565 651 ren X-app xev(1), xwininfo(1), etc.

Standardnamnen för användarkataloger som "~/Desktop", "~/Documents", ..., som används av Desktop-miljön beror på vilken språkdräkt som används vid systeminstallationen. Du kan återställa dem till de engelska namnen genom att:

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

Sedan flyttar du manuellt alla data till de nyare katalogerna. Se xdg-user-dirs-update(1).

Du kan också ge dem valfria namn genom att redigera "~/.config/user-dirs.dirs". Se user-dirs.dirs(5).

Många användbara skalbara teckensnitt finns tillgängliga för användare på Debian. Användarens problem är hur man undviker redundans och hur man konfigurerar delar av installerade teckensnitt så att de inaktiveras. Annars kan värdelösa val av teckensnitt fördärva menyerna i dina GUI-program.

Debian-systemet använder FreeType 2.0-biblioteket för att rastrera många skalbara teckensnittsformat för skärm och utskrift:

Följande tabell har sammanställts i hopp om att hjälpa användare att välja lämpliga skalbara teckensnitt med tydlig förståelse för den metriska kompatibiliteten och glyftäckningen. De flesta teckensnitt täcker alla latinska, grekiska och kyrilliska tecken. Det slutliga valet av aktiverade teckensnitt kan också påverkas av din estetik. Dessa teckensnitt kan användas för skärmvisning eller för pappersutskrift.


Här:

  • "MCM" står för "metrisk kompatibel med teckensnitt som tillhandahålls av Microsoft"

  • "MCMATC" står för "metrisk kompatibel med teckensnitt som tillhandahålls av Microsoft: Arial, Times New Roman, Courier New"

  • "MCAHTC" står för "metrisk kompatibel med teckensnitt som tillhandahålls av Adobe: Helvetica, Times, Courier"

  • Siffrorna i kolumnerna för typsnitt står för den ungefärliga relativa "M"-bredden för samma typsnitt i punktstorlek.

  • "P" i kolumner av monotyp typsnitt står för dess användbarhet för programmering med tydligt urskiljbara "0"/"O" och "1"/"I"/"l".

  • Paketet ttf-mscorefonts-installer hämtar Microsofts"Core fonts for the Web" och installerar Arial, Times New Roman, Courier New, Verdana, ... . Dessa installerade teckensnittsdata är icke-fria data.

Många gratis latinska teckensnitt har sin härkomst spårad till URW Nimbus-familjen eller Bitstream Vera.

[Tips] Tips

Om din lokal behöver teckensnitt som inte täcks väl av ovanstående teckensnitt, använd aptitude för att kontrollera under uppgiftspaket som listas under "Uppgifter" -> "Lokalisering". De teckensnittspaket som listas som "Depends:" eller "Recommends:" i uppgiftspaketen för lokalisering är de primära kandidaterna.

Debian använder FreeType för att rastrera teckensnitt. Dess infrastruktur för val av teckensnitt tillhandahålls av teckensnittskonfigurationsbiblioteket Fontconfig.


[Tips] Tips

Vissa teckensnittspaket, t.ex. fonts-noto*, installerar för många teckensnitt. Du kanske också vill ha vissa teckensnittspaket installerade men inaktiverade under normala användningsförhållanden. De multipla glyferna förväntas för vissa Unicode-kodpunkter på grund av Han-unifiering och oönskade gliphs kan väljas av det okonfigurerade Fontconfig-biblioteket. Ett av de mest irriterande fallen är "U+3001 IDEOGRAPHIC COMMA" och "U+3002 IDEOGRAPHIC FULL STOP" bland CJK-länder. Du kan enkelt undvika denna problematiska situation genom att konfigurera tillgängligheten för teckensnitt med hjälp av Font Manager GUI (font-manager).

Du kan även lista konfigurationsstatus för teckensnitt från kommandoraden.

  • "fc-match(1)" för fontconfig-teckensnittets standard

  • "fc-list(1)" för tillgängliga fontconfig-teckensnitt

Du kan konfigurera teckensnittets konfigurationsstatus från textredigeraren, men det är inte trivialt. Se fonts.conf(5).

Många GUI-program på Linux finns tillgängliga i binära format från andra källor än Debian.

[Varning] Varning

Binärfiler från dessa webbplatser kan innehålla proprietära, non-free programvarupaket.

Det finns ett visst existensberättigande för dessa distributioner i binärt format för användare av fri programvara som använder Debian, eftersom de kan rymma en ren uppsättning bibliotek som används för varje program av respektive uppströmsutvecklare oberoende av de som tillhandahålls av Debian.

Den inneboende risken med att köra externa binärfiler kan minskas genom att använda sandlådemiljön som utnyttjar moderna säkerhetsfunktioner i Linux (se Avsnitt 4.7.5, ”Säkerhetsfunktioner i Linux”).

  • För binärfiler från AppImage och vissa uppströmswebbplatser, kör dem i Firejail med manuell konfiguration.

  • För binärfiler från FLATHUB, kör dem i Flatpak (ingen manuell konfiguration krävs)

  • För binärfiler från snapcraft, kör dem i Snap . (Ingen manuell konfiguration krävs. Kompatibel med daemonprogram.)

Paketet xdg-desktop-portal tillhandahåller ett standardiserat API för vanliga skrivbordsfunktioner. Se xdg-desktop-portal (flatpak) och xdg-desktop-portal (snap) .


Den här sandlådemiljön är mycket lik apparna i operativsystemet för smarta telefoner, där apparna körs under kontrollerad resursåtkomst.

Vissa stora GUI-program, t.ex. webbläsare på Debian, använder också sandboxmiljöteknik internt för att göra dem säkrare.


Det finns flera sätt att ansluta från ett program på en fjärrvärd till X-servern, inklusive xwayland på den lokala värden.


Åtkomst till den lokala X-servern för de lokala program som använder X core-protokollet kan anslutas lokalt via ett lokalt UNIX-domänuttag. Detta kan godkännas av auktoritetsfilen som innehåller en åtkomstcookie. Behörighetsfilens plats identifieras av miljövariabeln "$XAUTHORITY" och X-display identifieras av miljövariabeln "$DISPLAY". Eftersom dessa normalt ställs in automatiskt behövs ingen speciell åtgärd, t.ex. "gitk" som följande.

username $ gitk
[Notera] Notera

För xwayland har XAUTHORITY ett värde som "/run/user/1000/.mutter-Xwaylandauth.YVSU30".

För att klippa text till klippbordet, se Avsnitt 1.4.4, ”Operationer med musen”.

För att klippa grafik till klippbordet, se Avsnitt 11.6, ”Grafiska dataverktyg”.

Vissa CLI-kommandon kan också manipulera urklipp för tecken (PRIMARY och CLIPBOARD).