Kapitel 3. Rene WM'er

3.1. 9wm

9wm er en ældre sag. Den første udgave er fra 1994. Ideen med 9wm er at emulere udseende og opførsel fra windowmanageren i operativsystemet Plan 9 (den hedder i øvrigt 8½, men det er en anden sag)

3.1.1. Installation

Der eksisterer RPM-pakker til Red Hat rundt omkring, men enten er det ikke nyeste version (der under alle omstændigheder er nogle år gammel), eller også fungerer de ikke. Det letteste er at hente kildeteksten fra http://sources.isc.org/X/window-managers/9wm-1.1.tar.gz.

9wm er så gammel at den ikke kan bygges med ./configure && make && make install som ellers er normalt i dag.

I stedet skal man bruge xmkmf . Såfremt den ikke er installeret, kan den formodentlig findes i pakken XFree86-devel.

Man bør ikke have hjemmeoversatte programmer liggende og flyde blandt de programmer der er installeret med RPM/DPKG. Derfor bør man indsætte et par linjer ekstra i den ellers ret minimalistiske Imakefile:

DESTDIR = /usr/local 
BINDIR = /bin 
MANDIR = /man 

Herefter udføres disse kommandoer:

xmkmf
 make
 su
 make install

9wm er ikke fyldt med features og sjove indfald. Nærmest tværtimod. 9wm kan to ting:

  • Starte et specifikt program ( 9wm -term "PROGRAMNAVN" )

  • Afslutte sig selv ( 9wm exit )

PROGRAMNAVN kan være hvad som helst, men det er selvfølgelig praktisk at lade den starte en xterm, hvorfra man så kan starte andre programmer. Hvis man ikke angiver hvilket program der skal startes vil den prøve at starte xterm.

I .xsession indsættes:

#!/bin/bash

exec /usr/local/bin/9wm -term "xterm -ls"

Figur Figur 3-1 viser 9wm med en xterm og menuen.

Figur 3-1. 9wm

3.1.2. Brug af 9wm

Der er ingen rammer eller bjælker man kan hive fat i for at flytte vinduer eller ændre størrelse på vinduer. Alt foregår via menuen der kan nås ved trykke højre museknap ned, og holde den nede. I øvrigt bruges højre museknap til alle operationer.

  • Ny terminal: Vælg New fra menuen. Angiv hvor terminalen skal placeres

  • Flytte et vindue: Vælg Move fra menuen. Marker det vindue der skal flyttes. Angiv hvor det skal flyttes hen.

  • Ændre størrelse på et vindue: Vælg Reshape fra menuen. Marker det vindue der skal ændres på. Angiv den ønskede størrelse på vinduet.

  • Luk et vindue: Vælg Delete fra menuen. Marker det vindue der skal lukkes. Læg mærke til at dette svarer til at bruge kommandoen xkill.

  • Gem et vindue: Vælg Hide fra menuen. Marker det vindue der skal gemmes væk.

3.1.2.1. En menu mere

Vil man have en decideret menu til at starte programmer fra kan man prøve 9menu. Den kan findes på ftp://ftp.comintern.ru/pub/unix/X11/plan9/.

9menu-1.5.shar.gz er en zippet shar-fil. Dvs. et script med indbygget binær kode.

Lav et katalog til kildeteksten - pak ud - kør shar-filen:

mkdir 9menu
gzip -d 9menu-1.5.shar.gz
cd 9menu
sh ../9menu-1.5.shar

På Red Hat 8 vil den ikke oversætte med det samme, men hvis Makefile ændres til følgende går det uden problemer:

# Makefile for 9menu.
#
# Edit to taste
#
# Arnold Robbins
# arnold@skeeve.atl.ga.us

CC = gcc
CFLAGS = -g -O
SEARCHLIBS = -L/usr/X11R6/lib
LIBS = -lX11

9menu: 9menu.c
        $(CC) $(SEARCHLIBS) $(CFLAGS) 9menu.c $(LIBS) -o 9menu

Herefter køres make, og den nye binære fil kopieres på plads:

make
su
cp 9menu /usr/local/bin

9menu har ingen opsætningsfil, men skal sættes op i .xsession:

#!/bin/bash

xsetroot -solid black
oclock -fg gold -bg black -jewel red -bd white -geometry -0-120 &
xload -geometry 120x120-0-0 -highlight gold -bg black -fg gold &

9menu -geometry -0+0 \
EMACS:emacs \
GV:gv \
Netscape:/usr/local/netscape/netscape \
Evolution:evolution \
Galeon:galeon \
Gaim:gaim \
Terminal:"xterm -ls" \
"SSLUG ssh":"xterm -e ssh -t gw ssh sslug" \
ScreenShot:"xwd|display" \
Exit:"9wm exit" &

exec /usr/local/bin/9wm -term "xterm -ls"

Her sættes baggrunden til sort, et ur og xload startes i nederste højre hjørne og 9menu startes i øverste højre hjørne. Et par programmer fra menuen er også startet:

Figur 3-2. 9wm

3.1.3. Er 9wm anvendelig?

Ja. Det synes jeg. Selvfølgelig er der windowmanagere der er hurtigere og mere intuitive at arbejde med, men 9wm slår de fleste andre på ældre hardware; den bruger under 1 MB hukommelse når den kører.