def start_xephyr(self):
        """Start Xephyr instance

        Starts the Xephyr instance and sets the `self.display` to the display
        which is used to setup the instance.
        """
        # get a new display
        display, self.xephyr_display_file = xcffib.testing.find_display()
        self.display = f":{display}"
        self.xephyr_display = self.display

        # build up arguments
        args = [
            "Xephyr",
            "-name",
            "qtile_test",
            self.xephyr_display,
            "-ac",
            "-screen",
            f"{WIDTH}x{HEIGHT}",
        ]
        if self.outputs == 2:
            args.extend(
                [
                    "-origin",
                    f"{self.xoffset},0",
                    "-screen",
                    f"{SECOND_WIDTH}x{SECOND_HEIGHT}",
                ]
            )
            args.extend(["+xinerama"])
            args.extend(["-extension", "RANDR"])

        start_x11_and_poll_connection(args, self.xephyr_display)

        if self.xtrace:
            # because we run Xephyr without auth and xtrace requires auth, we
            # need to add some x11 auth here for the Xephyr display our xtrace
            # will fail:
            subprocess.check_call(["xauth", "generate", self.xephyr_display])
            display, self.xtrace_display_file = xcffib.testing.find_display()
            self.xtrace_display = f":{display}"
            self.display = self.xtrace_display
            args = [
                "xtrace",
                "--timestamps",
                "-k",
                "-d",
                self.xephyr_display,
                "-D",
                self.xtrace_display,
            ]
            start_x11_and_poll_connection(args, self.xtrace_display)
Start Xephyr instance

        Starts the Xephyr instance and sets the `self.display` to the display
        which is used to setup the instance.
        
test/backend/x11/conftest.py