next up previous contents
Vidare: Starta systemet. Uppåt: Inställningar. Tillbaka: Nätverksinställningar.

Fönstersystemet X.

Fönstersystemet X är det vanliga grafiska användargränssnittet (GUI) för alla UNIX-system, vilket även inbegriper Linux. I motsats till vad fallet är i Windows och MacOS, så är det grafiska användargränssnittet i Linux och Unix skilt ifrån operativsystemskärnan. Detta bidrar till systemets stabilitet: om det grafiska användargränssnittet störtar, så drar det inte med sig hela systemet i fallet.

Ett bekymmer med X är, att det länge varit besvärligt att konfigurera för ett visst bestämt system. Emellertid har Slackware version 7 infört en konfigureringsfri X-inställning, som använder framebuffer-drivaren. Detta innebär, att man inte nödvändigtvis måste gå igenom avsnittet om xf86config på s. gif eller avsnittet om XF86Setup på s. gif. Denna s.k. framebuffer fungerar med vilket som helst grafikkort (bildskärmskort), som innehåller normen VESA 2.0.gif Detta betyder, att nästan vilket som helst modernt bildskärmskort fungerar under X. Emellertid är denna framebuffer märkbart långsammare än en för systemet och dess grafikkort skräddarsydd X-inställning.

Om man väljer att använda framebuffer-servern för X, så skall man installera paketet xxfb.tgz (slakware/x1/xxfb.tgz ur programvaruserien för X-programvara). Man skall också välja en upplösning för textläge (konsolläge) under installationen. Det för X anbefallna valet är förmodligen det lämpligaste för de flesta.

Om man väljer att konfigurera X särskilt för sitt eget system, så måste man följa anvisningarna i avsnittet om xf86config på s. gif eller avsnittet om XF86Setup på s. gif. Det första av följande två avsnitt skildrar bruket av xf86config(1), som är ett kommandoradsbaserat program för konfigurering av X. Det därpå följande avsnittet skildrar XF86Setup(1), som är en grafisk version av konfigureringsprogrammet.

xf86config.

 

Översättarens anmärkningar till detta avsnitt år 2004–2005: Programmet SuperProbe medföljer inte XFree86 4.x . I stället kommenderar man för XFree86 XFree86 -configure, för att XFree86 skall känna av, vad man har för grafikkort. Se vidare man XFree86 om användningen. Från Slackware 10.1 ingår i stället för XFree86 xorg, vilket konfigureras med endera xorgconfig (motsvarar xf86config i tidigare slackwareutgåvor) eller xorgcfg (motsvarar XF86Setup i tidigare slackwareutgåvor). Se vidare man xorgconfig respektive man xorgcfg om användningen.

Programmet xf86config är ett av två, vilka kan användas till att konfigurera X för ett visst bestämt system. Dess grundtanke är enkel: man får en rad flervalsfrågor. Av de olika svaren på var fråga väljer man det för systemet närmast träffande. Efter att hela programmet xf86config är genomgånget, skrives filen /etc/XF86Config(5) och fönstersystemet X är sedan färdigt att användas. Skulle man göra fel under körningen av xf86config, så får man avbryta programmet med Ctrl-c och börja om ifrån början igen.

Det är till god hjälp, om man vet så mycket som möjligt om bildskärmen och grafikkortet innan man startar xf86config. Man kan skaffa sig en del upplysningar om bildskärmskortet med hjälp av programmet SuperProbe:

   # SuperProbe

Därvid får man en varning om, att programkörningen möjligtvis kan leda till, att systemet hänger sig. Den som skrämmes av denna varning, kan avbryta genom tryckning på Ctrl-c inom fem sekunder. I annat fall kan man få en del upplysningar om grafikkortet:

        First video: Super-VGA
        Chipset: ATI 264GT3 (3D Rage Pro) (Port Probed)
        Memory: 4096 Kbytes
        RAMDAC: ATI Mach64 integrated 15/16/24/32-bit
                DAC w/ clock
                (with 8-bit wide lookup tables)
                (programmable for 6/8-bit wide lookup tables)
        Attached graphics coprocessor:
                Chipset: ATI Mach64
                Memory: 4096 Kbytes

Så kan det se ut, om man har ett ATI Rage Pro. Man skriver ner de upplysningar, SuperProbe lämnat, eller också växlar man till en annan virtuell terminal med en tangentkombination i stil med Alt-F2 o.s.v. och kör xf86config där i stället. Upplysningarna om grafikkortet behövs senare, så att skärmbilden med resultatet av SuperProbe skall lämnas orörd, om man inte skrivit av dem. Programmet xf86config måste köras av root, eftersom det skall skriva filer och skapa symboliska länkar i kataloger, där endast root har skrivrätt:

   # xf86config

