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