hittills i denna serie har jag diskuterat de flesta vanliga Linux-skrivbordsmiljöer (Xfce, KDE, Gnome 3, kanel, MATE och LXDE) och ett par fönsterhanterare (OpenBox och Enlightenment). Nu går jag bra utanför den misshandlade vägen för att titta på något helt annat: I3-fönsterhanteraren.
Jag tycker att det är viktigt att börja med att säga mycket tydligt att i3 inte är avsedd för början, oerfarna, genomsnittliga eller till och med ’normala’ Linux-användare. Ja, det betyder exakt vad det står-de allra flesta Linux-användare kommer inte att hitta i3 användbart, eller till och med mycket intressant.
erfarna Linux-användare bör titta på vad i3 gör och hur det fungerar och bestämma om det passar deras behov. Det sista uttalandet är viktigt-det är inte möjligt, eller åtminstone inte förnuftigt, att försöka anpassa i3 så att den kan användas som en generell skrivbordsmiljö. Att försöka göra det kommer nästan säkert att skicka dig skrikande in på natten.
Så vad är då i3 och vem är den avsedd för? Det är en fönsterhanterare, i den mest rena och enkla meningen med den termen. Så här ser Manjaro 15.12 i3-distributionen ut vid första starten.
Vid första anblicken som inte ser för läskigt ut. Det är annorlunda, säkert, men det har något som ser ut som en Panel längst ner på skärmen, och viss status och annan information som ingår i tapeten. Häng på den’ inte så annorlunda/inte så skrämmande ’ känslan, för jag misstänker att det kommer att bli ganska väl skakat innan du verkligen börjar känna dig mer bekväm med i3.
i3 är inte en skrivbordsmiljö i betydelsen av saker som KDE och Gnome, eller till och med den lätta Xfce och LXDE. Ett av de enklaste sätten jag kan tänka mig för att förklara skillnaden är att medan de flesta skrivbordsmiljöer handlar om ögongodis, är i3 mycket mer bekymrad över fingermat.
här är ett annat sätt att förklara det. i3 är en textorienterad (och tangentbordsorienterad) fönsterhanterare, där de andra traditionella skrivborden är grafikorienterade (och musorienterade) system. Det betyder inte att i3 inte använder musen, förstås. När vi kommer att hantera flera fönster senare kommer det att vara möjligt att välja fönster med musklick. Men i i3 är det viktigt att du enkelt kan manipulera windows utan musen, med bara tangentbordet. I själva verket är detta ett så viktigt mål för i3 att utvecklarna och användarna är glada och stolta när de kan säga, ’Jag gjorde xxxxx (vad som helst) utan att ens röra musen’.
kanske är det bättre att ge ett exempel på vem i3 är avsedd för, snarare än vem det inte är. Mitt dagliga jobb är inom nätverkssäkerhetsteknik. Mina kollegor och jag spenderar mycket tid på att hantera textkonsolenheter och CLI-kommandon, och vi har vanligtvis att göra med mer än en enhet i taget – ofta mycket mer än en. Så att ha en fönsterhanterare som gör det snabbt (väldigt snabbt) och enkelt att skapa nya fönster och hantera befintliga fönster utan att ta händerna bort från tangentbordet är en stor fördel. Nämnde jag snabbt? Bra.
OK, så hur använder du i3? Jag ska gå igenom några exempel för att visa de första enkla stegen för att öppna och hantera fönster.
Jag tror att det enskilt viktigaste konceptet i i3 är Modifieringsnyckeln, som jag kommer att hänvisa till i resten av detta inlägg som Mod-. Det här är nyckeln du håller ihop med andra tangenter för att utföra grundläggande åtgärder som att öppna nya fönster eller flytta mellan fönster. Detta kommer sannolikt att vara antingen Alt-tangenten eller Supernyckeln (aka Window key) på de flesta installationer och tangentbord – i Manjaro i3 är det Super som standard.
Låt oss ta det första språnget och öppna ett fönster på i3. En av de enklaste är ett terminalfönster, som kan öppnas genom att trycka på Mod-Enter.
Yikes! Vad är det? Det ser ut som att i3 har öppnat en helskärmsterminalemulator, med skalprompten längst upp till vänster på skärmen och den genomskinliga kroppen i fönstret som täcker resten av skärmen. Men det är så… naken! Det ser ut som att i3 har förvandlat min fina grafiska skärm till en VT-100-terminal!
Ok, håll dig lugn, andas. Det finns inga gränser, fönsterram, knappar, kontroller, omg, vad ska jag göra med det här?
vad händer om jag kör ett kommando eller något och producerar lite utmatning i det fönstret? Jag kan till exempel köra top, vilket ger mycket produktion och kontinuerligt uppdateras, så resultatet blir väldigt uppenbart.
detta visar att vårt första intryck var korrekt – det finns ett genomskinligt terminalfönster som täcker hela skärmen, så innehållet i det fönstret visas över texten (och grafiken) på tapeten. Gulp. Men fortfarande inget ögongodis, ingen dekoration eller kontroller.
om din enda erfarenhet hittills har varit med traditionella GUI-skrivbordshanterare (KDE, Gnome, Windows, Mac), ser det förmodligen ganska läskigt ut (eller kanske ganska värdelöst).
den goda nyheten på denna punkt är att enligt min erfarenhet, detta är en skrämmande som det blir. Häng tufft, saker är gong för att bli bättre snart.
det finns ett mycket enkelt koncept här, och så fort du verkligen förstår det och accepterar det blir uppgiften att lära sig i3 mycket lättare – för att inte tala om mycket mer logiskt och till och med lite roligt. Konceptet är att i3 är en fönsterhanterare. Det är allt. Det är uppgift är att fylla hela ytan på skärmen med vad fönster du skapar. Period. Det dekorerar inte dem, lägger till kontroller till dem, staplar dem eller gör något annat för dem. Det räknar bara ut hur man täcker skrivbordet med dem.
i det här fallet har vi för närvarande bara ett fönster så det täcker hela skrivbordet. Det har ingen gräns, Det har ingen titel, Det har inte kontroller eller knappar för att minimera/maximera/iconify, det är bara ett bare-bones-fönster med en terminalemulator som körs inuti. Det är vad i3 är här för att göra, så – uppdraget slutfört.
Ok, det är bra för ett fönster, men vad händer om det finns mer än ett? Tja, låt oss prova det genom att helt enkelt trycka på Mod-Enter igen. Det öppnar ett annat terminalfönster.
exakt vad som händer vid denna tidpunkt beror på skärmens storlek och form. Ett andra terminalfönster skapas och skärmen delas så att varje terminalfönster får hälften av skärmen. Huruvida den splittringen är vertikal eller horisontell beror på skärmens dimensioner, men resultatet är konceptuellt detsamma. Jag arbetar på en bredbildsskärm (1366×768), så delningen var vertikal, och nu har jag det ursprungliga fönstret (fortfarande igång) och ett nytt fönster precis bredvid det med en skalprompt som väntar på inmatning.
det finns till och med lite goda nyheter i ögongodisavdelningen, för nu finns det en mycket smal kant som markerar det aktiva fönstret.
komma tillbaka till konceptet som jag började ovan, i3 är en kakel fönsterhanterare. Det betyder att det kommer att ordna vilka fönster du har öppet så att de alla är helt synliga hela tiden, och tillsammans täcker de helt din skärm. Tänk på det som ett klinkergolv – Alla plattor är ordnade sida vid sida i två dimensioner. Alternativet, som implementeras i fönsterhanterarna för nästan alla vanliga Linux-skrivbord, är en staplingsfönsterhanterare, där windows kan överlappa och till och med helt täcka varandra. Det är inte meningsfullt för kakel på ditt golv, och i3 säger att det inte är meningsfullt för kakel på din skärm.
Så vi har redan lärt oss ett i3-tangentbordskommando-Mod-Enter för att öppna ett terminalfönster – och nu när vi har två av dem får vi lära oss en annan, för att ha två fönster är inte mycket användning eller kul om du inte kan flytta mellan dem.
Nu kan du flytta med musen… men som jag sa ovan, för de flesta i3-användare är ett av de främsta målen att inte behöva ta händerna från tangentbordet. Så det” föredragna ” sättet är att använda Mod – tangenten tillsammans med piltangenterna. Om din skärm delas vertikalt, som min är, rör sig Mod-LeftArrow och Mod-RightArrow mellan dem. Om din skärm delas horisontellt, använd sedan Mod-UpArrow och Mod-DownArrow.
För de flesta är det inte väldigt spännande att ha två terminalfönster. Faktum är att det anses vara så tråkigt att Gnome 3-utvecklarna faktiskt gjorde det ont att öppna två av samma fönster. (Bleah till dem.) Så för illustrationsändamål kommer jag att stänga ett av terminalfönstren – det återstående fönstret kommer omedelbart att expandera för att fylla skärmen – och öppna sedan något annat.
det låter lite lättare än det är, för hittills vet vi inte hur man startar ’något annat’ – eller något annat, vi vet bara Mod-Enter för att starta en terminal. Så nu behöver vi en programstartare, och i3 kallas det dmenu. Det är inte den typ av kategori/kaskadmeny som vi är vana vid i de andra skrivborden, det här är en inmatningskänslig meny. När du trycker på Mod-d i3 öppnas en launcher / menyrad längst upp på skärmen, så här:
inmatningsområdet i vänstra änden är där du kan skriva namnet på vad du vill köra; resten av fältet längst upp på skärmen visar en lista över de körbara objekten som matchar din inmatning. Det är som att ha en dynamiskt uppdaterad version av skalet <tab> funktion.
Jag vill köra i3-filhanteraren, som heter ’ranger’, så jag börjar skriva det, och med varje bokstav är visningen av tillgängliga program förfinad. När namnet ’ranger’ är markerat kan jag trycka på Retur för att köra det. Mycket trevligt.
som återigen delar upp skärmen i hälften, med det ursprungliga terminalfönstret på ena halvan och ett nytt fönster för filhanteraren på den andra halvan, som visas här.
OK, jag tror att det går bra hittills. Vi kan öppna fönster, använda dmenu launcher och flytta mellan flera öppna fönster. Innan jag går vidare måste jag förklara lite terminologi.
vad jag har visat hittills när jag har flera fönster, där de är upprörda sida vid sida på displayen, kallas horisontell kakel, eftersom fönstren är ordnade i en horisontell rad. Alternativet, som bara visas en gång ovan, är vertikal kakel, där fönster är ordnade ovanför / under varandra, i en vertikal stapel.
Jag sa ovan att hur fönster är kaklade beror på skärmens dimensioner, och det är sant, åtminstone som standard. Men du kan åsidosätta det med tangentbordskommandon – Mod-v för vertikal kakel och Mod-h för horisontell kakel. Så om du startar från en tom skärm, när du trycker på Mod-v ser du ett litet meddelandefönster längst upp till vänster på skärmen som säger kakel vertikalt. Om du sedan öppnar två fönster staplas de ovanpå varandra, om du trycker på Mod-h och sedan öppnar fönster ordnas de sida vid sida.
detta attribut för kakelbeteende är inte globalt i i3, det är specifikt för varje objekt och det ärvs av barnen till varje objekt. För att illustrera detta går jag tillbaka till skärmen där jag hade en terminal och en filhanterare sida vid sida (horisontellt kaklat) på skärmen. Med fokus på filhanteraren (höger fönster) trycker jag på Mod-v, och sedan öppnar jag ett annat fönster.
Här kan du se att när jag startade gpicview-programmet (en bildvisare) använde i3 vertikal kakel och placerade det nya fönstret under det befintliga fönstret, vilket minskades med hälften.
om jag skulle skapa ännu ett nytt fönster medan fokus fortfarande var på någon av dessa två vertikalt kaklade fönster, skulle det också vara vertikalt kaklat med dem. Så resultatet skulle vara tre fönster i den vertikala stapeln.
Jag har dock inte ändrat kakelläget för det ursprungliga terminalfönstret, som fortfarande upptar den vänstra halvan av skärmen. Om jag ändrar fokus till det fönstret (med antingen Mod-LeftArrow eller musen) och sedan öppnar ett nytt terminalfönster, kommer det fortfarande att skapas med horisontell kakel – så jag kommer då att ha två mycket smala terminalfönster.
denna delning av skärmutrymme för att göra plats för nya fönster kan upprepas så mycket du vill, men det tar naturligtvis inte lång tid för fönstren att bli för små för att kunna användas effektivt. För att lösa detta problem gör i3 det mycket enkelt att använda arbetsytor.
sättet som i3 hanterar arbetsytor är mycket flexibelt och mycket kraftfullt. När i3 först startar använder den arbetsyta 1, vilket indikeras av den lilla rutan längst ner till vänster på skärmen. För att byta till en annan arbetsyta måste du helt enkelt trycka på Mod-<n> där n är arbetsytans nummer, från 1-8.
arbetsytor skapas (och förstörs) på begäran av i3, så när din skärm blir rörig (eller om du bara vill organisera dina fönster i logiska/funktionella grupper) kan du slå Mod-2 (eller ditt favorit/lyckonummer om du är vidskeplig) och du får omedelbart en ren ny skärm att använda. En andra ruta med numret på den nya arbetsytan läggs till i skärmens nedre vänstra hörn.
Du kan sedan skapa fönster och arbeta med den nya arbetsytan på exakt samma sätt som den ursprungliga arbetsytan. Växla mellan arbetsytor kan göras via tangentbordet med Mod-<n> kommandot igen, eller via musen genom att klicka på de numrerade rutorna längst ner till vänster på skärmen.
det är viktigt att förstå att i3 inte håller oanvända arbetsytor inaktiva; om du lämnar en arbetsyta som inte har något öppet fönster stängs den och dess nummer tas bort från arbetsytans listrutor. Du kan fortfarande använda tangentbordet för att återgå till den arbetsytan, och det kommer att vara där igen och redo att köra nya fönster.
förutom den uppenbara situationen för för många fönster / för lite skärmutrymme är arbetsytor ett utmärkt sätt att gruppera fönster för snabb, logisk åtkomst. En vanlig gruppering är att ha en arbetsyta för arbetsrelaterade fönster, en för Internetåtkomst (surfning, e-post etc.), och en för rekreation, spel och fritidsaktiviteter.
det finns många andra möjligheter för arbetsytor. Gruppering efter Enhetstyp (routrar på en arbetsyta, brandväggar på en annan och så vidare), eller när du arbetar med flera enheter av samma typ och sedan använder en annan arbetsyta för varje enhet.
poängen här är att när arbetsytor är så lätta att skapa, och att växla mellan dem är så enkelt och snabbt, blir de verkligen en naturlig och viktig del av din miljö. Jag hoppas att du börjar se hur du använder en kakelfönsterhanterare, som håller alla dina fönster öppna och helt synliga snarare än att stapla, överlappa eller helt ikonisera dem, kan vara en verklig fördel.
det räcker för det här inlägget tror jag. I nästa inlägg kommer jag att titta mer på den normala användningen av i3-fönsterhanteraren. Hittills har jag bara tittat på ett par enkla verktyg och applikationer, så jag kommer att visa hur man installerar och använder några av de vanligaste programmen, till exempel en webbläsare.
Läs mer om Linux och öppen källkod:
- så här anpassar du ditt Linux-skrivbord: MATE
- så här anpassar du ditt Linux-skrivbord: kanel
- så här anpassar du ditt Linux-skrivbord: Xfce
- Hands-On med openSuSE Leap RC1: En promenad genom installationsprogrammet
- Hands-On: KaOS Linux 2015.10
- således kontra Calamares: jämföra Manjaro 15.09 installatörer
- uppgradera min Linux-Windows multi-boot system till Windows 10
- Hands-On: Linux UEFI multi-boot, min väg
- Hands-On: Linux UEFI multi-boot, del två