Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 :

    1. éxécuter le GUI de configuration de ATI

      sudo amdcccle
    2. Activer le double écran dans ce GUI si je suis à la maison et le simple écran si je suis sur le campus

    3. Déconnecter la session

    4. Reconnecter

    1. Configurer une bonne fois pour toute le simple écran

    2. Faire une sauvegarde de la configuration :

      sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.dual
    3. Configurer une bonne fois pour toute le double écran

    4. Faire une sauvegarde de la configuration :

      sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.mono
    5. 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
    6. Déconnecter la session

    7. 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 big_smile !  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

  1. Installez les pilotes de votre carte graphique (ATI, NVidia, libres, peu importe)

  2. Configurez l'affichage à un seul écran tel que vous le voudrez.

  3. Faites une sauvegarde de votre configuration de XOrg (mono pour «simple écran»):

    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.mono
  4. Dans un terminal, éxécutez cette commande et notez le résultat dans un fichier texte :

    xrandr
  5. Branchez votre moniteur externe

  6. Configurez l'affichage comme vous le voulez.  Redémarrez au besoin.

  7. Faites une sauvegarde de votre configuration de XOrg (dual pour «double écran»):

    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.dual
  8. Ouvrez le fichier texte qui contenait le résutat de la commande

    xrandr

    éxécutée précédemment.

  9. Dans un terminal, éxécutez cette commande de nouveau.

  10. 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.

  11. Notez ces deux mots (chez moi : CRT1 connected)

  12. Créez un script BASH : ouvrez un éditeur de texte, enregistrer sous le fichier au nom, par exemple : autoDetectMonitor.sh

  13. 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 $?
  14. Changez la ligne

    CONNECTED_STRING="CRT1 connected"

    pour être conséquent avec celle que vous avez notée à l'étape 11

  15. Changez d'autres lignes si vous savez ce que vous faites

  16. Enregistrez ce script à un endroit que vous jugerez intelligent (suggestions svp !)  Chez moi c'est au /home/maneithel/Local/bin/autoDetectMonitor.sh

  17. Rendez-le éxécutable, par exemple, chez moi :

    chmod +x /home/maneithel/Local/bin/autoDetectMonitor.sh
  18. 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 !

  19. 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 big_smile

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