# Information om &kappname;

Thomas
Luebking
thomas.luebking@web.de
Stefan
Asserhäll

    stefan.asserhall@comhem.se

Översättare
2005
Thomas Luebking
&FDLNotice;
2005-01-15
2.0.1

&kappname; är en uppritningsmaskin för sammansättningar som används av &kwin;.

Det här dokumentet är mer en relativt allmän förklaring av vad den gör, hur den fungerar och vilka begränsningar den har, än en dokumentation av hur den används (eftersom den fungerar automatiskt i bakgrunden).

KDE
kwin
uppritningsmaskin

## Inledning

&kappname; är baserad på xcompmgr, Keith Packards referensimplementering för att använda de nya funktionerna i X.

Sammansättningshanteraren fångar utmatning från X-windows och ritar upp dem i en enda bild som visas på skärmen. Fördelen med att göra detta är att man kan göra i stort sett vad som helst med fönstrens innehåll, inklusive att sammanfoga dem (genomskinlighet) eller lägga till skuggor. Man kan också tona dem, lägga till otrevlig reklam på varje fönster, klämma ihop dem, fragmentera dem, lägga till spår eller vad som helst annat du kan föreställa dig, bara begränsat av hårdvaran.

## Xorg

Det är nödvändigt att ha X.org 6.8 eller senare för att få &kappname; att fungera. X.org 6.7 eller äldre eller XFree86 fungerar inte.

### Inställning

Du måste explicit aktivera sammansättningsutökningen. Lägg till en ny sektion i X.org inställningsfil.

    Section "Extensions"
        Option "Composite" "Enable"
    EndSection

Om det stöds av din grafikprocessor, GPU (den komplexa krets som styr moderna grafikkort), aktivera acceleration med Render. Det stöds bäst av NVIDIA, och mindre fullständigt av ATI-kort.

    Section "Device"
    ....
    ....
        Option     "RenderAccel" "true"
    ....
    ....
    EndSection

&kappname; ska nu vara tillgänglig. För mer information, se Vanliga frågor.

## Inställningar

Det här kapitlet beskriver de parametrar du kan finjustera, vad deras synliga resultat blir och deras påverkan på prestanda.

### Genomskinlighet

Ett genomskinligt objekt är ett som låter ljus passera igenom. När det gäller fönster på skrivbordet, betyder det att innehållet i fönster syns genom det som är överst.

Genomskinlighet låter dig betona vissa fönster, få en tredimensionell vy av skrivbordet, hålla ordning på täckta fönster och bara se trevligt ut. Priset är att det kostar viss systemkapacitet att sammanfoga saker och ting.

Du kan ställa in genomskinlighet oberoende för följande objekt:

Aktiva fönster

  Du föreslås att inaktiverar genomskinlighet hos det aktiva fönstret. Den huvudsakliga orsaken är prestanda, och i andra hand eftersom när du tittar på innehållet i ett genomskinligt fönster måste hjärnan filtrera bort den irriterande informationen som lyser igenom, vilket är tröttande.

Inaktiva fönster

  Om du ställer in inaktiva fönster att vara genomskinliga, verkar aktiva fönster vara betonade och är enklare att fokusera på. Om du dock väljer ett lägre värde, kan du ha svårighet att hitta ett inaktivt fönster. Om du väljer mycket låga värden (< 20 &percnt;) kanske du inte kan skilja på ordningen fönster är lagrade på varandra, så du kan klicka på knappen Ok av misstag i en dialogruta, när du bara ville aktivera ett fönster. De bästa värdena är mellan 60 &percnt; och 80 &percnt;.

Flyttade fönster

  Även om det är en trevlig effekt med mycket genomskinlighet (med värdet < 20 &percnt;) när fönster flyttas, blir priset att betala i prestanda högt, särskilt om du inte inaktiverar skuggor (se nedan). Prova det och om du känner att systemet är långsamt, behåll fönster som flyttas ogenomskinliga. Värdet gäller också fönster där storleken håller på att ändras.

Dockade fönster

  Eftersom systembrickor som Kicker sällan eller aldrig flyttas, och oftast har begränsad storlek, är detta enbart visuellt och påverkar inte systemets prestanda negativt.

Behandla fönster med "Behåll över andra" som aktiva

  Om du ställer in ett fönster att vara ovanför andra, vill du ofta ha fokus på det, så det kan vara vettigt att ge det samma betoning.

Inaktivera ARGB-fönster

  XRender stöder fönster med alfamask, dvs. genomskinliga delar. För närvarande finns det inga eller mycket få program som använder sig av funktionen, eftersom den inte är vettig utan att använda sammansättningshantering. Det kan ändas i framtiden.

  Å andra sidan, ställer de flesta GTK 1.x-program (t.ex. xmms) in en sådan alfamask, vilket resulterar i nästan oanvändbara fönster (så länge fönstret som ligger under inte är svart), så du kan inaktivera stöd för ARGB-fönster här för att kunna använda GTK-program. Det kommer förhoppningsvis finnas en programfix för GTK i en nära framtid för att rätta det här.

### Skuggor

Varför skulle någon vilja att fönster kastar skuggor? Ja, kanske bara för att det ser snyggt ut, eller för att det tillåter bättre separation av fönster, eller... för att det ser snyggt ut!

Använd skuggor

  En skugga kostar vissa extra prestanda för processorn och grafikprocessorn, så de kan inaktiveras medan en allmän alfakanalmöjlighet behålls.

Aktiva fönsters storlek
Inaktiva fönsters storlek
Dockade fönsters storlek

  Du kan välja flera olika skuggstorlekar för olika fönstertillstånd eller -typer. Värdena är inte absoluta, utan gäller skärmens upplösning.

  I princip kan du ställa in alla värden du vill (om du redigerar inställningsfilen med en texteditor, lång mer än 32 som tillhandahålls), men större skuggor kostar mer prestanda hos processorn och grafikprocessorn.

