Fönsterhanterare - Window manager

Lager i det grafiska användargränssnittet:
Under X är fönsterhanteraren och bildservern två olika program; men under Wayland sköts funktionen av båda av Wayland -kompositören.
Typiska element i ett fönster . Den fönsterdekorationen är antingen dras av fönsterhanteraren (X11) eller genom klienten ( Wayland ). Ritningen av innehållet är klientens uppgift.
Under X11, när fönsterhanteraren inte körs, saknas fönsterdekorationerna för de flesta fönster. Under Wayland ritar kunder alltid sina egna fönsterdekorationer.

En fönsterhanterare är systemprogramvara som styr placering och utseende av fönster i ett fönstersystem i ett grafiskt användargränssnitt . De flesta fönsterhanterare är utformade för att ge en skrivbordsmiljö . De fungerar tillsammans med det underliggande grafiska systemet som ger nödvändig funktionalitet - stöd för grafikhårdvara, pekdon och ett tangentbord, och skrivs och skapas ofta med hjälp av en widgetverktygssats .

Få fönsterhanterare är utformade med en tydlig skillnad mellan fönstersystemet och fönsterhanteraren. Varje grafiskt användargränssnitt baserat på en Windows -metafor har någon form av fönsterhantering. I praktiken varierar elementen i denna funktionalitet mycket. Element som vanligtvis är associerade med fönsterhanterare tillåter användaren att öppna, stänga, minimera, maximera, flytta, ändra storlek och hålla reda på fönster som körs, inklusive fönsterdekoratörer . Många fönsterhanterare har också olika verktyg och funktioner: t.ex. bryggor, aktivitetsfält , programstartare, skrivbordsikoner och tapeter.

Historia

Överlappande fönster i Smalltalk-76- miljö som körs på Xerox Alto .

Under 1970-talet har Xerox Alto blev den första datorn levereras med en fungerande WIMP GUI . Den använde en staplingsfönsterhanterare som tillät överlappande fönster. Även om det är oklart om Microsoft Windows innehåller mönster som kopierats från Apples Mac OS , är det klart att ingen av dem var först med att producera ett GUI med staplingsfönster. I början av 1980 -talet använde Xerox Star , efterträdare till Alto, kakelplattor för de flesta applikationsfönster och överlappning endast för dialogrutor, vilket tog bort det mesta av behovet av stapling.

Mac OS var ett av de tidigaste kommersiellt framgångsrika exemplen på ett GUI som använde ett slags staplingsfönsterhantering via QuickDraw . För närvarande använder macOS en något mer avancerad fönsterhanterare som har stött kompositering sedan Mac OS X 10.0 , och uppdaterades i Mac OS X 10.2 för att stödja hårdvaruaccelererad kompositering via Quartz Compositor .

GEM 1.1 var en fönsterhanterare som stödde skrivbordsmetaforen och använde stapling, så att alla fönster kunde överlappa varandra. Den släpptes i början av 1980 -talet. GEM är känt för att ha inkluderats som det huvudsakliga GUI som användes på Atari ST , som körde Atari TOS , och var också ett populärt GUI för MS-DOS före den utbredda användningen av Microsoft Windows. Som ett resultat av en stämning från Apple tvingades GEM ta bort staplingsmöjligheterna, vilket gjorde det till en kakelfönsterhanterare.

Under mitten av 1980-talet innehöll Amiga OS ett tidigt exempel på en komponerande fönsterhanterare som heter Intuition (ett av lågnivåbiblioteken i AmigaOS, som fanns i Amiga system- ROM ), som kunde känna igen vilka fönster eller delar av dem som täcktes , och vilka fönster som var i förgrunden och fullt synliga, så att det bara kunde rita delar av skärmen som krävde uppdatering. Dessutom stödde Intuition compositing. Program kan först begära en minnesregion utanför den aktuella visningsregionen för användning som bitmapp. Amiga fönstersystem skulle sedan använda en serie bitblits med systemets hårdvarubitter för att bygga en sammansättning av dessa applikations bitmappar, tillsammans med knappar och reglage, i displayminnet, utan att dessa applikationer behöver rita om någon av sina bitmappar.