När man väl har startat xf86config, så visar det en skärmfull text om vad, det skall göra. Man skall därvid tänka på, att det ingen återvändo finns till föregående skärmbild, om man skulle begå något fel; så det gäller att hela tiden välja med omsorg och tänka sig för, innan man väljer. Eljest kan man bli tvungen att gå igenom hela programmet flera gånger. Efter första skärmbilden med text skall man trycka på Retur, såsom man får besked på.

Mouse protocol (musprotokoll)

 figure1139
: Ange musprotokoll.

Här väljer man mus ifrån en lista. Nuförtiden är möss i allmänhet endera av typen PS/2 eller Microsoft Intellimouse. Äldre möss kan fordra, att man väljer någon av de andra typerna på listan. Om man har en Logitech-mus med PS/2-kontakt, är den troligen PS/2-kompatibel, så att man väljer PS/2.gif

Emulate3Buttons (emulera tre knappar)

 figure1154
: Emulera tre knappar på tvåknapparsmus.

Om musen bara har två knappar, så kan man välja att emulera en tredje knapp.gif När sedan vänster och höger musknapp trycks ner tillsammans, så tolkas det som en tryckning på den mittknapp, vilken egentligen saknas. Eftersom många program drar nytta av tredje (mellersta) knappen, så anbefalles det, att man gör treknappsemuleringen verksam.

Mouse device name (musens enhetsnamn)

 figure1161
: Musens enhetsfil i katalogen /dev.

Förvalet /dev/mouse är vanligen det riktiga. Har man emellertid anslutit musen på något ovanligt sätt, så kan man behöva ändra detta. Med flertalet seriemöss och PS/2-möss är dock förvalet det bästa valet.gif

XKEYBOARD extension (XKB)

 figure1172
: Välja XKB för tangentbordshantering.

Man vill förmodligen använda XKB. Om man inte väljer detta, kan det hända, att vissa tangenter (t.ex. Backspace och Delete) uppför sig på oväntat sätt, eller att vissa tangentkombinationer inte fungerar.gif

Bindings for alt keys (Alt-tangenterna)

Om man vill kunna få fram ytterligare tecken förutom dem, man får med eller utan tryckning på omskiftartangenten, så skall man godta det val, som erbjudes här. Det innebär nämligen bl.a., att högra Alt-tangenten kommer att fungera just så, som man förväntar sig att en AltGr-tangent skall fungera. Den är ju också mycket riktigt märkt »AltGr«.

Horizontal sync range (linjefrekvens)

 figure1190
: Ange gränser för bildskärmens möjliga linjefrekvenser.

Detta är den första fråga, som har med bildskärmen att göra. Det är viktigt, att man gör ett klokt val här. Man skall akta sig för att välja ett område för horisontell synkronisering (linjefrekvens), vilket ligger utanför det område, bildskärmen är avsedd att arbeta med. Detta är av mindre betydelse för någorlunda nya bildskärmar, eftersom de inte ens försöker arbeta utanför dessa gränser. Äldre skärmar kan man emellertid förstöra, om man försöker driva dem utanför föreskrivna gränser. Är man osäker, bör man välja försiktigt och nöja sig med lägre linjefrekvens hellre än fördärva sin bildskärm.

För nyare skärmar kan man förmodligen välja 31.5-48.5 eller 31.4-57.0. Till högvärdigare skärmar jan man välje större frekvensområden. Om man vet bildskärmens gränser för linjefrekvensen (horisontella frekvensen), kan man välja att föra in sina egna värden.

Vertical sync range (bildfrekvens)

 figure1196
: Ange gränser för bildskärmens möjliga bildfrekvenser.

Återigen är det nödvändigt att känna till bildskärmens specifikationer, för att man skall kunna besvara denna fråga om vertikal synkronisering (bildfrekvens). Skulle man hysa tvivel, är det bäst att välja försiktigt, d.v.s. ett smalt frekvensområde. Man håller sig förmodligen på den säkra sidan, om man väljer 50-90 eller 50-100. Om man känner till bildskärmens bildfrekvens (vertikala frekvensen), kan man välja att föra in sina egna värden.

Identification strings (bildskärmsbeskrivning)

Man får här i tur och ordning skriva in tre uppgifter om bildskärmens typ, tillverkare och modellbeteckning. Detta är inte särskilt viktigt. Det går bra att skriva in vad som helst här, eller också kan man helt enkelt trycka på Retur utan att skriva något. Det, man skriver in här, användes i konfigureringsfilen som kännemärken i olika avsnitt.

Video card database (grafikkortsdatabas)

 figure1204
