#1 Le 05/09/2012, à 23:54
- Maneithel
Adapter dynamiquement l'affichage dual screen (début de solution !)
Bonjour !
J'ai un laptop avec Kubuntu 12.04. J'adore utiliser un moniteur externe à la maison, mais je ne l'ai pas quand je vais à l'université. Étant donné que j'utilise des pilotes propriétaires ATI, il est assez difficile de rendre dynamique le changement d'affichage de 1 à 2 écrans. Jusqu'à aujourd'hui, j'utilisais une des deux méthodes suivantes :
éxécuter le GUI de configuration de ATI
sudo amdcccle
Activer le double écran dans ce GUI si je suis à la maison et le simple écran si je suis sur le campus
Déconnecter la session
Reconnecter
Configurer une bonne fois pour toute le simple écran
Faire une sauvegarde de la configuration :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.dual
Configurer une bonne fois pour toute le double écran
Faire une sauvegarde de la configuration :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.mono
Restaurer la bonne configuration au besoin
sudo cp /etc/X11/xorg.conf.dual /etc/X11/xorg.conf
ou
sudo cp /etc/X11/xorg.conf.mon /etc/X11/xorg.conf
Déconnecter la session
Reconnecter la session
Ces deux méthodes sont... chiantes. J'ai trouvé une autre solution viable et utilisable pour à peu près toutes les configurations ! Il me manque un petit détail de «bonnes pratiques» et j'aimerais votre avis. Voici l'idée :
Méthode pour automatiser la prise en charge (ou non) d'un second écran
Installez les pilotes de votre carte graphique (ATI, NVidia, libres, peu importe)
Configurez l'affichage à un seul écran tel que vous le voudrez.
Faites une sauvegarde de votre configuration de XOrg (mono pour «simple écran»):
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.mono
Dans un terminal, éxécutez cette commande et notez le résultat dans un fichier texte :
xrandr
Branchez votre moniteur externe
Configurez l'affichage comme vous le voulez. Redémarrez au besoin.
Faites une sauvegarde de votre configuration de XOrg (dual pour «double écran»):
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.dual
Ouvrez le fichier texte qui contenait le résutat de la commande
xrandr
éxécutée précédemment.
Dans un terminal, éxécutez cette commande de nouveau.
Comparez le résultat avec celui noté dans le fichier texte. Vous devriez remarquer qu'à un endroit où il était écrit «disconnected» il est maintenant écrit «connected». Cela signifie que l'ordinateur a découvert que le moniteur est connecté. Derrière le mot «connected», il y a l'identifiant de l'écran. Par exemple, chez moi l'écran intégré au laptop s'appeller LVDS et l'écran externe s'appelle CRT1. En branchant l'écran, la ligne où il y avait CRT1 disconnected est devenue CRT1 connected après avoir branché l'écran.
Notez ces deux mots (chez moi : CRT1 connected)
Créez un script BASH : ouvrez un éditeur de texte, enregistrer sous le fichier au nom, par exemple : autoDetectMonitor.sh
Copiez-y ce script :
#!/bin/bash # # Licence -- EN -- # # This program is free software: you can redistribute it and/or modify # it under the terms of the Lesser GNU General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the Lesser GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # # Licence -- FR -- (non officielle) # # Ce programme est un logiciel libre : vous pouvez le redistribuer # ou le modifier selon les termes de la GNU General Public # License tels que publiés par la Free Software # Foundation : à votre choix, soit la version 3 de la licence, # soit une version ultérieure quelle qu'elle soit. # # Ce programme est distribué dans l'espoir qu'il sera utile, mais # SANS AUCUNE GARANTIE ; sans même la garantie implicite de # QUALITÉ MARCHANDE ou D'ADÉQUATION À UNE UTILISATION # PARTICULIÈRE. Pour plus de détails, reportez-vous à la GNU # General Public License. # # Vous devez avoir reçu une copie de la GNU General Public # License avec ce programme. Si ce n'est pas le cas, consultez # <http://www.gnu.org/licenses/> # # --------------------------------------------------------------------------- # # Fichier : autoDetecMonitor.sh # Résumé : Ensemble de fonctions servant à détecter automatiquement si # un moniteur externe est connecté au portable et à prendre des actions # en conséquences. # # Ce programme peut être par exemple éxécuté juste avant le chargement du # serveur X. # # Auteur : Charles Bouchard-Légaré # cblegare [dot] atl [at] ntis [dot] ca # # --------------------------------------------------------------------------- # --- Configuration # Chaîne à rechercher dans le rapport de xrandr CONNECTED_STRING="CRT1 connected" # XOrg fichier de configuration pour affichage à écran double XORG_CONF_DUAL="/etc/X11/xorg.conf.dual" # XOrg fichier de configuration pour affichage à écran simple XORG_CONF_MONO="/etc/X11/xorg.conf.mono" # XOrg fichier de configuration pour affichage sûr XORG_CONF_FAILSAFE="/etc/X11/xorg.conf" # XOrg fichier de configuration actif XORG_CONF="/etc/X11/xorg.conf" # Commande à éxécuter si un moniteur est trouvé COMMAND_IF_MONITOR_IS_CONNECTED="cp $XORG_CONF_DUAL $XORG_CONF" #COMMAND_IF_MONITOR_IS_CONNECTED="xrandr --output LVDS1 --off --output VGA1 --mode 1680x1050 --pos 0x0 --rotate normal" #Commande à éxécuter si aucun moniteur n'est trouvé COMMAND_IF_MONITOR_IS_NOT_CONNECTED="cp $XORG_CONF_MONO $XORG_CONF" # Commande par défaut COMMAND_DEFAULT="cp $XORG_CONF_FAILSAFE $XORG_CONF" # --------------------------------------------------------------------------- # --- Script CRT=`xrandr | grep "$CONNECTED_STRING"` if [ "x${CRT}x" != "xx" ]; then if [ -f $XORG_CONF_DUAL ]; then $COMMAND_IF_MONITOR_IS_CONNECTED else $COMMAND_DEFAULT fi else if [ -f $XORG_CONF_MONO ]; then $COMMAND_IF_MONITOR_IS_NOT_CONNECTED else $COMMAND_DEFAULT fi fi exit $?
Changez la ligne
CONNECTED_STRING="CRT1 connected"
pour être conséquent avec celle que vous avez notée à l'étape 11
Changez d'autres lignes si vous savez ce que vous faites
Enregistrez ce script à un endroit que vous jugerez intelligent (suggestions svp !) Chez moi c'est au /home/maneithel/Local/bin/autoDetectMonitor.sh
Rendez-le éxécutable, par exemple, chez moi :
chmod +x /home/maneithel/Local/bin/autoDetectMonitor.sh
Là j'ai beosin d'aide. Le but est de faire lancer ce script AVANT votre écran de login (Gdm ou Kdm dans mon cas). Pour l'instant, j'ai placé la ligne suivante au début du fichier /etc/kde4/kdm/Xsetup
source /home/maneithel/Local/bin/autoDetectMonitor.sh
C'est surtout là que j'ai besoin de suggestions pour utiliser les pratiques les plus saines possible !
Voilà !
Pour l'utilisez, voyez simplement à ce que votre écran ne soit pas branché quand vous démarrez l'ordinateur et que vous ne voulez pas le double écran et inversement si vous le voulez.
J'attends vos idées pour améliorer cette petite solution
Hors ligne
#2 Le 06/09/2012, à 00:03
- Pacifick_FR42
Re : Adapter dynamiquement l'affichage dual screen (début de solution !)
Sur ma nvidia, dés que je connecte un second moniteur, il s'active via nvidia-settings, c'est pas la même chose avec ATI ?
Hors ligne
#3 Le 07/09/2012, à 00:00
- Maneithel
Re : Adapter dynamiquement l'affichage dual screen (début de solution !)
Ben... tu peux configurer avec amdcccle, mais il me dit devoir redémarrer (déconnecter suffit...)
Hors ligne