3.17. Windows-el

Windows-el er ikke en windowmanager i almindelig forstand, den kan faktisk kun bruges til at styre emacs-vinduer, men hvem har brug for andet? At windows-el ikke er en windowmanager betyder også at du kan bruge den sammen med enhver windowmanager.

Faktisk er windows-el et forholdsvis stærkt værktøj til at styre sin emacs.

Det er nok mest brugbart i konsollen, men her er et skærmbillede af X med en .xsession -fil der kun starter en emacs, og hvor windows-el så er brugt til at lave et ekstra vindue.

Figur 3-27. Windows-el

Dem der bruger emacs frame -funktionalitet, synes måske ikke det ser specielt imponerende ud. Men der er fordele. Man kan skifte mellem vinduerne med C-c vinduesnummer (man kan have 9 vinduer), og hvis man af en eller anden grund ikke har en window manager (se senere) sørger emacs rent faktisk for at hæve det vindue der har fokus (det kan dog ikke ses på cursoren).

En anden rar funktion er See you! / Revive! . Ved at trykke C-x C, får man emacs til at gemme oplysninger om vinduernes placering og hvilke filer der er åbne i hvert vindue inden emacs afsluttes. Næste gang man starter emacs op, kan man så vælge trykke C-c, C-w, C-r R, så henter den de oplysninger og åbne de forskellige filer i de rigtige vinduer.

3.17.1. At undvære en windowmanager?

Faktisk kan man godt anvende X uden en windowmanager. Det eneste det egentlig kræver er at man fra sin .xsession starter et program der kan bruges til at starte andre programmer (så man har en chance for at få lavet noget). Et terminalemuleringsprogram efter eget valg (xterm, eterm, gnome-terminal, konsole, ...) er nok det smarteste, men som man kan se af det foregående afsnit er emacs også en mulighed.

3.17.1.1. Jamen, hvordan gør man så?

Fokus følger musen, så sålænge man kan se et vindue har man mulighed for at bruge det, i det omfang det tillader betjening via tastaturet.

Det er ret klart at det vil være en fordel at vinduer ikke overlapper, men man kan ikke flytte vinduer eller ændre størrelse på dem. Løsningen på det er kun at bruge programmer der forstår -geometry -argumentet (det gør de fleste X-programmer der er et par år gamle). Syntaksen for -geometry -argumentet er bredde x højde +x +y. Man kan udelade enten bredde x højde, eller +x +y. Bredde og højde angives i tegn for programmer der tegnbaserede (f.eks. bruger jeg tit `xterm -geometry 80x40` for at få en xterm med 40 linjer) og ellers i pixels. X- og y-koordinater kan både angives med + eller - . Hvis x-koordinaten er positiv angiver den hvor mange pixels fra venstre side af skærmen vinduets venstre kant skal placeres, og hvis den er negativ hvor mange pixels fra skærmens højre side vinduets højre kant skal placeres. Tilsvarende for y-koordinater. Man kan altså placere et vindue i nederste højre hjørne med -geometry -0-0.

3.17.2. Er det brugbart i praksis?

Kun hvis man ved med sikkerhed at vinduerne til de programmer man skal bruge kan være på skærmen samtidigt uden at overlappe. Så kan det komme til at se sådan her ud:

Figur 3-28. Ingen WM

Men hvis du en dag skulle komme i en situation, hvor tingene bare ikke virker, kan det være rart at vide. Hvis du i Gnome/KDE vælger en fejlsikret session, får du f.eks. en xterm og intet andet. Desuden er -geometry god at kende, det er bare trist at så mange nyere programmer ikke forstår det.