Table des matières
Intro
Le but de cet article est de tirer partie au maximum des possibilités d'affichage quand il y a beaucoup d'applications "jack" à l'écran. La première partie traite du serveur X et de sa configuration, pour nous permettre ensuite d'aborder le plat de choix qui est le placement contrôlé des applications sur les écrans. Enfin d'autres aspects complémentaires sont évoqués (affichage en réseau, choix des environnements pour la musique).
1. Le serveur X
Comme nous l'avons vu dans l'article présentant les éléments du système Linux, le serveur X est donc la partie graphique permettant l'affichage graphique des fenêtres et d’interagir à l'aide du clavier ou de la souris. On peut lancer manuellement le serveur X mais c'est généralement le display manager (gdm ou kdm) qui s'en charge automatiquement. Celui-ci se charge aussi de lancer le bon WindowManager/Desktop dont le rôle est de gérer le comportement des fenêtres et d'offrir éventuellement des applications supplémentaires pour configurer et utiliser l'environnement. Pour revenir au serveur X sa configuration est stockée dans le fichier /etc/X11/xorg.conf (ou XF86Config-4 pour Xfree). On peut l'éditer à la main mais généralement il existe des utilitaires pour cela, et d'autres parts les éditions manuelles risquent d'êtres effacées lors de mise à jour par des écritures automatiques. Si l'on regarde le fichier de configuration on voit différentes sections.
1.1. Les sections
- Modules : les extensions du serveur X comme le support OpenGL ou Xinerama
- Files : les fontes de caractères
- Server Layout : sorte de section commune qui rassemble tous les paramètres
- Input Device : pour les claviers, souris, tablettes
- Screen : Les résolutions et la profondeur
- Monitor : Les écrans physiques, leurs fréquences de rafraîchissement
- Device : Le pilote de la carte graphique
- Divers : Il peut exister des petites sections propres à certaines extensions pour définir des droits par exemple
1.2. Les économiseurs d'écran du serveur X
Il est parfois frustrant de ne pas comprendre comment régler le comportement de l'économiseur d'écran propre au serveur X (attention celui-ci n'a rien voir avec les autres économiseurs d'écran rigolos que l'on peut installer par la suite). En fait, il s'agit ici de deux procédés différents que les environnements "light" ne permettent pas de régler à l'aide de leurs écrans de configuration donc on doit agir directement sur le fichier de configuration xorg.conf .
1.2.1. DPMS
Dans la Section "Monitor" pour désactiver le système DPMS ajoutez :Option "DPMS" "Off"
1.2.2. Screen-saver
Dans la Section "ServerLayout" pour désactiver l'économiseur basique ajoutez :Option "BlankTime" "0"
note : on peut aussi utiliser la commande xset pour des modifications occasionnelles ou alors au sein de fichiers de configuration perso.
xset -dpms xset -s off
2. Pilotes libres ou propriétaires pour les cartes ATI et Nvidia
Il y a actuellement un quasi partage du marché entre Nvidia et ATI et aucun des deux ne propose de solution libre. Cela ne veut pas dire qu'il n'existe pas de pilotes libres, mais ceux-ci sont développés par des volontaires et de fait sont nettement en retard pour ce qui est des performances 3D. Pour la musique le support 3D n'est pas à priori nécessaire et si on dispose d'une carte pas très récente les pilotes libres peuvent suffire.
Autrement, il est nécessaire de compiler soi même les pilotes propriétaires Nvidia ou ATI (en fait on ne recompile pas les pilotes propriétaires : puisqu'ils sont propriétaires et par définition livrés uniquement en binaires. On "recompile" l'interface de communication de ces pilotes avec le noyau. Ceci est plus juste). À noter aussi que certaines distributions rendent facile l'installation des pilotes propriétaires mais ils correspondent à une version précise du noyau souvent non rustiné, et donc il faudra quand même les installer manuellement si on installe par la suite un noyau RT "fait maison".
Consulter Tuto Compiler un noyau Temps-Réel pour en savoir plus sur le choix des modules.
2.1. Nvidia (et son patch "rt")
"nv": nom du pilote libre
"nvidia" : nom du pilote propriétaire. Il existe une rustine "rt" pour ce pilote qui est sensé apporter plus de stabilité quand on utilise un noyau RT. Il faut télécharger le pilote propriétaire Nvidia et la rustine, et appliquer la rustine comme suit :
sh NVIDIA-Linux-x86-177.13-pkg1.run --apply-patch NVIDIA_kernel-173.14.09-2512683.diff.txt
Puis installer le fichier généré :
sh NVIDIA-Linux-x86-177.13-pkg1-custom.run
Note : numéros de version purement indicatifs, ici la rustine a été appliquée sur la version béta 177 sans aucun problème malgré la différence. Si quelqu'un connaît l'origine de cette rustine et de nouvelles versions, merci de l'indiquer ici.
2.2. ATI
"radeon" "ati128" "atimisc" : nom des pilotes libres (selon la puce)
"fglrx" : nom du pilote propriétaire
fireglcontrol : nom de l'application qt3 pour régler la carte (version propriétaire)
Il existe toutefois un troisième constructeur, Matrox, qui s'est spécialisé dans l'affichage des stations de travail, et propose des cartes intéressantes pour ceux qui voudraient profiter de plusieurs écrans.
2.3. vesa
Ce pilote est une sorte de roue de secours qui marche dans un mode limité à 1024*768. C'est une chose à connaître pour se dépanner, car il est très frustrant de ne pas avoir d'affichage pour découvrir justement ce qui ne va pas. Il suffit d'ouvrir en console (avec l'éditeur nano par exemple) le fichier /etc/xorg.conf et la section Device, spécifiez :
Driver "vesa"
Note : si cela ne marche toujours pas ou si vous vous retrouvez avec un écran en mode veille (typique avec un portable très récent) cela peut signifier que votre écran LCD n'est pas dans la liste des modèles connus, par conséquent le serveur X n'arrive pas à spécifier de valeurs de rafraîchissement vertical et horizontal. Renseignez vous sur les caractéristiques de votre écran et rentrez ces valeurs manuellement à la section Monitor (cf les documentations sur xorg, tapez: man xorg.conf).
3. Le bi-écran avec Xinerama
3.1. Introduction
Lorsque vous serez amené à enregistrer du son sous Linux, que ce soit pour faire de l'acquisition via une prise de son ou que ce soit pour un acquisition MIDI, vous aurez besoin de voir un certain nombre des pistes, de contrôler l'évolution de l'enregistrement et de visualiser les écrans d'alerte en cas de problème. Si vous utilisez Ardour, par exemple, vous aurez d'un côté la table de mixage vous permettant de contrôler le son de chaque piste et de l'autre la fenêtre d'édition vous montrant une vue d'ensemble de l'enregistrement. En un mot, il vous faudra songer à disposer de deux écrans l'un affichant une partie du travail, l'autre l'autre partie (mdr).
Il existe plusieurs solutions permettant de gérer ces deux écrans :
- soit comme s'il ne s'agissait que d'un seul écran géant réparti sur les 2 moniteurs physiques, la souris allant sur l'autre écran lorsque elle a passé le champs d'action du premier. Cette solution s’appelle xinerama, implémenté comme extension par Xorg.
- soit comme comme des périphériques indépendants au niveau de deux serveurs X distincts.
- avec xrandr (pas toujours installé par défaut) avec certaines puces comme l'Intel pour gérer des différentes sorties d'une seule carte écran.
Au niveau matériel, vous pourrez disposer de deux cartes Vidéo, l'une AGP l'autre PCI ou d'une carte vidéo qui sait gérer deux écrans. Il n'est donc pas exact de penser que seules les cartes Matrox permettent de disposer de deux écrans. Aujourd'hui avec le standard PCI-Express qui remplace l'AGP, il est possible d'avoir encore plus de slot disponibles !
Pour plus de précisions, vous pouvez regarder Exemples d'affichage sous deux écrans avec Linux sur developpez.com.
3.2. Configuration facile sous Mandriva
Les utilisateurs de Mandriva lanceront simplement
XFdrake
, en choisissant "cartes graphiques" puis "moniteurs", ils se verront automatiquement proposer des choses ayant trait à leur matériels : doubles cartes, une carte deux sorties, deux écrans. (l' outil xfdrake en perfectible en ergonomie, mais il est parfaitement fonctionnel. a noter qu' il est également exécutable depuis le niveau 3 : c' est à dire qu' il y a aussi une version console de xfdrake!) De plus, ils pourront choisir d' activer le mode Xinérama ou pas. Le xinérama est donc le bureau étendu, tandis que que l'autre option créera automatiquement un deuxième desktop avec un deuxième kicker. Chacun étant indépendant (pas de glisser de l un à l' autre des applications, contrairement à xinérama. Mais bien sûr la souris change naturellement de bureau). Cette solution est particulièrement pratique dans le cas ou 2 cartes graphiques différentes sont utilisées, de deux qualités différentes : elle permet de conserver l' accélération graphique totale sur l' une! tout en ayant l' autre activée pour l' autre écran. Et la souris qui passe de l'un à autre écran naturellement.Service dm stop (préférence somme toute personnelle); puis lancez XFdrake et laissez vous guider.
Un gros intérêt du fichier généré par Mandriva est d'être récupérable par les autres distributions. Il suffira de copier les sections device, screen, monitor et layout pour la distribution qui vous intéresse.
3.3. Configuration moins facile
Malheureusement les distributions tendent à avoir leurs petites particularités, des scripts qui n'ont pas le même nom. En général la commande X-configure suffit à détecter la ou les cartes et les moniteurs. Si faire se doit il suffit d'aller inspecter votre fichier /etc/X11/xorg.conf pour vérifier que vous disposez de deux zones écrans, éventuellement de deux zones device (si vous avez deux cartes vidéo).
À un endroit, vous aurez la section ServerLayout
Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "LeftScreen" 0 0 Screen 1 "RightScreen" RightOf "LeftScreen"
(à compléter)
3.4. Configuration NVidia
Les outils de configurations fournis par Nvidia (nvidia-seeting) peuvent générer le fichier de configuration xorg.conf.
4. Positionner des applications
Il existe plusieurs moyens de positionner une application sur l'écran. Soit manuellement à l'aide des pagers qui sont ces petites représentations de l'espace de travail dans la barre des tâches, soit automatiquement à l'aide d'utilitaires ou de fichiers de configuration. Cela rend possible l'écriture de scripts pour retrouver les applications d'une session de travail aux endroits voulus.4.1. Virtual screen et pager
- Il est possible de définir un écran plus large que celui affiché par votre écran. Il y a plusieurs moyen d'y arriver. La première est d'utiliser l'option "virtual screen" lors de la configuration du Serveur X (mais il arrive que cela ne marche pas toujours en fonction des cartes et des pilotes), la seconde est de se reposer sur les possibilités du gestionnaire de bureaux que l'on a choisi. Ceux-ci offrent généralement tous des espaces de travail virtuels, reste à savoir comment y positionner automatiquement ses applications favorites.
- Les pagers sont souvent intégrés dans la barre des tâches, c'est ce qui permet de passer d'un espace à l'autre. Sous certains gestionnaires, il y a des pagers indépendants que l'on positionne dans un coin ou que l'on fait apparaître en cliquant sur un onglet. Mais tout ceci n'est pas très pratique quand on a plein d'applications à positionner.
4.2. L'option -geometry
Tout d'abord le plus simple moyen d'agir sur l'affichage d'une application est de donner des paramètres -geometry suivant la commande de son choix:
xeyes -geometry 100x100+100+200
Les deux premières valeurs (facultatives) déterminent la taille de la fenêtre, les deux dernières la position. Certains window managers comme Afterstep/Enlightenment/FVWM2 autorisent des coordonnées au delà de l'écran actuel, ce qui permet du coup de positionner l'application dans les espaces de travail adjacents. Malheureusement cette option ne marche pas souvent avec les grosses applications séparées en plusieurs sous-tâches car la GUI n'arrive pas à hériter des paramètres que l'on a passés. De plus, les gros environnements comme Gnome, XFCE, ou KDE, limitent le positionnement à l'espace en cours et donc ne permettent pas d'exploiter les autres écrans, la méthode n'est donc pas universelle. Il y a heureusement d'autres moyens comme nous allons le voir.
4.3. kstart sous KDE
KDE permet de positionner les programmes à l'aide de la commande kstart.
kstart --desktop 3 --activate "xeyes"
Ici xeyes va s'ouvrir sur l'espace de travail n°3 et l'option -activate va forcer le focus à aller à celui-ci.
4.4. Une alternative avec xvkbd
xvkbd est un utilitaire fort sympathique que nous allons un peu détourner de son usage premier pour pouvoir changer d'espace de travail au sein d'un script, et ce quelque soit le window manager. La seule condition est que ce dernier associe une combinaison de touches à chaque espace virtuel (ce qui est bien souvent le cas). xvkbd est à l'origine un utilitaire pour les PDA sous Linux qui n'auraient pas de clavier, xvkbd est en effet un clavier virtuel. Ce qui nous intéresse en fait est son mode console avec l'option -text.
xvkbd -text "\C\[Right]"
simule Control+Right ce qui avec Afterstep permet d'accéder à l'espace de droite. Sous KDE ou Gnome d'autres combinaisons de touches sont sûrement utilisées.
Note : pour trouver les noms des symboles de touches comme Left/Right ou F1/F2/.. et d'autres moins évidents on peut utiliser xev.
http://homepage3.nifty.com/tsato/xvkbd/
Le principe est donc dans un script de faire précéder le lancement d'une application par un commande xvkbd pour aller sur l'espace désiré.
Question : est-ce utilisable avec les alias définissables dans les fichiers de conf du shell ?
4.5. Une solution définitive avec Devilspie ?
Il existe une méthode encore plus efficace que xvkbd avec Devilspie. L'avantage de ce démon est qu'il est sensé fonctionner avec tous les bureaux, on a donc toute liberté d'en changer, pour peu que la configuration des espaces virtuels soient semblable, le placement des fenêtres sera identique. Le principe est le suivant, à chaque fois que vous lancez un programme, Devilspie contrôle s'il est dans sa liste et si c'est le cas, lui applique le dimensionnement et le placement que vous avez spécifié dans son fichier de configuration. Ainsi vous pouvez forcer votre navigateur à toujours s'ouvrir au même endroit, et pour une session musicale, vous pouvez dimensionner et placer toutes les fenêtres des différents programmes dans les espaces virtuels de votre choix (ex: l'écran principal et le mixeur d'Ardour dans deux espaces différents).
Vous trouverez ici un tuto en français. Gdevilspie est une interface graphique rendant la configuration plus facile que par le fichier texte.
Note : pour connaître le nom des fenêtre, utilisez wmctrl -l. Cette commande permet aussi de placer des fenêtres sur le bureau mais elle moins puissante, ceci dit elle permet de lister et de connaître certains caractéristiques du bureau utiles pour "devilspie".
4.6. Configuration de certains environnements
4.6.1. Afterstep
AS intègre un fichier de configuration database permettant de positionner une application par son nom sur un espace donné (/etc/X11/afterstep/database ou alors ~/.afterstep/database). Celui-ci contient des informations pour chaque application listée, permettant ainsi de moduler le comportement par défaut concernant son affichage. On peut alors spécifier un espace virtuel et même une option geometry réglant la taille de la fenêtre à ouvrir.
Style "muse" ViewportX 5760, StartsOnDesk 1 Style "ardour" ViewportX 1920, StartsOnDesk 1 Style "pan" ViewportX 1920, ViewportY 0, StartsOnDesk 0
Dans cet exemple Ardour et MusE s'ouvriront sur le Desk 1 dédié à la musique, tandis que pan (logiciel de news) s'ouvrira sur le Desk 0. ViewportX et ViewportY donnent les coordonnées. Celles-ci peuvent dépasser la dimension physique de l'écran (1920x1200), AS ayant la particularité de pouvoir gérer des espaces virtuels plus grands.
4.6.2. Enlightenment
Sous cet environnement, on peut grâce au menu propre aux fenêtre utiliser Remember et demander à ce que la position de la fenêtre et le desktop soient mise en mémoire pour l'application concernée. Encore plus simple qu'Afterstep !!
5. Export d'affichage en réseau
Le serveur X peut répondre à des requêtes de clients situés sur d'autres machines du réseau. L'affichage s'effectuant alors sur l'écran défini à l'aide de la variable DISPLAY.
export DISPLAY=192.168.1.1:0
Ceci permet d'exporter l'affichage sur le serveur X de la machine en question. Le paramètre :0 désigne le numéro du serveur X au cas (rare) ou il y en aurait plus d'un.
Cependant il existe des sécurités contrôlant l'accès du serveur X en réseau. Tout d'abord il faut faire attention car les display managers sont un peu traîtres et pour gdm par exemple celui-ci ne rend pas visible depuis sa GUI certaines options que l'on trouve dans la section SECURITY de son fichier /etc/X11/gdm/gdm.conf. Il arrive aussi que le gestionnaire de bureau stoppe les connections externe comme c'est le cas pour Xfce4, il faut cette fois-ci simplement cocher l'option les autorisant dans l'outil de configuration.
5.1. xhost
xhost est un mécanisme permettant de contrôler les accès au serveur X en fonction des utilisateurs et de leur provenance (locale ou externe). cf /etc/X0.hosts. Il s' agit d'un mécanisme complexe et complet. Sur Gentoo comme sur Mandriva, c'est le mécanisme à privilégier. consulter la documentation du fameux MIT-Magic-cookie pour en savoir d'avantages! Son utilisation est néanmoins triviale. Par exemple, tapez simplement
xhost +192.168.1.111pour autoriser l'ip 192.168.1.11 de votre réseau local à obtenir l'autorisation. Puis taper
DISPLAY=192.168.1.111:0 drakwizardpour exporter sur cet ordinateur l' affichage de drakwizard. Noter que le :0 désigne le display, l' affichage : il peut varier à votre guise si cet ordinateur à plusieurs sessions X de lancer (sur tty7 + tty8 par exemple) ou plusieurs écrans!
5.2. xauth
À priori l'utilisateur n'a pas à se soucier de xauth qui est une commande pour manipuler un système de clés d'authentification au niveau du serveur X. On peut donc ignorer tranquillement cet aspect un peu ésotérique du serveur X.
6. Des commandes bien utiles
6.1. xrandr
xrandr est une commande permettant de changer les résolutions de votre serveur X. On peut aussi faire des choses un peu amusantes comme appliquer une rotation à 90° ce qui est occasionnellement utile aux possesseurs d'écran pivotable. La dernière version de FVWM-Crystal /3.1.7) l'utilise. Pour changer la résolution de l'écran, il suffit d'actionner la molette de la souris sur le bouton avec un crystal.
6.2. XRandRTray
XRandRTray est une implémentation de Xorg permettant en autre de changer à la volée la définition de l'affichage (passé de 800-600 à 1280*1024 par exemple) sans avoir besoin de relancer le serveur X. Krandrtray est un applet de la barre de taches kicker sur KDE, permettant de faire cela d'un clic de souris. Cerise sur le gâteau : plusieurs écrans sont gérés lorsqu'ils sont connectés.
6.3. xset
xset permet de jouer sur certains paramètres du serveur X pour la session courante, comme les économiseurs d'écran.
7. Les gestionnaires de fenêtres et les bureaux
La frontière est parfois floue entre les gestionnaires de fenêtres sensés s'occuper uniquement du positionnement des fenêtres, de leurs décorations et fonctionnalités, et les bureaux qui offrent en plus toutes sortes d'applications de configuration graphiques, des explorateurs de fichiers, etc. En effet les premiers ne viennent jamais seuls et propose toujours des petits applications (pagers, barre de tâches, terminaux graphiques), les seconds ont souvent intégrés le tout au point d'avoir leur propre gestionnaire de fenêtres.
Il existe de longues lignées de projets. Certains window managers sont complètement antédiluviens et quasiment in-configurables, puis en plus évolué nous trouvons Fvwm2 et Icewm (toujours assez primitifs). Afterstep est un projet voulant copier Nextstep. WindowMaker est un fork d'Afterstep. Enlightenment est dans cette lignée mais en plus ergonomique. On trouve aussi Blackbox et Fluxbox qui se veulent minimalistes et configurables. Et aussi Gnome et KDE... Et d'autres. Bref, il y en a pour tous les goûts et tous les usages. N'oublions pas non plus Compiz-Fusion qui est une couche logiciel apportant des effets 3D pour Gnome/KDE et XFce.
- Fluxbox : héritier de Blackbox, cet environnement a été choisi entre autre par la distribution Agnula pour sa légèreté.
- Afterstep : au début Afterstep déroute l'utilisateur habitué au monde Windows, de surcroît les thèmes par défaut sont (appréciation personnelle) moches. Mais l’intérêt de cet environnement est sa configurabilité extrême. Encore faut-il aller éditer à la main les fichiers de configuration, et c'est une tâche un peu longue. Selon moi Afterstep est un environnement à privilégier pour sa capacité à être complètement reconfiguré. De plus il fait continuellement l'objet d'améliorations. Le site officiel
- XFce4 : peut-être le plus léger des bureaux. Il s'agit donc plus d'un simple window-manager, mais cependant il n'a pas la lourdeur des Gnome ou KDE, qui utilisent tout un système de clients/serveurs complexes et longs à charger. Donc XFce4 est sans doute un environnement complet attractif pour faire de la musique. Le site officiel
- FVWM-Crystal : un ensemble évolué de thèmes pour FVWM qui transforme ce dernier en un bureau léger et fonctionnel. De nombreuses applications extérieures sont prises en charge et permettent d'étendre ses possibilités. Depuis la version 3.1.7, il propose une façon novatrice de naviguer dans le bureau, en complément des pages multiples de Xorg, grâce à la mise en mode plein écran de n'importe quelle appliction avec navigation entre ces applications et le bureau. Le site officiel
- Gnome : le projet basé sur la bibliothèque graphique GTK (the Gimp Tool Kit). Le site officiel
- KDE : un des projets les plus aboutis Le site officiel
- Enlightenment : existe en 2 versions, la version stable (e16 ou DR16) et une version en développement, plus "eye candy" (e17 ou DR17). Le site officiel. Enlightenment peut être vu comme une version améliorée d'Afterstep, en plus beau et configurable à la souris.
- Compiz-Fusion : Ce magnifique projet qui apporte des fenêtres flexibles et le cube 3D pour changer d'écran virtuel est très amusant mais attention pour un usage musical, quand les fenêtres sont grandes 1920x1200, leur déplacement peut prendre sensiblement plus de CPU que sous un bureau normal. Les effets sont aussi consommateurs de CPU, ce qui est malheureusement pas le top pour avoir le moins d'xruns possible. Bref pas conseillé.
7.1. Sites relatifs
- http://xwinman.org/
- http://www.linuxjournal.com/article/6415 : scripting et X
[+]