: Ange grafikkort eller grafikkrets.

Nästa betydande avsnitt i X-konfigureringen handlar om grafikkortet (bildskärmskortet). Den dokumentation, som är tillgänglig för kortet, kommer nu väl till pass tillsammans med de upplysningar, SuperProbe har lämnat. För att få se grafikkortsdatabasen måste man svara med bokstaven »y« och först därefter trycka på Retur. Trycker man bara på Retur utan att skriva »y«, så går man förbi kortdatabasen och vidare till nästa avsnitt.

Där finns mer än 800 kort i databasen. Vänstra spalten innehåller ett nummer för vart kort tillsammans med kortets namn. Högra spalten innehåller namnet på kortets kretsuppsättning (chipset). Man trycker gång på gång ner tangenten Retur, tills det kort, man själv har, visas på listan. Först då matar man in kortets nummer (står i vänstra spalten) och trycker på Retur. Kan man inte hitta kortet på listan, finns ytterligare några möjligheter. För det första kan man använda SuperProbe:s uppgift om chipset och på listan leta upp ett kort, som använder samma chipset (kretsuppsättning). Eller också kan man välja en generell SVGA-drivare. Många kort, som ingen egen X-server har, fungerar med SVGA-servern, så att detta möjligen kan vara ett ofarligt val.

När man har bestämt sig för ett kort, så får man en del ytterligare upplysningar. Om vi fortsätter på exemplet med ATI Rage Pro ovan, så skulle vi få följande upplysningar:

Your selected card definition:

   Identifier: ATI Mach64
   Chipset:    ATI-Mach64
   Server:     XF86_Mach64
   Do NOT probe clocks or use any Clocks line.

Nu är det dags att förvissa sig om, att motsvarande serverpaket verkligen är installerat. X-servern XF86_Mach64 finns i paketet xma64.tgz. Rätt serverpaket måste vara installerat, eljest kommer X icke att köra igång.

Which server to run? (Vilken server skall köras?)

 figure1227
: Välja X-server.

Nästa fråga förelägger användaren ett val emellan flera olika möjliga X-servrar. Om man har gjort rätt vid valet av grafikkort, så kan man utan vidare trycka på Retur. Därigenom väljes nämligen den server, som motsvarar det angivna kortet. I annat fall kan man välja mellan Mono-servern, VGA16-servern, SVGA-servern eller en accelererad server. Lämpligaste val är att använda den server, som motsvarar angivet kort.

Setting the symbolic link (sätta den symboliska länken)

 figure1238
: Sätta symbolisk länk.

Välj »y«, så sättes den symboliska länken. Detta innebär, att filnamnet X förknippas med filnamnet på vald X-server genom att X skapas såsom länk till serverns filnamn.

Video memory (grafikkortsminne)

 figure1249
: Ange grafikkortets minnesstorlek.

Här anger man, hur mycket minne, som sitter på grafikkortet. Ibland kan man få motsvarande information genom att köra SuperProbe. Har man mer än förvalen, väljer man »Other« och skriver in rätt minnesstorlek i kilobyte (kB); 8 MB (megabyte) är t.ex. lika med 8192 kB.

Identification strings (grafikkortsbeskrivning)

Här får man tillfälle att skriva in ytterligare tre textrader, som denna gång är förknippade med grafikkortet. Liksom fallet var med bildskärmstexterna, så kan man skriva vad som helst här eller bara trycka på Retur, ifall man inte vill ha något namn på grafikkortet i inställningsfilen.

RAMDAC (DA-omvandlare på grafikkortet)

Det är enbart vid vissa X-servrar för S3-, AGX- och W32-kort, som man behöver ange RAMDAC.gif Genom SuperProbe kan man få reda på vilken RAMDAC, som sitter på grafikkortet. Man bläddrar igenom listan, tills rätt krets visas; då skriver man in motsvarande nummer och trycker på Retur. Behöver man inte ange RAMDAC, så skriver man »q« och trycker på Retur.

Clockchip setting (programmerbar taktkrets)

 figure1270
: Ofta behöver man inte välja clockchip, utan kan gå vidare.

Om kortet har en programmerbar taktkrets, väljer man en ifrån listan. Flertalet kort har ingen sådan clockchip, så att man för det mesta helt enkelt kan trycka på Retur och gå vidare. Om en sådan klockkrets finnes på grafikkortet, så bör man få reda på det vid körning av SuperProbe.

Clocks line

Nästa skärm berättar om, vad en clocks line är för någonting. Såsom det där förklaras, så behöver man ingen klockrad till moderna utrustningar. Därefter blir man tillfrågad om, huruvida programmet skall försöka avkänna förekomst av klocka. Det talar även om, huruvida kortet behöver avkännas eller ej. I fallet med ATI-kortet, så säger xf86config t.ex.:

   The card definition says to NOT probe clocks.