Intuition förutsåg också användarens val genom att känna igen positionen för pekaren som flyter över andra delar av skärmen (titelfält i fönster, deras stängda och storleksanpassade prylar, hela ikoner), och därmed kunde den ge nästan noll väntetid uppge erfarenhet av användningen av Workbench -fönsterhanteraren.

Anmärkningsvärt att nämna är det faktum att Workbench var den enda fönsterhanteraren som så småningom inspirerade en hel familj av ättlingar och efterträdare: Ambient i MorphOS , Zune /Wanderer i AROS , Workbench NG (New Generation i AmigaOS 4.0 och 4.1). Workbench 4.1 förbättrades med 2D-vektorgränssnitt som drivs av Kairo- bibliotek och presenterar en modern Porter-Duff 3D-baserad kompositionsmotor.

1988 blev Presentation Manager standardskal i OS/2 , som i sin första version endast använde ett kommandoradsgränssnitt (CLI). IBM och Microsoft designade OS/2 som en efterträdare till DOS och Windows för DOS. Efter framgångarna med Windows 3.10 övergav dock Microsoft projektet till förmån för Windows. Därefter blev Microsoft-projektet för en framtida OS/2 version 3 Windows NT , och IBM gjorde en fullständig omdesign av skalet för OS/2 och ersatte Presentation Manager för OS/2 1.x med det objektorienterade Workplace Shell som gjorde sin debut i OS/2 2.0.

Exempel

X fönsterhanterare

På system som använder X -fönstersystemet finns det en tydlig skillnad mellan fönsterhanteraren och fönstersystemet . Strängt taget interagerar en X -fönsterhanterare inte direkt med videohårdvara, möss eller tangentbord - det är bildskärmens ansvar .

Användare av X Window System har möjlighet att enkelt använda många olika fönsterhanterare - Metacity , som används i GNOME 2 och KWin , som används i KDE Plasma Workspaces och många andra. Eftersom många fönsterhanterare är modulära kan människor använda andra, till exempel Compiz (en 3D -kompositfönsterhanterare ), som ersätter fönsterhanteraren. Sawfish och awesome å andra sidan är utbyggbara fönsterhanterare som erbjuder krävande fönsterkontroll. Komponenter i olika fönsterhanterare kan till och med blandas och matchas; till exempel kan fönsterdekorationerna från KWin användas med skrivbordet och dockningskomponenterna i GNOME.

X-fönsterhanterare har också möjlighet att återskapa applikationer, vilket betyder att medan alla applikationer initialt antas av rotfönstret (i princip hela skärmen) kan en applikation som startas i rotfönstret antas av (dvs sättas inuti ) ett annat fönster. Fönsterhanterare under X-fönstersystemet använder applikationer från rotfönstret och föräldrar dem till fönsterdekorationer (till exempel att lägga till en rubrikfält). Återföräldraskap kan också användas för att lägga till innehållet i ett fönster till ett annat. Till exempel kan en flash player- applikation återutvecklas till ett webbläsarfönster och kan visas för användaren som förmodligen en del av det programmet. Fönsterhanterare för föräldraskap kan därför ordna ett eller flera program i samma fönster och kan enkelt kombinera kakel och stapling på olika sätt.

Microsoft Windows

Microsoft Windows har tillhandahållit en integrerad staplingsfönsterhanterare sedan Windows 2.0 ; Windows Vista introducerade den komponerande Desktop Window Manager (dwm.exe) som ett valfritt hårdvaruaccelererat alternativ. I Windows, eftersom GDI är en del av kärnan, är fönsterhanterarens roll tätt kopplad till kärnans grafiska undersystem och är i stort sett inte utbytbar, även om tredjepartsverktyg kan användas för att simulera en fönsterhanterare för plattor ovanpå sådana system. Sedan Windows 8 kan den Direct3D -baserade skrivbordsfönsterhanteraren inte längre inaktiveras. Det kan bara startas om med snabbtangentkombinationen Ctrl+Shift+Win+B.

