Xorg

De la ArchWikiRo
Salt la: navigare, căutare

Cuprins

Instalare

În primul rând, se face actualizarea completă a sistemului:

# pacman -Syu

Apoi, se instalează pachetele de bază Xorg:

# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils

Pentru o funcţionalitate de bază Xorg , se pot instala și alte pachete:

# pacman -S xorg-twm xterm xorg-xclock

Începând cu versiunea 1.8,Xorg-server nu mai are nevoie de HAL pentru acces hardware,în locul său fiind folosit UDEV.Aveţi posibilitatea să eliminaţi HAL de la daemon în /etc/rc.conf fără probleme, dacă nu aveţi nici o altă aplicație instalată în sistem care să necesite HAL . În plus, setările care erau situate în fişierul /etc/X11/xorg.conf , pot fi găsite acum în fişiere localizate în directorul /etc/X11/xorg.conf.d/. Udev ar trebui să fie capabil să detecteze hardware-ul fără probleme iar instalarea driverelor de intrare nu mai este necesară.Dacă totuși apar probleme se poate instala driverul de care aveți nevoie din grupul xorg-input-drivers. Xorg-server poate fi iniţiat cu comanda startx.

Notă: În cazul în care e utilizat un mediu desktop (GNOME, KDE, etc), indicat ar fi utilizarea unui DM (GDM,KDM), care va administra pornirea aplicatiilor necesare.

Configurare

Fișierele de configurare sunt localizate în /etc/X11/xorg.conf.d/.

Implicit fișierul 10-evdev.conf gestionează tastatura, mouse, touchpad și touchscreen. Pe lânga acesta se pot crea noi fișiere,care să înceapă cu un număr(10,20), având extensia .conf.

Touchpad/Synaptics

Dacă aveți un laptop trebuie să instalați driverul pentru touchpad

# pacman -S xf86-input-synaptics

După instalare, puteți găsi fisierul 10-synaptics.conf în directorul /etc/X11/xorg.conf.d.

Plăci video și drivere

Driverul implicit este vesa (xf86-video-vesa), funcționând pe o multitudine de plăci dar nu înclude accelerare 2d sau 3d. Pentru a activa aceasta accelerare, trebuie să instalați driverul specific pentru placa video.

În primul rând, se identifică placa video:

$ lspci | grep VGA

Apoi se instalează un driver adecvat.Există posilbilitatea de a căuta în pachetele disponibile cu următoarea comandă:

$ pacman -Ss xf86-video

Drivere comune opensource:

  • nvidia: xf86-video-nouveau (vezi Nouveau)
  • intel: xf86-video-intel (vezi Intel)
  • ati: xf86-video-ati (vezi ATI)

NVIDIA

După instalarea driverului proprietar NVIDIA, fișierul de configurare (20-nvidia.conf) poate fi găsit în directorul /etc/X11/xorg.conf.d/.

Setări Monitor

Notă: Acest pas este opţional şi nu ar trebui să fie făcut decât dacă ştiţi ce faceţi.
Notă: Acest pas este necesar, dacă se utilizează două monitoare sau driverul nouveau.

În primul rând, se crează un nou fişier de configurare, de exemplu /etc/X11/xorg.conf.d/10-monitor.conf.

# nano /etc/X11/xorg.conf.d/10-monitor.conf

Treceți in fișier codul de mai jos:

Section "Monitor"
    Identifier    "Monitor0"
EndSection

Section "Device"
    Identifier    "Device0"
    Driver        "vesa" #Choose the driver used for this monitor
EndSection

Section "Screen"
    Identifier    "Screen0"  #Collapse Monitor and Device section to Screen section
    Device        "Device0"
    Monitor       "Monitor0"
    DefaultDepth  16 #Choose the depth (16||24)
    SubSection "Display"
        Depth     16
        Modes     "1024x768_75.00" #Choose the resolution
    EndSubSection
EndSection

Monitoare multiple / ecran dual

Pentru a activa suportul de ecran dual, trebuie doar să editaţi 10-monitor.conf fişier pe care le-aţi făcut înainte. Pe fiecare monitor fizic, se adaugă câte o secțiune pentru Monitor, Device şi Screen , apoi o secţiune ServerLayout pentru gestionare. Se recomandă ca, atunci când este activată Xinerama,cu driverele proprietare nvidia,să fie dezactivată compoziţia.

