Opi Linux 101: Asenna ja määritä X11

X-ikkunan konfigurointitiedosto

X:n alkuaikoina näytön konfigurointi edellytti laajaa tietämystä näytön kyvyistä ja kykyä ilmaista tietoja paitsi resoluutiosta myös vaaka- ja pystysuuntaisista synkronointiarvoista, värisyvyydestä ja niin edelleen. VESA:n (Video Electronics Standards Association) ja DDC-protokollien (Display Data Channel), joiden avulla näyttö voi välittää nämä ominaisuudet näytönohjaimelle ja siten tietokoneelle, käyttöönoton jälkeen konfiguroinnista on tullut paljon automaattisempaa. Tämä on onnekasta, sillä nykyään odotamme voivamme ottaa kannettavamme mukaan minne tahansa ja vain liittää siihen saatavilla olevan ulkoisen näytön tai projektorin.

Myös hiiren, ratapallon tai näppäimistön konfiguroinnista on tullut automaattisempaa. Yleensä laite vain kytketään, usein USB-liitännän kautta, ja se toimii.

Mutta kuten useimmille asioille Linuxissa, on olemassa taustalla oleva konfigurointimekanismi, jota voi käyttää. Itse asiassa X:n Xorg-toteutus saa konfiguraatiotietoja useista lähteistä. Tärkein konfigurointitiedosto on xorg.conf, yhdessä xorg.conf.d-hakemiston sisältämien tiedostojen kanssa. Nämä sijaitsevat yleensä tiedostossa /etc/X11. Lisäkonfiguraatioita voidaan saada komentorivin asetuksista, ympäristömuuttujista, automaattisesta tunnistuksesta ja oletusasetuksista.

Xorg.conf-konfiguraatiotiedosto ja xorg.conf.d-hakemistossa olevat tiedostot on järjestetty osioihin, jotka voidaan määrittää missä tahansa järjestyksessä. Yleinen osioiden muoto on esitetty Listauksessa 1.

Listaus 1. Osioiden asettelu xorg.conf-tiedostossa

 Section "SectionName" SectionEntry ... EndSection

Näytä lisääNäytä lisää -kuvake