Om det säger något i den stilen, så väljer man »n« såsom svar på frågan om att avkänna (probe for) klockor. Mycket gamla grafikkort behöver avkännas, men xf86config talar om vilketdera, som behöver göras.

Video modes (upplösningar och antal färger)

 figure1288
: Välja upplösningar för olika färgdjup i X.

Nu är det dags att välja vilka upplösningar, X-servern skall använda vid de givna färgdjupen 8bpp, 16bpp, 24bpp och 32bpp. Var och en av dem uppvisar en lista över de upplösningar, som är möjliga vid färgdjupet ifråga. När man startar X, så börjar det med att visa ett förvalt färgdjup (t.ex. 8bpp lika med 256 färger) och använda den upplösning, som står först på listan för detta färgdjup (t.ex. 640x480 bildpunkter, om man inte har valt något annat). Om man vill, att X skall starta med någon annan upplösning än den förvalda, så är det dags nu att ändra på förinställningen.

Om man godkänner den ursprungliga ordningen på upplösningarna, så kan man välja »OK«, vilket leder vidare till nästa steg i konfigureringen. I annat fall väljer man det färgdjup, man vill ändra på. Antag exempelvis, att man får följande val:

          
   "640x480" "800x600" "1024x768" "1280x1024" for 8bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 16bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 24bpp
   "640x480" "800x600" "1024x768" for 32bpp

Om man då vill, att X såsom förval skall starta med någon annan upplösning, så väljer man först siffran som står först på raden med det färgdjup, man vill ändra upplösningen för. Man slår t.ex. in siffran 1 för att ändra på upplösningarna för 8bpp och trycker på Retur. Därefter följer man de anvisningar, xf86config ger. Ville man bara kasta om ordningen på upplösningarna, så skulle man kunna svara som så:

   Which modes? 5432

Här kan man även ta bort upplösningar. Om grafikkortet inte klarar av upplösningen 1280x1024, så finns ingen anledning att försöka ens. Man skulle då kunna ta bort denna upplösning genom att svara:

   Which modes? 432

När man har valt upplösningar för ett visst färgdjup, så blir man tillfrågad om, huruvida man vill ha en virtuell skärmbild, som är större än den fysiska skärmbilden. En virtuell skärmbild är en skärmbild, som är större än den bild, som kan visas på den verkliga bildskärmen. När man flyttar omkring muspekaren på den virtuella skärmen, så rullar den skärmbilden ett stycke innan den når fram till kanten. Där försiggår således en panorering i höjd- och sidled över skärmbilden, så att den verkliga skärmen visar en bit i taget av den virtuella skärmbilden. Just därför, att man inte ser hela skärmbilden på en gång, kan en sådan virtuell skärm vara tämligen irriterande. Det kan likväl vara en intressant leksak, så att somliga kanske har lust att prova på.

Efter detta val kommer man tillbaka till listan över upplösningar vid olika färgdjup. Sedan upplösningarna för färgdjupet 24bpp ändrats, skulle denna lista kunna se ut på följande vis:

   "640x480" "800x600" "1024x768" "1280x1024" for 8bpp
   "640x480" "800x600" "1024x768" "1280x1024" for 16bpp
   "1280x1024" "1024x768" "800x600" "640x480" for 24bpp
   "640x480" "800x600" "1024x768" for 32bpp

Man fortsätter med att ändra ordningen på upplösningarna, tills man är nöjd. När man är färdig med detta avsnitt, väljer man »OK« och fortsätter.

Write the config file (skriva inställningsfilen)

Nu skall X vara färdigkonfigurerat. Då frågar xf86config om det skall skriva inställningsfilen till /etc/XF86Config. Vill man kunna köra X, så skall man svara »y« på denna fråga, eftersom detta är den inställningsfil, X kommer att söka efter.

Om vi antar, att alla frågor besvarats riktigt, och motsvarande X-serverpaket installerats, så skall man nu kunna starta X med följande kommando:

   $ startx
Har man installerat KDE eller Gnome, så skall någon av dessa skrivbordsmiljöer uppenbara sig nu. I annat fall får man köra xwmconfig och välja den fönsterhanterare, man vill ha såsom förval. Fönsterhanterare (window managers) skall behandlas senare i detta kapitel. Programmet xwmconfig ställer in en viss fönsterhanterare såsom förval enbart för den användare, som kör xwmconfig. Om man har flera användare i systemet, så får var och en av dem välja fönsterhanterare själv.

