Ideen med Ion er at man ikke har overlappende vinduer og at vinduerne dækker hele skærmen (der er altså ingen flotte baggrundsbilleder nedenfor).
Der er vist endnu ikke andre Linux-distributioner end Debian, der
har Ion med i
udvalget af window managers
. Jeg hentede RPM-pakken
"ion-20020207-1.i386.rpm
" fra hjemmesiden:
Alternativt kan man hente kildeteksten fra Ions hjemmeside og oversætte den selv.
Ions bruger filen "~/.ion/ion.conf
" som opsætningsfil.
Hvis filen ikke er der, vil Ion ikke starte. Du kan for eksempel bruge
samme fil (plus tilbehør) som der er brugt her, som udgangspunkt.
Opret kataloget "~/.ion
" og læg de tre opsætningsfiler
nedenfor i det.
~/.ion/ion.conf
")~/.ion/ion.conf
")Dernæst kan du oprette filen "~/.xsession
" med
linien:
exec ion
Når du så har logget ind og åbnet et par vinduer kan din skærm for eksempel se sådan ud:
Da hele ideen med Ion er at man skal kunne arbejde effektivt uden at
bruge musen for meget, er det vigtigt at sætte nogle komfortable
genvejstaster op. Genvejstasterne defineres i blokken
"bindings
" i opsætningsfilen (eller en af de filer
opsætningsfilen inkluderer). Starten på blokken markeres med
"bindings{
" og slutningen på blokken markeres med
"}
".
Det er vigtigt at kunne starte en `xterm
`. Det kan man
for eksempel bruge Ctrl-Alt-T til:
bindings{ # set_mod "Control+Mod1" # kpress "T", "exec", "xterm" #
Vi kan også vælge at bruge Ctrl-Escape til at starte et program efter eget valg:
set_mod "Control" # kpress "Escape", "query_exec" #
Når du taster Ctrl-Escape dukker der en minikommandolinie op nederst i rammen, hvor du kan indtaste en kommando der køres i et nyt vindue.
Hvis vi starter flere xterm'er i samme ramme vil de blive til faneblade. Det vil være praktisk at kunne skifte mellem dem med Alt-Tab:
set_mod "Mod1" # kpress "Tab", "switch_next" #
Bemærk at det aktive faneblad er markeret med blå tekst på hvid baggrund (hvis du bruger filerne ovenfor), mens inaktive faneblade er markerede med hvid tekst på blå baggrund.
Det er lidt pjattet kun at have én ramme, hvor alle vinduerne er faneblade i. Vi kan for eksempel bruge Alt-O+V til at lave en vandret opdeling af en ramme og Alt-O+L til at lave en lodret opdeling af en ramme:
set_mod "Mod1" # submap "O" { # kpress "V", "split_horiz" # kpress "L", "split_vert" # } #
Med flere rammer vil du kunne se at de aktive faneblade i inaktive rammer markeres med sort tekst på grøn baggrund.
Men når vi nu har flere rammer, så er det også nødvendigt at kunne skifte mellem dem. Det kan vi for eksempel bruge Ctrl-Alt-(piletaster) til:
set_mod "Control+Mod1" # kpress "Left", "goto_left" # kpress "Right", "goto_right" # kpress "Up", "goto_above" # kpress "Down", "goto_below" #
Det kan også blive nødvendigt at lukke et vindue af og til. Det kan man for eksempel gøre med Alt-F4:
set_mod "Mod1" # kpress "F4", "closedestroy" #
Og når vi nu bruger Alt-O+... til at ændre rammernes størrelser, så kan vi jo passende bruge Alt-O+F4 til at lukke en ramme:
set_mod "Mod1" # submap "O" { # kpress "V", "split_horiz" # kpress "L", "split_vert" # kpress "F4", "destroy_frame" # } #
Det kan også være nyttigt at kunne ændre rammernes størrelser. I
blokken "moveres_bindings
" sætter man hvilke taster der
gør rammen større ("S") eller mindre ("M"), aktiverer ændringen (enter)
eller annullerer ændringen (escape):
moveres_bindings{ # set_mod "AnyModifier" # kpress "S", "grow" # kpress "M", "shrink" # kpress "Return", "end_resize" # kpress "Escape", "cancel_resize" # } #
Men vi har også brug for at fortælle at rammen skal ændre størrelse. Vi kan for eksempel bruge Alt-F8 til at ændre højden på rammen, og Ctrl-F8 til at ændre bredden på rammen:
set_mod "Mod1" # kpress "F8", "resize_vert" # set_mod "Control" # kpress "F8", "resize_horiz" #
Uanset hvor velorganiseret man er, kan man af og til få brug for at flytte et vindue til en anden ramme. Det kan man gøre ved at flytte til den ramme man vil have vinduet over i (med Ctrl-Alt-<pil>), taste Alt-F7, skrive noget af vinduets navn, trykke på Tab (for at få skrevet navnet færdigt) og Enter.
set_mod "Mod1" # kpress "F7", "query_attachclient" #
Svarende til Alt-F8 og Ctrl-F8 (ændring af en rammes højde og bredde) kan vi definere Alt-F2 og Ctrl-F2 til at maksimere henholdsvis rammens højde og bredde:
set_mod "Mod1" # kpress "F2", "maximize_vert" # set_mod "Control" # kpress "F2", "maximize_horiz" #
Jeg synes at det er vældig praktisk at bruge en window
manager
der hjælper mig med at sørge for at mine vinduer ikke
overlapper. Og så er det rimeligt overkommeligt at styre en hel masse
direkte fra tastaturet. Hvis `xterm
` understøttede
tastaturbaseret klippe-klistre, så ville jeg omgående fodre min mus til
den nærmeste kat.
Siden det nu er søndag er der lidt ekstra guf. I stedet for at sætte sin yndlings window manager ind i sin .xsession og vælge default, kan det være smart at sætte den ind i den menu, der vises i KDM eller GDM, så man kan vælge den derfra.
Der kan være forskelle på de forskellige distributioner. Eksemplerne herunder er baseret på Red Hat. Vi håber der kan være til hjælp og inspiration også for dem der ikke kører Red Hat.
Først må man finde ud af om man kører kdm eller gdm. Dette kan gøres ved
at se, om der kører en proces der hedder kdm eller gdm.
$ ps ax |grep kdm
Her kører vi kdm. Hvis vi kørte gdm, var det ps ax |grep gdm
der var kommet output ud af.
1181 ? S 0:00 /usr/bin/kdm -nodaemon
2431 pts/4 S 0:00 grep kdm
$ ps ax |grep gdm
2433 pts/4 S 0:00 grep gdm
Der er også forskel på hvordan de ser ud. Der kan være forskel fra distribution til distribution, men her er screen shots fra Red Hat:
Og her er fra gdm:
Hvis du kører GDM er det nemt at sætte den nye Window manager ind i menuen:
Når du er tilfreds med din $HOME/.xsession kan den kopieres til /etc/X11/gdm/Sessions/WMNAME .
Det er nemt nok at få kdm til at vise et nyt menupunkt. Åbn filen "/etc/X11/xdm/kdmrc" med en editor. (Kan ligge andre steder på andre distributioner).
Find linien "SessionTypes" og indsæt navnet på din nye window
manager:
SessionTypes=default,kde,failsafe,gnome,icewm,qvwm
Dette får imidlertid kun kdm til at vise menupunktet. Man skal selv
sørge for at der sker det rigtige, når man vælger det fra menuen.
Hvis man kører KDM på Red Hat og har switchdesk installeret, skal man blot kopiere sin .xsession til /usr/share/apps/switchdesk/ og kalde den Xclients.icewm eller Xclients.qvwm eller hvad man nu har sat ind i sin .kdmrc for et navn. Den skal måske helst have permissions 755 (kig på de filer der ligger der i forvejen.
Hvis man ikke kører Red Hat med switchdesk installeret, skal man sætte
sin nye Window Manager ind i det case statement, der findes i filen
/etc/X11/xdm/Xsession (kan ligge andre steder på andre
systemer).
case $1 in
failsafe)
exec -l $SHELL -c "xterm -geometry 80x24-0-0"
;;
gnome)
exec -l $SHELL -c "gnome-session"
;;
kde|kde1|kde2)
exec -l $SHELL -c "/usr/share/apps/switchdesk/Xclients.kde"
;;
twm)
# fall back to twm
exec -l $SHELL -c "/usr/share/apps/switchdesk/Xclients.twm"
;;
icewm)
# Her har jeg indsat icewm
exec /usr/X11R6/bin/icewm
;;
qvwm)
# Her har jeg indsat qvwm
exec /usr/local/bin/qvwm
;;
esac