Première chose, il faut que le fait de lancer le nouveau serveur X et que la commande de changement de changement d'affichage ne demandent pas le mot de passe root. Pour cela nous allons éditer /etc/sudoers avec la commande “visudo”. Visudo permet d'empêcher toute erreur de syntaxe à ce fichier, n'éditez donc SURTOUT pas ce fichier via gedit/nano/vi ou autre éditeur de texte !!!!!!!
Rajoutez ceci pour définir les commande à configurer ( X = lanceur de X et chvt = changeur d'affichage virtuel)
sudo visudo
# Cmnd alias specification Cmnd_Alias ECRAN = /usr/bin/X11/X Cmnd_Alias CHVT = /bin/chvt
Ensuite il faut éditer les privilège par user. Mettez votre nom de connection à la place de “VOTRE_USER”
# User privilege specification root ALL=(ALL) ALL VOTRE_USER ALL=(ALL) ALL, NOPASSWD: ECRAN, NOPASSWD: CHVT
Ctrl+X pour fermer/sauver et on reboote (sudo -v est censé recharger les droits mais sur ma config j'ai du reboot pour activer tout ça)
On est parti pour des petits bouts de script à droite à gauche !
gedit /home/mythtv/.lancemyth.sh ⇐== Script à mettre en lancement auto en ouverture de session (dans système/préférence/session)
sleep 5 # permet de laisser gnome se lancer et évite certains soucis comme un ecran blanc lorsque l'on reviens sur le bureau. A adapter suivant la puisssance de sa config sudo X :4 -ac -terminate & # Lance sur un nouveau serveur X affichage 4 sleep 2 # Attend 2 secondes que le serveur soit prêt DISPLAY=:4 /usr/local/bin/mythfrontend # lance MythTV
Voilà, maintenant au prochain démarrage, MythTV seras lancé dans le serveur X :4 accessible via Ctrl+Alt+F9. Pour retourner au bureau, Ctrl+Alt+7
Maintenant, simplifions la navigation !
La commande “sudo chvt x” permet de changer de serveur X courant. Donc sudo chvt 9 va sur mythtv et sudo chvt 7 revient sur le bureau.
Automatisons ceci via un script adressable par LIRC avec IREXEC (cf tuto lirc pour plus d'info)
gedit /home/mythtv/.switchVT.sh
#Lecture fichier sauvegarde etat ETAT=$(cat /home/mythtv/.etat) #Change l'affichage virtuel courant sudo chvt $ETAT #Modification de la variable d'état if [ $ETAT = 7 ]; then ETAT=9; else ETAT=7;fi #commenter ligne précédente et décommenter ligne suivantes si utilisation de 3 serveur X (si beaucoup de jeux wine par exemple) #if [ $ETAT = 10 ]; then ETAT=7; else ETAT=$(($ETAT+1));fi #if [ $ETAT = 8 ]; then ETAT=9; fi #Enregistre fichier de sauvegarde état echo $ETAT > /home/mythtv/.etat
J'ai attribué ce script à la touche On/Off de ma télécommande. Ce qui permet donc de zapper d'un affichage à l'autre avec une simple pression :) On peut bien entendu l'attribuer à un lanceur placé sur le bureau ou à tout autre raccourci programmable :)
.. Ce script est bien entendu largement perfectible. TODO : rajouter test pour verifier si mythfrontend est bien lançé et le cas échéant lancer .lancemyth.sh Améliorer la gestion des valeurs $ETAT. Les identifiants 7 et 9 ne sont pas attribués de manière DEFINITIVE. Si on s'amuse avec d'autres serveurs X et qu'on les ferme/ouvre à tort et à travers, les identifiants finissent par s'emmêler (bureau sur F9 et myth sur F11 par exemple)
Le principe peut bien entendu être élargie à d'autres domaines comme par exemple Wine avec des jeux direct3D windows ou des applicatifs demandant toute la puissance de xorg (montage vidéo…). Voire même un second bureau gnome/KDE indépendant. L'avantage de faire tourner un second serveur X est de ne pas avoir de lag (erreur de synchro verticale, freezes, occupation CPU exagérée…) tout en augmentant la stabilité de l'ensemble (mon jeux wine a tout gelé mon beau serveur X ? Ctrl+Alt+Del et on kille le serveur X en cause sans killer ce que l'on a ouvert par derrière sur le serveur “originel” :)
On en discute ici : http://mythtv-fr.tuxfamily.org/forums/viewtopic.php?pid=7586