Det finns några tangentkombinationer, som kan komma väl till pass, när man använder X. Om man någon gång måste lämna X men inte kan stänga det på riktigt sätt, så finns för detta ändamål en tangentkombination, som tvingar ner X. Om man trycker på Ctrl+Alt+Backspace, så dödas X och man kommer tillbaka till kommandoraden. Man kan även växla mellan X och kommandoradsterminalerna utan att stänga X. Det gör man genom att trycka på Ctrl+Alt tillsammans med någon av funktionstangenterna F1 till och med F6, vilket kan jämföras med växling mellan de virtuella terminalerna utanför X, där man använder tangentkombinationer med Alt och någon funktionstangent från F1 till och med F6, således utan Ctrl-tangenten. Själva X-körningen finns på terminal 7, så att man kan komma tillbaka in i X genom tryckning på Alt+7. Slutligen kan man även ändra upplösning med X igång. Tryckning på Ctrl+Alt tillsammans med + på räknemaskinknappsatsen ger närmast högre upplösning, medan tryckning på Ctrl+Alt tillsammans med - på räknemaskinknappsatsen ger närmast lägre upplösning. När högsta eller lägsta upplösning redan är nådd, leder nästa tryckning till, att varvet startas om ifrån början.

XF86Setup.

 

 figure1331
: Startbilden i XF86Setup.

Ett annat sätta att konfigurera X är att använda XF86Setup, som är ett grafiskt inställningsprogram och ingår i paketet xset.tgz. För att det skall fungera, behöver man även installera paketet xvg16.tgz.

Man kör XF86Setup genom att logga in som root och skriva:

   # XF86Setup

Om man redan har en fil vid namn /etc/XF86Config (t.ex. om man redan har konfigurerat X en gång), så blir man tillfrågad om, huruvida man vill använda inställningarna i befintlig XF86Config till förval. I annat fall går programmet direkt till grafikläge.

XF86Setup är väldigt likt xf86config. Det ställer samma slags frågor, men det lägger fram dem i en grafisk miljö. Om man undrar över, vad frågorna betyder, så kan man upplysa sig om det i föregående avsnitt. XF86Setup har även en mängd inbyggd hjälp, så att man inte skall ha några svårigheter med att komma underfund med det.

Inställningar för X och X-program.

xinitrc och ~/.xinitrc.

xinit(1) är det program, som egentligen sätter igång X; det anropas utav startx(1), så att man kanske inte märker detta (och förmodligen inte behöver märka det). Dess inställningsfil avgör emellertid vilka program (inberäknat och i synnerhet fönsterhanteraren), som skall köras, när X startar. xinit söker först efter en .xinitrc-fil i användarens hemkatalog. Om denna fil finnes, så användes denna, eljest systemets /var/X11R6/lib/xinit/xinitrc. Här är ett exempel på en xinitrc:

   #!/bin/sh
   # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
   userresources=$HOME/.Xresources
   usermodmap=$HOME/.Xmodmap
   sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
   sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

   # merge in defaults and keymaps
   if [ -f $sysresources ]; then
       xrdb -merge $sysresources
   fi

   if [ -f $sysmodmap ]; then
       xmodmap $sysmodmap
   fi

   if [ -f $userresources ]; then
       xrdb -merge $userresources
   fi

   if [ -f $usermodmap ]; then
       xmodmap $usermodmap
   fi

   # start some nice programs
   twm &
   xclock -geometry 50x50-1+1 &
   xterm -geometry 80x50+494+51 &
   xterm -geometry 80x20+494-0 &
   exec xterm -geometry 80x66+0+0 -name login

Alla dessa »if«-block finns med för att infoga inställningar ifrån andra filer. Vi skall om ett ögonblick gå vidare till .Xresources, men vi lämnar .Xmodmap för sig själv. Filens intressanta del finns framemot slutet, där olika program startas. Denna X-körning börjar med fönsterhanteraren twm(1), en klocka och tre terminalfönster. Lägg märke till exec före det sista xterm. Det ersätter körande skal (det, som exekverar detta xinitrc-skript) med kommandot xterm(1). När användaren avslutar detta xterm, så avslutas även X-körningen.

.Xresources och .Xdefaults.

Många X-program använder ett system, som kallas för X Resource Database för att inhämta diverse användarförval (typsnitt, färger o.s.v.). Denna databas underhålles genom programmet xrdb(1), som man sannolikt aldrig behöver köra direkt. I stället köres det i Slackware från xinitrc. Den fil, som xinitrc anger såsom källa för xrdb att söka olika val i, är ~/.Xresources. xrdb laddar även .Xresources, så endera av dessa filnamn fungerar. En minimal .Xresources ser ut så här:

   xterm*background: black
   xterm*foreground: gray
   xterm*scrollBar: true
   xterm*font: -*-lucidatypewriter-*-r-*-*-15-*-*-*-*-*-*-*