Section "ServerLayout"
    Identifier     "DualSreen"
    Screen       0 "Screen0"
    Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
    Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    Option         "Enable" "true"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option         "Enable" "true"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    Screen         0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    Screen         1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    SubSection "Display"
        Depth          24
        Modes          "1280x800_75.00"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth   24
    Option         "TwinView" "0"
    SubSection "Display"
        Depth          24
    EndSubSection
EndSection

TwinView

Dacă doriți doar un ecran mare în loc de două, setaţi argumentul TwinView la 1. Această opţiune ar trebui să fie folosită în loc de Xinerama (vezi mai sus), dacă doriţi compoziţie.  

Utilizarea setărilor Nvidia

Puteţi utiliza instrumentul nvidia-settings, dacă folosiți driverul proprietar Nvidia.După efectuarea setărilor(ca root), salvaţi configuraţia în /etc/X11/xorg.conf.d/10-monitor.conf.

Pentru două plăci video

Pentru două plăci video trebuie definit driverul corect și ID-bus-ul pe care îl folosește:

Section "Device"
    Identifier      "Screen0"
    Driver          "nouveau"
    BusID           "PCI:0:12:0"
EndSection

Section "Device"
    Identifier      "Screen1"
    Driver          "radeon"
    BusID           "PCI:1:0:0"
EndSection

Pentru a obţine ID-bus-ul:

 $ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)

ID-bus este 01:00:00.

Dimensiune display şi DPI

Înainte de a obţine dot per inch (DPI) corect,trebuie să fie cunoscută dimensiunea de afişare. DPI este important mai ales în cazul în care dorim ca monitorul să afișeze detalii fine (cum ar fi redarea fonturilor). Anterior, producătorii au încercat să creeze un standard de 96 dpi . Astăzi,DPI variază şi nu poate avea aceleași valori pentru orizontal şi vertical. De exemplu, un LCD de 19"cu ecran plat cu rezoluția 1440x900 poate avea DPI de 89x87. Pentru a-l putea seta, Xorg-server trebuie să auto-detecteze dimensiunea monitorului prin intermediul plăcii video.Când serverul Xorg recunoaşte dimensiunea ecranului,acesta va fi capabil să seteze corect DPI în funcţie de mărimea rezoluţiei. Pentru a vedea dacă dimensiunea de afişare şi DPI sunt detectate/calculate corect:

$ xdpyinfo | grep dimensions
$ xdpyinfo | grep "dots per inch"

Se verifică dacă valorile se potrivesc cu dimensiunea ecranului. În cazul în care serverul Xorg nu este capabil să calculeze corect dimensiunea ecranului,îl va seta implicit la valoarea 75x75 DPI. Dacă aveţi specificaţii privind dimensiunea fizică a ecranului, ele pot fi introduse în fişierul de configurare Xorg, astfel încât să poată fi obținută valoarea corectă DPI:

Section "Monitor"
   Identifier "Monitor0"
   DisplaySize 286 179    # In millimeters
EndSection

Dacă nu aveţi specificațiile pentru lăţimea şi înălţimea monitorului,puteţi utiliza rezoluţia nativă(sau raportul de aspect)şi lungimea diagonalei pentru a calcula dimensiunile orizontale şi verticale.Pe un ecran de 13,3"lungimea diagonalei și o rezoluţie de 1280x800 nativ (sau 16:10 aspect rațio):

echo 'scale=5;sqrt(1280^2+800^2)' | bc  # 1509.43698

Rezultatul reprezintă lungimea pixelilor pe diagonală şi cu această valoare puteţi descoperi lungimile fizice orizontale şi verticale (care vor fi convertite în milimetri):

echo 'scale=5;(13.3/1509)*1280*25.4' | bc  # 286.43072
echo 'scale=5;(13.3/1509)*800*25.4' | bc   # 179.01920

DPI poate fi setat manual dacă doriţi să utilizaţi doar o anumită rezoluţie:

Section "Monitor"
   Identifier "Monitor0"
   Option   "DPI" "96 x 96"
EndSection

În cazul în care,cu driverul nvidia nu puteți seta corect DPI, aveţi posibilitatea să dezactivaţi detectarea automată:

Option   "UseEdidDpi" "false"

Pentru driverele compatibile randr,îl puteţi seta cu:

xrandr --dpi 96

DPMS

DPMS (Display Power Management Signaling) este o tehnologie care permite monitorului să economisească energia atunci când computerul nu este folosit.Monitorul va intra în stand-by după o anumită perioadă de timp.A se vedea: DPMS

