Xorg

De Banane Atomic
Aller à la navigationAller à la recherche

Installation

L'installation du pilote nvidia installe déjà tous les paquets nécessaires.
Bash.svg
pacman -S xorg-server
# Les paquets xorg-xinit xorg-utils xorg-server-utils ne semblent pas nécessaires

Pilote NVIDIA

Bash.svg
# Connaître le modèle de sa carte graphique
lspci -k | grep -A 2 -E "(VGA|3D)"

# Installation
pacman -S nvidia

# une fois redémarré, test si le module nvidia a bien été chargé ou si c'est un autre module qui a été chargé
lsmod | egrep "nouveau|nvidia|vesa"

Configuration du pilote NVIDIA

Le fichier de configuration ne semble pas nécessaire
/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
   Identifier     "Nvidia Card"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BoardName      "GeForce GTX 660"
   # activez le contrôle de la luminosité de l'écran pour les ordinateurs portables
   Option         "RegistryDwords" "EnableBrightnessControl=1"
   # ne plus afficher le logo nvidia au démarrage
   Option         "NoLogo" "True" 
EndSection

Framebuffer resolution

Benchmark

Bash.svg
yaourt unigine-heaven

Test

Bash.svg
pacman -S xterm
echo "xterm & sleep 10" > ~/.xinitrc

startx
# startx fait partie du paquet xorg-xinit

Fichiers de configuration

Le fichier /etc/X11/xorg.conf n'est plus utilisé. Il a été remplacer par les fichiers du répertoire /etc/X11/xorg.conf.d/.
Les fichiers de ce répertoire se nomment XX-name.confXX est un chiffre indiquant l'ordre (croissant) dans lequel les fichiers de configuration vont être lus.

Fichier de log

/var/log/Xorg.0.log

Écran noir

  1. Utiliser le kernel parameter nomodeset pour accéder aux terminaux.
  2. Consulter le log /var/log/Xorg.0.log
  3. Consulter les log journalctl -r

Clavier

/etc/X11/xorg.conf.d/10-keyboard-layout.conf
Section "InputClass"
    Identifier "evdev keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "ch"
    Option "XkbVariant" "fr"
    # Option "XkbLayout" "fr"
    # Option "XkbVariant" "latin9"
EndSection
Bash.svg
# configuration actuelle
setxkbmap -print -verbose 10

# lister les models, layouts, variants et options
localectl list-x11-keymap-models
localectl list-x11-keymap-layouts
localectl list-x11-keymap-variants [layout]
localectl list-x11-keymap-options

Clavier sur wiki archlinux
Changez l'affectation des touches clavier

Changement temporaire

Bash.svg
setxkbmap -model pc105 -layout ch -variant fr

Afficher les keycodes des touches

Bash.svg
xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'

Associez une combinaison de touches / boutons à une commande

  • xbindkeys permet d'associer une commande à une touche de la souris ou du clavier.
  • xdotool permet de simuler l'appui des boutons de la sourie et des touches du clavier.
  • xvkbd est un clavier virtuel, qui utilisé en ligne de commande permet de simuler l'appui des touches du clavier. Préférer l'utilisation de xdotool!
Pensez à désactiver les raccourcis système pour qu'ils n'entrent pas en conflit avec les combinaisons xbindkeys.
xbindkeys utilise le premier clavier de la liste même si celui-ci n'est pas activé!
~/.xbindkeysrc
# mapper le bouton 8 de la souris sur la touche Entrée
#"xvkbd -text "\[Return]""
"xdotool key Return"
    b:8 + Release
# mapper Ctrl+w avec Ctrl+z
"xvkbd -text "\Cz""
    control + w
# mapper Ctrl+q avec Ctrl+a
"xvkbd -text "\Ca""
    control + q

# mapper alt+mouse wheel avec increase volume
"amixer set Master 3%+"
#"pamixer -i 3"
    Alt + b:4
# mapper alt+mouse wheel avec decrease volume
"amixer set Master 3%-"
#"pamixer -d 3"
    Alt + b:5

# remapper XF86Calculator vers galculator
"galculator"
    XF86Calculator

# mapper PrintScreen avec la commande screenshot pour LightShot
"xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep Lightshot ) --name Lightshot ) 'Print'"
    m:0x0 + c:107
# m:0x0 aucun modifier

# alt + tab
"xdotool keydown alt key Tab; sleep .1; xdotool keyup alt;"
#"xset r off; xdotool keydown alt key Tab; xdotool keyup alt; xset r on;"  # xset r off: turn off repeat feature
#"xdotool keydown alt key Tab; xdotool keyup alt;"  # keyboard → Key repeat → Enable key repeat = OFF