Dessa fyra rader anger inställningar för programmet xterm. En X-resurs förtecknas i en av dessa filer på följande vis:

   program*val: inställning/värde

Sålunda torde exemplet med .Xresources ovan vara tämligen självförklarande. Man skall inte bli konfys av »font«-raden; typsnitt anges i X alltid på detta sätt.

X-servrar och fönsterhanterare.

 

X-fönstersystemet konstruerades ursprungligen för att fungera transparent över ett nätverk. En stor server skulle sköta om det faktiska körandet av X-programmen, men de skulle visas på olika klientmaskiner någon annanstans i nätverket. Förmågan att kunna visa program på fjärrdatorer kan vara till stor fördel. Den största nackdelen med detta nätverkskoncept är, att det är mindre säkert än att köra tillämpningsprogram på en lokal maskin, och det tar upp mycket bandbredd i nätet. Detta diskuteras längre fram i avsnittet Exportera skärmvisning på s. gif.

T.o.m när man kör X på sin egen maskin, så har man likväl att göra med en klient-server-modell. Servern är den del av X, som är knuten till grafikkortet. När vi konfigurerade X och talade om, vilket slags grafikkort vi hade, så bestämde vi, vilket serverprogram för X, som skulle komma till användning. Klientdelen är alla andra program, man kör under X. En särskild klient, som kallas fönsterhanterare, ansvarar för utseende och handhavandestil i en viss X-körning. Fönsterhanteraren diskuteras mer ingående senare.

Fönsterhanterarens uppgift är att hantera uppritandet av fönster på skärmen med program inuti dessa fönster, liksom att hantera inmatning ifrån mus och tangentbord. De första fönsterhanterarna gjorde detta och inte så mycket därutöver. Dagens fönsterhanterare är mycket mer invecklade program och kan skräddarsys på nästan alla upptänkliga sätt och vis. De har allehanda finurliga valmöjligheter, som kan få ens eget skrivbord att se annorlunda ut än alla andras.

Förekomsten av flera olika fönsterhanterare är förvisso en skiljelinje mellan Linux och Windows vad skrivbordet beträffar. I Windows är man i grund och botten hänvisad till en enda fönstermiljö. I Linux kan man köra en av många olika fönsterhanterare, var och en med olika utseende och olika egenskaper. Somliga är benägna att kalla detta för en svaghet, eftersom det inte finns något enhetligt, överensstämmande utseende. Emellertid håller flertalet linuxanvändare detta för en styrka, eftersom var och en kan rigga upp sitt system helt och hållet efter egen smak.

Att välja skrivbordsmiljö.

I flera år har Unix varit nästan uteslutande ett serveroperativsystem med undantag för några professionella arbetsstationer. Endast de tekniskt intresserade har kunnat tänkas använda ett unixliknande operativsystem, och användargränssnittet har återspeglat detta. Grafiska användargränssnitt har brukat vara tämligen påvra och konstruerade för att köra ett fåtal nödvändigtvis grafiska tillämpningar såsom CAD-program och bildbehandlingsprogram. Fil- och systemhantering har vanligen utförts på kommandoraden. Flera leverantörer (Sun Microsystems, Silicon Graphics o.s.v.) har sålt arbetsstationsinstallationer med ansatser till sammanhängande, följdriktigt utseende och konsekvent handhavandestil, men det rika utbud av programmeringsverktyg för framställning av grafiska användargränssnitt, som stått till programutvecklarnas förfogande, har oundvikligen medfört en upplösning av skrivbordets enhetlighet. En blädderlist kanske inte har sett likadan ut i två olika tillämpningsprogram. Menyer kanske har dykt upp på olika ställen. Programmen har kunnat ha olika knappar och kryssrutor. Färgskalorna har varit vidsträckta och vanligen hårdkodade i var särskild programmeringsverktygssats. Så länge användarna främst har varit tekniska yrkesmän, så har inget utav detta haft så särskilt stor betydelse.

Med de fria unixliknande operativsystemens intåg och de grafiska tillämpningarnas växande antal har X på senare tid erhållit en vidsträckt skrivbordsanvändarbas. Flertalet användare är förstås vana vid den konsekvent enhetliga stil, som erbjudes dem i Microsofts Windows eller Apples MacOS; avsaknaden av sådan enhetlighet i X-tillämpningar har blivit ett hinder för, att de skall anammas i bredare kretsar. Som svar på detta har två projekt, som arbetar med öppen källkod, startats: K Desktop Environment (KDE) och GNU Network Object Model Environment (GNOME). Vardera har ett brett urval av tillämpningar ifrån programstartarpaneler och filhanterare till spel och kontorsprogramsviter, vilka är skrivna i samma programmeringsverktygssatser för grafiska gränssnitt (GUI toolkit) och snävt integrerade för att erbjuda en enhetlig, sammanhängande skrivbordsmiljö.

