i3 är en plattsättning fönsterhanterare. Det är helt skriven från grunden.
i3 skapades eftersom wmii, vår favorit fönsterhanterare på tiden, didn & rsquoen; t ge några funktioner som vi ville (Xinerama gjort rätt, till exempel), hade en del buggar, didn & rsquoen; t framsteg sedan ganska lång tid och var inte & rsquo; t lätt att hacka på alla (källkod kommentarer / dokumentation helt saknas). Ändå tror vi de wmii utvecklare och bidragsgivare gjorde ett bra jobb. Tack för att inspirera oss att skapa i3.
Var medveten om att i3 riktar sig främst till avancerade användare och utvecklare.
Mål:
Baserat på de erfarenheter vi gjort när vilja hacka / fix wmii, vi enats om följande mål för i3:
& Nbsp; 1. Skriv väl läsbar, väldokumenterad kod. Skapa ytterligare dokumentation om hur man förlänga i3 genom att förklara dess interna arbete.
& Nbsp; Detta inkluderar att vara modifyable av människor som vet hur man programmerar, men som inte nödvändigtvis är bekant med alla X11 & rsquo; s interna. Det är, dokument varför saker händer och när de inträffar, så att användaren får en bild av hela processen en Window Manager ansvarar för genom att bara läsa källkoden.
& Nbsp; 2. Använd XCB så långt som möjligt (det inte ger funktioner för vissa funktioner ännu, liksom XKB) istället för Xlib. XCB har en mycket renare API och bör vara snabbare i ganska många situationer.
& Nbsp; 3. Genomföra Xinerama korrekt, är att genom att tilldela varje arbetsyta till en virtuell skärm. Speciellt att se till att fästa och lösgöra nya monitorer som videoprojektorer fungerar under drift och gör det rätta.
& Nbsp; 4. Använd metafor för ett bord för abstraktion. Du kan skapa horisontella och vertikala kolumner (i wmii, kan du bara skapa vertikala kolumner). Se dokumentationen för mer information om hur detta fungerar, är det verkligen en viktig princip i i3. (TODO: dokumentation:-))
& Nbsp; 5. Genomföra en kommandoläge, som i vim. Du kan enkelt kombinera flera åtgärder (som att fokusera, flytta, knäppa) genom att använda kommandoläge.
& Nbsp; 6. Genomföra xrandr stöd för att vända monitorer.
& Nbsp; 7. Använd inte program som autoconf / auto för konfigurering och skapa oläsbara / trasiga makefiler. Använd i stället en ren makefile som automatiskt aktiverar / avaktiverar funktioner för specifika plattformar. Också, dokumentera beroenden ordentligt, så att paketansvariga har ett lätt jobb förpacknings i3.
& Nbsp; 8. Ge krokar / callbacks för andra program att integrera. Med hjälp av denna mekanism, kan man enkelt förlänga i3 oavsett språk, utan att någonsin röra vid C-kod. Dessutom, för att kommunicera med en löpande i3 exempel kan meddelanden sändas.
& Nbsp; Detta tillvägagångssätt bör vara mer lätt än wmii & rsquo; s användning av 9P filsystemet. Vidare har kärnfunktioner inte beroende av ett separat program, så att i3 går snabbare, speciellt när ditt system är under belastning.
& Nbsp; 9. Var UTF-8 ren.
& Nbsp; 10. Den vanliga elitism bland minimala fönsterhanterare: Don & rsquoen; t vara uppblåst, don & rsquoen; t vara snygga (enkla gränser är de mest dekoration vi vill ha), don & rsquoen; t lägga till stöd för XFT och suddiga typsnitt.
& Nbsp; Men vi tillämpar inte onödiga begränsningar såsom en maximal mängd käll kodrader. Om det måste vara lite större, kommer det att bli.
Specialfunktioner
* Vi kan binda på Mode_switch (Alt Gr). Andra fönsterhanterare inte gör det på grund av en X11-bugg som gör att modifierings staten att inte korrekt inställd i KeyPress- händelser. Vi använder XKB för att se till att få rätt tillstånd
Vad är nytt i den här versionen:.
- Kompatibilitet förbättrades, i synnerhet för Mathematica och Java-program.
- i3-nagbar bör arbeta med flera terminal emulatorer än tidigare.
Vad är nytt i version 4.5.1:
- Detta är en buggfix release, och alla användare är rekommenderas att uppgradera.
- Det åtgärdas ett problem som skulle orsaka i3 att krascha när du drar flytande fönster från en bildskärm till en annan.
Vad är nytt i version 4.5:.
- De flesta av ändringarna är rensas och buggfixar
- På grund av rensas, i3 inte längre är beroende av flex / bison.
- libev ≥ 4 är nu en hård beroende (libev & lt; 4 stöds inte längre).
- En viktig förändring att notera är att flytta fönster till en annan utgång inte längre kommer att flytta fokus till det utgång.
Vad är nytt i version 4.4:
- En viktig under-huven förändringen är att den här versionen Nu använder samma parser infrastruktur för konfigurationsfilen som för kommandona.
- Bortsett från detta, har det förekommit flera små fixar och tillägg som gör i3 ägna mer uppmärksamhet på detaljer, i synnerhet i det flytande fönstret området av koden. Se listan förändringar / buggfixar för mer information.
- Notera att dessa förändringar är 4,4 specifika, och sedan den senaste versionen släpptes här har det skett många förändringar.
Kommentarer hittades inte