2017-12-24 3 views
0

Manchmal schließe ich meinen Laptop über HDMI an meinen Fernseher an, um einen größeren Bildschirm zu haben. Leider schaltet es nicht automatisch die Audioausgabe um, also muss ich es jedes Mal selbst tun, wenn ich es einstecke oder abtrenne, mit einem der beiden, damit der Klang von wo ich will kommen soll.Erkennt automatisch, wenn HDMI eingesteckt ist

  • pacmd set-card-profile 0 output:hdmi-stereo-extra1
  • pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo

Gibt es eine Möglichkeit zu erkennen, ob HDMI angeschlossen ist, oder zumindest, wenn eine Änderung aufgetreten ist? Vielen Dank!

Linux Mint 18,2 Xfce x64, Asus P756U

+1

In diesem Q geht es nicht um die Programmierung für StackOverflow. ** ** kann ** auf https://superuser.com ODER https://unix.stackexchange.com geeigneter sein. Benutze den 'flag'-Link unten in deinem Q und bitte den Moderator, ihn zu verschieben. Bitte poste nicht das gleiche Q auf 2 verschiedenen Seiten. Bitte lesen Sie https://stackoverflow.com/help/on-topic, https://stackoverflow.com/help/how-to-ask, https://stackoverflow.com/help/dont-ask und https: // stackoverflow.com/help/mcve, bevor Sie weitere Qs hier veröffentlichen. Glück – shellter

+0

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. – jww

Antwort

1

Ich verwende zwei verschiedene Möglichkeiten, um festzustellen, ob HDMI angeschlossen ist:

a) Mit xrandr
Ein einfaches xrandr Ihre hdmi Monitor berichten, verbunden Um dies in einem Skript verwenden Sie so etwas wie tun:

hdmi_active=$(xrandr |grep ' connected' |grep 'HDMI' |awk '{print $1}') 

über den angeschlossenen HDMI-Anschluss (zB HDMI-1) oder werden wieder nichts, wenn kein HDMI angeschlossen wird zurückkehren wird.

Sie können dann so etwas wie

[[ ! -z "$hdmi_active" ]] && do_your_stuff 

verwenden z wird true wenn $hdmi_active nicht gesetzt ist. ! z kehrt dieses Verhalten und gibt true wenn hdmi_active einen Wert = hdmi verbunden ist

b) Verwendung der HDMI-Statusdatei:

$ cat /sys/class/drm/card0/*HDMI*/status 

Diese kehrt verbunden/getrennt für die HDMI-Anschlüsse:

$ cat /sys/class/drm/card0/*HDMI*/status 
disconnected 
disconnected 

Sie können dann gegen dieses Ergebnis mit etwas wie testen:

hdmi_active="$(cat /sys/class/drm/card0/*HDMI*/status |grep '^connected')" #Using^we avoind matching disconnected from the regex match, since^in an anchor to the beginning of the line 
[[ ! -z "$hdmi_active" ]] && do_your_stuff #hdmi is active 
Verwandte Themen