docs: def start(self):
          '''
          start display
  
          :rtype: self
          '''
          if self.use_xauth:
              self._setup_xauth()
          EasyProcess.start(self)
  
          # https://github.com/ponty/PyVirtualDisplay/issues/2
          # https://github.com/ponty/PyVirtualDisplay/issues/14
          self.old_display_var = os.environ.get('DISPLAY', None)
  
          self.redirect_display(True)
  
          # wait until X server is active
          start_time = time.time()
          ok = False
          d = self.new_display_var
          while time.time() - start_time < X_START_TIMEOUT:
              try:
                  exit_code = EasyProcess('xdpyinfo').call().return_code
              except EasyProcessError:
                  log.warn('xdpyinfo was not found, X start can not be checked! Please install xdpyinfo!')
                  time.sleep(X_START_WAIT)    # old method
                  ok = True
                  break
  
              if exit_code != 0:
                  pass
              else:
                  log.info('Successfully started X with display "%s".', d)
                  ok = True
                  break
  
              time.sleep(X_START_TIME_STEP)
          if not ok:
              msg = 'Failed to start X on display "%s" (xdpyinfo check failed).'
              raise XStartTimeoutError(msg % d)
          return self