Utforskaren (explorer.exe) används som standard som skal i moderna Windows -system för att tillhandahålla en aktivitetsfält och filhanterare, tillsammans med många funktioner i en fönsterhanterare; aspekter av Windows kan modifieras via de medföljande konfigurationsverktygen, ändra Windows -registret eller med tredjepartsverktyg, till exempel WindowBlinds eller Resource Hacker .

Windows -fönsterhanteraren kan också fungera som en X -fönsterhanterare genom Cygwin/X i flervindigt läge (och möjligen andra X -fönsterimplementeringar).

Observera att Microsoft och X Window System använder olika termer för att beskriva liknande begrepp. Till exempel nämns det sällan om termen fönsterhanterare av Microsoft eftersom det är integrerat och inte kan bytas ut och skiljer sig från skalet . Den Windows Shell är analogt med skrivbordsmiljön koncept i andra grafiska system användargränssnitt.

Chrome OS

Sedan 2021 levereras Chrome OS med sin egen fönsterhanterare som heter Ash. Krom och aska delar gemensam kodbas . Tidigare kunde man köra den med google-chrome --open-ashalla kompatibla system.

Typer

Fönsterhanterare är ofta indelade i tre eller flera klasser, som beskriver hur fönster ritas och uppdateras.

Komponerande fönsterhanterare

Komponerande fönsterhanterare låter alla fönster skapas och ritas separat och sedan sättas ihop och visas i olika 2D- och 3D -miljöer. De mest avancerade komponeringsfönsterhanterarna möjliggör en stor variation i gränssnittets utseende och känsla och närvaron av avancerade 2D- och 3D -visuella effekter.

Stapling av fönsterhanterare

Alla fönsterhanterare som har överlappande fönster och inte sammanställer fönsterhanterare staplar fönsterhanterare , även om det är möjligt att inte alla använder samma metoder. Genom att stapla fönsterhanterare kan fönster överlappa varandra genom att först rita bakgrundsfönster, som kallas målarens algoritm . Förändringar kräver ibland att alla fönster staplas om eller målas om, vilket vanligtvis innebär att varje fönster ska ritas om. Men för att få ett bakgrundsfönster framåt krävs vanligtvis bara att ett fönster ritas om, eftersom bakgrundsfönster kan ha bitar av andra fönster målade över dem, vilket effektivt raderar de täckta områdena.

Kakelfönsterhanterare

Kakelfönsterhanterare målar alla fönster på skärmen genom att placera dem sida vid sida eller ovanför och under varandra, så att inget fönster någonsin täcker ett annat. Microsoft Windows 1.0 använde kakelplattor och en mängd olika kakelfönsterhanterare för X finns tillgängliga.

Dynamisk fönsterhanterare

Dynamiska fönsterhanterare kan dynamiskt växla mellan kakel eller flytande fönsterlayout. En mängd olika dynamiska fönsterhanterare för X finns tillgängliga.

Funktioner och faciliteter för fönsterhanterare