Vertikal position
Horisontell position

  Normalt skulle fönstret kasta en skugga likadan runt omkring, som motsvarar en ljuskälla rakt framifrån. Användare bekanta med &MacOS; kan vilja ha en vertikal förskjutning, medan användare av &Windows; kan föredra en viss förskjutning åt sydost. Experimentera med värdena till du är nöjd.

Skuggfärg

  Oftast syns skuggor som frånvaro av ljus i gråa nyanser (så den maximala skuggan är svart, eller inget ljus alls). Men det här är minsann en virtuell värld, och om du till och med skulle vilja ha rosa skuggor, så varför inte?

Ta bort skuggor vid flyttning

  Markera det här om du behöver mer prestanda (särskilt när du använder genomskinliga fönster vid förflyttning).

Ta bort skuggor vid ändring av storlek

  Det är en god idé att markera det här vare sig genomskinliga fönster används vid storleksändring (och förflyttning) eller inte. Punktavbildningarna av fönstrens skuggor måste skapas om hela tiden under storleksändring, vilket ger stor påverkan på systemprestanda.

### Effekter

Tona in fönster
Tona mellan ändringar i genomskinlighet

  Istället för att bara låta ett nytt fönster dyka upp, kan du vilja tona in det långsamt. Även om det ser imponerande ut, ger det ett lika imponerade pris i prestanda, och det är svårt att använda fönster som håller på att tonas på ett meningsfullt sätt.

Intoningshastighet
Uttoningshastighet

  På grund av användbarhetsorsakerna som nämns under Tona in fönster, är det mest praktiskt att använda en snabb intoningshastighet och (för mer ögongodis) en långsam uttoningshastighet. Det ger trevliga effekter och ett system som känns mjukt, samt låg latenstid innan information visas.

## Problem

Hela sammansättningsutökningen är mycket ny. Den kan orsaka allvarliga problem, och till och med krascha X, så du uppmanas starkt att aldrig aktivera sammansättningsutökningen i Xorg.conf för kritiska produktionssystem. Om du dock kan ta risken med ett något mindre stabilt system, är det verkligen trevligt att se en del ögongodis.

I följande fall kan du märka några problem. Här är några populära sätt att komma förbi dem:

Jag har X.org 6.8.x, men &kappname; startar inte

Du måste explicit aktivera utökningen Composite. Lägg till en ny sektion i /etc/X11/XorgConfig:

    Section "Extensions"
       Option "Composite" "Enable"
    EndSection

Ok, &kappname; fungerar, men det är förskräckligt långsamt

Om det stöds av din grafikprocessor, GPU, (i huvudsak NVIDIA-kort, och i viss mån ATI-kort), försäkra dig först om att du har aktiverat acceleration med Render.

    Section "Device"
    ....
    ....
    Option     "RenderAccel" "true"
    ....
    ....
    EndSection

Om den fortfarande är långsam kan du försöka justera minnesanvändningen. Minska antingen skärmdjupet (t.ex. från 24 till 16) eller minska upplösningen (t.ex. från 1280x1024 till 1024x768).

Observera att den begränsande faktorn för sammansättningsutökningen för närvarande verkar vara processorns cachestorlek.

Efter att ha aktiverat sammansättningshanteraren kan jag inte längre köra några GLX-program. Jag har ett NVIDIA-kort.

För vissa problem inaktiverade NVIDIA stöd för GLX när sammansättningshanteraren är aktiv. Att aktivera det igen är möjligt, men kan orsaka problem för vissa kombinationer av kärna, drivrutin och grafikprocessor.

    Section "Device"
    ....
    ....
    Option  "AllowGLXWithComposite" "true"
    ....
    ....
    EndSection

Jag ville spela ett spel med SDL (men inte GL), såsom scummvm, men när sammansättningshanteraren har aktiverats kan jag bara se en skugga.

Det här är ett problem med PictType som rapporteras av SDL.

Ett sätt att komma förbi problemet:

    Istället för att direkt anropa scummvm, anropa
    SDL_VIDEO_X11_VISUALID=0x24 scummvm. Det talar om för SDL att
    använda ett format som stöds och du kan spela som vanligt.

Program XXX vägrar starta efter sammansättningshanteraren har aktiverats.

Program YYY förstör X efter sammansättningshanteraren har aktiverats.

Program ZZZ ser konstigt ut efter sammansättningshanteraren har aktiverats.

Sammansättningsutökningen är fortfarande experimentell.

Ett sätt att komma förbi problemet:

Istället för att anropa `programnamn` direkt, anropa `XLIB_SKIP_ARGB_VISUALS=1 programnamn`

Program som är kända orsaker till problem:

- Alla GTK 1-program (t.ex. gmplayer, xmms, gaim): Misslyckas att starta, ser oanvändbart konstiga ut, eller kraschar X.

- &kuickshow;: Visar bara en svart ram

- &Qt; Designer: Kraschar X

- &kopete;: Kraschar X

- &kolf;: Kraschar X

Jag försöker titta på en video, men ser bara artefakter i videofönstret.

Du använder xv som videogränssnitt. Det är överlagringsläget, där videoinnehållet skrivs direkt till videokortets minne, och går förbi X. Därför verkar fönstret vara statiskt (färgad bakgrund) och uppdateras inte av skadeutökningen.

Det kommer förhoppningsvis finnas en rättning av detta i framtiden. För närvarande fås bäst resultat vid användning av Xine, men att visa genomskinliga videor är ändå inte snabbt.

## Tack till och licenser

### Upphovsmän

Thomas Luebking baghira-style@gmx.net: Redaktör

&underFDL; &underGPL;