web-dev-qa-db-fra.com

Existe-t-il un moyen de détecter automatiquement lorsqu'un écran est déconnecté?

J'utilise Ubuntu sur un ordinateur Dell Latitude avec les derniers pilotes Nvidia. En gros, ce que je veux, c’est que lorsque je déconnecte mon écran externe, tout soit ramené à l’écran principal sans avoir à changer la configuration à chaque fois.

Toute aide est la bienvenue!

20
Diego

Commencez par installer disper , puis téléchargez autorandr et suivez les instructions suivantes:

  • Lorsque le moniteur externe est désamarré , exécutez la commande suivante dans le terminal:

    auto-disper.sh --save undocked
    
  • Lorsque le moniteur externe est connecté et configuré à votre guise (avec les paramètres du serveur Nvidia X), exécutez:

    auto-disper.sh --save docked
    
  • Essayer:

    auto-disper.sh --change
    

    avec moniteur amarré et décroché. Il devrait détecter l'état et changer la configuration.

  • Enfin faire un raccourci clavier pour auto-disper.sh --change

J'ai essayé de créer un script qui l'exécute toutes les 3 secondes. La détection automatique fonctionne donc, mais utilisez trop de ressources. J'espère que cela peut aider!

11
Vinços

Utilisez disper . Après l'avoir installé, vous pouvez créer deux raccourcis:

  1. Pour passer à l’affichage externe à la résolution maximale: CTRL + E -> disper "max" -S
  2. pour revenir à l'écran principal: CTRL + P -> disper "max" -s
1
Diego De Rosa

Ceci est une limitation de Nvidia Twinview sous Linux. Le pilote open source fonctionnera comme prévu (mais vous perdrez l'accélération 3D et Compiz).

1
Jonathon

Je suis à peu près dans la même situation. J'utilise un ordinateur portable qui est parfois connecté à mon moniteur externe. Lorsque c'est le cas, je souhaite généralement utiliser uniquement ce moniteur (car je l'ai également connecté à un clavier et une souris externes).

Ce que j’ai trouvé, c’est que si vous avez un fichier appelé . Xprofile , il est appelé chaque fois que l’affichage est initialisé (par X.org?). Ici est le contenu de mon fichier. Comme vous pouvez le voir, je l'ai adapté à partir de ici .

Ce que vous devez faire est de le sauvegarder dans ~/.xprofile , puis de le rendre exécutable ( chmod + x .xprofile ). Vérifiez comment votre moniteur interne et vos moniteurs externes sont appelés - faites ceci en exécutant xrandr sans argument. Les miens sont VGA1 et LVDS1 respectivement. La dernière chose à faire est de définir la variable EXTERNAL_RES sur la résolution native de votre moniteur externe.

Au démarrage, le moniteur connecté sera utilisé s’il est connecté. La partie la plus délicate est l’automatisation (telle que le retrait du câble pendant le fonctionnement d’Ubuntu). Je n'ai pas trouvé de très bonne solution pour cela, mais il semble que le fait de passer à une console virtuelle et inversement fasse l'affaire (Ctrl-Alt-F1 puis Ctrl-Alt-F7). C'est un peu plus rapide que de parcourir toutes les possibilités avec la touche Fn (qui gêne parfois l'affichage).

1
chris

La détection automatique serait cool. En attendant, j'ai trouvé cet article de blog qui montre comment lier une clé à un script fourni qui bascule entre les affichages. Cela marche plutôt bien pour moi. Ce serait bien si Ubuntu fournissait quelque chose comme ça tout à fait original.

http://ninetynine.be/blog/2010/05/quick-workaround-for-missing-switch-display-key-or-lcdcrt-key-on-ubuntu/

0
aap

Vous pouvez toujours appuyer sur Fn+F8 après avoir déconnecté le moniteur. Cela va probablement le changer.

0
Ryan Thompson