Xorg optiolla -configure. Komento Xorg on itse asiassa symbolinen linkki komennosta X, joka sijaitsee yleensä osoitteessa /usr/bin. Komento Xorg on ajettava pääkäyttäjänä ja varmistettava, että mikään X-palvelin ei ole käynnissä. Yksi tapa tehdä tämä on muokata GRUB2-stanzaasi käynnistymään monikäyttäjätilaan ilman X:ää. Perinteisesti tämä on runlevel 3. Muokkaa yksinkertaisesti käynnistysvalikon merkintää, jonka haluat käynnistää, ja lisää 3 rivin `linux boot/vmlinuz…’ loppuun, kuten kuvassa 2 on esitetty.

Kuva 2. Käynnistyminen monikäyttäjätilaan ilman X:ää

Jos käytät systemd:tä, voit käyttää systemd.unit=multi-user.target:tä 3:n sijasta.

Xorg -configure lataa käytettävissä olevat laiteajurit ja laitteiston anturit. Se toimii monissa järjestelmissä, mutta man-sivun mukaan sillä on ongelmia joissakin järjestelmissä. Fedoran dokumentaatio suosittelee :1-näytön käyttämistä oletusarvoisen :0-näytön sijaan, joten voit kokeilla Xorg :1 -configure, jos pelkkä Xorg -configure ei toimi.

Listauksessa 2 on esimerkkitiedosto, joka on luotu tällä menetelmällä openSUSE Tumbleweed -järjestelmässäni.

Listaus 2. Esimerkki xorg.conf

Jos näyttösi tukee DDC:tä, kuten useimmat nykyaikaiset näytöt tukevat, voit kysyä sen ominaisuuksia komennolla xrandr. Listaus 4 näyttää drm-tiedot kannettavalle tietokoneelle, johon on liitetty näyttö, ja vastaavan xrandr:n tulosteen.

Listaus 4. Näytön kyvykkyyksien määrittäminen xrandr:n avulla

XkbVariant määrittelee, mitä muunnelmia kahdesta asettelusta tulisi käyttää. Jos kyseessä on us-asettelu, käytetään sen oletusmuunnosta. Jos kyseessä on sk-asettelu, käytetään sen qwerty-muunnosta. XkbOptions -vaihtoehto osoittaa, että käyttäjät voivat vaihtaa asettelun välillä CapsLock-näppäimellä.

Luettelo 5. Näppäimistön kokoonpanon päivittäminen

localectl. localectl status osoittaa kuitenkin, että nämä muutokset poimittiin, kun järjestelmä käynnistettiin uudelleen, kuten listaus 6 osoittaa.

Listaus 6. Näppäimistön tilan näyttäminen localectl:n avulla

Näytönhallintaohjelmat jakautuvat kolmeen yleiseen kategoriaan.

  1. Kerrosikkunanhallintaohjelmat jakavat ruudun laatikoihin ja kirjoittavat jokaisen laatan erikseen muista. Suorituskyky on yleensä hyvä.
  2. Pinoavat ikkunamanagerit pinoavat yksittäiset ikkunat näytölle Z-järjestykseksi kutsuttuun luetteloon. Kun uudelle ikkunalle annetaan tarkennus, se asetetaan Z-järjestyksen yläpäähän ja kaikki alemmat ikkunat piirretään uudelleen. Tämä voi olla hidasta erityisesti pienten muutosten kohdalla, mutta siihen on kehitetty useita optimointeja.
  3. Yhdistävät ikkunanhallintaohjelmat ovat yleensä pinoavia ikkunanhallintaohjelmia, jotka pitävät puskuria jokaiselle ikkunalle ja yhdistävät ne sitten yhdeksi puskuriksi näyttöä varten ilman, että jokaista yksittäistä ikkunaa tarvitsee piirtää uudelleen ja sen jälkeen kirjoittaa se Z-järjestyksessä seuraavaksi ylempänä olevan ikkunan päälle. Tämä mahdollistaa myös läpinäkyvyyden kaltaiset efektit.

Kuvassa 3 on esimerkki I3:n laatoitusikkunanhallinnasta. Aloitetaan tyhjällä työpöydällä ja luodaan sitten ikkuna, esimerkiksi pääteikkuna. Tämä vie koko näytön. Sitten voit avata toisen ikkunan, joka jakaa alkuperäisen laatoituksen kahtia. Jos avaat sitten toisen ikkunan, näyttö jaetaan kolmeen laattaan. Voit luoda uudet laatat vaaka- tai pystysuoraan. Tässä esimerkissä päätin jakaa sudokupelin sisältävän alkuperäisen keskimmäisen laatan pystysuoraan ja luoda toisen pienen pääteikkunan. Sitten halkaisin sen vaakasuunnassa lisätäkseni xlcock-ikkunan.

Kuva 3. I3:n laatoitusikkunanhallinta

Ikkunoita voi yleensä siirtää virtuaalisten työpöytien välillä, mikä auttaa paljon, jos sinulla on useita suuria ikkunoita auki.

Varalla olevien sovellusten luettelon voi avata valikkona ruudun yläreunassa, ja sovelluksia voi valita hitaalla vaakasuoralla vierittämisellä tai nopeammin kirjoittamalla osan nimestä tai sen koko nimen, kuten ’xclock’.

Toisin kuin laatoitusikkunanhallinnassa, pinoamisikkunanhallinnassa voit käyttää minkä tahansa kokoisia ikkunoita, joita näyttö tukee, mukaan lukien ikkunat, jotka voivat olla päällekkäin näytön reunan kanssa. Kuvassa 4 on esimerkki Openbox-pinoamisikkunanhallinnasta, jossa näkyy neljä päällekkäistä ikkunaa ja valikko, jonka avulla voit avata uusia sovelluksia.

Kuva 4. Openboxin pinoamisikkunanhallinta

Perus pinoamisikkunanhallinta toimii sillä periaatteella, että kaikki näytön ikkunat piirretään uudelleen, kun tarkennusikkuna vaihtuu tai sitä siirretään, suljetaan tai sen kokoa muutetaan. Tämä voi johtaa siihen, että näytön eri alueet kirjoitetaan useaan kertaan uudelleen, kun koko Z-järjestystä käsitellään. Algoritmeja voidaan käyttää tarpeettomien uudelleenkirjoitusten määrän minimoimiseksi.

Parannus pinoamisen perusideaan on sommitteleva ikkunanhallinta. Tällainen ikkunanhallinta pitää puskuria jokaisen ikkunan sisällöstä ja yhdistää tai sommittelee ne yhdeksi ikkunaksi. Vain päivitetyt osat tarvitsee sitten kirjoittaa näyttökortin puskuriin. Compiz on yksi esimerkki sommittelevasta ikkunanhallinnasta, ja myös KDE:n ja GNOME:n kaltaiset työpöytäympäristöt käyttävät sommittelevia ikkunanhallintaohjelmia.

Työpöytäympäristö tarjoaa yleensä täydellisen käyttökokemuksen, kuten graafisen kirjautumistervehdyksen, graafiset järjestelmävalikot, lokeron, jossa näkyvät widgetit, kuten kellonaika, avoimien sovellusten kuvakkeet ja niin edelleen. Integroitujen sovellusten sarja tarjoaa yleensä käyttäjälle yhtenäisen käyttökokemuksen. Useimmat ikkunanhallintaohjelmat ovat paljon kevyempiä kuin täydellinen työpöytäympäristö.

Kuvassa 5 havainnollistetaan läpinäkyvyyden käsitettä sommittelevassa ikkunanhallintaohjelmassa tai työpöytäympäristössä. Pidä hiiren vasen painike (painike 1) alhaalla pääteikkunan otsikkorivillä, kun valmistaudut siirtämään sitä. Näyttö muuttuu näyttämään, mitä ikkunoita kyseisen alueen alapuolella on. Tämä saattaa auttaa sinua siirtämään yhden ikkunan pois toisen ikkunan päältä, kun haluaisit molempien olevan näkyvissä.

Kuvio 5. Ikkunan siirtäminen. Läpinäkyvyys KDE Plasma -työpöydällä

Kuvio 6 havainnollistaa GNOME 3.28:a Fedoralla. Napsauttamalla vasemmassa yläkulmassa olevaa Aktiviteetit-painiketta aukeaa näytön vasemmalle puolelle kuvakkeilla varustettu suosikkiluettelo ja näyttää joukon käynnissä olevia sovelluksia pieninä ikkunoina. Voit napsauttaa suosikkia, napsauttaa pientä ikkunaa tai käyttää näytön yläreunassa olevaa hakukenttää ohjelman etsimiseen. Tässä nimenomaisessa esimerkissä olen napsauttanut yläpalkissa olevaa päivää ja kellonaikaa avatakseni widgetin, joka näyttää joitakin viestejä, kuten käytettävissä olevat päivitykset tai viimeksi suoritetun komennon, sekä lisätietoja päivämäärästä ja kellonajasta. Oikeassa yläkulmassa olevilla kuvakkeilla pääsee käyttämään toimintoja, kuten kaiuttimen äänenvoimakkuutta, verkkoasetuksia, saavutettavuusasetuksia ja sammutus-, uloskirjautumis- tai uudelleenkäynnistysvaihtoehtoja.

Kuvio 6. Käyttäjä voi valita, mitä toimintoja hän käyttää. Fedoran GNOME-toiminnot ja widgetit

Mainitsin, että työpöytäympäristöt sisältävät usein integroituja sovelluksia, joiden avulla voit hallita työpöydän tai järjestelmän eri osa-alueita. Kuvassa 7 on Fedora GNOME 3.28:n asetusten valintaikkuna auki näyttöasetusten kohdalla. Tämä esimerkki on kannettavasta tietokoneesta, jossa on ulkoinen Viewsonic-näyttö. Yleisiä valintoja tässä tapauksessa ovat kahden näytön yhdistäminen yhdeksi näytöksi tai toisen näytön sisällön peilaaminen toiselle näytölle. Tässä tapauksessa valitsemme kahden näytön yhdistämisen niin, että sisäänrakennettu näyttö on loogisesti ulkoisen näytön oikealla puolella.

Kuva 7. Näytön yhdistäminen. Fedora GNOME -näytön asetukset -valintaikkuna

Mikäli voit muuttaa näytön resoluutiota xorg.conf-tiedostossa, voit myös käskeä compositoria skaalaamaan ikkunan joko 100 tai 200 prosenttiin. Käytettävissä oleva skaalaus voi riippua näytön koosta sekä tietystä käyttämästäsi työpöydästä. Minulla on myös UHD (4K) -monitori ja silmät, jotka eivät pysty lukemaan hyvin pientä natiivia tekstin resoluutiota. Niinpä käytän tällä näytöllä usein skaalauskerrointa 200 %.

Huomaa, että GNOME-asetusten avulla tehdyt muutokset eivät päivitä xorg.conf-tiedostoa. Sen sijaan nämä asetukset tallennetaan kotihakemistosi .config/monitors.xml-tiedostoon. GNOME ylläpitää myös muita näyttö- ja näppäimistöasetuksia dconf-tietokannassa, joka löytyy myös kotihakemistosi alta. Kun nämä asetukset ovat kotihakemistossasi, ne koskevat vain sinua. Muilla käyttäjillä voi olla erilaisia asetuksia.

Jos sinulla on asennettuna useita työpöytäympäristöjä tai ikkunanhallintaohjelmia, saatat ihmetellä, miten voit valita niiden välillä. Voit käynnistyä monikäyttäjätilaan, kuten aiemmin tässä oppaassa on kuvattu, ja sitten suorittaa komennon kuten startx käynnistääksesi X:n sopivalla managerilla. Jos sinulla on työpöytäympäristö, kuten GNOME, joka tarjoaa tervehdyksen,sinulla on luultavasti asetusvalinta tervehdysnäytössä. Kuvassa 8 on Fedora 28 -järjestelmääni asennetut valinnat.

Kuva 8. Fedora GNOME 3:n tervehdysikkuna WM-valinnalla

Hallitse pääsyä X-palvelimelle ja näytä sovellukset etänä

Tähän mennessä olet nähnyt esimerkkejä X:n toimimisesta työpöytätietokoneessa, jossa on yksi tai kenties kaksi näyttöä. X-palvelin käsittelee yhtä näyttöä kokoelmana näyttöjä, jotka jakavat yhteisen joukon syöttölaitteita.

Kuvassa 7 esitetyssä kannettavassa tietokoneessa on siis yksi näyttö, vaikka siinä on sisäänrakennettu näyttö ja ulkoinen näyttö. Tässä esimerkissä nämä kaksi näyttöä toimivat ikään kuin yhdistettyinä. Tämä muodostaa yhden loogisen näytön, jonka avulla ikkunoita voidaan siirtää monitorien välillä tai jopa jakaa niiden välillä. Monikäyttäjäjärjestelmissä on yleensä useita näyttöjä, joten tarvitaan tapa kuvata ne.

X käyttää näyttöihin kolmiosaista nimeä muodossa hostname:displaynumber.screennumber, jossa hostname on tietokoneen isäntänimi, displaynumber on 0:lla alkava numero, joka kuvaa tiettyä näyttöä, ja screennumber pätee, jos kahta tai useampaa näyttöä käsitellään erillisinä näyttöinä eikä yhtenä loogisena näyttönä. Sekä hostname että screennumber voidaan jättää pois, joten tavallisin näyttömerkintä on :0. Voit nähdä nykyisen asetuksesi ympäristömuuttujasta DISPLAY, kuten Listauksessa 7 näkyy.

Listaus 7. DISPLAY-ympäristömuuttuja

ian@attic5-u18:~$ echo $DISPLAY:0

Show moreShow more -kuvake

DISPLAY asettaminen antaisi kenelle tahansa käyttäjälle mahdollisuuden kirjoittaa tulosteita näytöllesi, mutta X:ssä on joitain pääsynvalvonnan rajoituksia. Näytän kolme tapaa muodostaa yhteys X-palvelimeen.

  1. Käytä ssh:ta X-tiedonsiirrolla
  2. Käytä Xauthorityä ja xauth:ta
  3. Käytä isännän tai käyttäjän hallintaa xhost:lla

Turvallisin tapa käyttää X:ää jollakin muulla näytöllä on käyttää X-tiedonsiirtoa (jota kutsutaan joskus tunneloinniksi). Tämä on otettava käyttöön SSH-palvelimessa, johon muodostat yhteyden, rivillä X11Forwarding yes asetustiedostossa /etc/ssh/sshd_config. Se on otettava käyttöön myös asiakkaalla määrittämällä ssh-komennossa -X (iso X). Listauksessa 8 verrataan, mitä tapahtuu, jos käytän su - jane vaihtaakseni järjestelmässäni käyttäjäksi jane ja käytän sitten ssh -X jane@localhost. Molemmissa tapauksissa yritän suorittaa komennon xclock näyttääkseni pienen kellon näytölläni.

Listaus 8. X forwarding

DISPLAY on asetettu localhost:10.0:aan. sshd-palvelin luo sinulle käytännössä X-palvelimen kohdejärjestelmään. Et halua tämän häiritsevän järjestelmän oikeita X-palvelimia. Siksi konfiguraatiotiedostossa /etc/ssh/sshd_config on rivi X11DisplayOffset 10, jolla määritetään X-palvelimien aloitusväli (0:sta) ssh:n kautta. Oletusarvo on 10, mikä yleensä riittää yhden käyttäjän työasemalle, mutta sitä on ehkä lisättävä usean käyttäjän järjestelmässä. Toiselle ssh-yhteydelle palvelimelle määritettäisiin näyttö 11 ja niin edelleen.

Toinen tapa antaa muille mahdollisuus muodostaa yhteys X-palvelimeen on Xauthority-menetelmä. Xauthority-tiedosto sisältää valtuutustiedot, joita käytetään, kun muodostetaan yhteys X-palvelimeen. Ympäristömuuttuja XAUTHORITY määrittää tällä hetkellä käytössä olevan tiedoston nimen, joko järjestelmän luoman tiedoston, kuten /run/user/1000/gdm/Xauthority Ubuntu 18 -järjestelmässäni, tai oman .Xauthority-tiedoston.

Käytä komentoa xauth luetellaksesi, poimiaksesi tai liittääksesi uusia auktoriteetteja. käytä -f-vaihtoehtoa määrittääksesi muun Xauthority-tiedoston kuin sen, joka on ympäristömuuttujassasi XAUTHORITY. Voit määrittää xauth-komentoja komentorivillä tai käynnistää ohjelman ja käyttää komentoja ohjelman sisällä. Listaus 9 näyttää joitakin esimerkkejä ja poimii näytön :0 valtuutukseni tiedostoon nimeltä auth-ian.

Listaus 9. Valtuutustietojen poimiminen xauthin avulla

XAUTHORITY. Käyttäjä jane voi sitten näyttää sovelluksia näytölläni.

Listaus 10. Viranomaistietojen yhdistäminen xauth:n avulla

xhost-komentoa. Työasemalla voit hyvinkin käyttää tätä, jotta voit avata graafisia ohjelmia toimiessasi toisena käyttäjänä. Komento xhost ilman asetuksia näyttää nykyisen pääsynvalvontaluettelon. Käytä +-vaihtoehtoa nimen kanssa salliaksesi lisää järjestelmiä tai käyttäjiä. Listauksessa 11 näytetään, miten paikallisen järjestelmän käyttäjä john lisätään pääsynvalvontaluetteloon, ja sen jälkeen näytetään, miten käyttäjä john avaa graafisen xclock-ohjelman.

Listaus 11. Yksittäisen paikallisen käyttäjän ottaminen käyttöön xhostin avulla

xhost +local: otat käyttöön kaikki paikalliset ei-verkkokäyttäjät, kuten listaus 12 osoittaa. Huomaa kaksoispiste (:) local:n lopussa.

Listaus 12. Käyttämällä xhostia otat käyttöön kaikki paikalliset ei-verkkokäyttäjät

+:n sijasta poistaaksesi merkinnät, jotka olet ottanut käyttöön. Katso lisävaihtoehtoja xhost man- tai info-sivuilta.

Turvallisuuden vuoksi kannattaa käyttää SSH-tunnelointia tai mahdollisesti jotain muuta ratkaisua, kuten Virtual Network Computing (VNC), eikä xauth:tä tai xhost:tä. VNC ei kuulu tämän opetusohjelman piiriin, mutta se tarjoaa paremman suorituskyvyn kuin SSH-tunnelointi.

Kun asiat menevät pieleen

Koska X-konfiguraatiotietojen mahdollisia lähteitä on niin paljon, sinun on tiedettävä, mistä etsiä lokitietoja. Yksittäiseen X-istuntoosi liittyvät virheet voivat sijaita .xsession-errors- tai mahdollisesti .xsession-errors-:0 -luettelossa kotihakemistossasi. Pääte :0 tarkoittaa virheitä näytöllä :0.

Pääasiallinen X-loki sijaitsee osoitteessa /var/log. Nimi on yleensä /var/log/Xorg.0.log, jossa 0 on näytön numero. Numero on eri, jos et käytä display :0.

Wayland, uusi sommitteluikkunanhallinta

Viime aikoina on kehitetty uusi näyttöpalvelin ja sommitteluprotokolla nimeltä Wayland. Tässä mallissa sovellukset, luovat ikkunoidensa sisällön itse näytön ulkopuoliseen puskuriin. Kompositori ja palvelin on integroitu. Waylandin tarkoituksena on tarjota X:ää yksinkertaisempi ja tehokkaampi ratkaisu. Wayland käyttää enimmäkseen uudelleen olemassa olevia ajureita ja infrastruktuuria, mikä tekee projektin mahdolliseksi.

X:stä poiketen Wayland ei ole verkon läpinäkyvä. Muita ratkaisuja, kuten VNC:tä, voidaan käyttää, jos tarvitaan etäikkunanäyttöä.

Weston on Waylandin toteuttava referenssikooste. GNOME, KDE, Enlightenment ja useat muut ikkunanhallintaohjelmat tukevat nyt Waylandia. Työkalupaketit kuten Qt 5 ja GTK+ tukevat myös Waylandia. Tätä kirjoitettaessa (joulukuussa 2018) sekä Fedora että Ubuntu toimittavat Waylandin oletusnäyttöpalvelimena.

Xorg-palvelin sisältää nyt XWaylandin, joka mahdollistaa nykyisten X-sovellusten käyttämisen Wayland-komposiittorilla.

Useimmissa tämänhetkisissä toteutuksissa on edelleen valittavissa, ajetaanko jokaista istuntoa varten joko X:ää vai Waylandia. Kuvassa 7 on esimerkki siitä, miten GMS:n tervehdyksen avulla voit valita istuntotyypin. Fedorassa oletuksena on, että GNOMEa ajetaan Waylandilla.

Voit tarkistaa sen myös suoritusaikana ilman kirjautumista. Jos käytät Waylandia, ympäristömuuttuja WAYLAND_DISPLAY asetetaan. Järjestelmissä, joissa käytetään systemd:tä, voit käyttää komentoa loginctl määrittääksesi kirjautumisistuntosi numeron ja käyttää sitä sitten uudelleen määrittääksesi istuntotyyppisi. Listauksessa 13 näytetään nämä työkalut ensin Fedora 28 -järjestelmässä, jossa käytetään Waylandia, ja sitten Ubuntu 18 -järjestelmässä, jossa käytetään Xorgia.

Listaus 13. Sen määrittäminen, käytätkö X:ää vai Waylandia

Vastaa

Sähköpostiosoitettasi ei julkaista.