Dezactivarea intrărilor Hot-plugging

Începând cu versiunea 1.8,Xorg-server utilizează udev pentru a auto-detecta dispozitivele. Următorul cod va dezactiva utilizarea udev:

Section "ServerFlags"
   Option "AutoAddDevices" "False"
EndSection
Atenție: Acest lucru va dezactiva detectarea noilor dispozitive de către Xorg şi îl va determina să aibă același comportament ca şi xorg-server v.1.4. Prin urmare,dezactivarea udev nu este recomandată !

InputClasses

InputClasses reprezintă un nou tip de secţiune de configurare care nu se aplică pentru un singur dispozitiv,ci la o clasă de dispozitive,inclusiv dispozitive hotplugged.Un exemplu InputClass este furnizat mai jos:

Section "InputClass"
   Identifier      "touchpad catchall"
   MatchIsTouchpad "on"
   Driver           "synaptics"
EndSection

Secțiunea următoare ar putea fi,de asemenea,de ajutor:

Section "InputClass"
       Identifier "evdev touchpad catchall"
       MatchIsTouchpad "on"
       MatchDevicePath "/dev/input/event*"
       Driver "evdev"
EndSection

Dacă această secțiune este prezentă în xorg.conf sau xorg.conf.d, oricărui touchpad prezent în sistem i se atribuie driverul synaptics. Secțiunea implicită combinată cu pachetul xorg-x11-drv-Xorg este 00-evdev.conf şi se aplică driverul evdev pentru toate dispozitivele de intrare. Pentru a se potrivi un dispozitiv, toate liniile trebuie să se aplice. Următoarele linii sunt acceptate (cu exemple):

  • MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick - opţiuni care se aplică unui grup de dispozitive.
  • MatchProduct "foo|bar":potrivire dispozitive cu nume de produs ce conţine "foo" sau "bar"
  • MatchVendor "foo|bar|baz": potrivire dispozitive cu nume de fabricant ce conţine "foo", "bar", sau "baz"
  • MatchDevicePath "/dev/input/event*"
  • MatchTag "foo|bar": potrivire dispozitive cu o etichetă "foo" sau "bar".

Un exemplu pentru secţiunea de configurare specifice utilizatorului:

Section "InputClass"
   Identifier     "lasermouse slowdown"
   MatchIsPointer "on"
   MatchProduct   "Lasermouse"
   MatchVendor    "LaserMouse Inc."
   Option         "ConstantDeceleration" 20
EndSection

Această secţiune se va potrivi cu un dispozitiv care conţine "Lasermouse" de la "Lasermouse Inc" şi se aplică o deceleraţie constantă de 20 pe acest dispozitiv. Unele device-uri sunt preferate de serverul X,deși nu ar trebui. Aceste dispozitive pot fi ignorate:

Section "InputClass"
   Identifier     "no need for accelerometers in X"
   MatchProduct   "accelerometer"
   Option         "Ignore" "on"
EndSection

Exemple configurații

Subcapitolele următoare descriu exemple de configuratii utilizate în mod obişnuit. Reţineţi că, dacă utilizaţi un mediu desktop, cum ar fi GNOME sau KDE, opţiunile stabilite în xorg.conf pot fi suprascrise cu optiuni specifice.

Exemplu: Emulare rotiță mouse(pentru TrackPoint)

Dacă deţineţi un computer cu TrackPoint (un Thinkpad de exemplu), puteţi adăuga următoarea secțiune în xorg.conf pentru a folosi butonul din mijloc ca o rotiță a mouse-ului:

Section "InputClass"
   Identifier     "Wheel Emulation"
   MatchIsPointer "on"
   MatchProduct   "TrackPoint"
   Option         "EmulateWheelButton" "2"
   Option "EmulateWheel" "on"
EndSection

Pentru suport complet (inclusiv de derulare pe orizontală) puteţi folosi următoarele:

Section "InputClass"
   Identifier	"Trackpoint Wheel Emulation"
   MatchProduct	"TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing  device"
   MatchDevicePath	"/dev/input/event*"
   Option		"EmulateWheel"		"true"
   Option		"EmulateWheelButton"	"2"
   Option		"Emulate3Buttons"	"false"
   Option		"XAxisMapping"		"6 7"
   Option		"YAxisMapping"		"4 5"
EndSection
Exemplu:Tap-to-click

