diff --git a/mopidy/frontends/mpris/__init__.py b/mopidy/frontends/mpris/__init__.py index 813e03a2..5be9c6cf 100644 --- a/mopidy/frontends/mpris/__init__.py +++ b/mopidy/frontends/mpris/__init__.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +import os + import mopidy from mopidy import exceptions, ext from mopidy.utils import formatting, config @@ -89,6 +91,10 @@ class Extension(ext.Extension): return schema def validate_environment(self): + if 'DISPLAY' not in os.environ: + raise exceptions.ExtensionError( + 'An X11 $DISPLAY is needed to use D-Bus') + try: import dbus # noqa except ImportError as e: diff --git a/mopidy/frontends/mpris/actor.py b/mopidy/frontends/mpris/actor.py index 92805bd3..fae8618f 100644 --- a/mopidy/frontends/mpris/actor.py +++ b/mopidy/frontends/mpris/actor.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import logging +import os import pykka @@ -10,10 +11,14 @@ from mopidy.frontends.mpris import objects logger = logging.getLogger('mopidy.frontends.mpris') try: - import indicate -except ImportError as import_error: - indicate = None # noqa - logger.debug('Startup notification will not be sent (%s)', import_error) + indicate = None + if 'DISPLAY' in os.environ: + import indicate +except ImportError: + pass + +if indicate is None: + logger.debug('Startup notification will not be sent') class MprisFrontend(pykka.ThreadingActor, CoreListener):