A.2. XF86Config filen

For de fleste er der ikke mere opsætning for at kunne vise grafikken. Men skulle det ske, at din mus eller dit tastatur ikke virker helt, skal du redigere XF86Config filen med emacs, vi eller pico som vist i det følgende. Disse tekst editorer er omtalt i afsnit 6.4.

A.2.1. Tastatur

For tastaturet vil følgende linjer passe til de fleste danske keyboards (en del kommentarlinjer, der begynder med #, er slettet):

Section "Keyboard"
   Protocol        "Standard"
   AutoRepeat      500 5
   LeftAlt         Meta
   RightAlt        Meta
   ScrollLock      Compose
   RightCtl        Control
   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "dk"
EndSection

A.2.2. Mus

I modsætning til Windows-verdenen er det smart at købe en tre-knaps mus til Linux. Man kan godt bruge to knaps mus, men Linux kan anvende tre knapper på en meget smart måde.

Musen kan være lidt problematisk for nogle. Får du ikke fat i den rigtige type, kan du se det ved, at musen ofte springer rundt. Du skal så rette i XF86Config i afsnittet "Pointer", der kan se ud som:

Section "Pointer"
    Protocol    "MouseMan"
    Device      "/dev/mouse"
#    Emulate3Buttons
#    Emulate3Timeout    50
EndSection
Vi har her med en Logitech treknapsmus at gøre. En mus, som oftest er af typen MouseMan. Dog kan protocol sættes til PS/2, hvis stikket er af PS/2 typen. Har man en Microsoft toknapsmus, må man emulere midterknappen ved at trykke begge knapper ned på samme tid, og de to udkommenterede linjer ovenfor skal så gøres aktive, dvs. du skal fjerne #-tegnet.

Check også, at du har /dev/mouse til at pege på den rigtige port - i dette tilfælde /dev/psaux, som er PS/2-porten til mus.

[daisy@linus daisy]$  ls -al /dev/mouse
lrwxrwxrwx   1 root     root            5 May 15 14:37 /dev/mouse -> psaux
Var dette ikke tilfældet, skal du rette op på dette med
[daisy@linus daisy]$  rm -f /dev/mouse
[daisy@linus daisy]$  ln -sf /dev/psaux /dev/mouse
Bruger du COM1 (fra DOS) til musen, så erstat /dev/psaux med /dev/ttyS0.

Der er følgende lovlige protokoller, som vises ved at skrive man XF86Config:

BusMouse, Logitech, Microsoft (Ofte til to-knaps mus), MMSeries, Mouseman (tit med Logitech mus), MouseSystems (ofte no-name treknapsmus), PS/2 (for PS/2 port mus), MMHitTab, GlidePoint, IntelliMouse, Xqueue og OSMouse. I Red Hat 5.2 og 6.0 er der også kommet support for flere varianter af Genius NetMouse og Netscroll, Kensington Thinking mouse, ALPS GlidePoint, ASCII MieMouse, ATI bus mus, Logitech MouseMan+ og FirstMouse+.

A.2.2.1. Mus med hjul

Det kan nævnes, at med Microsoft intellimouse, Logitech pilot+, and Logitech mouseman+ med hjul på kan der være problemer med at få den midterste knap (hjulet) til at virke. Men som altid, er der nogen, som har arbejdet med sagen, og der er hjælp at hente på http://www.inria.fr/koala/colas/mouse-wheel-scroll

For at gøre X i stand til at benytte hjulet som midterknap, skal man rette i filen /etc/X11/XF86Config for Red Hat og tilsvarende er det /etc/XF86Config for SuSE. Protokollen skal ændres, og hjul-funktionen skal aktiveres.

Pointer-sektionen i XF86Config ser nu ud som følger:

Section "Pointer"
    Protocol    "imps/2"
    ZAxisMapping 4 5
    Device      "/dev/mouse"

A.2.2.1.1. Mus med hjul og Netscape

For at benytte hjulet til at scrolle op og ned i Netscape indsættes følgende i ~/.Xdefaults

Netscape*drawingArea.translations:  #replace \
         <Btn1Down>:    ArmLink()   \n\
         <Btn2Down>:     ArmLink()   \n\
         ~Shift<Btn1Up>:    ActivateLink()  \n\
         ~Shift<Btn2Up>:    ActivateLink(new-window)  \
                                         DisarmLink()   \n\
         Shift<Btn1Up>:    ActivateLink(save-only)  \
                                         DisarmLink()   \n\
         Shift<Btn2Up>:    ActivateLink(save-only)  \
                                         DisarmLink()   \n\
         <Btn1Motion>:     DisarmLinkIfMoved()  \n\
         <Btn2Motion>:     DisarmLinkIfMoved()  \n\
         <Btn3Motion>:     DisarmLinkIfMoved()  \n\
         <Motion>:     DescribeLink()  \n\
         <Btn3Down>:     xfeDoPopup()   \n\
         <Btn3Up>:     ActivatePopup() \n\
         Ctrl<Btn4Down>: PageUp()\n\
         Ctrl<Btn5Down>: PageDown()\n\
         Shift<Btn4Down>: LineUp()\n\
         Shift<Btn5Down>: LineDown()\n\
         None<Btn4Down>: LineUp()LineUp()LineUp()LineUp()LineUp()LineUp()\n\
         None<Btn5Down>: LineDown()LineDown()LineDown()LineDown()LineDown()LineDown()\n\
         Alt<Btn4Down>: xfeDoCommand(forward)\n\
         Alt<Btn5Down>: xfeDoCommand(back)\n
Netscape*globalNonTextTranslations: #override\n\
         Shift: LineUp()\n\
         Shift: LineDown()\n\
         None:LineUp()LineUp()LineUp()LineUp()LineUp()\n\
         None:LineDown()LineDown()LineDown()LineDown()LineDown()

Tilsvarende kan du få mere gavn af musehjulet i xterm ved at tilføje

xterm*VT100.Translations: #override\n\
        Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
        Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
        Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
        Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
        <Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
        <Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\
        <KeyPress>Prior : scroll-back(1,page)\n\
        <KeyPress>Next : scroll-forw(1,page)
XTerm.vt100.Scrollbar.translations: #override\n\
     <Btn5Down>: StartScroll(Forward)\n\
     <Btn4Down>: StartScroll(Backward)
nxterm*VT100.Translations: #override\n\
        Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
        Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
        Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
        Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
        <Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
        <Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\
        <KeyPress>Prior : scroll-back(1,page)\n\
        <KeyPress>Next : scroll-forw(1,page)

A.2.2.1.2. Mus med hjul og Emacs

For at benytte hjulet til at scrolle op og ned i Emacs laves en Emacs Lisp fil (en el-fil). Som root kan den placeres sammen med de andre el-filer i /usr/share/emacs/20.2/lisp. Dette muliggør lettere adgang, idet Emacs' library-path umiddelbart finder filen, når den skal loades. Man kan f.eks. kalde filen mwheel.el, og den kan se ud som følger:

;;; No copyright

;; Maintainer: Jan Eggert Kofoed  mailto:jan.kofoed@person.dk
;; Keywords: intellimouse

;; This file can be used with GNU Emacs.

;; The code was taken from
;;   www.inria.fr/koala/colas/mouse-wheel-scroll
;; which is maintained by Colas Nahaboo, but the code is put there
;; with courtesy of
;;    Sylvia Knight, Sylvia.Knight@cl.cam.ac.uk

;;; Code:

(defun up-slightly () (interactive) (scroll-up 5))
(defun down-slightly () (interactive) (scroll-down 5))
(global-set-key [mouse-4] 'down-slightly)
(global-set-key [mouse-5] 'up-slightly)
(defun up-one () (interactive) (scroll-up 1))
(defun down-one () (interactive) (scroll-down 1))
(global-set-key [S-mouse-4] 'down-one)
(global-set-key [S-mouse-5] 'up-one)

(defun up-a-lot () (interactive) (scroll-up))
(defun down-a-lot () (interactive) (scroll-down))
(global-set-key [C-mouse-4] 'down-a-lot)
(global-set-key [C-mouse-5] 'up-a-lot)

Filen kan også byte-compiles med Emacs. Emacs kan så læse filen, når du skriver følgende linje ind i ~/.emacs:

(load-library "mwheel")

A.2.3. Skærm

Med hensyn til skærm skal du finde manualen og finde data om "vertical refresh" målt i Hz og "horizontal sync" målt i kHz. Under afsnittet om "Monitor" må man ikke skrive hurtigere data, end skærmen kan klare. Det kan overbelaste skærmen! Har man skrevet, at skærmen fint kører 90Hz, selvom det er løgn, vil man se, at skærmen kører med ødelagt skærmbillede lidt svarende til dårlig TV justering. I samme sektion om "Monitor" står en masse modelines, som er mulige skærmfrekvenser, men det fører for vidt at forklare formatet af disse. Et eksempel skal dog lige vises - først er der en kommentar og dernæst parametre for den relevante mode:

# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768"    85    1024 1032 1152 1360   768  784  787  823

Tip: Kan du ikke få din skærm til at køre i 16 bitplaner (65536 farver), så skriv exec X :0.0 -bpp 16 i filen ~/.xserverrc