1XPRA(1) General Commands Manual XPRA(1)
2
3
4
6 xpra - viewer for remote, persistent X applications
7
9 xpra start [:DISPLAY] | xpra start ssh:HOST:DISPLAY | xpra start-desk‐
10 top [:DISPLAY] | xpra start-desktop ssh:HOST:DISPLAY [OPTIONS..]
11 xpra attach [CONNECTIONSTRING] [OPTIONS..]
12 xpra shadow [:DISPLAY] | ssh:[USER@]HOST[:DISPLAY] [OPTIONS..]
13 xpra proxy [:DISPLAY] [OPTIONS..]
14 xpra stop | xpra exit | xpra detach | xpra screenshot filename | xpra
15 version | xpra info [CONNECTIONSTRING] [OPTIONS..]
16 xpra control [CONNECTIONSTRING] command [arguments..] [--ssh=CMD]
17 [--remote-xpra=CMD] [--socket-dir=DIR] [--socket-dirs=DIRS]
18 xpra initenv [--socket-dir=DIR]
19 xpra list [--socket-dir=DIR]
20 xpra showconfig [OPTIONS..]
21 xpra list-mdns
22 xpra upgrade :[DISPLAY] [...any options accepted by xpra start...]
23 xpra upgrade-desktop :[DISPLAY] [...any options accepted by xpra start-
24 desktop...]
25
27 Xpra is a tool which allows you to run X programs — usually on a remote
28 host — and then direct their display to your local machine, disconnect
29 from these programs, and reconnect from the same or another machine,
30 all without losing any state. It differs from standard X forwarding in
31 that it allows disconnection and reconnection without disrupting the
32 forwarded application; it differs from VNC and similar remote display
33 technologies in that xpra can run rootless: i.e., applications for‐
34 warded by xpra appear on your desktop as normal windows managed by your
35 window manager, rather than being all "trapped in a box together".
36 Xpra also uses a custom protocol that is self-tuning and relatively
37 latency-insensitive, and thus is usable over network connections that
38 are too slow or unreliable for standard X forwarding. Xpra can also be
39 used to shadow an existing X11 display, or in desktop mode where it
40 behaves more like VNC.
41
42 By default the Xpra server announces available sessions (username and
43 display number) via mDNS to the local network. Use mdns=no to disable
44 it.
45
47 Xpra supports many types of connection strings (some may require extra
48 packages to be installed):
49
50 :DISPLAY
51 Local displays: this is the simplest form and is only valid for the
52 current local displays of the current user.
53
54 tcp://[USERNAME@]HOST:PORT[/DISPLAY]
55 TCP mode uses port numbers and not display numbers. If multiple dis‐
56 plays are available through a single TCP port (ie: using a proxy
57 server), then one can also specify the display number.
58
59 ssl://[USERNAME@]HOST:PORT[/DISPLAY]
60 SSL adds a secure socket layer on top of the TCP mode.
61
62 vsock://[USERNAME[:PASSWORD]@]HOST:PORT
63 Almost identical to the TCP mode, but using AF_VSOCK for transport.
64
65 ws://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
66 Connect using websocket protocol.
67
68 wss://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
69 Connect using secure websocket protocol. (websocket with SSL)
70
71 ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]/[DISPLAY][?QUERYSTRING]
72 Connect using secure shell. (SSH)
73
74 Further options can be specified using the --ssh command line option.
75 The QUERYSTRING can be used to specify an ssh proxy:
76 ?proxy=ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT] xpra will then
77 establish an SSH connection to the specified "proxy" host, and from
78 that host xpra will set up an SSH connection to the xpra server.
79
80
81 For backwards compatibility, SSH mode also supports the syntax:
82 ssh:[USERNAME[:PASSWORD]@HOST:DISPLAY but this form does not support
83 specifying the SSH port number. Older versions also used the form pro‐
84 tocol:host:port, but users are encouraged to move to a more standard
85 URI format using :// as separator.
86
87 The password need only be specified when the server authentication mod‐
88 ule requires it. (ie: often when authenticating against MS Windows
89 servers, or with multifile and sqlite authentication modules)
90
92 xpra start :7
93 Start an xpra server using display number :7. Note: using DIS‐
94 PLAY=:7 xterm to start applications against a specific display is
95 not recommended. Always prefer using xpra's --start= command line
96 option instead. See this next example:
97
98 xpra start --start=firefox
99 Start an xpra server, choosing a display automatically and start
100 firefox on that virtual display. No window will appear until you
101 attach with xpra attach. The start child commands will inherit an
102 environment tailored for running under xpra.
103
104 xpra start ssh:bigbox:7 --start=xterm
105 Start an xpra server on bigbox with an xterm in it, and connect to
106 it.
107
108 xpra start-desktop --start=xfce4-session
109 Start an xfce session in a nested X11 server on an automatically
110 assigned display number.
111
112 xpra list
113 Show a list of xpra servers you have running on the current host.
114
115 xpra list-mdns
116 Show a list of xpra servers found via mDNS. (local network)
117
118 xpra showconfig
119 Shows the configuration that would be used with other sub-com‐
120 mands, taking into account the command line arguments.
121
122 xpra attach :7
123 Attach to the xpra server that is using local display number :7.
124 Any apps running on that server will appear on your screen.
125
126 xpra attach ssh:foo@frodo:7
127 Use ssh to attach to the xpra server that is running on machine
128 frodo as user foo and using display :7. Any apps running on that
129 server will appear on your local screen.
130
131 xpra start :7 --start=screen
132 Start an xpra server and a screen(1) session. If any of the
133 applications inside screen attempt to use X, they will be directed
134 to the xpra server.
135
137 Understanding the basic idea of displays is critical to using xpra suc‐
138 cessfully.
139
140 The idea comes from standard X. If you have multiple X servers running
141 on the same host, then there has to be some way to distinguish them. X
142 does this by assigning each server a small, unique integer called (per‐
143 haps confusingly) its "display". In the common case of a desktop
144 machine that has only one X server running, that server uses display
145 ":0" (or sometimes you'll see ":0.0", which is effectively the same).
146 When an application starts under X, it needs to know how to find the
147 right X server to use; it does this by checking the environment vari‐
148 able $DISPLAY.
149
150 Xpra faces a similar problem — there may be multiple xpra servers run‐
151 ning on the same host, as well as multiple X servers. It solves this
152 problem by re-using X's solution — each xpra server has a display asso‐
153 ciated with it. This display functions as both an X display (for when
154 xpra is talking to X applications) and as an identifier by which xpra
155 clients (like xpra attach) can locate the xpra server.
156
157 You may omit the display number when using xpra start: a display will
158 be chosen for you automatically. The display number chosen will be
159 shown in the log output, you should also be able to see it with xpra
160 list. On Microsoft Windows and Mac OSX, the display number should be
161 omitted.
162
163 Otherwise, when starting an xpra server, you may want to specify the
164 name of the display to use. To do this, simply pick any number you
165 like and stick a colon in front of it. For instance :7, :12, and :3117
166 are all valid display names. Just keep in mind that:
167
168 · Every X or xpra server that is running on a single machine must
169 use a different display name. If you pick a number that is
170 already in use then xpra will not work.
171
172 · The first few numbers (0, 1, 2) are commonly used by real X
173 servers.
174
175 · Everyone who connects to a given machine using ssh(1) with X
176 forwarding enabled will also use a display number; ssh generally
177 picks numbers near ten (10, 11, 12, ...).
178
179 When specifying an xpra server to a client program like xpra attach,
180 xpra detach, xpra stop, xpra exit, xpra version, xpra info, xpra list
181 or xpra screenshot then you can use a display of the form :DISPLAY to
182 refer to a server on the local host, or one of the form
183 ssh:[USER@]HOST:DISPLAY to refer to a server on a remote host; xpra
184 will automatically connect to the remote host using ssh(1). Generally,
185 if you have only one xpra session running on a machine (which you can
186 verify by running xpra list on that machine), then you can omit the
187 number entirely; xpra attach alone will attach to the lone xpra server
188 on the current machine regardless of its number, xpra attach ssh:frodo
189 will similarly attach to the lone xpra session on a remote machine.
190
191 Connecting using the display number assumes that the client and server
192 use the same configuration for socket directories, or at least that the
193 client can find at least one of the directories used by the unix domain
194 sockets (see bind, socket-dir and socket-dirs).
195
196 If the xpra server was given the --bind-tcp, --bind-ssl --bind-
197 udp=[HOST]:PORT, --bind-ws, --bind-wss or --bind-vsock option when
198 started then you can also connect to it using a display of the form
199 tcp://HOST:PORT, udp://HOST:PORT, ssl://HOST:PORT, ws://HOST:PORT,
200 wss://HOST:PORT or vsock://HOST:PORT. (Notice that ssh: takes an
201 optional display number, while those take a required port number.)
202
204 xpra start
205 This command starts a new xpra server, including any necessary setup.
206 (When starting a remote server with the ssh:HOST:DISPLAY syntax, the
207 new session will also be attached.)
208
209 xpra start-desktop
210 Starts a nested X11 server, all child commands will be started in the
211 nested X11 server.
212
213 xpra attach
214 This command attaches to a running xpra server, and forwards any appli‐
215 cations using that server to appear on your current screen.
216
217 xpra detach
218 Detaches the given xpra display.
219
220 xpra screenshot
221 Takes a screenshot and saves it to the filename specified. Note:
222 screenshots can only be taken when a client is attached.
223
224 xpra version
225 Queries the server version and prints it out. Note: older servers may
226 not support this feature.
227
228 xpra info
229 Queries the server for version, status and statistics. Note: older
230 servers may not support this feature.
231
232 xpra control
233 Modify the server at runtime by issuing commands. The list of commands
234 can be obtained by specifying "help" as command. Some of those com‐
235 mands may support a "help" mode themselves.
236
237 xpra initenv
238 This internal command creates the run-xpra script used with ssh connec‐
239 tions.
240
241 xpra stop
242 This command attaches to a running xpra server, and requests that it
243 terminates immediately. This generally causes any applications using
244 that server to terminate as well.
245
246 xpra exit
247 This command attaches to a running xpra server, and requests that it
248 terminates immediately. Unlike xpra stop, the Xvfb process and its X11
249 clients (if any) will be left running.
250
251 xpra showconfig
252 This commands shows the configuration which would be used given the
253 arguments provided. You can also specify as extra arguments the spe‐
254 cific options that should be displayed, or use the special value all to
255 display all the options including the ones which are normally not dis‐
256 played because they are not relevant on the given system.
257
258 xpra list
259 This command finds all xpra servers that have been started by the cur‐
260 rent user on the current machine, and lists them.
261
262 xpra upgrade
263 This command starts a new xpra server, but instead of creating it from
264 scratch, it attaches to another existing server, tells it to exit, and
265 takes over managing the applications that it was managing before. As
266 the name suggests, the main use case is to replace a server running
267 against an older version of xpra with a newer version, without having
268 to restart your session. Any currently-running xpra attach command
269 will exit and need to be restarted.
270
271 xpra upgrade-desktop
272 Same as upgrade but for servers started using start-desktop. It is
273 possible to upgrade seamless server into a desktop server and vice
274 versa.
275
276 xpra shadow
277 This command shadows an existing X11 display. If there is only one X11
278 display active and its number is below 10, it can be auto-detected.
279
280 Note that this mode of operation uses screenscraping which is far less
281 efficient. Using a video encoder (h264 or vp8) is highly recommended
282 for this mode of operation.
283
284 xpra proxy
285 This command allows a single server to proxy connections for multiple
286 others, potentially serving as a load balancing or authentication entry
287 point for many sessions. The proxy server will spawn a new process for
288 each proxy connection, this proxy process will create an unauthenti‐
289 cated new unix domain socket which can be used with the subcommands
290 info, version and stop.
291
292
293 Important Note
294 Some platforms and package managers may choose to only build the client
295 and not the server. In this case, only the attach subcommand will be
296 available.
297
298
300 General options
301 --version
302 Displays xpra's version number.
303
304 -h, --help
305 Displays a summary of command line usage.
306
307 -d FILTER1,FILTER2,..., --debug=FILTER1,FILTER2,...
308 Enable debug logging. The special value all enables all debug‐
309 ging.
310
311 --mmap=yes|no|ABSOLUTEFILENAME
312 Enable or disable memory mapped pixel data transfer. By default
313 it is normally enabled automatically if the server and the
314 client reside on the same filesystem namespace. This method of
315 data transfer offers much lower overheads and reduces both CPU
316 consumption and local network traffic. When attaching, you can
317 also specify an absolute path where the mmap file will be cre‐
318 ated.
319
320 --mmap-group=GROUP
321 Sets the mmap file's gid to the group specified, and sets the
322 permissions to 660. This is necessary to share the mmap file
323 across user accounts. You can also use the special GROUP val‐
324 ues:
325
326 no Disable the functionality, the mmap file will use the
327 default file permissions and default group ownership.
328
329 SOCKET The group used will be the same one as found on the unix
330 domain socket file the client connects to. Obviously,
331 this can only work when connecting to unix domain sock‐
332 ets.
333
334 auto Will use the 'xpra' group if the user is a member, other‐
335 wise it will fallback to the same behaviour as SOCKET.
336
337
338 --windows=yes|no
339 Enable or disable the forwarding of windows. This is usually the
340 primary use for xpra and should be enabled.
341
342 --min-size=WIDTHxHEIGHT
343 Sets the minimum size for all decorated windows.
344
345 --max-size=WIDTHxHEIGHT
346 Sets the maximum size for all windows.
347
348 --readonly=yes|no
349 Read only mode ignores all keyboard and mouse activity.
350
351
352 --clipboard=yes|no|clipboard-type
353 Enable or disable clipboard synchronization. If disabled on the
354 server, no clients will be able to use clipboard synchronization
355 at all. If turned off on the client, only this particular con‐
356 nection will ignore clipboard data from the server. This can
357 also be used to specify a different clipboard implementation.
358 The clipboard types available will vary from platform to plat‐
359 form and also depend on build time environment and options so
360 this is best left on auto. Other clipboard types available may
361 include:
362
363 translated
364 Clipboard which can translate from one type of selection
365 to another
366
367 GDK The most complete clipboard implementation, includes full
368 X11 support
369
370 default
371 Fallback clipboard, with limited X11 support
372
373 OSX OSX specific clipboard
374
375
376 --clipboard-direction=to-server|to-client|both|disabled
377 Choose the direction of the clipboard synchronization.
378
379 --pulseaudio=yes|no
380 Enable or disable the starting of a pulseaudio server with the
381 session.
382
383 --pulseaudio-command=SERVER-START-COMMAND
384 Specifies the pulseaudio command to use to start the pulseaudio
385 server, unless disabled with pulseaudio=no.
386
387 --session-name=VALUE
388 Sets the name of this session. This value may be used in notifi‐
389 cations, utilities, tray menu, etc. Setting this value on the
390 server provides a default value which may be overridden on the
391 client.
392
393 --encoding=ENCODING
394 This specifies the image encoding to use, there are a number of
395 encodings supported: jpeg, png, png/P, png/L, webp, rgb, vp8,
396 vp9, h264 and h265 (some may not be available in your environ‐
397 ment). The default option is auto which allows the server to
398 select the best encoding automatically.
399
400
401 auto default mode: the built-in heuristics will choose the
402 most appropriate encoding
403
404 png compressed and lossless, can be quite slow.
405
406 png/P compressed and lossy: it uses a colour palette, which
407 means better compression but still slow.
408
409 png/L compressed and lossy: grayscale only using a palette.
410
411 rgb a raw pixel format (lossless) compressed with lz4, lzo or
412 zlib (see compressors) the compression ratio is lower,
413 but it is by far the fastest encoding available.
414
415 webp can be used in lossy or lossless mode, useful for graphi‐
416 cal applications, it compresses better than jpeg and is
417 reasonably fast except at high resolutions.
418
419 jpeg can be useful for graphical applications, it is lossy and
420 usually very fast.
421
422 vp8 lossy video encoding which always uses colour subsam‐
423 pling. Fast at encoding and decoding.
424
425 vp9 Video encoding which supports both lossy and lossless
426 modes, available if your ffmpeg library version is recent
427 enough.
428
429 h264 One of the best encoding available: it is fast, efficient
430 and tunable via the quality and speed options.
431
432 h265 Far too slow at encoding, avoid.
433
434 The default encoding which is automatically selected if you do not
435 specify one will depend on what options are available on both the
436 server and the client: rgb is always available (builtin), jpeg and png
437 require the Python Imaging Library, vp8, vp9, webp, h264 and h265 all
438 require their respective shared libraries, as well as the xpra codec
439 that uses them.
440
441 Note: when selecting a video encoding (usually h264, vp8 or vp9), it
442 will only be used if the screen is updating quickly enough, some of the
443 smaller screen updates will also be sent using one of the other non-
444 video encodings.
445
446
447 --video-scaling=on|off|SCALING
448 How much automatic video downscaling should be used, from 1
449 (rarely) to 100 (aggressively), 0 to disable. Video scaling is
450 normally used with video regions or very large windows (espe‐
451 cially full screen windows) to try to maintain a decent framer‐
452 ate. Video downscaling negatively affects visual quality and
453 will cause automatic refreshes (if enabled), it is most useful
454 on video content where it saves a considerable amount of band‐
455 width.
456
457
458 --socket-dir=DIR
459 Location where to write and look for the Xpra socket files. The
460 default location varies from platform to platform ("~/.xpra" on
461 most Posix systems). If unspecified, the first value from
462 socket-dirs will be used. It may also be specified using the
463 XPRA_SOCKET_DIR environment variable.
464
465 When using the socket-dir option, it is generally necessary to
466 specify socket-dir or socket-dirs on all following commands, for
467 xpra to work with the open sessions.
468
469 By specifying a shared directory this can be coupled with the
470 mmap-group and socket-permissions option to connect Xpra ses‐
471 sions across user accounts with shared memory acceleration.
472
473
474 --socket-dirs=DIR
475 Specifies the directories where to look for existing sockets if
476 a specific one was not set using socket-dir. You may specify
477 each directory using a new --socket-dirs command line argument,
478 or joined together by the path separator (: on Posix). The
479 paths will be expanded. (ie: --socket-dirs=~/.xpra:/tmp)
480
481
482 --file-transfer=on|off
483 Enable file transfers.
484
485 --open-files=on|off
486 This option may be used to allow the remote end to automatically
487 open files after they have been uploaded. This may be a secu‐
488 rity risk if you are using xpra to constrain what the clients
489 can execute on the server.
490
491
492 --forward-xdg-open=on|off
493 Intercept execution of xdg-open and forward the request to the
494 client.
495
496
497 --open-command=COMMAND
498 The command to use for opening files and URLs.
499
500
501 --bandwidth-limit=BITSPERSECOND
502 Restrict bandwidth usage to below the limit given. The client's
503 value cannot raise the limit of the server. The value may be
504 specified using standard units, ie: 1Mbps or 500K. In auto
505 mode, the client will set the bandwidth limit value to 80% of
506 the maximum speed of the network interface it is using to con‐
507 nect to the server.
508
509
510
511 Options for start, start-desktop, upgrade, proxy and shadow
512
513 --daemon=yes|no
514 By default, the xpra server puts itself into the background,
515 i.e. 'daemonizes', and redirects its output to a log file. This
516 can be used to prevent that behavior (useful mostly for debug‐
517 ging).
518
519
520 --chdir=DIR
521 Change to this directory after daemonizing.
522
523
524 --uid=UID and --gid=GID
525 When launching the server as root, these options can be used to
526 drop privileges to the given UID / GID.
527
528
529 --pidfile=FILENAME
530 Writes the server process ID to this file on startup. If the
531 file has not been replaced, it will be deleted when the server
532 exits.
533
534
535 --bind=BIND_LOCATION
536 Create a local Unix domain socket (on Unix) or named-pipe (on MS
537 Windows) for each bind option specified.
538
539 This option can be specified multiple times to specify multiple
540 socket locations. These sockets support local connections with
541 the :7-style display address, and remote connections with the
542 ssh:frodo:7-style display address.
543
544 Local sockets may also process HTTP / Websocket connections if
545 the html switch is enabled.
546
547 The location can take the form:
548
549 none do not create a socket
550
551 auto backwards compatible default which uses the current
552 socket-dir
553
554 DIRECTORY/
555 create a socket in the directory specified, if the direc‐
556 tory does not exist then it will be created - you should
557 include the trailing slash to prevent the confusion with
558 the PATH form:
559
560 PATH create the socket using the path specified
561
562 --bind-tcp=[HOST]:PORT
563 Create a TCP socket for each --bind-tcp option specified. If
564 the host portion is omitted, then 127.0.0.1 (localhost) will be
565 used. If you wish to accept connections on all interfaces, pass
566 0.0.0.0 for the host portion.
567
568 Using this switch without using the tcp-auth option is not rec‐
569 ommended, and is a major security risk (especially when passing
570 0.0.0.0)! Anyone at all may connect to this port and access
571 your session.
572
573 TCP sockets may also process HTTP / Websocket connections if the
574 html switch is enabled. TCP sockets may also be upgraded to SSL
575 sockets if the ssl switch is enabled.
576
577 --bind-udp=[HOST]:PORT
578 Create a UDP socket for each --bind-udp option specified. If
579 the host portion is omitted, then 127.0.0.1 (localhost) will be
580 used. If you wish to accept connections on all interfaces, pass
581 0.0.0.0 for the host portion.
582
583 Using this switch without using the udp-auth option is not rec‐
584 ommended, and is a major security risk (especially when passing
585 0.0.0.0)! Anyone at all may connect to this port and access
586 your session. UDP sessions are trivial to hijack for anyone
587 able to sniff even just a single packet, it should only be used
588 in very specific use-cases, and never over unsecured networks.
589
590 --bind-ws=[HOST]:PORT
591 Create an HTTP / Websocket listener. See bind-tcp for host
592 restrictions, you should use the auth-ws to secure access.
593
594 --bind-wss=[HOST]:PORT
595 Create an HTTPS / Secure Websocket listener. See bind-tcp for
596 host restrictions, you should use the auth-wss to secure access.
597
598 --bind-ssl=[HOST]:PORT
599 Just like --bind-tcp but for SSL sockets. See ssl-auth and the
600 other SSL options.
601
602 --bind-rfb=[HOST]:PORT
603 Listens for RFB connections on the given port. These sockets
604 are only supported with the start-desktop and shadow modes.
605
606 --bind-vsock=CID:PORT
607 Create a VSOCK socket for each --bind-vsock option specified.
608
609 --auth=MODULE[:OPTION=VALUE]
610 Specifies the authentication module to use for unix domain sock‐
611 ets created using the bind switch. Authentication modules can
612 validate a username and password against a variety of backend
613 modules:
614
615 allow always allows authentication - this is dangerous and
616 should only be used for testing
617
618 fail always fails authentication, useful for testing
619
620 env matches against the environment variable specified by the
621 name option (which defaults to XPRA_PASSWORD). ie:
622 --auth=env:name=SOME_OTHER_ENV_VAR_NAME.
623
624 password
625 matches against the password specified using the value
626 option. ie: --auth=password:value=YOURPASSWORD. Note:
627 this command line option may be exposed to other pro‐
628 cesses on the same system.
629
630 file checks the password against the password data found in
631 the file specified using the filename option. ie:
632 --auth=file:filename=./password.txt.
633
634 The contents of this file will be treated as binary data,
635 there are no restrictions on character encodings or file
636 size.
637
638
639 multifile
640 checks the username and password against the file speci‐
641 fied using the filename option. The file must contain
642 each user credentials on one line of the form:
643
644 username|password|uid|gid|displays|env_opts|session_opts
645
646 It is not possible to have usernames or password that
647 contain the pipe character | which is used as delimiter,
648 or newlines and carriage returns.
649
650
651 sqlite checks the username and password against the sqlite data‐
652 base file specified using the filename option. The
653 authentication will be processed using the following
654 query (which is configurable using the "password_query"
655 option): SELECT password FROM users WHERE username=(?)
656 The sessions available for each user will be querying
657 using: (this is configurable using the "sessions_query"
658 option): SELECT uid, gid, displays, env_options, ses‐
659 sion_options FROM users WHERE username=(?) Multiple dis‐
660 plays may be specified as a comma separated list.
661
662
663 hosts checks the host using the system's tcp-wrappers library.
664 (Posix only, and not available on Mac OS) See hosts.allow
665 and hosts.deny for details.
666
667
668 exec Executes the command specified using the command
669 attribute, the arguments to this command are: a descrip‐
670 tion of the access request and the timeout value. (also
671 configurable) If the command is not specified, the system
672 will try to locate and use the auth_dialog utility which
673 is shipped with xpra. The command should return 0 to
674 allow access, any other value will deny access.
675
676
677 peercred
678 checks the unix domain socket peer credentials using
679 SO_PEERCRED. This authentication module is only avail‐
680 able on some Posix compliant operating systems. This mod‐
681 ule will verify that the operating system provides the
682 uid and gid of the process that initiated the connection.
683 Access can be restricted by supplying in CSV format the
684 list of valid uids and gids that are allowed to connect.
685 Those id values may be specified using numerical values
686 or using the usernames / group names. This module is
687 different from the others in that it will not require the
688 client to supply a username or password, as those are
689 ignored. Environment variables and pseudo-environment
690 variables may also be used as values, ie: --auth=peer‐
691 cred:uid=\$UID.
692
693
694 pam validates the username and password using the PAM system
695
696 win32 validates the username and password using Microsoft Win‐
697 dows authentication (only available on this platform)
698
699 sys chooses the appropriate system authentication module
700 automatically (either pam or win32)
701
702
703 kerberos-password
704 validates the username and password using kerberos
705 authentication. Warning: this module does not use ker‐
706 beros tickets and the password will be sent in plain text
707 to the server. This should only be used for testing.
708
709 kerberos-ticket
710 validates a kerberos ticket obtained by the client.
711
712 gss validates a GSS ticket obtained by the client.
713
714 u2f requests a U2F token from the client.
715
716 ldap validates the username and password against an LDAP
717 server, using the python-ldap library.
718
719 ldap validates the username and password against an LDAP
720 server, using the python ldap3 library.
721
722 --tcp-auth=MODULE
723 Just like the auth switch, except this one only applies to TCP
724 sockets (sockets defined using the bind-tcp switch).
725
726 --udp-auth=MODULE
727 Just like the tcp-auth switch, except this one only applies to
728 UDP sockets (sockets defined using the bind-udp switch).
729
730 --ws-auth=MODULE
731 Just like the auth switch, except this one only applies to ws
732 sockets: sockets defined using the bind-ws switch, or TCP sock‐
733 ets upgraded to websockets. (if the htmlfP option is enabled).
734
735 --wss-auth=MODULE
736 Just like the auth switch, except this one only applies to wss
737 sockets: sockets defined using the bind-wss switch, ws sockets
738 upgraded to SSL (if the ssl option is enabled) or TCP sockets
739 upgraded to SSL and then to wss. (if both the ssl and html
740 options are enabled).
741
742 --ssl-auth=MODULE
743 Just like the auth switch, except this one only applies to SSL
744 sockets: sockets defined using the bind-ssl switch, or TCP sock‐
745 ets upgraded by ssl=auto or ssl=on.
746
747 --rfb-auth=MODULE
748 Authentication module to use for the bind-rfb sockets.
749
750 --vsock-auth=MODULE
751 Just like the auth switch, except this one only applies to VSOCK
752 sockets (sockets defined using the bind-vsock switch).
753
754 --challenge-handlers=MODULES
755 Configures which challenge handlers are used by the client and
756 in which order. The default value is: all which corresponds to:
757 uri,file,env,kerberos,gss,u2f,prompt. Note: some of these mod‐
758 ules will fall through to others if they are enable to supply
759 the challenge requested (uri, file, kerberos and gss), others do
760 not (env and prompt).
761
762 uri Use the password specified on the connection string, if
763 any.
764
765 file Loads the password from the file specified with the pass‐
766 word-file switch.
767
768 env Use the password specified using the XPRA_PASSWORD envi‐
769 ronment variable.
770
771 kerberos
772 Request a kerberos token for the service specified.
773
774 gss Request a gss token for the service specified.
775
776 u2f Requests a token from a U2F device.
777
778 prompt Prompt the user for the value. Terminal clients prompt
779 using text input, GUI clients use a dialog.
780
781 --min-port=PORT
782 The minimum port number allowed when creating UDP and TCP sock‐
783 ets. You can use a lower value to allow unprivileged users to
784 bind to privileged ports when starting sessions via the system
785 wide proxy server. The default value is 1024 which is the stan‐
786 dard value for privileged ports.
787
788 --mdns=yes|no
789 Enable or disable the publication of new sessions via mDNS.
790
791 --dbus-launch=COMMAND|no
792 Start the session within a dbus-launch context, you can specify
793 the dbus launch command to use, or turn it off completely. Some
794 features may not be available without a dbus context.
795
796 --dbus-proxy=yes|no
797 Allows the client to forward dbus calls to the server.
798
799 --dbus-control=yes|no
800 Start a dbus server which can be used to interact with the
801 server process.
802
803
804
805
806 Options for start, start-desktop, upgrade
807
808 --exec-wrapper=CMD
809 A wrapper command which is prepended to all start commands.
810 Typically, this is used for starting all sub-commands via Virtu‐
811 alGL.
812
813 --start=CMD
814 After starting the server, runs the command CMD using the
815 default shell. The command is run with its $DISPLAY set to
816 point to the newly-started server. This option may be given
817 multiple times to start multiple commands.
818
819 --start-child=CMD
820 Identical to --start, except that the commands are taken into
821 account by --exit-with-children.
822
823 --start-after-connect=CMD
824 Wait for the first client to connect before starting the com‐
825 mand.
826
827 --start-child-after-connect=CMD
828 Wait for the first client to connect before starting the child
829 command. See start-child.
830
831 --start-on-connect=CMD
832 Execute this command every time a client connects.
833
834 --start-child-on-connect=CMD
835 Execute this child command every time a client connects. See
836 start-child.
837
838 --start-on-last-client-exit=CMD
839 Execute this command every time a client disconnects and there
840 are no other clients left.
841
842 --start-child-on-last-client-exit=CMD
843 Execute this child command every time a client disconnects and
844 there are no other clients left. See start-child.
845
846 --terminate-children=yes|no
847 On server stop, terminate all the child commands that have been
848 started by the server. This does not affect server exit. Most
849 child commands are tied to the display so they are normally
850 forced to shutdown anyway, but this gives them more time to
851 cleanup properly and can be used to stop background commands
852 that aren't tied to a display.
853
854 --exit-with-children=yes|no
855 This option may only be used if --start-child is also given. If
856 it is given, then the xpra server will monitor the status of the
857 children started by --start-child, and will automatically termi‐
858 nate itself when the last of them has exited.
859
860 --exit-with-client=yes|no
861 The server will terminate when the last client disconnects.
862
863 --env=KEY=VALUE
864 Extra environment variables which will only affect commands
865 started using fB--start or --start-child.
866
867 --start-new-commands=yes|no
868 Allow clients to ask the server to execute new commands. (this
869 can also be used via the control channel)
870
871 --start-via-proxy=yes|no|auto
872 If enabled, the start and start-desktop subcommands will be del‐
873 egated to the system wide proxy server instance. With auto
874 mode, this delegation will only occur if the system wide proxy
875 server is found.
876
877 --systemd-run=yes|no|auto
878 Wrap server start commands with systemd-run.
879
880 --systemd-run-args=ARGS
881 Command line arguments passed to systemd-run.
882
883 --use-display
884 Use an existing display rather than starting one with xvfb. You
885 are responsible for starting the display yourself. This can
886 also be used to rescue an existing display whose xpra server
887 instance crashed or for running xpra against an accelerated X11
888 server.
889
890 --displayfd=FD
891 The xpra server will write the display number back on this file
892 descriptor as a newline-terminated string. This is most useful
893 when the display number is not specified with the xpra start or
894 start-desktop subcommands.
895
896 --xvfb=CMD
897 When starting a seamless server, xpra starts a virtual X server
898 to run the clients on. If your Xvfb is installed in a funny
899 location, or you want to use some other virtual X server, then
900 this switch allows you to specify how to run your preferred X
901 server executable. The default value used depends on your plat‐
902 form. For more information, see: https://xpra.org/Xdummy.html
903
904 --sync-xvfb=DELAY
905 The windows are normally only displayed on the client(s), they
906 are not painted on the virtual display. Some applications like
907 screen recorders may want to capture the window contents, you
908 can use this option to enable painting with a configurable delay
909 (in milliseconds). Warning: this extra painting is expensive
910 and quite slow, which is why it is not enabled by default.
911
912 --attach=yes|no|auto
913 Once the server has started, immediately connect a client to it.
914 With the value auto, a client is started for remote servers
915 only. (servers specified via a network URI)
916
917
918
919
920 Options for start, start-desktop, upgrade, shadow
921
922 --tcp-proxy=HOST:PORT
923 Specifies the address to which non-xpra packets will be for‐
924 warded. This can be used to share the same TCP port with
925 another TCP servers, usually a web server. xpra clients will
926 connect as usual, but any client that does not speak the xpra
927 protocol will be forwarded to the alternative server.
928
929
930 --html=on|off|auto|webrootpath
931 Respond to HTTP requests on the TCP port(s) and local sockets.
932 This requires at least one TCP or local socket to be configured
933 using the matching bind option. The auto mode will enable sup‐
934 port if possible. By default the server will provide access to
935 the HTML5 client. You can also specify your own web root path
936 as argument.
937
938
939 --rfb-upgrade=DELAY
940 Allows RFB clients (ie: VNC) to connect to a plain TCP socket.
941 If no data is received after DELAY seconds, the server will send
942 a RFB handshake. This option is only applicable to servers
943 started in start-desktop or shadow modes.
944
945
946 --video-encoders=ENCODERS
947 Specifies the video encoders to try to load. By default, all of
948 them are loaded, but one may want to specify a more restrictive
949 list of encoders. Use the special value 'help' to get a list of
950 options. Use the value 'none' to not load any video encoders.
951
952
953 --csc-modules=MODULES
954 Specifies the colourspace conversion modules to try to load. By
955 default, all of them are loaded, but one may want to specify a
956 more restrictive list of modules. Use the special value 'help'
957 to get a list of options. Use the value 'none' to not load any
958 colourspace conversion modules.
959
960
961 --socket-permissions=ACCESS-MODE
962 Specifies the permissions on the server socket. Defaults to
963 600. This is ignored when mmap-group is enabled.
964
965
966
967
968 Options for start, start-desktop, upgrade and attach
969
970 --encryption=CIPHER
971 Specifies the cipher to use for securing the connection from
972 prying eyes. This option requires the use of the --encryption-
973 keyfile option. The only cipher supported at present is AES, if
974 the client requests encryption it will be used by both the
975 client and server for all communication after the initial pass‐
976 word verification, but only if the server supports this feature
977 too. Note: this feature has not been extensively reviewed and
978 as it is it should not be considered safe from determined
979 attackers.
980
981 --tcp-encryption=CIPHER
982 Just like the encryption switch, except this one only applies to
983 TCP sockets (sockets defined using the bind-tcp switch).
984
985 --encryption-keyfile=FILENAME
986 Specifies the key to use with the encryption cipher specified
987 with --encryption. The client and server must use the same key‐
988 file contents.
989
990 --tcp-encryption-keyfile=FILENAME
991 Just like the encryption-keyfile switch, except this one only
992 applies to TCP sockets (sockets defined using the bind-tcp
993 switch).
994
995 --idle-timeout=IDLETIMEOUT
996 The connection will be terminated if there is no user activity
997 (mouse clicks or key presses) for the given amount of time (in
998 seconds). Use the value 0 to disable this timeout.
999
1000 --server-idle-timeout=IDLETIMEOUT
1001 The server will exit if there are no active connections for the
1002 given amount of time (in seconds). Use the value 0 to disable
1003 this timeout.
1004
1005 --clipboard-filter-file=FILENAME
1006 Name of a file containing regular expressions, any clipboard
1007 data that matches one of these regular expressions will be
1008 dropped. Note: at present this only applies to copying from the
1009 machine where this option is used, not to it.
1010
1011 --dpi=VALUE
1012 The 'dots per inch' value that client applications should try to
1013 honour. This numeric value should be in the range 10 to 500 to
1014 be useful. Many applications will only read this value when
1015 starting up, so connecting to an existing session started with a
1016 different DPI value may not have the desired effect.
1017
1018 --pixel-depth=VALUE
1019 When starting a server, this switch controls the bits per pixel
1020 of the virtual framebuffer. Possible values: 0 (auto), 16, 24,
1021 30. When starting a client, this switch controls the picture
1022 rendering with the opengl backend: values higher than 24 will
1023 enable deep color, the value 24 enables regular true color ren‐
1024 dering. Use the value 0 to let the client decide if the render‐
1025 ing will benefit from using deep color. (this is only supported
1026 on some Posix clients) Other values should not be used.
1027
1028 --cursors=yes|no
1029 Enable or disable forwarding of custom application mouse cur‐
1030 sors. Client applications may change the mouse cursor at any
1031 time, which will cause the new cursor's pixels to be sent to the
1032 client each time. This disables the feature.
1033
1034 --notifications=yes|no
1035 Enable or disable forwarding of system notifications. System
1036 notifications require the xpra server to have its own instance
1037 of a dbus daemon, if it is missing a warning will be printed on
1038 startup. This switch disables the feature entirely, and avoids
1039 the warning.
1040
1041 --input-method=METHOD
1042 Specify which input method to configure. This sets a number of
1043 environment variables which should be honoured by applications
1044 started with the start-child option.
1045
1046 The following METHODs are currently supported:
1047
1048 none Disable input methods completely and prevent it from
1049 interfering with keyboard input. This is the default.
1050
1051 keep Keeps the environment unchanged. You are responsible for
1052 ensuring it is correct.
1053
1054 xim Enables the X Input Method.
1055
1056 IBus Enables the Intelligent Input Bus.
1057
1058 SCIM Enables the Smart Common Input Method.
1059
1060 uim Enables the Universal Input Method.
1061
1062 Any other value will also be set up, but will trigger a warning.
1063
1064
1065 --xsettings=yes|no
1066 Enable or disable xsettings synchronization. Xsettings are only
1067 forwarded from posix clients connecting to real posix servers
1068 (not shadows).
1069
1070 --system-tray=yes|no
1071 Enable or disable forwarding of system tray icons. This feature
1072 requires client support and may not be available on all plat‐
1073 forms.
1074
1075 --bell=yes|no
1076 Enable or disable forwarding of the system bell.
1077
1078 --webcam=yes|no
1079 Enable or disable webcam forwarding.
1080
1081 --mousewheel=on|off|invert|invert-x|invert-y|invert-z
1082 Mouse wheel handling: can be used to disable mouse wheel for‐
1083 warding or to invert some or all axes.
1084
1085 --remote-logging=yes|no|both
1086 Allow the client to forward its log output to the server. The
1087 client can specify the value both to both send it to the server
1088 and keep it locally.
1089
1090 --av-sync=yes|no
1091 Enable or disable audio-video synchronization. The video data
1092 will be delayed so that it is displayed in sync with the audio.
1093 Note: this only applies to video regions, either auto-detected
1094 via the builtin heuristics or specified using the dbus inter‐
1095 face.
1096
1097
1098 Options for attach
1099 --password-file=FILENAME
1100 Supply the password to be used for connecting to a server that
1101 uses authentication. See auth, tcp-auth, ssl-auth and vsock-auth
1102 for details. Alternatively, you may use the XPRA_PASSWORD envi‐
1103 ronment variable.
1104
1105 --opengl=(yes|no|auto)[:backend]
1106 Use OpenGL accelerated rendering on the client. The default is
1107 to detect if the graphics card and drivers are supported (auto
1108 mode), but one can also disable OpenGL (no) or force it enabled
1109 (yes). On some platforms, it is also possible to specify which
1110 backends should be used, only gtk and native are currently sup‐
1111 ported and only on X11 platforms. ie: opengl=yes:native, or
1112 opengl=auto:gtk,native.
1113
1114 --webcam=yes|no|/dev/deviceXXX|DEVICEID
1115 Enable or disable webcam forwarding. The webcam device to use
1116 can also be specified.
1117
1118
1119 -zLEVEL, --compress=LEVEL
1120 Select the level of compression xpra will use when transmitting
1121 data over the network. With the lz4 and lzo compressors, there
1122 are only two possible values: 0 (meaning no compression) and 1
1123 (compression enabled). The zlib compressor supports values
1124 between 0 (meaning no compression) and 9, inclusive. It should
1125 only be used when lz4 and lzo are not available.
1126
1127 This compression is not used on pixel data (except when using
1128 the rgb encoding).
1129
1130 --quality=VALUE
1131 This option sets a fixed image compression quality for lossy
1132 encodings (jpeg, webp, h264/h265 and vp8/vp9). First, one of
1133 those lossy encodings must be enabled with --encoding. Values
1134 range from 1 (lowest quality, high compression - generally unus‐
1135 able) to 100 (highest quality, low compression). Specify a
1136 value of zero to let the system tune the quality dynamically to
1137 achieve the best bandwidth usage possible. It is usually best
1138 not to use this option and use min-quality instead.
1139
1140 --min-quality=MIN-QUALITY
1141 This option sets the minimum encoding quality allowed when the
1142 quality option is set to automatic mode.
1143
1144 --speed=SPEED
1145 This option sets the encoding speed. Slower compresses more,
1146 faster will give better latency. The system normally uses a
1147 variable speed, this option forces a fixed speed setting to be
1148 used instead. It is usually best not to use this option and use
1149 min-speed instead.
1150
1151 --min-speed=MIN-SPEED
1152 This option sets the minimum encoding speed allowed when the
1153 speed option is set to automatic mode.
1154
1155 --auto-refresh-delay=DELAY
1156 This option sets a delay after which the windows are automati‐
1157 cally refreshed using a lossless frame. The delay is a float‐
1158 ing-point number and is in seconds. This option is enabled by
1159 default with a delay of 0.25 seconds. This option is only rele‐
1160 vant when using a lossy encoding.
1161
1162 --shortcut-modifiers=MODIFIERS
1163 Defines the default shorcut modifers required by the key-short‐
1164 cuts, these modifiers can then be referred to as #. The default
1165 value is 'auto' which evaluates to Meta+Shift on most platforms.
1166
1167 --key-shortcut=KEY:ACTION
1168 Can be specified multiple times to add multiple key shortcuts.
1169 These keys will be caught by the client and trigger the action
1170 specified and the key presses will not be passed on to the
1171 server.
1172
1173 The KEY specification may include keyboard modifiers in the form
1174 [modifier+]*key, for example: Shift+F10 or Shift+Control+B. You
1175 can refer to the shorcut-modifers option value using #, ie:
1176 #+F1.
1177
1178 If no shortcuts are defined on the command line, the default
1179 builtin list will be used.
1180
1181 Some of the actions may allow arguments (ie: the log action
1182 does), in which case they are specified in the usual programming
1183 style syntax: ACTION(ARG1, ARG2, etc)
1184 String arguments must be quoted (both single and double quotes
1185 are supported) and numeric arguments must not be quoted. Beware
1186 the the parenthesis and quotes must usually be escaped when used
1187 from a shell command line. Example: --key-short‐
1188 cut=Meta+Shift+F7:log\(\'hello\'\)
1189
1190 The following ACTIONs are currently defined:
1191
1192 quit Disconnect the xpra client.
1193
1194 log("MESSAGE")
1195 Sends MESSAGE to the log.
1196
1197 show_session_info[("TabName")]
1198 Shows the session information window. The optional Tab‐
1199 Name allows the information tab shown to be selected. Use
1200 the value help to get the list of options.
1201
1202 show_menu
1203 Shows the menu normally found in the system tray.
1204
1205 show_start_new_command
1206 Shows the start new command dialog.
1207
1208 magic_key
1209 Placeholder which can be used by some client toolkits.
1210
1211 void Does not do anything, and can therefore be used to pre‐
1212 vent certain key combinations from ever being sent to the
1213 server.
1214
1215 refresh_window
1216 Force the currently focused window to be refreshed.
1217
1218 refresh_all_windows
1219 Force all windows to be refreshed.
1220
1221 toggle_keyboard_grab
1222 The keyboard will be grabbed / ungrabbed by the current
1223 window.
1224
1225 toggle_pointer_grab
1226 The pointer will be grabbed and confined to the current
1227 window.
1228
1229 toggle_fullscreen
1230 Make the current window fullscreen / unfullscreen.
1231
1232 toggle_debug
1233 Turn debugging on or off.
1234
1235 scaleup
1236 Increase the current value of desktop-scaling.
1237
1238 scaledown
1239 Decrease the current value of desktop-scaling.
1240
1241 scalereset
1242 Reset the desktop-scaling to its original value.
1243
1244 scalingoff
1245 Turn off desktop-scaling.
1246
1247 increase_quality
1248 Increase the min-quality or quality setting (whichever
1249 one is currently in use).
1250
1251 decrease_quality
1252 Decrease the min-quality or quality setting (whichever
1253 one is currently in use).
1254
1255 increase_speed
1256 Increase the min-speed or speed setting (whichever one is
1257 currently in use).
1258
1259 decrease_speed
1260 Decrease the min-speed or speed setting (whichever one is
1261 currently in use).
1262
1263 --sharing=yes|no|auto
1264 Sharing allows more than one client to connect to the same ses‐
1265 sion. This must be enabled on both the server and all co-oper‐
1266 ating clients to function. When used server-side, the default
1267 value auto allows the clients to decide if they are willing to
1268 share the session. When used client-side, the default value
1269 auto evaluates to no.
1270
1271 --lock=yes|no|auto
1272 Locking allows a client to refuse to hand over the session to a
1273 new client. The session may still be shared with multiple
1274 clients (see the sharing option), but otherwise the server will
1275 reject new clients. When used server-side, the default value
1276 auto allows the clients to decide if they want to lock the ses‐
1277 sion. When used client-side, the default value auto evaluates
1278 to no.
1279
1280 --keyboard-sync=yes|no
1281 Normally the key presses and key release events are sent to the
1282 server as they occur so that the server can maintain a consis‐
1283 tent keyboard state. Disabling synchronization can prevent keys
1284 from repeating unexpectedly on high latency links but it may
1285 also disrupt applications which access the keyboard directly
1286 (games, etc.).
1287
1288 --keyboard-raw=yes|no
1289 Tells the server to process all keyboard input untranslated.
1290 Both the client and the server must be using the same type of
1291 keyboard interface. (ie: both using X11)
1292
1293 --keyboard-layout=LAYOUTSTRING
1294 The keyboard layout is normally detected automatically. This
1295 option overrides it.
1296
1297 --keyboard-layouts=LAYOUTS
1298 The list of keyboard layouts to enable.
1299
1300 --keyboard-variant=VARIANT
1301 Override for the keyboard layout variant.
1302
1303 --keyboard-variants=VARIANTS
1304 Override for the keyboard layout variants.
1305
1306 --keyboard-options=OPTIONS
1307 Override for the keyboard options sent to the server.
1308
1309 --swap-keys=YES|NO
1310 This option only applies to MacOS clients, it swaps the command
1311 and control keys and is enabled by default.
1312
1313 --sound-source=PLUGIN
1314 Specifies the GStreamer sound plugin used for capturing the
1315 sound stream. This affects "speaker forwarding" on the server,
1316 and "microphone" forwarding on the client. To get a list of
1317 options use the special value 'help'. It is also possible to
1318 specify plugin options using the form: --sound-source= pulsede‐
1319 vice=device.alsa_input.pci-0000_00_14.2.analog-stereo
1320
1321 --speaker=on|off|disabled and --microphone=on|off|dis‐
1322 abled|on:DEVICE|off:DEVICE
1323 Sound input and output forwarding support: on will start the
1324 forwarding as soon as the connection is established, off will
1325 require the user to enable it via the menu, disabled will pre‐
1326 vent it from being used and the menu entry will be disabled.
1327 With microphone forwarding, you may also be able to specify
1328 which device to use.
1329
1330 --speaker-codec=CODEC and --microphone-codec=CODEC
1331 Specify the codec(s) to use for sound output (speaker) or input
1332 (microphone). This parameter can be specified multiple times
1333 and the order in which the codecs are specified defines the pre‐
1334 ferred codec order. Use the special value 'help' to get a list
1335 of options. When unspecified, all the available codecs are
1336 allowed and the first one is used.
1337
1338 --title=VALUE
1339 Sets the text shown as window title. The string supplied can
1340 make use of remote metadata placeholders which will be populated
1341 at runtime with the values from the remote server. The default
1342 value used is "@title@ on @client-machine@".
1343
1344 The following placeholders are defined:
1345
1346 @title@
1347 Will be replaced by the remote window's title.
1348
1349 @client-machine@
1350 Will be replaced by the remote server's hostname.
1351
1352 --border=BORDER
1353 Specifies the color and size of the border to draw inside every
1354 xpra window. This can be used to easily distinguish xpra win‐
1355 dows running on remote hosts from local windows. The BORDER can
1356 be specified using standard color names (ie: red, or orange) or
1357 using the web hexadecimal syntax (ie: #F00 or #FF8C00). The spe‐
1358 cial color name "auto" will derive the color from the server
1359 target address (the connection string) so that connecting to the
1360 same target should always give the same color. You may also
1361 specify the size of the border in pixels, ie: --border=yel‐
1362 low,10.
1363
1364 --window-icon=FILENAME
1365 Path to the default image which will be used for all windows.
1366 This icon may be shown in the window's bar, its iconified state
1367 or task switchers. This depends on the operating system, the
1368 window manage and the application may override this too.
1369
1370 --window-close=ACTION
1371 Choose what action to take when the window is closed by the
1372 client. The following actions can be used:
1373
1374 auto The client will figure out what is best based on the win‐
1375 dow type. This is the default. ie: it will use discon‐
1376 nect shadow sessions, Iforward for seamless windows.
1377
1378 forward
1379 The event will be forwarded to the server.
1380
1381 ignore Do nothing.
1382
1383 disconnect
1384 Disconnect from the server.
1385
1386 shutdown
1387 Shutdown the server.
1388
1389 --desktop-scaling=off|on|auto|VALUE
1390 Desktop scaling allows the windows to be scaled by the client.
1391 Downscaling will mostly waste bandwidth, upscaling allows the
1392 window's pixels to be sent over the wire at a lower resolution,
1393 saving bandwidth and CPU time. This option can also be used to
1394 request a specific scaling value. For best results, use opengl
1395 client rendering, the other display backends may show visual
1396 artifacts when scaling. Note: the scaling may also be adjusted
1397 at runtime through keyboard shortcuts if those are configured.
1398
1399 The desktop-scaling value can take the form:
1400
1401 off scaling will be disabled
1402
1403 on scaling will be allowed, but it will start unscaled
1404
1405 auto scaling will be allowed and a scaling value will be auto‐
1406 matically chosen if the client's desktop is large (bigger
1407 desktops will use higher scaling values)
1408
1409 scaling-value
1410 scaling will be enabled and use the given value, speci‐
1411 fied as a number, fraction or percentage. ie: 2, 3/2 or
1412 150%.
1413
1414 pair the scaling will be enabled and use a different value for
1415 the X and Y axis. ie: 3x2 or 3/2x4/3
1416
1417 desktop-size
1418 the scaling will be enabled and the server will render to
1419 the given size. ie: 1600x1200
1420
1421 --tray=yes|no Enable or disable the system tray. Not available on OSX
1422 since the dock icon is always shown.
1423
1424 --delay-tray
1425 Waits for the first window or notification to appear before
1426 showing the system tray. (posix only)
1427
1428 --tray-icon=FILENAME
1429 Specifies the icon shown in the dock/tray. By default it uses a
1430 simple default 'xpra' icon. (On Microsoft Windows, the icon
1431 must be in ico format.)
1432
1433 --enable-pings
1434 The client and server will exchange ping and echo packets which
1435 are used to gather latency statistics. Those statistics can be
1436 seen using the xpra info command.
1437
1438
1439 Options for attach, stop, info, screenshot, version
1440 --ssh=CMD
1441 When you use an ssh: address to connect to a remote display,
1442 xpra runs ssh(1) to make the underlying connection. By default,
1443 it does this by running the command "ssh". If your ssh program
1444 is in an unusual location, has an unusual name, or you want to
1445 pass special options to change ssh's behavior, then you can use
1446 the --ssh switch to tell xpra how to run ssh.
1447
1448 For example, if you want to use arcfour encryption, then you
1449 should run
1450
1451 xpra attach --ssh="ssh -c arcfour" ssh:frodo:7
1452
1453 Note: Don't bother to enable ssh compression; this is redundant
1454 with xpra's own compression, and will just waste your CPU. See
1455 also xpra's --compress switch.
1456
1457 On MS Windows, where backslashes are used to separate path ele‐
1458 ments and where spaces are often used as part of paths, you need
1459 to add quotes around paths. (ie: ssh="C:\Program
1460 Files\Xpra\Plink.exe" -ssh -agent)
1461
1462
1463 --exit-ssh=yes|no
1464 Choose whether the SSH client process should be forcibly termi‐
1465 nated when xpra disconnects from the server. If you are using
1466 SSH connection sharing, you may want to avoid stopping the SSH
1467 master process instance spawned by xpra as it may be used by
1468 other SSH sessions. Note: the exit-ssh=no detaches the SSH
1469 process from the terminal which prevents the SSH process from
1470 interacting with the terminal input, this disables the keyboard
1471 interaction required for password input, host key verification,
1472 etc..
1473
1474 --remote-xpra=CMD
1475 When connecting to a remote server over ssh, xpra needs to be
1476 able to find and run the xpra executable on the remote host. If
1477 this executable is in a non-standard location, or requires spe‐
1478 cial environment variables to be set before it can run, then
1479 accomplishing this may be non-trivial. If running xpra attach
1480 ssh:something fails because it cannot find the remote xpra, then
1481 you can use this option to specify how to run xpra on the remote
1482 host.
1483
1484 That said, this option should not be needed in normal usage, as
1485 xpra tries quite hard to work around the above problems. If you
1486 find yourself needing it often, then that may indicate a bug
1487 that we would appreciate hearing about.
1488
1489
1490 SSL Options
1491 --ssl=on|auto|off|tcp|www
1492 Whether to enable SSL on TCP sockets and for what purpose. The
1493 TCP sockets will automatically be upgraded to SSL when SSL pack‐
1494 ets are received.
1495
1496 auto The server will try to guess what protocol to use for
1497 each new SSL connection: either xpra's native protocol or
1498 https / websocket (wss)
1499
1500 tcp The SSL sockets will only be used for xpra's native pro‐
1501 tocol
1502
1503 www The SSL sockets will only be used for https and websocket
1504 (wss)
1505 If SSL is enabled, then a ssl-cert is required. Authentication, if
1506 required, will use the ssl-auth module specified, and fallback to tcp-
1507 auth or auth unless the value none is specified.
1508
1509 The remaining options mirror the Python ssl module attributes. Please
1510 refer to that documentation and bear in mind that configuring SSL for
1511 security is not trivial, and definitely not just a matter of enabling
1512 SSL. See: https://docs.python.org/2/library/ssl.html Some options may
1513 not be available with older versions of Python.
1514
1515 Summary: --ssl-key=KEYFILE The key file to use.
1516
1517 --ssl-cert=ERTFILEORDIR
1518 Certificate file, required for server SSL support.
1519
1520 --ssl-protocol=PROTOCOLVERSION
1521 Specifies which version of the SSL protocol to use.
1522
1523 --ssl-ca-certs=CACERTSFILE
1524 The ca_certs file contains a set of concatenated 'certification
1525 authority' certificates. If a directory is specified, it should
1526 contain the certificates.
1527
1528 --ssl-ca-data=ERTDATA
1529 Certificate data.
1530
1531 --ssl-ciphers=CIPHERS
1532 Sets the available ciphers, it should be a string in the OpenSSL
1533 cipher list format.
1534
1535 --ssl-client-verify-mode=none|optional|required
1536 Whether to try to verify the client's certificates and how to
1537 behave if verification fails.
1538
1539 --ssl-server-verify-mode=none|optional|required
1540 Whether to try to verify the server's certificates and how to
1541 behave if verification fails.
1542
1543 --ssl-verify-flags=FLAGS
1544 The flags for certificate verification operations.
1545
1546 --ssl-check-hostname=yes|no
1547 Whether to match the peer cert's hostname.
1548
1549 --ssl-options=options
1550 Set of SSL options enabled on this context.
1551
1552
1553
1554 ENVIRONMENT
1555
1556 DISPLAY
1557 xpra start --start-child=... sets this variable in the environ‐
1558 ment of the child to point to the xpra display.
1559
1560 xpra attach, on the other hand, uses this variable to determine
1561 which display the remote applications should be shown on.
1562
1563 fIXPRA_PASSWORD may be used with xpra attach instead of the
1564 password-file option.
1565
1566
1568 xpra.conf stores default values for most options. There is a global
1569 configuration file in /etc or /usr/local/etc, and each user may over‐
1570 ride those defaults by creating the file .xpra/xpra.conf. You can also
1571 split the options into multiple files by placing them in a conf.d
1572 directory with the .conf extension. Xpra uses the directory ~/.xpra to
1573 store a number of files. (The examples below are given for the display
1574 :7.)
1575
1576 ~/.xpra/:7
1577 The unix domain socket that clients use to contact the xpra
1578 server, if the system configuration uses this directory.
1579
1580 ~/.xpra/:7.log
1581 When run in daemon mode (the default), the xpra server directs
1582 all output to this file. This includes all debugging output, if
1583 debugging is enabled.
1584
1585 ~/.xpra/run-xpra
1586 A shell script that, when run, starts up xpra with the correct
1587 python interpreter, PYTHONPATH, PATH, location of the main xpra
1588 script, etc. Automatically generated by xpra initenv, xpra
1589 start and used by xpra attach (see also the discussion of
1590 --remote-xpra).
1591
1593 Xpra has no test suite.
1594
1595 Xpra does not fully handle all aspects of the X protocol; for instance,
1596 fancy input features like pressure-sensitivity on tablets, some window
1597 manager hints, and probably other more obscure parts of the X protocol.
1598 It does, however, degrade gracefully, and patches for each feature
1599 would be gratefully accepted.
1600
1601 The xpra server allocates an over-large framebuffer when using Xvfb;
1602 this wastes memory. If the Xvfb does not support RandR this can also
1603 cause applications to misbehave (e.g. by letting menus go off-screen).
1604 This is not a problem when using Xdummy, see the --xvfb= switch for
1605 details. Conversely, if the framebuffer is ever insufficiently large,
1606 clients will misbehave in other ways (e.g., input events will be misdi‐
1607 rected).
1608
1610 Send any questions or bugs reports to http://xpra.org/trac/
1611
1613 screen(1) winswitch_applet(1)
1614
1615
1616
1617 XPRA(1)