Tap-to-click poate fi activat în fereastra de dialog de configurare a mouse-ului (în fila touchpad), dar dacă doriți să îl aveți activat deja la login(gdm,kdm):

Section "InputClass"
   Identifier "tap-by-default"
   MatchIsTouchpad "on"
   Option "TapButton1" "1"
EndSection
Exemplu:Scheme tastatură pe laptop Acer 5920G

Modelul tastaturii şi aspectul se poate seta în fişierul /etc/X11/xorg.conf.d/keyboard.conf sau orice alt fişier .conf în acelaşi director.

  • MatchIsKeyboard "yes":setaţi dispozitivul de intrare la o tastatură
  • Option "XkbModel" "acer_laptop":set model tastatură la un laptop Acer * Option "XkbLayout" "ro":setează modelul tastaturii pentru limba română
  • Option "XkbVariant" "sundeadkeys":setați varianta pentru tastele inactive Sun.Puteţi omite XkbVariant dacă rămâneți cu varianta standard.

O listă cu aranjamente de tastatură şi modele poate fi găsită în /usr/share/X11/xkb/rules/base.lst.

Section "InputClass"
   Identifier             "Keyboard Defaults"
   MatchIsKeyboard        "yes"
   Option                 "XkbModel" "acer_laptop"
   Option                 "XkbLayout" "ro"
   Option                 "XkbVariant" "sundeadkeys"
EndSection

Setări tastatură

Pot apărea erori în detectarea corectă a tastaturii.Pentru a vedea o listă completă de modele de tastatură:

/usr/share/X11/xkb/rules/xorg.lst

Pentru a seta dispunerea tastelor pentru sesiunea curentă Xorg:

# setxkbmap dvorak

Intârzierea repetării tastelor și rata

Folosiți xset r rate DELAY RATE și apoi xinitrc pentru ca schimbarea sa fie permanentă.

Vizualizarea setărilor tastaturii

$ setxkbmap -print -verbose 10
 Setting verbose level to 10
 locale is C
 Applied rules from evdev:
 model:      evdev
 layout:     us
 options:    terminate:ctrl_alt_bksp
 Trying to build keymap using the following components:
 keycodes:   evdev+aliases(qwerty)
 types:      complete
 compat:     complete
 symbols:    pc+us+inet(evdev)+terminate(ctrl_alt_bksp)
 geometry:   pc(pc104)
 xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc104)"     };
 };

Setarea dispunerii tastelor cu Hot-Plugging

Pentru a modifica permanent dispunerea tastelor,adăugaţi următoarele în xorg.conf:

Section "InputClass"
   Identifier             "Keyboard Defaults"
   MatchIsKeyboard	   "yes"
   Option	           "XkbLayout" "dvorak"
EndSection

Reţineţi că aceasta se află într-o secţiune InputClass şi nu în secţiunea InputDevice pentru tastatură.

Comutarea între aranjamentele de taste

Pentru a putea comuta cu uşurinţă între aranjamente tastatură,trebuiesc modificate optiunile utilizate în oricare dintre cele două metode. De exemplu, pentru a comuta între un layout us şi un layout ro folosind tasta Caps Lock:

Option "XkbLayout"  "us, ro"
Option "XkbOptions" "grp:caps_toggle"

Acest lucru este util mai ales dacă folosiți un mediu desktop care nu are suport pentru aranjamente de tastatură.

Dezactivare permanentă mousekeys

Pentru a dezactiva permanent mousekeys şi pentru a preveni Shift + NumLock sau Shift + Alt + NumLock pentru a o activa editați:

 /usr/share/X11/xkb/compat/complete

și decomentați:

augment "mousekeys"
augment "accessx(full)"

Fonturi

A se vedea Configurare fonturi pentru informaţii despre configurarea fonturilor.

Rularea Xorg

In primul rand va trebui să adăugaţi dbus la daemon:

DAEMONS=(syslog-ng dbus network crond)

Dacă doriti sa porniți dbus fără a reporni:

 # /etc/rc.d/dbus start

Apoi se pornește Xorg cu comanda:

$ startx

sau

 $ xinit -- /usr/bin/X -nolisten tcp
Notă: Dacă aţi instalat doar Xorg,există un fişier .xinitrc în /home pe care puteti să-l editaţi cu datele necesare rulării desktopului implicit.

Dacă apare o problemă,incercati sa vizualizati jurnalul /var/log/Xorg.0.log.Căutati liniile care încep cu (EE), care reprezintă erori,iar (WW) avertizări.

Unelte personale