Guide til "window managers": - Du kan se ut som en hacker fra en film!

Uansett om du bruker Linux, Windows eller Mac, finnes det verktøy for vinduene dine.

Thomas Schüller foran sin utviklermaskin, med vindus-verktøy i full sving. 📸: Privat
Thomas Schüller foran sin utviklermaskin, med vindus-verktøy i full sving. 📸: Privat Vis mer

En introduksjon til Linux window managers, og hvorfor du kanskje vil bytte til en tiling window manager!

Hva er en window manager?

Før jeg forklarer hva en tiling window manager er, bør du vite hva en window manager er:

En window manager er programvare som styrer utseende og plassering av vinduer innenfor et vindusystem i et grafisk brukergrensesnitt. De fleste av disse håndtererne er designet for å hjelpe til med å gi et skrivebordsmiljø, og de er til stede i operativsystemer som Windows og ChromeOS.

Så, hva er de forskjellige typene?

Window managere er vanligvis delt inn i fire klasser som beskriver hvordan vinduene oppdateres og tegnes.

KDE Plasma som bruker KWin compositing window manager.
KDE Plasma som bruker KWin compositing window manager. Vis mer

Compositing: Dette er den mest vanlige formen for window managere, da de fleste av oss bruker en ofte uten å vite det. Et godt eksempel på dette er Windows dwm.exe (Desktop Window Manager). Hvordan denne typen fungerer, er ved å gi programmene uavhengige og separate buffer for hvert vindu. Deretter sammenstiller den outputen fra disse separate bufferne til et felles skrivebord.

Stacking window manager xfwm4 (som nå også har compositor støtte i motsetning til xfce) som blir brukt av xfce4 desktop enviroment
Stacking window manager xfwm4 (som nå også har compositor støtte i motsetning til xfce) som blir brukt av xfce4 desktop enviroment Vis mer

Stacking: Også ofte kalt floating window manager er en window manager som tegner vinduer og tillater dem å overlappe uten bruk av en komposisjonsmetode.

Tiling window manageren bspwm
Tiling window manageren bspwm Vis mer

Tiling: er en window manager som organiserer skjermen i gjensidig ikke-overlappende rammer, i motsetning til den mer typiske tilnærmingen med stabling av overlappende objekter koordinat-basert som gjøres for å etterligne “skrivebordsmetaforen”.

Dynamic tiling window manageren Awsome
Dynamic tiling window manageren Awsome Vis mer

Dynamic: er en tiling window manager som “flislegger” vinduer basert på forhåndsdefinerte oppsett som brukeren kan bytte mellom. Et oppsett består ofte av en hoveddel og en sekundær del. Hoveddelen har vanligvis ett vindu, selv om antallet vinduer i denne delen kan endres. Målet er å gi plass til det viktigste vinduet mens den sekundære delen viser de gjenværende vinduene.

Hvorfor bør du bruke en flisleggings-vindushåndterer?

Først og fremst er tiling window managere svært konfigurerbar og utvidbare. Dette betyr at du virkelig kan gjøre det til ditt eget, ofte gjennom å konfigurere med Lua, Haskell, python, bash, C eller vanlige tekstkonfigurasjonsfiler.

For det andre er det mye enklere og mer effektivt å organisere skrivebordet ditt med tiling window managere. Du kan enkelt styre og flytte vinduer rundt på skrivebordet med tastatursnarveier du selv styrer og velger. Et godt eksempel på dette er å bruke sxhkd for å styre alle tastatursnarveiene når du bruker bspwm.

For det tredje får du en bedre forståelse for operativsystemet, da du kanskje må konfigurere og sette opp paneler og et varslingssystem selv. Dette gir deg muligheten til virkelig å kontrollere hva som utgjør skrivebordsmiljøet ditt, og jeg vil påstå at det kan gjøre deg til en bedre sysadmin eller utvikler.

For det fjerde, ved å bruke en tiling window manager fjerner du “bortkastet” skjermplass, da den bruker all tilgjengelig størrelse på vinduet når den er i tiling modus. Dette sikrer også at du alltid vet hvilke apper som er åpne, da du alltid kan se dem. De har også stor støtte for multi head-systemer (flere skjermer).

Til slutt er det perfekt for sysadmins og utviklere som bruker hele dagen i en terminal eller med tekstredigering, da det er mer effektivt og lettere enn fullverdige skrivebordsmiljøer. Du får også muligheten til fullt ut å kontrollere arbeidsflyten din, og det er en virkelig god kombinasjon med vim og Emacs.

Bonus: Du kan se ut som en hacker fra en Hollywood-film 😎

Bilde av mitt bspwm setup.
Bilde av mitt bspwm setup. Vis mer

Liste over noen kule flisleggings vindushåndterere å sjekke ut:

Dynamic:

  • awsome: En hybrid window manager med batterier inkludert konfigurert i Lua som er bra for nybegynnere.
  • dwm: Minimal ut av boksen konfigurert i C (du må rekompilere etter hver konfigurasjonsendring).
  • xmonad: Suckless i naturen og skrevet og konfigurert i Haskell og kan derfor være den vanskeligste å konfigurere.
  • i3: Veldig populær “dynamic” tiling window manager, skrevet i C og enkel å tilpasse med en konfigurasjonsfil.
  • Sway (Wayland): En tiling Wayland-kompositor som er en drop-in erstatning for X11 i3 vindushåndterer.

Flislegging:

  • bspwm: Lettvekter og minimalistisk hvor vinduene representeres i blader på et binært tre. Skrevet i C og enkelt å konfigurere med en konfigurasjonsfil.
  • Qtile: Batterier inkludert og konfigurert med python, bra for nybegynnere.

Dette er kult og alt, men jeg er ikke en Linux-bruker?

Ikke bekymre deg, det finnes alternativer for både Mac og Windows! Hvis du vil dyppe tærne dine i flisleggings vindushåndterer universet uten å forplikte deg til Linux, er disse noen gode alternativer å prøve ut.

Windows:

  • FancyWM: FancyWM er en dynamic tiling window manager for Windows 10/11.

Mac:

  • Amethyst: En xmonad-inspirert tiling window manager laget for MacOS.

Bonus: Hvordan får jeg oppsettet mitt til å se kult ut?

Det finnes communities som fokuserer kun på å gjøre sånn at skrivebordsmiljøet ser kult ut. Dette kalles ricing og kommer fra bilverdenen hvor RICE står for Race Inspired Cosmetic Enhancement. Ideen bak dette er å øke den opplevde ytelsen gjennom kosmetiske endringer ifølge urban dictionary. Hvis du vil bli inspirert av andres oppsett, bør du sjekke ut subredditen r/unixporn.