Dölj automatiskt
En autohide -funktion gör att menyrader kan försvinna när pekaren flyttas bort från skärmens kant.
Gränser
En kant är en fönsterdekorationskomponent som tillhandahålls av vissa fönsterhanterare, som visas runt det aktiva fönstret . Vissa fönsterhanterare kan också visa en kant runt bakgrundsfönster .
Innehållsmeny
Vissa fönsterhanterare tillhandahåller en snabbmeny som visas när en alternativ klickhändelse tillämpas på en skrivbordskomponent.
Skrivbordsunderlägg
Vissa fönsterhanterare tillhandahåller en skrivbordsunderlägg som visar en bakgrundsbild i rotfönstret .
Fokus stjäl
Fokusstjälning är en anläggning som vissa fönsterhanterare tillhandahåller. Det tillåter en applikation som inte är i fokus att plötsligt få fokus och stjäla användarinmatning avsedd för den tidigare fokuserade applikationen.
Ikonisering
En ikonifieringsfunktion låter användarna minimera program som körs till en skrivbordsikon eller ikon på arbetspanelen .
Gick med i Windows
Vissa fönsterhanterare tillhandahåller en sammanfogad fönsterfunktion som låter användaren gå med i programfönsterramar tillsammans.
Tangentbordsekvivalenter
Vissa fönsterhanterare tillhandahåller tangentbordsekvivalenter som gör det möjligt för tangentbordet att replikera musfunktioner .
Menyfältet
En menyrad ger möjlighet att starta program via en meny och kan innehålla ytterligare funktioner inklusive en startknapp , en aktivitetsfält och ett systemfält .
Menypanel
En menypanel en del av vissa fönsterhanterare som ger möjlighet att starta program med hjälp av en meny. En menypanel liknar en menyrad , men visas som en flytande panel , snarare än en horisontell eller vertikal stapel.
Den menypanelen kan innehålla ytterligare faciliteter inklusive en startknapp , en uppgift panel och ett systemfältet .
Musens fokus
Den musen fokus modell avgör hur pekdonet påverkar inmatningsfokus inom fönsterhanteraren. Fokusmodellen bestämmer vilken komponent i det grafiska användargränssnittet som för närvarande väljs för att ta emot inmatning när pekaren flyttas runt på skärmen.
Musvridning
Musvridning är en funktion som centrerar pekaren på den aktuella applikationen när den görs aktiv.
Flera stationära datorer
En fönsterhanterare kan erbjuda flera stationära anläggningar. Detta möjliggör växling mellan flera stationära rotfönster . Detta förhindrar rot i fönstret eftersom applikationer kan köras på olika skrivbord .
Personsökare
Vissa fönsterhanterare tillhandahåller ett personsökarverktyg som ger möjlighet att växla mellan flera stationära datorer . Den personsökare kan visas som en skärmen fönster eller som en gadget i aktivitetsfältet eller taskpanel .
Insticksprogram
Vissa fönsterhanterare har en modulkonstruktion som gör det möjligt för plug-in- moduler att tillhandahålla funktioner efter behov.
Rulla upp
En samlingsfunktion gör det möjligt för fönster att visas som bara en titelrad på skrivbordet.
Rotmeny
Vissa fönsterhanterare tillhandahåller en rotmeny som visas när rotfönstret eller skrivbordsbakgrunden berörs.
Genvägar
Vissa fönsterhanterare tillhandahåller en genvägsfunktion som låter användare placera ikoner i rotfönstret som har åtkomst till specifika program eller faciliteter.
Flikade fönster
Vissa fönsterhanterare tillhandahåller en flikfönsterfunktion som grupperar applikationer i gemensamma ramar.
Uppgiftsbyte
Fönsterhanteraren kan tillhandahålla olika uppgiftsväxlingsfunktioner som låter användaren ändra det för närvarande fokuserade programmet, inklusive:
Aktivitetsfält
Vissa fönsterhanterare tillhandahåller en aktivitetsfält som visar program som körs. Den aktivitetsfältet kan visa alla program som körs, inklusive de som har minimerats , och kan ge möjlighet att switch fokus mellan dem. Den aktivitetsfältet kan införlivas i en menyrad på vissa fönsterhanterare.
Uppgiftspanel
En uppgift panel liknar en aktivitetsfältet , men verkar som en flytande panel , snarare än en horisontell eller vertikal bar.
Startknapp
En startknapp är en stationär widget som innehåller en meny med program som kan startas. Startknappen placeras vanligtvis på en menyrad längst ner på skärmen.
Meddelandefältet
Ett meddelandeområde används för att visa ikoner för system- och programfunktioner som inte har något skrivbordsfönster . Den innehåller huvudsakligen ikoner för att indikera statusinformation och aviseringar som ankomst av ett nytt e -postmeddelande. Vissa system kan också visa en klocka i meddelandeområdet .
Titelfält
En titelfält är en fönsterdekorationskomponent som vissa fönsterhanterare tillhandahåller högst upp i varje fönster. Den namnlisten är vanligtvis används för att visa namnet på programmet, eller namnet på det öppna dokumentet, och kan ge titel bar knappar för att minimera, maximera, stänga eller rulla upp programfönster.
Knappar för titelrader
Titelfältets knappar ingår i titelfältet för vissa fönsterhanterare och ger möjlighet att minimera, maximera, samla eller stänga programfönster. Vissa fönsterhanterare kan visa namnlistens knapparna i aktivitetsfältet eller uppgift panel , snarare än i en namnlisten .
Virtuellt skrivbord
Ett virtuellt skrivbord (även kallat ett rullande skrivbord) är en funktion som vissa fönsterhanterare tillhandahåller som gör att skrivbordet kan vara större än den faktiska skärmen

