HDMI ports are normally present on cards connected to an internal bus, and module-switch-on-connect should switch to them when a HDMI monitor is plugged. This is specially relevant on setups where the HDMI port of a machine is connected to a different audio card then the analog outputs, which is the case for machines with AMD graphics cards. --- src/modules/module-switch-on-connect.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/module-switch-on-connect.c b/src/modules/module-switch-on-connect.c index ebdd6aad0..9077eaec4 100644 --- a/src/modules/module-switch-on-connect.c +++ b/src/modules/module-switch-on-connect.c @@ -70,11 +70,14 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void* pa_log_debug("Trying to switch to new sink %s", sink->name); - /* Don't switch to any internal devices */ - s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS); - if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) { - pa_log_debug("Refusing to switch to sink on %s bus", s); - return PA_HOOK_OK; + /* Don't switch to any internal devices except HDMI */ + s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_STRING); + if (s && !pa_startswith(s, "hdmi")) { + s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS); + if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) { + pa_log_debug("Refusing to switch to sink on %s bus", s); + return PA_HOOK_OK; + } } /* Ignore virtual sinks if not configured otherwise on the command line */ -- 2.18.0