Skillnaderna mellan KDE och GNOME är på det hela taget tämligen små. De ser olika ut, därför att de använder olika GUI toolkit (verktygslådor för grafiska gränssnitt). KDE bygger på biblioteket Qt ifrån Troll Tech AS, medan GNOME använder GTK -- en verktygslåda, som ursprungligen utvecklats för GNU Image Manipulation Program (eller GIMP kort och gott). I egenskap av ifrån varandra skilda projekt har KDE och GNOME var för sig sina egna konstruktörer och programmerare med olika utvecklingsstilar och tänkesätt. Resultatet är i vardera fallet emellertid i grunden detsamma: en konsekvent, snävt integrerad skrivbordsmiljö och uppsättning tillämpningsprogram. Funktionaliteten, användbarheten och det rena skönhetsvärdet i KDE såväl som GNOME kan mäta sig med vad som helst, som är tillgängligt i andra operativsystem.

Den bästa biten är dock, att dessa avancerade skrivbordsmiljöer är gratis.gif Detta innebär, att man kan ha endera eller bägge (ja, på samma gång). Valet är ens eget.

Förutom skrivbordsmiljöerna GNOME och KDE ingår i Slackware en stor samling fönsterhanterare. Somliga är formgivna så, att de efterliknar andra operativsystems grafisk miljöer, andra är konstruerade för att skräddarsys efter personlig smak och personliga behov, andra åter för att vara så snabba som möjligt. Urvalet är stort. Självfallet kan man installera så många man önskar, leka med allihop och själv bestämma, vilken man tycker bäst om.

För att underlätta val av skrivbordsmiljö ingår i Slackware även ett program, som heter xwmconfig, vilket kan användas till att välja skrivbordsmiljö eller fönsterhanterare. Det köres på följande vis:

   $ xwmconfig

 figure1394
: Välja skrivbordsmiljö eller fönsterhanterare med xwmconfig.

En lista över alla installerade skrivbordsmiljöer och fönsterhanterare visas. Man väljer en på listan. Var användare i systemet får själv köra detta program, eftersom olika användare får använda olika skrivbordsmiljöer, och alla kommer inte att vilja ha den, som valts vid systemets installation.

Därefter startar man X:

   $ startx

Exportera skärmvisning.

 

Såsom tidigare omnämnts, så är det möjligt att köra X-program på en dator och visa dem på en annan. Detta är otroligt bandbreddsintensivt, så att man förmodligen inte vill göra detta genom modemförbindelse eller över mycket långa sträckor. Därtill måste man överväga säkerheten; att exportera en skärmbild strider emot god säkerhet, eftersom man kan låta hela nätverket titta på, vad man gör. Likväl kan det komma till nytta i ett lokalt nät.

En viktig sak att lägga märke till i detta sammanhang är bruket av orden »klient« och »server«. När man exporterar skärmbilden, så kan man bli förvillad ifråga om vad, som är klient, och vad, som är server. Vi omnämner den maskin, som faktiskt kör X-programmen och sänder ut information om skärmbilden, såsom »server«. Den maskin, man använder till att visa det program, som köres på fjärrdatorn, kallas för »klient«. När vi diskuterar, hur X är konstruerat, förhåller det sig omvänt. Det program, som visar någonting, kallas för »server«, medan det körande programmet kallas för »klient«. Detta är inte särskilt svårt att hålla reda på, men det förtjänar att påpekas.

I detta exempel skall vi använda två datorer: golf är en tämligen kraftfull server och anbragt under ett skrivbord i ena änden av ett tätt befolkat rum. Den är bestyckad med en nätt liten processor, som förfogar över rikligt med RAM. Därtill har den mängder av X-program installerade men ingen bildskärm. I rummets andra ände står en soffa och datorn soffa, en gammal maskin med ont om RAM och rätt litet hårddiskutrymme. Den är alldeles för klen för att kunna köra sådana resursintensiva program som Netscape. soffa har dock två stora fördelar: den är försedd med bildskärm och den står intill soffan, så att man kan använda den liggande. Det bästa vore, om man kunde köra Netscape utan att resa sig ifrån soffan. Lösningen kallas för export.

