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