Windows -navigering

Ett aktivt fönster är det för närvarande fokuserade fönstret i den aktuella fönsterhanteraren. Olika fönsterhanterare indikerar det för närvarande aktiva fönstret på olika sätt och låter användaren växla mellan fönster på olika sätt. Till exempel i Microsoft Windows, om både anteckningsblock och Microsoft Paint är öppna, kommer det att bli aktivt när du klickar i anteckningsfönstret . I Windows indikeras det aktiva fönstret med en annan färgad titelfält. Att klicka är dock inte det enda sättet att välja ett aktivt fönster: vissa fönsterhanterare (t.ex. FVWM ) gör fönstret under muspekaren aktiv - det är bara att flytta musen för att byta fönster; ett klick behövs inte.

Fönsterhanterare ger ofta ett sätt att välja det aktiva fönstret med hjälp av tangentbordet som ett alternativ till musen. En typisk tangentkombination är Alt+Tab , som används av Windows och KDE (som standard, även om detta är användarkonfigurerbart); en annan är apple key -tilde, som används av Macintosh. Att trycka på lämplig tangentkombination går vanligtvis genom alla synliga fönster i någon ordning, även om andra åtgärder är möjliga.

Många, men inte alla, fönsterhanterare tillhandahåller en region på skärmen som innehåller någon form av visuell kontroll (ofta en knapp) för varje fönster på skärmen. Varje knapp innehåller vanligtvis fönstret och kan också innehålla en ikon. Detta område på skärmen ger i allmänhet någon form av visuell indikation på vilket fönster som är aktivt - till exempel kan det aktiva fönsterets knapp visas "tryckt in". Det är också vanligtvis möjligt att byta det aktiva fönstret genom att klicka på lämplig knapp. I Microsoft Windows kallas detta område på skärmen aktivitetsfältet ; i Apple Macintosh -system kallas detta område på skärmen dockningsstation.

Det aktiva fönstret kanske inte alltid ligger framför alla andra fönster på skärmen. Det aktiva fönstret är helt enkelt fönstret till vilket tangenter som skrivs på tangentbordet skickas; den kan vara visuellt skymd av andra fönster. Detta gäller särskilt fönsterhanterare som inte kräver ett klick för att ändra aktiva fönster: FVWM , till exempel, gör fönstret aktivt under muspekaren men ändrar inte dess Z-ordning (i vilken ordning fönster visas, mätt från bakgrunden till förgrunden). Istället är det nödvändigt att klicka på fönsterkanten för att ta den till förgrunden. Det finns också situationer i klick-för-fokus-fönsterhanterare som Microsoft Windows där det aktiva fönstret kan döljas; detta är dock mycket mindre vanligt.

Se även

Referenser