Först loggar man in på soffa och sätter igång X. Sedan startar man ett terminalprogram (xterm, rxvt, eterm, aterm eller något av alla de andra). Som första steg för att visa X-program på en annan dator ställer man in klientmaskinen så, att andra datorer får visa sina program på dess skärm. Detta inbegriper bruk av programmet xhost för åtkomststyrning. Om man befinner sig i ett säkrat internt nät, bryr man sig förmodligen inte om vilka, som får fjärrvisa programfönster. I så fall kan man helt enkelt släppa in vem som helst i nätverket på sin skärm:

  soffa$ xhost +
  access control disabled, clients can connect from any host
Å andra sidan kanske man vill göra detta med maskiner i ett ickesäkrat nät (Internet, ett skolnät eller vad som helst, man inte kan styra). Då vill man säkerligen inte låta vem som helst ansluta sig:

  soffa$ xhost + golf.foc
  golf.foc being added to access control list
Nu kan golf.foc (tidigare nämnd server) visa program på soffa. Man kan se vilka, som har åtkomst till skärmen, genom att köra xhost utan argument:

  soffa$ xhost
  access control enabled, only authorized clients can connect
  INET:golf.foc
  INET:localhost
  INET:soffa.foc
  LOCAL:
Detta behöver man göra på klientsidan. Såsom nästa steg riggar man upp servern så, att den vet om, att den kan visa program någon annanstans än på sin egen bildskärm. Eftersom servern saknar bildskärm (och följaktligen inte har X igång), så måste den få reda på, var den kan visa programmen.

Att rigga upp servern är heller inte särskilt besvärligt. När man anslutit till den, sätter man miljövariabeln $DISPLAY till fjärrdatorns namn tillsammans med en siffra, som betecknar vilken X-skärm, bilderna skall visas på. Man har så gott som säkerligen endast en X-körning igång, så att den variabeln vanligen inte föranleder tveksamhet.

På följande vis sätter man variabeln $DISPLAY i vårt exempel under bash. Andra kommandoskal fordrar annorlunda syntax, men värdet skall vara detsamma.

   golf$ export DISPLAY=soffa.foc:0.0
Svårare är det inte att rigga upp servern. Nu gäller det bara att fortsätta vara inloggad på servern igenom detta terminalfönster och köra programmen därifrån. All skärmvisning ifrån programmet sändes över nätverket till klientmaskinen, även om det köres på en dator i lokalens andra ände.

   golf$ netscape &
Detta kommando startar Netscape på servern, men eftersom variabeln DISPLAY pekar på soffa, så visas allting där. Man behöver inte köra några stora X-program på sin terminal. En viktig anmärkning i detta sammanhang är dock, att servern måste ha alla X-bibliotek och andra stödfiler, som fordras för att köra programmet. Emellertid behöver den varken ha X-server eller någon XF86Config-fil, eftersom ingenting skall visas på servern.

Efteråt kanske man vill stänga av skärmexporten genom att ta bort servern från klientens åtkomstlista:

  soffa$ xhost - golf.foc
  golf.foc being removed from access control list
Man inser lätt, att detta är ett strålande sätt att dela på datorresurser. Men man skall vara försiktig, eftersom man kan få vara värd för många X-program på fjärrdatorer utan att ens veta om det.

Sammanfattning.

I detta kapitel har vi lärt oss att ställa in X-fönstersystemet genom användning av xf86config och XF86Setup. Man bör nu ha klart för sig, vad en skrivbordsmiljö (desktop environment) och en fönsterhanterare (window manager) är för någonting, samt hur man växlar emellan de olika valmöjligheterna. Man vet nu också, hur man kan exportera X-körningen till en annan dator. Vid detta laget skall man ha sin grafiska miljö igång.


next up previous contents
Vidare: Starta systemet. Uppåt: Inställningar. Tillbaka: Nätverksinställningar.


Denna översättning ifrån engelskan är utförd av Erik Jonsson <[email protected]> efter Slackware Linux Essentials, officiell handbok för Slackware Linux.

Denna översättning tillhandahålles liksom engelskspråkiga originalet enligt villkoren i GNU General Public License (GPL).
Uppgifterna om författarnas och översättarens namn får ej avlägsnas, utplånas eller eljest göras oläsliga.
Förvaras åtkomligt.
Bäst före: senaste ändringsdatum.
Äldre versioner bör förstöras.
Senast ändrad Tue Oct 24 09:36:13 CEST 2000

Hela boken finns här även beredd för utskrift i PDF-filen slwhbk.pdf.

http://www.slackware.com/http://www.sslug.dk/Ser bra ut i vilken vävläsare som helst.


Generaldepoten — Emil Tusens Kulturpalats.
Om goda kagor och torra kakor (»cookies«).

Innehåll:

Litteraturförteckning

Om goda kagor och torra kakor (»cookies«).