# bouton 1 de la sourie
"xdotool click 1"
Bash.svg
# connaitre une touche
xbindkeys -mk
# Liste des modifiers:
# * Mod1 (Alt)
# * Mod2 (NumLock)
# * Mod3 (CapsLock)
# * Mod4 (Super)
# * Mod5 (Scroll)
Bash.svg
# démarrez xbindkeys
xbindkeys

# arrêtez xbindkeys
pkill -f xbindkeys
xvkbd text code
\[keysym] ex: \[BackSpace]
\S Shift
\C Control
\A Alt
\r Return
\d Delete
\b BackSpace
\t Tab
\M Meta
\mdigit simulate click of the specified mouse button

Touchpad

Touchpad Synaptics

Bash.svg
# installation du driver
sudo pacman -s xf86-input-synaptics

Configuration

/etc/X11/xorg.conf.d/10-synaptics.conf
Section "InputClass"
      Identifier "touchpad"
      Driver "synaptics"
      MatchIsTouchpad "on"
             # clique-gauche: tappe 1 doigt
             Option "TapButton1" "1"
             # clique-milieu: tappe 2 doigts
             Option "TapButton2" "2"
             # clique-droit: tappe 3 doigts
             Option "TapButton3" "3"
             Option "VertEdgeScroll" "on"
             Option "VertTwoFingerScroll" "on"
             Option "HorizEdgeScroll" "on"
             Option "HorizTwoFingerScroll" "on"
EndSection

La configuration de Gnome 3 écrase celle de Xorg
Applications → Outils système → Paramètres système → Souris et pavé tactile

Souris

Connaître le numéro des boutons

Bash.svg
xev | sed -n 's/state .\+, \(button [0-9]\+\), same_screen YES$/\1/p'

Tester le mapping

Bash.svg
# obtenir l'id de la souris
xinput list
xinput --set-button-map ID 1 3 0 4 5 0 0 8 2 2 0

Modifier le mapping des boutons

/etc/X11/xorg.conf.d/20-souris_evoluent.conf
Section "InputClass"
    Identifier "Evoluent"
    MatchUSBID "1a7c:0191"
    Option "ButtonMapping" "1 3 0 4 5 0 0 8 2 2 0"
EndSection
Le numéro MatchUSBID est obtenu avec la commande lsusb


ButtonMappingEvoluent.jpg
ButtonMapping
Valeur Comportement
0 bouton désactivé
1 clique gauche
2 clique du milieu
3 clique droit
4 roulette vers le haut
5 roulette vers le bas
6 roulette vers la gauche
7 roulette vers la droite
8 clique pouce 1
9 clique pouce 2
10 ExtBt7
11 ExtBt8

Using an Evoluent VerticalMouse 4 on Linux

Associer une combinaison de boutons à une commande

Note that xorg X Input system cannot bind a combination of more than one mouse button to a certain action. For example, it is not possible to bind left-clicking while simultaneously scrolling up to a specific action. So the rule of thumb is one button for one action, unless the button is combined with the keyboard modifier keys (Ctrl, Alt, Super,...)

Binding an action to a combination of mouse buttons

BELKIN n52te

Touches par défaut sous Linux

w e r t y
s d f g h
z x c v
  • touche 15 → espace
  • touche ronde → control gauche

Touches par défaut sous Windows

Tab q w e r
Caps a s d f
Maj G z x c
  • touche 15 → espace
  • touche ronde → Alt G

Mais cela donne: azerqsdfwxc avec un clavier azerty

Logiciels de configuration

Aucun ne fonctionne. Il faut configurer le speedpad sous Windows.

Polices

Bash.svg
sudo pacman -S ttf-dejavu
yaourt ttf-inconsolata-g ttf-monofur

Monospaced

Lancer un programme sur un nouveau serveur X

Bash.svg
# lance xterm dans un nouveau serveur X
xinit /usr/bin/xterm -- :1 &
# attention à bien spécifier le chemin complet du programme

Starcraft 2

Bash.svg
#!/bin/bash
# création d'un nouveau serveur X et lancement de xterm pour éviter que le serveur ne se ferme
xinit /usr/bin/xterm -- :1 &
# Attend 1 secondes que le serveur soit prêt
sleep 1
# lancement de SC2 dans le nouveau serveur X
DISPLAY=:1 /usr/share/playonlinux/playonlinux --run "StarCraft II Wings of Liberty" %F