def start_XpraClient(): app = XpraClient(conn, xpra_opts) if xpra_opts.password: #pass the password to the class directly: app.password = xpra_opts.password #override exit code: warn_and_quit_save = app.warn_and_quit def warn_and_quit_override(exit_code, warning): app.cleanup() password_warning = warning.find("invalid password") >= 0 if password_warning: self.password_warning() err = exit_code != 0 or password_warning self.set_info_color(err) self.set_info_text(warning) if err: def ignore_further_quit_events(*args): pass app.warn_and_quit = ignore_further_quit_events self.set_sensitive(True) gobject.idle_add(self.window.show) else: app.warn_and_quit = warn_and_quit_save self.destroy() gtk.main_quit() app.warn_and_quit = warn_and_quit_override
def start_XpraClient(): app = XpraClient(conn, xpra_opts) if xpra_opts.password: #pass the password to the class directly: app.password = xpra_opts.password #override exit code: warn_and_quit_save = app.warn_and_quit def warn_and_quit_override(exit_code, warning): app.cleanup() password_warning = warning.find("invalid password")>=0 if password_warning: self.password_warning() err = exit_code!=0 or password_warning self.set_info_color(err) self.set_info_text(warning) if err: def ignore_further_quit_events(*args): pass app.warn_and_quit = ignore_further_quit_events self.set_sensitive(True) gobject.idle_add(self.window.show) else: app.warn_and_quit = warn_and_quit_save self.destroy() gtk.main_quit() app.warn_and_quit = warn_and_quit_override
def start_XpraClient(): app = XpraClient(socket_wrapper, opts) if opts.password: app.password = opts.password warn_and_quit_save = app.warn_and_quit def warn_and_quit_override(exit_code, warning): app.cleanup() err = exit_code != 0 or warning.find("invalid password") >= 0 self.set_info_color(err) self.set_info_text(warning) self.window.show() self.window.set_sensitive(True) if err: def ignore_further_quit_events(*args): pass app.warn_and_quit = ignore_further_quit_events else: app.warn_and_quit = warn_and_quit_save gtk.main_quit() app.warn_and_quit = warn_and_quit_override app.run() app.cleanup()
def run_client(parser, opts, extra_args, mode): if mode == "screenshot": if len(extra_args) == 0: parser.error("invalid number of arguments for screenshot mode") screenshot_filename = extra_args[0] extra_args = extra_args[1:] if mode in ("attach"): sys.stdout.write("xpra client version %s\n" % xpra.__version__) sys.stdout.flush() conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.quality != -1 and (opts.quality < 0 or opts.quality > 100): parser.error( "Quality must be between 0 and 100 inclusive. (or -1 to disable)") if mode == "screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode == "info": from xpra.client_base import InfoXpraClient app = InfoXpraClient(conn, opts) elif mode == "version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) return do_run_client(app, conn.target, mode)
def run_client(parser, opts, extra_args): from xpra.client import XpraClient conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") app = XpraClient(conn, opts.compression_level) app.connect("handshake-complete", handshake_complete_msg) app.connect("received-gibberish", got_gibberish_msg) app.run()
def run_client(parser, opts, extra_args, mode): if mode=="screenshot": if len(extra_args)==0: parser.error("invalid number of arguments for screenshot mode") screenshot_filename = extra_args[0] extra_args = extra_args[1:] if mode in ("attach"): sys.stdout.write("xpra client version %s\n" % xpra.__version__) sys.stdout.flush() conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.quality!=-1 and (opts.quality < 0 or opts.quality > 100): parser.error("Quality must be between 0 and 100 inclusive. (or -1 to disable)") if mode=="screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode=="info": from xpra.client_base import InfoXpraClient app = InfoXpraClient(conn, opts) elif mode=="version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if str(data).find("assword")>0: sys.stdout.write("Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if str(data).find("login")>=0: sys.stdout.write("Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): from wimpiggy.log import Logger log = Logger() if mode=="detach": log.info("handshake-complete: detaching") app.quit(0) elif mode=="attach": log.info("Attached to %s (press Control-C to detach)\n" % conn.target) app.connect("handshake-complete", handshake_complete) set_signal_handlers(app) try: try: return app.run() except KeyboardInterrupt, e: return -signal.SIGINT finally: app.cleanup()
def run_client(parser, opts, extra_args, mode): if mode == "screenshot": screenshot_filename = extra_args[0] extra_args = extra_args[1:] conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.jpegquality < 0 or opts.jpegquality > 100: parser.error("Jpeg quality must be between 0 and 100 inclusive.") if opts.title_suffix is not None and opts.title != "@title@ on @client-machine@": parser.error("use --title or --title-suffix but not both!") if mode == "screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode == "version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if "assword" in data: sys.stdout.write( "Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if "login" in data: sys.stdout.write( "Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): if mode == "detach": sys.stdout.write("handshake-complete: detaching") app.quit() elif mode == "attach": sys.stdout.write("Attached (press Control-C to detach)\n") sys.stdout.flush() app.connect("handshake-complete", handshake_complete) signal.signal(signal.SIGINT, app.quit) try: app.run() finally: app.cleanup()
def run_remote_server(parser, opts, args): """ Uses the regular XpraClient with patched proxy arguments to tell run_proxy to start the server """ params = parse_display_name(parser.error, opts, args[0]) #add special flags to "display_as_args" proxy_args = [params["display"]] if opts.start_child: for c in opts.start_child: proxy_args.append("--start-child=%s" % c) if opts.exit_with_children: proxy_args.append("--exit-with-children") params["display_as_args"] = proxy_args #and use _proxy_start subcommand: params["proxy_command"] = ["_proxy_start"] conn = connect_or_fail(params) from xpra.client import XpraClient app = XpraClient(conn, opts) do_run_client(app, params["display_name"], "attach")
opts.remote_xpra = ".xpra/run-xpra" opts.debug = None opts.no_tray = False opts.dock_icon = None opts.tray_icon = None opts.window_icon = None opts.readonly = False opts.session_name = "Xpra session" opts.mmap = True opts.keyboard_sync = True import logging logging.root.setLevel(logging.INFO) logging.root.addHandler(logging.StreamHandler(sys.stderr)) app = XpraClient(socket_wrapper, opts) app.run() def launch_xpra(self): """ Launches Xpra in a new process """ cmd = "xpra" if sys.platform.startswith("win"): if hasattr(sys, "frozen"): exedir = os.path.dirname(sys.executable) else: exedir = os.path.dirname(sys.argv[0]) cmd = os.path.join(exedir, "xpra.exe") if not os.path.exists(cmd): self.info.set_text("Xpra command not found!") return self.info.set_text("Launching: %s" % cmd)
def start_XpraClient(): app = XpraClient(socket_wrapper, opts) app.run() self.window.show() self.window.set_sensitive(True)
opts.readonly = xpra_opts.readonly opts.session_name = "Xpra session" opts.mmap = xpra_opts.mmap opts.mmap_group = xpra_opts.mmap_group opts.keyboard_sync = xpra_opts.keyboard_sync opts.send_pings = xpra_opts.send_pings opts.dpi = xpra_opts.dpi opts.cursors = xpra_opts.cursors opts.bell = xpra_opts.bell opts.notifications = xpra_opts.notifications import logging logging.root.setLevel(logging.INFO) logging.root.addHandler(logging.StreamHandler(sys.stderr)) self.window.hide() app = XpraClient(socket_wrapper, opts) app.run() self.window.show() def launch_xpra(self): thread.start_new_thread(self.do_launch_xpra, ()) def set_info_text(self, text): if self.info: gobject.idle_add(self.info.set_text, text) def do_launch_xpra(self): """ Launches Xpra in a new process """ gobject.idle_add(self.window.hide) try: self.set_info_text("Launching")
def run_client(parser, opts, extra_args): from xpra.client import XpraClient sock, local = client_sock(parser, opts, pick_display(parser, extra_args)) app = XpraClient(sock) sys.stdout.write("Attached\n") app.run()