3.8. Ion

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.

3.8.1. Opsætningsfiler

Ion 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 for din egen opsætning.

Opret kataloget "~/.ion" og læg de tre opsætningsfiler nedenfor i det.

Dernæst kan du oprette filen ~/.xsession med linjen:

exec ion
så Ion starter næste gang du logger ind.

3.8.1.1. Udseende

Når du så har logget ind og åbnet et par vinduer kan din skærm for eksempel se sådan ud:

Figur 3-14. billede af ion i brug

3.8.1.2. Tastaturgenveje

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 }.

3.8.1.3. Starte et program

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 minikommandolinje op nederst i rammen, hvor du kan indtaste en kommando der køres i et nyt vindue.

3.8.1.4. Skifte mellem faneblade

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 opsætningsfilerne ovenfor), mens inaktive faneblade er markerede med hvid tekst på blå baggrund.

3.8.1.5. Opdele i flere rammer

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.

3.8.1.6. Skifte mellem rammer

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"           #

3.8.1.7. Lukke vinduer og rammer

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"  #
        }                                       #

3.8.1.8. Ændre rammernes størrelser

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"         #

3.8.1.9. Flytte vinduer

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"   #

3.8.1.10. Maksimere vinduer

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"       #

3.8.1.11. Andre genvejstaster

  • Brugsanvisning (man-side): F1

  • SSH til en anden maskine: F4

  • Redigér en fil: F5

  • Opret/skift til skrivebord: F9

  • Genstart Ion: F11

  • Log ud: F12

3.8.2. Hvorfor er Ion sej?

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.