+'''
+This module implements two functions:
+
+def error(message):
+ This function displays the error message to the user in some appropriate fassion
+
+def setup(internalResolutions, externalResolutions):
+ Both arguments are lists of (width, height) tuples of resolutions. You can use dsl.res2user to obtain a user-readable representation of a resolution tuple.
+ The user should be asked about his display setup preferences.
+ The function returns None if the user cancelled, and an instance of dsl.ScreenSetup otherwise.
+'''
+
+# frontend detectors
+def qtAvailable():
+ try:
+ import PyQt4
+ return True
+ except ImportError:
+ return False
+
+def zenityAvailable():
+ try:
+ from dsl import processOutputIt
+ processOutputIt("zenity", "--version")
+ return True
+ except Exception:
+ return False
+
+# actual frontends
+if qtAvailable():