def open_graphical_browser(url, new=0, autoraise=True):
    """Open a graphical web browser.

    This is basically like `webbrowser.open`, but without trying to launch CLI
    browsers at all. We're excluding those since it's undesirable to launch
    those when you're using vdirsyncer on a server. Rather copypaste the URL
    into the local browser, or use the URL-yanking features of your terminal
    emulator.
    """
    import webbrowser
    cli_names = set(['www-browser', 'links', 'links2', 'elinks', 'lynx', 'w3m']
        )
    if webbrowser._tryorder is None:
        webbrowser.register_standard_browsers()
    for name in webbrowser._tryorder:
        if name in cli_names:
            continue
        browser = webbrowser.get(name)
        if browser.open(url, new, autoraise):
            return
    raise RuntimeError(
        'No graphical browser found. Please open the URL manually.')
