1XPRA(1)                     General Commands Manual                    XPRA(1)
2
3
4

NAME

6       xpra - viewer for remote, persistent X applications
7

SYNOPSIS

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 upgrade [:DISPLAY] [...any options accepted by xpra start...]
29       xpra upgrade-desktop [:DISPLAY] [...any options accepted by xpra start-
30            desktop...]
31       xpra recover [:DISPLAY] [...any options accepted by xpra start...]
32

DESCRIPTION

34       Xpra is a tool which allows you to run X programs — usually on a remote
35       host  — and then direct their display to your local machine, disconnect
36       from these programs, and reconnect from the same  or  another  machine,
37       all without losing any state.  It differs from standard X forwarding in
38       that it allows disconnection and reconnection  without  disrupting  the
39       forwarded  application;  it differs from VNC and similar remote display
40       technologies in that xpra can run  rootless:  i.e.,  applications  for‐
41       warded by xpra appear on your desktop as normal windows managed by your
42       window manager, rather than being all  "trapped  in  a  box  together".
43       Xpra also uses a custom protocol that is self-tuning and relatively la‐
44       tency-insensitive, and thus is usable over network connections that are
45       too  slow  or  unreliable  for standard X forwarding.  Xpra can also be
46       used to shadow an existing X11 display, or in desktop mode where it be‐
47       haves more like VNC.
48
49       By  default  the Xpra server announces available sessions (username and
50       display number) via mDNS to the local network. Use mdns=no  to  disable
51       it.
52

CONNECTION STRINGS

54       Xpra  supports many types of connection strings (some may require extra
55       packages to be installed):
56
57   :DISPLAY
58       Local displays: this is the simplest form and is  only  valid  for  the
59       current local displays of the current user.
60
61   tcp://[USERNAME@]HOST:PORT[/DISPLAY]
62       TCP  mode  uses  port numbers and not display numbers. If multiple dis‐
63       plays are available through a  single  TCP  port  (ie:  using  a  proxy
64       server), then one can also specify the display number.
65
66   ssl://[USERNAME@]HOST:PORT[/DISPLAY]
67       SSL adds a secure socket layer on top of the TCP mode.
68
69   vsock://[USERNAME[:PASSWORD]@]HOST:PORT
70       Almost identical to the TCP mode, but using AF_VSOCK for transport.
71
72   ws://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
73       Connect using websocket protocol.
74
75   wss://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
76       Connect using secure websocket protocol. (websocket with SSL)
77
78   ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]/[DISPLAY][?QUERYSTRING]
79       Connect using secure shell. (SSH)
80
81       Further  options  can be specified using the --ssh command line option.
82       The   QUERYSTRING   can   be   used   to   specify   an   ssh    proxy:
83       ?proxy=ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]  xpra  will then es‐
84       tablish an SSH connection to the specified "proxy" host, and from  that
85       host xpra will set up an SSH connection to the xpra server.
86
87
88       For  backwards  compatibility,  SSH  mode  also  supports  the  syntax:
89       ssh:[USERNAME[:PASSWORD]@]HOST:DISPLAY but this form does  not  support
90       specifying the SSH port number.  Older versions also used the form pro‐
91       tocol:host:port, but users are encouraged to move to  a  more  standard
92       URI format using :// as separator.
93
94       The password need only be specified when the server authentication mod‐
95       ule requires it. (ie: often  when  authenticating  against  MS  Windows
96       servers, or with multifile and sqlite authentication modules)
97

EXAMPLES

99       xpra start :7
100            Start  an  xpra  server using display number :7.  Note: using DIS‐
101            PLAY=:7 xterm to start applications against a specific display  is
102            not  recommended. Always prefer using xpra's --start= command line
103            option instead.  See this next example:
104
105       xpra start --start=firefox
106            Start an xpra server, choosing a display automatically  and  start
107            firefox  on that virtual display.  No window will appear until you
108            attach with xpra attach.  The start child commands will inherit an
109            environment tailored for running under xpra.
110
111       xpra start ssh://bigbox/7 --start=xterm
112            Start an xpra server on bigbox with an xterm in it, and connect to
113            it.
114
115       xpra start-desktop --start=xfce4-session
116            Start an xfce session in a nested X11 server on  an  automatically
117            assigned display number.
118
119       xpra displays
120            Lists  all the displays currently running on the system.  This in‐
121            cludes interactive desktop sessions as well as any virtual display
122            (xvfb)  whether or not they are being used by an xpra server.  The
123            displays in DEAD state can be recovered using xpra recover.
124
125       xpra clean-displays
126            Terminate any displays left in DEAD state.
127
128       xpra clean-sockets
129            Delete any server sockets belonging to dead servers.
130
131       xpra list
132            Show a list of xpra servers you have running on the current  host.
133            This will also run clean-sockets.
134
135       xpra list-session
136            Show  a  list  of  xpra servers, with extra information about each
137            session if it can be collected.
138
139       xpra list-windows
140            Show a list of xpra servers you have running on the current  host,
141            including  the  session  name and a list of windows.  (only if the
142            session can be queried using xpra info)
143
144       xpra list-mdns
145            Show a list of xpra servers found via mDNS. (local network)
146
147       xpra shell
148            Start an interactive debug shell.
149
150       xpra showconfig
151            Shows the configuration that would be  used  with  other  sub-com‐
152            mands, taking into account the command line arguments.
153
154       xpra showsetting [SETTING1..]
155            Shows the value of a specific configuration setting and which con‐
156            figuration directory set this value.
157
158       xpra attach :7
159            Attach to the xpra server that is using local display  number  :7.
160            Any apps running on that server will appear on your screen.
161
162       xpra attach ssh://foo@frodo/7
163            Use  ssh  to  attach to the xpra server that is running on machine
164            frodo as user foo and using display :7.  Any apps running on  that
165            server will appear on your local screen.
166
167       xpra start :7 --start=screen
168            Start  an  xpra server and a screen(1) session.  If any of the ap‐
169            plications inside screen attempt to use X, they will  be  directed
170            to the xpra server.
171

DISPLAYS

173       Understanding the basic idea of displays is critical to using xpra suc‐
174       cessfully.
175
176       The idea comes from standard X.  If you have multiple X servers running
177       on the same host, then there has to be some way to distinguish them.  X
178       does this by assigning each server a small, unique integer called (per‐
179       haps  confusingly)  its "display".  In the common case of a desktop ma‐
180       chine that has only one X server running, that server uses display ":0"
181       (or  sometimes you'll see ":0.0", which is effectively the same).  When
182       an application starts under X, it needs to know how to find the right X
183       server  to use; it does this by checking the environment variable $DIS‐
184       PLAY.
185
186       Xpra faces a similar problem — there may be multiple xpra servers  run‐
187       ning  on  the same host, as well as multiple X servers.  It solves this
188       problem by re-using X's solution — each xpra server has a display asso‐
189       ciated  with it.  This display functions as both an X display (for when
190       xpra is talking to X applications) and as an identifier by  which  xpra
191       clients (like xpra attach) can locate the xpra server.
192
193       You  may  omit the display number when using xpra start: a display will
194       be chosen for you automatically.  The display  number  chosen  will  be
195       shown  in  the  log output, you should also be able to see it with xpra
196       list.  On Microsoft Windows and Mac OSX, the display number  should  be
197       omitted.
198
199       Otherwise,  when  starting  an xpra server, you may want to specify the
200       name of the display to use.  To do this, simply  pick  any  number  you
201       like and stick a colon in front of it.  For instance :7, :12, and :3117
202       are all valid display names.  Just keep in mind that:
203
204       •      Every X or xpra server that is running on a single machine  must
205              use  a different display name.  If you pick a number that is al‐
206              ready in use then xpra will not work.
207
208       •      The first few numbers (0, 1, 2) are  commonly  used  by  real  X
209              servers.
210
211       •      Everyone  who  connects  to  a given machine using ssh(1) with X
212              forwarding enabled will also use a display number; ssh generally
213              picks numbers near ten (10, 11, 12, ...).
214
215       When  specifying  an  xpra server to a client program like xpra attach,
216       xpra detach, xpra stop, xpra exit, xpra version, xpra info,  xpra  list
217       or  xpra  screenshot then you can use a display of the form :DISPLAY to
218       refer  to  a  server  on  the  local  host,  or   one   of   the   form
219       ssh://[USER@]HOST/DISPLAY  to  refer to a server on a remote host; xpra
220       will automatically connect to the remote host using ssh(1).  Generally,
221       if  you  have only one xpra session running on a machine (which you can
222       verify by running xpra list on that machine), then  you  can  omit  the
223       number  entirely; xpra attach alone will attach to the lone xpra server
224       on  the  current  machine  regardless  of  its  number,   xpra   attach
225       ssh://frodo  will similarly attach to the lone xpra session on a remote
226       machine.
227
228       Connecting using the display number assumes that the client and  server
229       use the same configuration for socket directories, or at least that the
230       client can find at least one of the directories used by the unix domain
231       sockets (see bind, socket-dir and socket-dirs).
232
233       If  the  xpra  server  was  given  the  --bind-tcp,  --bind-ssl --bind-
234       udp=[HOST]:PORT, --bind-ws,  --bind-wss  or  --bind-vsock  option  when
235       started  then  you  can  also connect to it using a display of the form
236       tcp://HOST:PORT[/DISPLAY],                   udp://HOST:PORT[/DISPLAY],
237       ssl://HOST:PORT[/DISPLAY],                    ws://HOST:PORT[/DISPLAY],
238       wss://HOST:PORT[/DISPLAY] or vsock://HOST:PORT[/DISPLAY].
239

SUBCOMMANDS

241   xpra start
242       This command starts a new xpra server, including any  necessary  setup.
243       (When  starting a remote server with the ssh://HOST/DISPLAY syntax, the
244       new session will also be attached.)
245
246   xpra start-desktop
247       Starts a nested X11 server, all child commands will be started  in  the
248       nested X11 server.
249
250   xpra attach
251       This command attaches to a running xpra server, and forwards any appli‐
252       cations using that server to appear on your current screen.
253
254   xpra detach
255       Detaches the given xpra display.
256
257   xpra screenshot
258       Takes a screenshot and saves  it  to  the  filename  specified.   Note:
259       screenshots can only be taken when a client is attached.
260
261   xpra version
262       Queries  the server version and prints it out.  Note: older servers may
263       not support this feature.
264
265   xpra info
266       Queries the server for version, status and statistics.
267
268   xpra top
269       Shows the server's key health attributes.
270
271   xpra control
272       Modify the server at runtime by issuing commands.  The list of commands
273       can  be  obtained  by specifying "help" as command.  Some of those com‐
274       mands may support a "help" mode themselves.
275
276   xpra initenv
277       This internal command creates the run-xpra script used with ssh connec‐
278       tions.
279
280   xpra stop
281       This  command  attaches  to a running xpra server, and requests that it
282       terminates immediately.  This generally causes any  applications  using
283       that server to terminate as well.
284
285   xpra exit
286       This  command  attaches  to a running xpra server, and requests that it
287       terminates immediately.  Unlike xpra stop, the Xvfb process and its X11
288       clients (if any) will be left running.
289
290   xpra showconfig
291       This commands shows the configuration which would be used given the ar‐
292       guments provided.  You can also specify as extra arguments the specific
293       options  that should be displayed, or use the special value all to dis‐
294       play all the options including the ones which  are  normally  not  dis‐
295       played because they are not relevant on the given system.
296
297   xpra list
298       This  command finds all xpra servers that have been started by the cur‐
299       rent user on the current machine, and lists them.
300
301   xpra upgrade
302       This command starts a new xpra server, but instead of creating it  from
303       scratch,  it attaches to another existing server, tells it to exit, and
304       takes over managing the applications that it was managing  before.   As
305       the  name  suggests,  the  main use case is to replace a server running
306       against an older version of xpra with a newer version,  without  having
307       to  restart  your  session.   Any currently-running xpra attach command
308       will exit and need to be restarted.
309
310   xpra upgrade-desktop
311       Same as upgrade but for servers started  using  start-desktop.   It  is
312       possible  to  upgrade  seamless  server  into a desktop server and vice
313       versa.
314
315   xpra recover
316       Similar to upgrade and upgrade-desktop: but without needing to  specify
317       if  the server to recover is a seamless server or a desktop server. Un‐
318       like the upgrade subcommands, recover can also  detect  which  displays
319       need  recovering.  That  is,  displays which were previously used by an
320       xpra server but this server has gone missing.
321
322   xpra shadow
323       This command shadows an existing X11 display. If there is only one  X11
324       display active and its number is below 10, it can be auto-detected.
325
326       Note  that this mode of operation uses screenscraping which is far less
327       efficient. Using a video encoder (h264 or vp8)  is  highly  recommended
328       for this mode of operation.
329
330   xpra proxy
331       This  command  allows a single server to proxy connections for multiple
332       others, potentially serving as a load balancing or authentication entry
333       point for many sessions.  The proxy server will spawn a new process for
334       each proxy connection, this proxy process will  create  an  unauthenti‐
335       cated  new  unix  domain  socket which can be used with the subcommands
336       info, version and stop.
337
338
339   Important Note
340       Some platforms and package managers may choose to only build the client
341       and  not  the  server. In this case, only the attach subcommand will be
342       available.
343
344

OPTIONS

346   General options
347       --version
348              Displays xpra's version number.
349
350       -h, --help
351              Displays a summary of command line usage.
352
353       -d FILTER1,FILTER2,..., --debug=FILTER1,FILTER2,...
354              Enable debug logging.  The special value all enables all  debug‐
355              ging.
356
357       --mmap=yes|no|ABSOLUTEFILENAME|DIRECTORY
358              Enable or disable memory mapped pixel data transfer.  By default
359              it is normally enabled  automatically  if  the  server  and  the
360              client  reside on the same filesystem namespace.  This method of
361              data transfer offers much lower overheads and reduces  both  CPU
362              consumption  and local network traffic.  When attaching, you can
363              also specify an absolute path where the mmap file will  be  cre‐
364              ated.  When  used on the server, one can specify the exact file‐
365              name that the client will create, or just  the  directory  where
366              the  file  will  be created so that multiple clients may connect
367              and use mmap concurrently.
368
369       --mmap-group=GROUP
370              Sets the mmap file's gid to the group specified,  and  sets  the
371              permissions  to  660.   This is necessary to share the mmap file
372              across user accounts.  You can also use the special  GROUP  val‐
373              ues:
374
375              no     Disable the functionality, the mmap file will use the de‐
376                     fault file permissions and default group ownership.
377
378              SOCKET The group used will be the same one as found on the  unix
379                     domain  socket  file  the client connects to.  Obviously,
380                     this can only work when connecting to unix  domain  sock‐
381                     ets.
382
383              auto   Will use the 'xpra' group if the user is a member, other‐
384                     wise it will fallback to the same behaviour as SOCKET.
385
386
387       --windows=yes|no
388              Enable or disable the forwarding of windows. This is usually the
389              primary use for xpra and should be enabled.
390
391       --min-size=WIDTHxHEIGHT
392              Sets the minimum size for all decorated windows.
393
394       --max-size=WIDTHxHEIGHT
395              Sets the maximum size for all windows.
396
397       --readonly=yes|no
398              Read only mode ignores all keyboard and mouse activity.
399
400
401       --clipboard=yes|no|clipboard-type
402              Enable or disable clipboard synchronization.  If disabled on the
403              server, no clients will be able to use clipboard synchronization
404              at  all.  If turned off on the client, only this particular con‐
405              nection will ignore clipboard data from the  server.   This  can
406              also  be  used  to specify a different clipboard implementation.
407              The clipboard types available will vary from platform  to  plat‐
408              form  and  also  depend on build time environment and options so
409              this is best left on auto.  Other clipboard types available  may
410              include:
411
412              translated
413                     Clipboard  which can translate from one type of selection
414                     to another
415
416              GDK    The most complete clipboard implementation, includes full
417                     X11 support
418
419              default
420                     Fallback clipboard, with limited X11 support
421
422              OSX    OSX specific clipboard
423
424
425       --clipboard-direction=to-server|to-client|both|disabled
426              Choose the direction of the clipboard synchronization.
427
428       --pulseaudio=yes|no
429              Enable  or  disable the starting of a pulseaudio server with the
430              session.
431
432       --pulseaudio-command=SERVER-START-COMMAND
433              Specifies the pulseaudio command to use to start the  pulseaudio
434              server, unless disabled with pulseaudio=no.
435
436       --session-name=VALUE
437              Sets the name of this session. This value may be used in notifi‐
438              cations, utilities, tray menu, etc.  Setting this value  on  the
439              server  provides  a default value which may be overridden on the
440              client.
441
442       --encoding=ENCODING
443              This specifies the image encoding to use, there are a number  of
444              encodings  supported:  jpeg,  png, png/P, png/L, webp, rgb, vp8,
445              vp9, h264 and h265 (some may not be available in  your  environ‐
446              ment).   The  default  option is auto which allows the server to
447              select the best encoding automatically.
448
449
450              auto   default mode: the built-in  heuristics  will  choose  the
451                     most appropriate encoding
452
453              png    compressed and lossless, can be quite slow.
454
455              png/P  compressed  and  lossy:  it  uses a colour palette, which
456                     means better compression but still slow.
457
458              png/L  compressed and lossy: grayscale only using a palette.
459
460              rgb    a raw pixel format (lossless) compressed with lz4, lzo or
461                     zlib  (see  compressors)  the compression ratio is lower,
462                     but it is by far the fastest encoding available.
463
464              webp   can be used in lossy or lossless mode, useful for graphi‐
465                     cal  applications,  it compresses better than jpeg and is
466                     reasonably fast except at high resolutions.
467
468              jpeg   can be useful for graphical applications, it is lossy and
469                     usually very fast.
470
471              vp8    lossy  video  encoding  which  always uses colour subsam‐
472                     pling.  Fast at encoding and decoding.
473
474              vp9    Video encoding which supports  both  lossy  and  lossless
475                     modes, available if your ffmpeg library version is recent
476                     enough.
477
478              h264   One of the best encoding available: it is fast, efficient
479                     and tunable via the quality and speed options.
480
481              h265   Far too slow at encoding, avoid.
482
483       The  default  encoding  which  is  automatically selected if you do not
484       specify one will depend on what  options  are  available  on  both  the
485       server  and the client: rgb is always available (builtin), jpeg and png
486       require the Python Imaging Library, vp8, vp9, webp, h264 and  h265  all
487       require  their  respective  shared libraries, as well as the xpra codec
488       that uses them.
489
490       Note: when selecting a video encoding (usually h264, vp8  or  vp9),  it
491       will only be used if the screen is updating quickly enough, some of the
492       smaller screen updates will also be sent using one of  the  other  non-
493       video encodings.
494
495
496       --video-scaling=on|off|SCALING
497              How  much  automatic  video  downscaling  should be used, from 1
498              (rarely) to 100 (aggressively), 0 to disable.  Video scaling  is
499              normally  used  with  video regions or very large windows (espe‐
500              cially full screen windows) to try to maintain a decent  framer‐
501              ate.   Video  downscaling  negatively affects visual quality and
502              will cause automatic refreshes (if enabled), it is  most  useful
503              on  video  content where it saves a considerable amount of band‐
504              width.
505
506
507       --socket-dir=DIR
508              Location where to write and look for the Xpra socket files.  The
509              default  location varies from platform to platform ("~/.xpra" on
510              most Posix systems).   If  unspecified,  the  first  value  from
511              socket-dirs  will  be  used.  It may also be specified using the
512              XPRA_SOCKET_DIR environment variable.
513
514              When using the socket-dir option, it is generally  necessary  to
515              specify socket-dir or socket-dirs on all following commands, for
516              xpra to work with the open sessions.
517
518              By specifying a shared directory this can be  coupled  with  the
519              mmap-group  and  socket-permissions  option to connect Xpra ses‐
520              sions across user accounts with shared memory acceleration.
521
522
523       --socket-dirs=DIR
524              Specifies the directories where to look for existing sockets  if
525              a  specific  one  was not set using socket-dir.  You may specify
526              each directory using a new --socket-dirs command line  argument,
527              or  joined  together  by  the  path separator (: on Posix).  The
528              paths will be expanded.  (ie: --socket-dirs=~/.xpra:/tmp)
529
530
531       --file-transfer=on|off
532              Enable file transfers.
533
534       --open-files=on|off
535              This option may be used to allow the remote end to automatically
536              open  files  after they have been uploaded.  This may be a secu‐
537              rity risk if you are using xpra to constrain  what  the  clients
538              can execute on the server.
539
540
541       --forward-xdg-open=on|off
542              Intercept  execution  of xdg-open and forward the request to the
543              client.
544
545
546       --open-command=COMMAND
547              The command to use for opening files and URLs.
548
549
550       --bandwidth-limit=BITSPERSECOND
551              Restrict bandwidth usage to below the limit given.  The client's
552              value  cannot  raise  the limit of the server.  The value may be
553              specified using standard units, ie:  1Mbps  or  500K.   In  auto
554              mode,  the  client  will set the bandwidth limit value to 80% of
555              the maximum speed of the network interface it is using  to  con‐
556              nect to the server.
557
558
559
560   Options for start, start-desktop, upgrade, proxy and shadow
561       --daemon=yes|no
562              By  default,  the  xpra  server puts itself into the background,
563              i.e. 'daemonizes', and redirects its output to a log file.  This
564              can  be  used to prevent that behavior (useful mostly for debug‐
565              ging).
566
567
568       --resize-display=yes|no|WIDTHxHEIGHT
569              Resize the virtual display to match the resolution of the client
570              currently  connected.  This only applies to the start and start-
571              desktop subcommands.  If a resolution is given, this will be the
572              initial resolution of the display and the display will be resiz‐
573              able.  A small set of pre-defined  aliases  can  also  be  used:
574              QVGA, VGA, SVGA, XGA, 1080p, FHD, 4K.
575
576
577       --fake-xinerama=PATH|auto|no
578              Specify the path to the libfakeXinerama.so library which will be
579              injected into all the child processes the  server  starts  using
580              LD_PRELOAD.   This  can  also  be  disabled  or set to auto: the
581              server will then try to locate the library  itself.   This  only
582              applies to the start subcommand.
583
584
585       --chdir=DIR
586              Change to this directory after daemonizing.
587
588
589       --uid=UID and --gid=GID
590              When  launching the server as root, these options can be used to
591              drop privileges to the given UID / GID.
592
593
594       --pidfile=FILENAME
595              Writes the server process ID to this file on  startup.   If  the
596              file  has  not been replaced, it will be deleted when the server
597              exits.
598
599
600       --challenge-handlers=MODULE:options
601              Configures which challenge handlers are used by the  client  and
602              in  which order. This option may be repeated to specify multiple
603              handlers, which can be useful if the server sends more than  one
604              authentication  challenge.  The default value is: all which cor‐
605              responds to: uri,file,env,kerberos,gss,u2f,prompt.
606
607              uri    Use the password specified on the connection  string,  if
608                     any.
609
610              file   The  filename used to store the password can be specified
611                     using the filename option.  If this option is not  speci‐
612                     fied,  it  will  fallback  to using the password filename
613                     specified with the password-file switch.
614
615              env    Use the password specified using the environment variable
616                     specified  using  the  name  option,  which  defaults  to
617                     XPRA_PASSWORD if unspecified.
618
619              kerberos
620                     Requests a kerberos token for the service specified.
621
622              gss    Requests a gss token for the service specified.
623
624              u2f    Requests a token from a U2F device.
625
626              prompt Prompt the user for the value.  Terminal  clients  prompt
627                     using text input, GUI clients use a dialog.
628
629       --min-port=PORT
630              The  minimum port number allowed when creating UDP and TCP sock‐
631              ets.  You can use a lower value to allow unprivileged  users  to
632              bind  to  privileged ports when starting sessions via the system
633              wide proxy server.  The default value is 1024 which is the stan‐
634              dard value for privileged ports.
635
636       --mdns=yes|no
637              Enable or disable the publication of new sessions via mDNS.
638
639       --dbus-launch=COMMAND|no
640              Start  the session within a dbus-launch context, you can specify
641              the dbus launch command to use, or turn it off completely.  Some
642              features may not be available without a dbus context.
643
644       --dbus-proxy=yes|no
645              Allows the client to forward dbus calls to the server.
646
647       --dbus-control=yes|no
648              Start  a  dbus  server  which  can  be used to interact with the
649              server process.
650
651
652
653   Options for start, start-desktop, upgrade and listen:
654       In previous versions, the authentication for each connection  type  was
655       configured  using  a  separate command line option which would apply to
656       all connections of the same type. ie: tcp-auth for bind-tcp.   Although
657       this  is still supported as a fallback, the recommended way is to spec‐
658       ify  authentication  options  using   bind   properties.    ie:   bind-
659       tcp=0.0.0.0:14500,auth=file:filename=password.txt.  For more details on
660       authentication configuration, see auth=.  The properties can  also  de‐
661       fine extra configuration options.
662
663       --bind=BIND_LOCATION[,PROPERTIES] Create a local Unix domain socket (on
664       Unix) or named-pipe (on MS Windows) for each bind option specified.
665
666       This option can be specified multiple times to specify multiple  socket
667       locations.   These  sockets support local connections with the :7-style
668       display address, and remote connections  with  the  ssh://frodo/7-style
669       display address.
670
671       Local sockets may also process HTTP / Websocket connections if the html
672       switch is enabled.
673
674       The location can take the form:
675
676              none   do not create a socket
677
678              auto   backwards  compatible  default  which  uses  the  current
679                     socket-dir
680
681              DIRECTORY/
682                     create a socket in the directory specified, if the direc‐
683                     tory does not exist then it will be created - you  should
684                     include  the trailing slash to prevent the confusion with
685                     the PATH form:
686
687              PATH   create the socket using the path specified
688
689       --bind-tcp=[HOST]:PORT[,PROPERTIES]
690              Create a TCP socket for each --bind-tcp  option  specified.   If
691              the  host portion is omitted, then 127.0.0.1 (localhost) will be
692              used.  If you wish to accept connections on all interfaces, pass
693              0.0.0.0 for the host portion.
694
695              Using  this switch without using the tcp-auth option is not rec‐
696              ommended, and is a major security risk (especially when  passing
697              0.0.0.0)!   Anyone  at  all  may connect to this port and access
698              your session.
699
700              TCP sockets may also process HTTP / Websocket connections if the
701              html switch is enabled.  TCP sockets may also be upgraded to SSL
702              sockets if the ssl switch is enabled.
703
704       --bind-udp=[HOST]:PORT[,PROPERTIES]
705              Create a UDP socket for each --bind-udp  option  specified.   If
706              the  host portion is omitted, then 127.0.0.1 (localhost) will be
707              used.  If you wish to accept connections on all interfaces, pass
708              0.0.0.0 for the host portion.
709
710              Using  this switch without using the udp-auth option is not rec‐
711              ommended, and is a major security risk (especially when  passing
712              0.0.0.0)!   Anyone  at  all  may connect to this port and access
713              your session.  UDP sessions are trivial  to  hijack  for  anyone
714              able  to sniff even just a single packet, it should only be used
715              in very specific use-cases, and never over unsecured networks.
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).
860
861       --udp-auth=MODULE
862              Just  like  the tcp-auth switch, except this one only applies to
863              UDP sockets (sockets defined using the bind-udp switch).
864
865       --ws-auth=MODULE
866              Just like the auth switch, except this one only  applies  to  ws
867              sockets:  sockets defined using the bind-ws switch, or TCP sock‐
868              ets upgraded to websockets. (if the html option is enabled).
869
870       --wss-auth=MODULE
871              Just like the auth switch, except this one only applies  to  wss
872              sockets:  sockets  defined using the bind-wss switch, ws sockets
873              upgraded to SSL (if the ssl option is enabled)  or  TCP  sockets
874              upgraded  to SSL and then to wss.  (if both the ssl and html op‐
875              tions are enabled).
876
877       --ssl-auth=MODULE
878              Just like the auth switch, except this one only applies  to  SSL
879              sockets: sockets defined using the bind-ssl switch, or TCP sock‐
880              ets upgraded by ssl=auto or ssl=on.
881
882       --rfb-auth=MODULE
883              Authentication module to use for the bind-rfb sockets.
884
885       --vsock-auth=MODULE
886              Just like the auth switch, except this one only applies to VSOCK
887              sockets (sockets defined using the bind-vsock switch).
888
889
890
891   Options for start, start-desktop, upgrade
892       --exec-wrapper=CMD
893              A  wrapper  command  which  is  prepended to all start commands.
894              Typically, this is used for starting all sub-commands via Virtu‐
895              alGL.
896
897       --start=CMD
898              After  starting  the  server, runs the command CMD using the de‐
899              fault shell.  The command is run with its $DISPLAY set to  point
900              to  the newly-started server.  This option may be given multiple
901              times to start multiple commands.
902
903       --start-child=CMD
904              Identical to --start, except that the commands  are  taken  into
905              account by --exit-with-children.
906
907       --start-after-connect=CMD
908              Wait  for  the  first client to connect before starting the com‐
909              mand.
910
911       --start-child-after-connect=CMD
912              Wait for the first client to connect before starting  the  child
913              command.  See start-child.
914
915       --start-on-connect=CMD
916              Execute this command every time a client connects.
917
918       --start-child-on-connect=CMD
919              Execute  this  child  command every time a client connects.  See
920              start-child.
921
922       --start-on-last-client-exit=CMD
923              Execute this command every time a client disconnects  and  there
924              are no other clients left.
925
926       --start-child-on-last-client-exit=CMD
927              Execute  this  child command every time a client disconnects and
928              there are no other clients left.  See start-child.
929
930       --terminate-children=yes|no
931              On server stop, terminate all the child commands that have  been
932              started  by  the server. This does not affect server exit.  Most
933              child commands are tied to the  display  so  they  are  normally
934              forced  to  shutdown  anyway,  but  this gives them more time to
935              cleanup properly and can be used  to  stop  background  commands
936              that aren't tied to a display.
937
938       --exit-with-children=yes|no
939              This option may only be used if --start-child is also given.  If
940              it is given, then the xpra server will monitor the status of the
941              children started by --start-child, and will automatically termi‐
942              nate itself when the last of them has exited.
943
944       --exit-with-client=yes|no
945              The server will terminate when the last client disconnects.
946
947       --env=KEY=VALUE
948              Extra environment variables  which  will  only  affect  commands
949              started using fB--start or --start-child.
950
951       --start-new-commands=yes|no
952              Allow  clients to ask the server to execute new commands.  (this
953              can also be used via the control channel)
954
955       --start-via-proxy=yes|no|auto
956              If enabled, the start and start-desktop subcommands will be del‐
957              egated  to  the  system  wide  proxy server instance.  With auto
958              mode, this delegation will only occur if the system  wide  proxy
959              server is found.
960
961       --systemd-run=yes|no|auto
962              Wrap server start commands with systemd-run.
963
964       --systemd-run-args=ARGS
965              Command line arguments passed to systemd-run.
966
967       --use-display=yes|no|auto
968              Use an existing display rather than starting one with xvfb.  You
969              are responsible for starting the  display  yourself.   This  can
970              also be used to rescue an existing display whose xpra server in‐
971              stance crashed or for running xpra against  an  accelerated  X11
972              server.   With auto, xpra will use the existing display if it is
973              found.
974
975       --displayfd=FD
976              The xpra server will write the display number back on this  file
977              descriptor  as a newline-terminated string.  This is most useful
978              when the display number is not specified with the xpra start  or
979              start-desktop subcommands.
980
981       --xvfb=CMD
982              When  starting a seamless server, xpra starts a virtual X server
983              to run the clients on.  If your Xvfb is installed in a funny lo‐
984              cation,  or  you  want  to use some other virtual X server, then
985              this switch allows you to specify how to run  your  preferred  X
986              server executable.  The default value used depends on your plat‐
987              form.  For more information, see: https://xpra.org/Xdummy.html
988
989       --sync-xvfb=DELAY
990              The windows are normally only displayed on the  client(s),  they
991              are  not painted on the virtual display.  Some applications like
992              screen recorders may want to capture the  window  contents,  you
993              can use this option to enable painting with a configurable delay
994              (in milliseconds).  Warning: this extra  painting  is  expensive
995              and quite slow, which is why it is not enabled by default.
996
997       --attach=yes|no|auto
998              Once the server has started, immediately connect a client to it.
999              With the value auto, a client  is  started  for  remote  servers
1000              only.  (servers  specified  via  a  network URI) If a display is
1001              specified and a server is already running, xpra will not try  to
1002              start a new one and it will just attach to it.
1003
1004
1005          Options for start, start-desktop, upgrade, shadow
1006
1007       --tcp-proxy=HOST:PORT
1008              Specifies  the  address  to  which non-xpra packets will be for‐
1009              warded.  This can be used to share the same TCP  port  with  an‐
1010              other TCP servers, usually a web server.  xpra clients will con‐
1011              nect as usual, but any client that does not speak the xpra  pro‐
1012              tocol will be forwarded to the alternative server.
1013
1014
1015       --html=on|off|auto|webrootpath
1016              Respond  to  HTTP requests on the TCP port(s) and local sockets.
1017              This requires at least one TCP or local socket to be  configured
1018              using  the matching bind option.  The auto mode will enable sup‐
1019              port if possible.  By default the server will provide access  to
1020              the  HTML5  client.  You can also specify your own web root path
1021              as argument.
1022
1023       --http-scripts=off|all|SCRIPTS
1024              Enable the builtin web server scripts  that  expose  the  server
1025              status, current active sessions and displays, the list of appli‐
1026              cations and desktop sessions installed.  This can be used by the
1027              client's user interface.
1028
1029
1030       --rfb-upgrade=DELAY
1031              Allows  RFB  clients (ie: VNC) to connect to a plain TCP socket.
1032              If no data is received after DELAY seconds, the server will send
1033              a  RFB  handshake.   This  option  is only applicable to servers
1034              started in start-desktop or shadow modes.
1035
1036
1037       --video-encoders=ENCODERS
1038              Specifies the video encoders to try to load.  By default, all of
1039              them  are loaded, but one may want to specify a more restrictive
1040              list of encoders.  Use the special value 'help' to get a list of
1041              options.  Use the value 'none' to not load any video encoders.
1042
1043
1044       --csc-modules=MODULES
1045              Specifies the colourspace conversion modules to try to load.  By
1046              default, all of them are loaded, but one may want to  specify  a
1047              more  restrictive list of modules.  Use the special value 'help'
1048              to get a list of options.  Use the value 'none' to not load  any
1049              colourspace conversion modules.
1050
1051
1052       --socket-permissions=ACCESS-MODE
1053              Specifies the file permissions on the server's unix domain sock‐
1054              ets.  Defaults to 600. This is ignored when  mmap-group  is  en‐
1055              abled.
1056
1057
1058
1059   Options for start, start-desktop, upgrade and attach
1060       --encryption=CIPHER
1061              Specifies  the  cipher  to  use for securing the connection from
1062              prying eyes.  This option requires the use of the  --encryption-
1063              keyfile option.  The only cipher supported at present is AES, if
1064              the client requests encryption it  will  be  used  by  both  the
1065              client  and server for all communication after the initial pass‐
1066              word verification, but only if the server supports this  feature
1067              too.   Note:  this feature has not been extensively reviewed and
1068              as it is it should not be considered safe  from  determined  at‐
1069              tackers.
1070
1071       --tcp-encryption=CIPHER
1072              Just like the encryption switch, except this one only applies to
1073              TCP sockets (sockets defined using the bind-tcp switch).
1074
1075       --encryption-keyfile=FILENAME
1076              Specifies the key to use with the  encryption  cipher  specified
1077              with --encryption.  The client and server must use the same key‐
1078              file contents.
1079
1080       --tcp-encryption-keyfile=FILENAME
1081              Just like the encryption-keyfile switch, except  this  one  only
1082              applies  to  TCP  sockets  (sockets  defined  using the bind-tcp
1083              switch).
1084
1085       --idle-timeout=IDLETIMEOUT
1086              The connection will be terminated if there is no  user  activity
1087              (mouse  clicks  or key presses) for the given amount of time (in
1088              seconds). Use the value 0 to disable this timeout.
1089
1090       --server-idle-timeout=IDLETIMEOUT
1091              The server will exit if there are no active connections for  the
1092              given  amount  of time (in seconds).  Use the value 0 to disable
1093              this timeout.
1094
1095       --clipboard-filter-file=FILENAME
1096              Name of a file containing  regular  expressions,  any  clipboard
1097              data  that  matches  one  of  these  regular expressions will be
1098              dropped.  Note: at present this only applies to copying from the
1099              machine where this option is used, not to it.
1100
1101       --dpi=VALUE
1102              The 'dots per inch' value that client applications should try to
1103              honour.  This numeric value should be in the range 10 to 500  to
1104              be  useful.   Many  applications  will only read this value when
1105              starting up, so connecting to an existing session started with a
1106              different DPI value may not have the desired effect.
1107
1108       --pixel-depth=VALUE
1109              When  starting a server, this switch controls the bits per pixel
1110              of the virtual framebuffer. Possible values: 0 (auto),  16,  24,
1111              30.   When  starting  a client, this switch controls the picture
1112              rendering with the opengl backend: values higher  than  24  will
1113              enable  deep color, the value 24 enables regular true color ren‐
1114              dering. Use the value 0 to let the client decide if the  render‐
1115              ing  will benefit from using deep color. (this is only supported
1116              on some Posix clients) Other values should not be used.
1117
1118       --cursors=yes|no
1119              Enable or disable forwarding of custom  application  mouse  cur‐
1120              sors.   Client  applications  may change the mouse cursor at any
1121              time, which will cause the new cursor's pixels to be sent to the
1122              client each time.  This disables the feature.
1123
1124       --notifications=yes|no
1125              Enable  or  disable  forwarding of system notifications.  System
1126              notifications require the xpra server to have its  own  instance
1127              of  a dbus daemon, if it is missing a warning will be printed on
1128              startup.  This switch disables the feature entirely, and  avoids
1129              the warning.
1130
1131       --input-method=METHOD
1132              Specify  which input method to configure.  This sets a number of
1133              environment variables which should be honoured  by  applications
1134              started with the start-child option.
1135
1136              The following METHODs are currently supported:
1137
1138              none   Disable  input methods completely and prevent it from in‐
1139                     terfering with keyboard input. This is the default.
1140
1141              keep   Keeps the environment unchanged. You are responsible  for
1142                     ensuring it is correct.
1143
1144              xim    Enables the X Input Method.
1145
1146              IBus   Enables the Intelligent Input Bus.
1147
1148              SCIM   Enables the Smart Common Input Method.
1149
1150              uim    Enables the Universal Input Method.
1151
1152       Any other value will also be set up, but will trigger a warning.
1153
1154
1155       --xsettings=auto|yes|no
1156              Enable or disable xsettings synchronization.  Xsettings are only
1157              forwarded from posix clients connecting to  real  posix  servers
1158              (not  shadows).   In  'auto'  mode, only seamless servers enable
1159              xsettings synchronization.
1160
1161       --system-tray=yes|no
1162              Enable or disable forwarding of system tray icons.  This feature
1163              requires  client  support  and may not be available on all plat‐
1164              forms.
1165
1166       --bell=yes|no
1167              Enable or disable forwarding of the system bell.
1168
1169       --webcam=yes|no
1170              Enable or disable webcam forwarding.
1171
1172       --mousewheel=on|off|invert|invert-x|invert-y|invert-z
1173              Mouse wheel handling: can be used to disable  mouse  wheel  for‐
1174              warding  using  the value no, or to invert some or all axes: in‐
1175              vert-all, invert-x, invert-y, invert-z.
1176
1177
1178       --remote-logging=both|all|send|receive|no
1179              Remote logging is always initiated by the client, but the server
1180              can restrict which direction log messages are allowed to flow.
1181
1182              both   The  log  output  is  both forwarded and sent locally (to
1183                     stdout, stderr or a log file).
1184
1185              allow  Used by the server to allow both send and  receive,  when
1186                     sending  the log output it will no longer be recorded lo‐
1187                     cally.
1188
1189              send   Used by the client to send its log output to the  server.
1190                     Used  by  the server to allow clients to request log for‐
1191                     warding.
1192
1193              receive
1194                     Used by the client to request that the server  sends  its
1195                     log  output  to  the client.  Used by the server to allow
1196                     clients to forward their logging.
1197
1198              no     Remote logging is disabled.
1199
1200       --av-sync=yes|no
1201              Enable or disable audio-video synchronization.  The  video  data
1202              will  be delayed so that it is displayed in sync with the audio.
1203              Note: this only applies to video regions,  either  auto-detected
1204              via  the  builtin  heuristics or specified using the dbus inter‐
1205              face.
1206
1207
1208
1209   Options for attach
1210       --modal-windows=yes|no
1211              Honour modal windows.  This may have  undesirable  side  effects
1212              when  multiple  applications are forwarded through the same xpra
1213              server: modal windows will be made modal for  all  the  applica‐
1214              tions  forwarded  by  xpra  rather than just the one application
1215              which owns that window.
1216
1217       --headerbar=auto|no|force
1218              Replaces the window's standard title bar with a custom one which
1219              is  used  to give access to xpra specific window controls.  This
1220              feature can have side effects and it is incompatible with OpenGL
1221              acceleration on MS Windows.
1222
1223       --password-file=FILENAME
1224              Supply  the  password to be used for connecting to a server that
1225              uses authentication. See auth, tcp-auth, ssl-auth and vsock-auth
1226              for details.  Alternatively, you may use the XPRA_PASSWORD envi‐
1227              ronment variable.
1228
1229       --opengl=(yes|no|auto)[:backend]
1230              Use OpenGL accelerated rendering on the client.  The default  is
1231              to  detect  if the graphics card and drivers are supported (auto
1232              mode), but one can also disable OpenGL (no) or force it  enabled
1233              (yes).   On some platforms, it is also possible to specify which
1234              backends should be used, only gtk and native are currently  sup‐
1235              ported  and  only  on  X11 platforms.  ie: opengl=yes:native, or
1236              opengl=auto:gtk,native.
1237
1238       --webcam=yes|no|/dev/deviceXXX|DEVICEID
1239              Enable or disable webcam forwarding.  The webcam device  to  use
1240              can also be specified.
1241
1242
1243       -zLEVEL, --compress=LEVEL
1244              Select  the level of compression xpra will use when transmitting
1245              data over the network.  With the lz4 and lzo compressors,  there
1246              are  only  two possible values: 0 (meaning no compression) and 1
1247              (compression enabled).  The zlib compressor supports values  be‐
1248              tween  0  (meaning  no  compression) and 9, inclusive. It should
1249              only be used when lz4 and lzo are not available.
1250
1251              This compression is not used on pixel data  (except  when  using
1252              the rgb encoding).
1253
1254       --quality=VALUE
1255              This option sets a fixed image compression quality for lossy en‐
1256              codings (jpeg, webp, h264/h265  and  vp8/vp9).   First,  one  of
1257              those  lossy  encodings  must be enabled with --encoding or when
1258              using the default auto mode.  Values range from 1 (lowest  qual‐
1259              ity,  high  compression  -  generally  unusable) to 100 (highest
1260              quality, low compression).  Specify a value of zero to  let  the
1261              system  tune  the  quality dynamically to achieve the best band‐
1262              width usage possible.  It is usually best not to use this option
1263              and use min-quality instead.
1264
1265       --min-quality=MIN-QUALITY
1266              This  option  sets the minimum encoding quality allowed when the
1267              quality option is set to automatic mode. See quality above.
1268
1269       --speed=SPEED
1270              This option sets the encoding speed, from  1  (slowest)  to  100
1271              (fastest).   Slower  compresses  better  and will use less band‐
1272              width, faster will give better latency as long as there is  suf‐
1273              ficient  bandwidth.   The system normally uses a variable speed,
1274              this option forces a fixed speed setting to be used instead.  It
1275              is  usually  best  not  to use this option and use min-speed in‐
1276              stead.
1277
1278       --min-speed=MIN-SPEED
1279              This option sets the minimum encoding  speed  allowed  when  the
1280              speed option is set to automatic mode. See speed above.
1281
1282       --auto-refresh-delay=DELAY
1283              This  option  sets a delay after which the windows are automati‐
1284              cally refreshed using a lossless frame  if  their  contents  had
1285              been  updated using a lossy encoding previously.  The delay is a
1286              floating-point number and is in seconds.  This option is enabled
1287              by  default  with  a delay of 0.25 seconds.  This option is only
1288              relevant when using a lossy encoding.
1289
1290       --shortcut-modifiers=MODIFIERS
1291              Defines the default shortcut  modifiers  required  by  the  key-
1292              shortcuts,  these  modifiers  can then be referred to as #.  The
1293              default value is 'auto' which evaluates to  Meta+Shift  on  most
1294              platforms.
1295
1296       --key-shortcut=KEY:ACTION
1297              Can  be  specified multiple times to add multiple key shortcuts.
1298              These keys will be caught by the client and trigger  the  action
1299              specified  and  the  key  presses  will  not be passed on to the
1300              server.
1301
1302              The KEY specification may include keyboard modifiers in the form
1303              [modifier+]*key, for example: Shift+F10 or Shift+Control+B.  You
1304              can refer to the shorcut-modifers  option  value  using  #,  ie:
1305              #+F1.
1306
1307              If  no  shortcuts  are  defined on the command line, the default
1308              builtin list will be used.
1309
1310              Some of the actions may allow  arguments  (ie:  the  log  action
1311              does), in which case they are specified in the usual programming
1312              style syntax: ACTION(ARG1, ARG2, etc)
1313              String arguments must be quoted (both single and  double  quotes
1314              are supported) and numeric arguments must not be quoted.  Beware
1315              the the parenthesis and quotes must usually be escaped when used
1316              from    a    shell    command   line.    Example:   --key-short‐
1317              cut=Meta+Shift+F7:log\(\'hello\'\)
1318
1319              The following ACTIONs are currently defined:
1320
1321              quit   Disconnect the xpra client.
1322
1323              log("MESSAGE")
1324                     Sends MESSAGE to the log.
1325
1326              show_session_info[("TabName")]
1327                     Shows the session information window. The  optional  Tab‐
1328                     Name allows the information tab shown to be selected. Use
1329                     the value help to get the list of options.
1330
1331              show_menu
1332                     Shows the menu normally found in the system tray.
1333
1334              show_start_new_command
1335                     Shows the start new command dialog.
1336
1337              magic_key
1338                     Placeholder which can be used by some client toolkits.
1339
1340              void   Does not do anything, and can therefore be used  to  pre‐
1341                     vent certain key combinations from ever being sent to the
1342                     server.
1343
1344              refresh_window
1345                     Force the currently focused window to be refreshed.
1346
1347              refresh_all_windows
1348                     Force all windows to be refreshed.
1349
1350              toggle_keyboard_grab
1351                     The keyboard will be grabbed / ungrabbed by  the  current
1352                     window.
1353
1354              toggle_pointer_grab
1355                     The  pointer  will be grabbed and confined to the current
1356                     window.
1357
1358              toggle_fullscreen
1359                     Make the current window fullscreen / unfullscreen.
1360
1361              toggle_debug
1362                     Turn debugging on or off.
1363
1364              scaleup
1365                     Increase the current value of desktop-scaling.
1366
1367              scaledown
1368                     Decrease the current value of desktop-scaling.
1369
1370              scalereset
1371                     Reset the desktop-scaling to its original value.
1372
1373              scalingoff
1374                     Turn off desktop-scaling.
1375
1376              increase_quality
1377                     Increase the min-quality or  quality  setting  (whichever
1378                     one is currently in use).
1379
1380              decrease_quality
1381                     Decrease  the  min-quality  or quality setting (whichever
1382                     one is currently in use).
1383
1384              increase_speed
1385                     Increase the min-speed or speed setting (whichever one is
1386                     currently in use).
1387
1388              decrease_speed
1389                     Decrease the min-speed or speed setting (whichever one is
1390                     currently in use).
1391
1392       --sharing=yes|no|auto
1393              Sharing allows more than one client to connect to the same  ses‐
1394              sion.   This must be enabled on both the server and all co-oper‐
1395              ating clients to function.  When used server-side,  the  default
1396              value  auto  allows the clients to decide if they are willing to
1397              share the session.  When used  client-side,  the  default  value
1398              auto evaluates to no.  To allow sharing to work with unix domain
1399              sockets (either using local connections or via ssh), you  should
1400              create  at  least one socket in a group accessible directory. On
1401              Posix with a default configuration, being a member of  the  xpra
1402              group should be enough to create a socket in /run/xpra. You must
1403              also ensure that the permissions of this socket file allow group
1404              access, see socket-permissions.
1405
1406       --lock=yes|no|auto
1407              Locking  allows a client to refuse to hand over the session to a
1408              new client.  The session  may  still  be  shared  with  multiple
1409              clients  (see the sharing option), but otherwise the server will
1410              reject new clients.  When used server-side,  the  default  value
1411              auto  allows the clients to decide if they want to lock the ses‐
1412              sion.  When used client-side, the default value  auto  evaluates
1413              to no.
1414
1415       --keyboard-sync=yes|no
1416              Normally  the key presses and key release events are sent to the
1417              server as they occur so that the server can maintain  a  consis‐
1418              tent keyboard state.  Disabling synchronization can prevent keys
1419              from repeating unexpectedly on high latency  links  but  it  may
1420              also  disrupt  applications  which  access the keyboard directly
1421              (games, etc.).
1422
1423       --keyboard-raw=yes|no
1424              Tells the server to process  all  keyboard  input  untranslated.
1425              Both  the  client  and the server must be using the same type of
1426              keyboard interface. (ie: both using X11)
1427
1428       --keyboard-layout=LAYOUTSTRING
1429              The keyboard layout is normally  detected  automatically.   This
1430              option overrides it.
1431
1432       --keyboard-layouts=LAYOUTS
1433              The list of keyboard layouts to enable.
1434
1435       --keyboard-variant=VARIANT
1436              Override for the keyboard layout variant.
1437
1438       --keyboard-variants=VARIANTS
1439              Override for the keyboard layout variants.
1440
1441       --keyboard-options=OPTIONS
1442              Override for the keyboard options sent to the server.
1443
1444       --swap-keys=YES|NO
1445              This  option only applies to MacOS clients, it swaps the command
1446              and control keys and is enabled by default.
1447
1448       --sound-source=PLUGIN
1449              Specifies the GStreamer sound  plugin  used  for  capturing  the
1450              sound  stream.  This affects "speaker forwarding" on the server,
1451              and "microphone" forwarding on the client.  To get a list of op‐
1452              tions  use  the  special  value  'help'.  It is also possible to
1453              specify plugin options using the form: --sound-source=  pulsede‐
1454              vice=device.alsa_input.pci-0000_00_14.2.analog-stereo
1455
1456       --speaker=on|off|disabled    and    --microphone=on|off|disabled|on:DE‐
1457       VICE|off:DEVICE
1458              Sound input and output forwarding support:  on  will  start  the
1459              forwarding  as  soon  as the connection is established, off will
1460              require the user to enable it via the menu, disabled  will  pre‐
1461              vent  it  from  being  used and the menu entry will be disabled.
1462              With microphone forwarding, you may  also  be  able  to  specify
1463              which device to use.
1464
1465       --speaker-codec=CODEC and --microphone-codec=CODEC
1466              Specify  the codec(s) to use for sound output (speaker) or input
1467              (microphone).  This parameter can be  specified  multiple  times
1468              and the order in which the codecs are specified defines the pre‐
1469              ferred codec order.  Use the special value 'help' to get a  list
1470              of  options.  When unspecified, all the available codecs are al‐
1471              lowed and the first one is used.
1472
1473       --title=VALUE
1474              Sets the text shown as window title.  The  string  supplied  can
1475              make use of remote metadata placeholders which will be populated
1476              at runtime with the values from the remote server.  The  default
1477              value used is "@title@ on @client-machine@".
1478
1479              The following placeholders are defined:
1480
1481              @title@
1482                     Will be replaced by the remote window's title.
1483
1484              @client-machine@
1485                     Will  be replaced by the hostname of the system where the
1486                     application is running, if provided,  the  xpra  server's
1487                     hostname otherwise.
1488
1489              @server-machine@
1490                     Will be replaced by the hostname of the xpra server.
1491
1492              @server-display@
1493                     Will  be replaced by the name of the display on which the
1494                     application is running.
1495
1496       --border=BORDER
1497              Specifies the color and size of the border to draw inside  every
1498              xpra  window.   This can be used to easily distinguish xpra win‐
1499              dows running on remote hosts from local windows.  The BORDER can
1500              be  specified using standard color names (ie: red, or orange) or
1501              using the web hexadecimal syntax (ie: #F00 or #FF8C00). The spe‐
1502              cial  color  name  "auto"  will derive the color from the server
1503              target address (the connection string) so that connecting to the
1504              same  target  should  always  give the same color.  You may also
1505              specify the size of the  border  in  pixels,  ie:  --border=yel‐
1506              low,10.
1507
1508       --window-icon=FILENAME
1509              Path  to  the  default image which will be used for all windows.
1510              This icon may be shown in the window's bar, its iconified  state
1511              or  task  switchers.   This depends on the operating system, the
1512              window manage and the application may override this too.
1513
1514       --window-close=ACTION
1515              Choose what action to take when the  window  is  closed  by  the
1516              client.  The following actions can be used:
1517
1518              auto   The client will figure out what is best based on the win‐
1519                     dow type.  This is the default.  ie: it will use  discon‐
1520                     nect shadow sessions, Iforward for seamless windows.
1521
1522              forward
1523                     The event will be forwarded to the server.
1524
1525              ignore Do nothing.
1526
1527              disconnect
1528                     Disconnect from the server.
1529
1530              shutdown
1531                     Shutdown the server.
1532
1533       --desktop-scaling=off|on|auto|VALUE
1534              Desktop  scaling  allows the windows to be scaled by the client.
1535              Downscaling will mostly waste bandwidth,  upscaling  allows  the
1536              window's  pixels to be sent over the wire at a lower resolution,
1537              saving bandwidth and CPU time.  This option can also be used  to
1538              request  a specific scaling value.  For best results, use opengl
1539              client rendering, the other display backends may show visual ar‐
1540              tifacts when scaling.  Note: the scaling may also be adjusted at
1541              runtime through keyboard shortcuts if those are configured.
1542
1543              The desktop-scaling value can take the form:
1544
1545              off    scaling will be disabled
1546
1547              on     scaling will be allowed, but it will start unscaled
1548
1549              auto   scaling will be allowed and a scaling value will be auto‐
1550                     matically chosen if the client's desktop is large (bigger
1551                     desktops will use higher scaling values)
1552
1553              scaling-value
1554                     scaling will be enabled and use the given  value,  speci‐
1555                     fied  as  a number, fraction or percentage. ie: 2, 3/2 or
1556                     150%.
1557
1558              pair   the scaling will be enabled and use a different value for
1559                     the X and Y axis. ie: 3x2 or 3/2x4/3
1560
1561              desktop-size
1562                     the scaling will be enabled and the server will render to
1563                     the given size. ie: 1600x1200
1564
1565       --tray=yes|no Enable or disable the system tray.  Not available on  OSX
1566       since the dock icon is always shown.
1567
1568       --delay-tray
1569              Waits  for  the  first  window  or notification to appear before
1570              showing the system tray. (posix only)
1571
1572       --tray-icon=FILENAME
1573              Specifies the icon shown in the dock/tray.  By default it uses a
1574              simple  default  'xpra'  icon.   (On Microsoft Windows, the icon
1575              must be in ico format.)
1576
1577       --enable-pings
1578              The client and server will exchange ping and echo packets  which
1579              are  used to gather latency statistics.  Those statistics can be
1580              seen using the xpra info command.
1581
1582
1583
1584   Options for attach, stop, info, screenshot, version
1585       --ssh=CMD
1586              When you use an ssh: address to connect  to  a  remote  display,
1587              xpra  runs ssh(1) to make the underlying connection. By default,
1588              it does this by running the command "ssh". If your  ssh  program
1589              is  in  an unusual location, has an unusual name, or you want to
1590              pass special options to change ssh's behavior, then you can  use
1591              the --ssh switch to tell xpra how to run ssh.
1592
1593              For  example,  if  you  want to use arcfour encryption, then you
1594              should run
1595
1596                     xpra attach --ssh="ssh -c arcfour" ssh://frodo/7
1597
1598              Note: Don't bother to enable ssh compression; this is  redundant
1599              with  xpra's own compression, and will just waste your CPU.  See
1600              also xpra's --compress switch.
1601
1602              On MS Windows, where backslashes are used to separate path  ele‐
1603              ments and where spaces are often used as part of paths, you need
1604              to   add   quotes    around    paths.    (ie:    ssh="C:\Program
1605              Files\Xpra\Plink.exe" -ssh -agent)
1606
1607
1608       --exit-ssh=yes|no
1609              Choose  whether the SSH client process should be forcibly termi‐
1610              nated when xpra disconnects from the server.  If you  are  using
1611              SSH  connection  sharing, you may want to avoid stopping the SSH
1612              master process instance spawned by xpra as it  may  be  used  by
1613              other  SSH  sessions.   Note:  the  exit-ssh=no detaches the SSH
1614              process from the terminal which prevents the  SSH  process  from
1615              interacting  with the terminal input, this disables the keyboard
1616              interaction required for password input, host key  verification,
1617              etc..
1618
1619       --remote-xpra=CMD
1620              When  connecting  to  a remote server over ssh, xpra needs to be
1621              able to find and run the xpra executable on the remote host.  If
1622              this  executable is in a non-standard location, or requires spe‐
1623              cial environment variables to be set before it can run, then ac‐
1624              complishing  this  may  be  non-trivial.  If running xpra attach
1625              ssh:something fails because it cannot find the remote xpra, then
1626              you can use this option to specify how to run xpra on the remote
1627              host.
1628
1629              That said, this option should not be needed in normal usage,  as
1630              xpra tries quite hard to work around the above problems.  If you
1631              find yourself needing it often, then that  may  indicate  a  bug
1632              that we would appreciate hearing about.
1633
1634
1635   SSL Options
1636       --ssl=on|auto|off|tcp|www
1637              Whether  to enable SSL on TCP sockets and for what purpose.  The
1638              TCP sockets will automatically be upgraded to SSL when SSL pack‐
1639              ets are received.
1640
1641              auto   The  server  will  try  to guess what protocol to use for
1642                     each new SSL connection: either xpra's native protocol or
1643                     https / websocket (wss)
1644
1645              tcp    The  SSL sockets will only be used for xpra's native pro‐
1646                     tocol
1647
1648              www    The SSL sockets will only be used for https and websocket
1649                     (wss)
1650       If SSL is enabled, then a ssl-cert is required.  Authentication, if re‐
1651       quired, will use the ssl-auth module specified, and  fallback  to  tcp-
1652       auth or auth unless the value none is specified.
1653
1654       The  remaining options mirror the Python ssl module attributes.  Please
1655       refer to that documentation and bear in mind that configuring  SSL  for
1656       security  is  not trivial, and definitely not just a matter of enabling
1657       SSL. See: https://docs.python.org/2/library/ssl.html Some  options  may
1658       not be available with older versions of Python.
1659
1660       Summary: --ssl-key=KEYFILE The key file to use.
1661
1662       --ssl-cert=ERTFILEORDIR
1663              Certificate file, required for server SSL support.
1664
1665       --ssl-protocol=PROTOCOLVERSION
1666              Specifies which version of the SSL protocol to use.
1667
1668       --ssl-ca-certs=CACERTSFILE
1669              The  ca_certs file contains a set of concatenated 'certification
1670              authority' certificates. If a directory is specified, it  should
1671              contain the certificates.
1672
1673       --ssl-ca-data=ERTDATA
1674              Certificate data.
1675
1676       --ssl-ciphers=CIPHERS
1677              Sets the available ciphers, it should be a string in the OpenSSL
1678              cipher list format.
1679
1680       --ssl-client-verify-mode=none|optional|required
1681              Whether to try to verify the client's certificates  and  how  to
1682              behave if verification fails.
1683
1684       --ssl-server-verify-mode=none|optional|required
1685              Whether  to  try  to verify the server's certificates and how to
1686              behave if verification fails.
1687
1688       --ssl-verify-flags=FLAGS
1689              The flags for certificate verification operations.
1690
1691       --ssl-check-hostname=yes|no
1692              Whether to match the peer cert's hostname.
1693
1694       --ssl-options=options
1695              Set of SSL options enabled on this context.
1696
1697
1698
1699       ENVIRONMENT
1700
1701       DISPLAY
1702              xpra start --start-child=... sets this variable in the  environ‐
1703              ment of the child to point to the xpra display.
1704
1705              xpra  attach, on the other hand, uses this variable to determine
1706              which display the remote applications should be shown on.
1707
1708              XPRA_PASSWORD may be used with xpra attach instead of the  pass‐
1709              word-file option.
1710
1711

FILES

1713       xpra.conf  stores  default  values for most options.  There is a global
1714       configuration file in /etc or /usr/local/etc, and each user  may  over‐
1715       ride those defaults by creating the file .xpra/xpra.conf.  You can also
1716       split the options into multiple files by placing them in a  conf.d  di‐
1717       rectory  with  the  .conf extension.  Depending on OS and version, xpra
1718       uses the directory ~/.xpra or /run/<uid>/xpra  to  store  a  number  of
1719       files.  (The examples below are given for the display :7.)
1720
1721       ~/.xpra/:7
1722              The  unix  domain  socket  that  clients use to contact the xpra
1723              server, if the system configuration uses this directory.
1724
1725       ~/.xpra/:7.log
1726              When run in daemon mode (the default), the xpra  server  directs
1727              all output to this file.  This includes all debugging output, if
1728              debugging is enabled.
1729
1730       ~/.xpra/run-xpra
1731              A shell script that, when run, starts up xpra with  the  correct
1732              python  interpreter, PYTHONPATH, PATH, location of the main xpra
1733              script, etc.  Automatically  generated  by  xpra  initenv,  xpra
1734              start  and used by xpra attach (see also the discussion of --re‐
1735              mote-xpra).
1736

BUGS

1738       Xpra has no test suite.
1739
1740       Xpra does not fully handle all aspects of the X protocol; for instance,
1741       fancy  input features like pressure-sensitivity on tablets, some window
1742       manager hints, and probably other more obscure parts of the X protocol.
1743       It  does,  however,  degrade  gracefully,  and patches for each feature
1744       would be gratefully accepted.
1745
1746       The xpra server allocates an over-large framebuffer  when  using  Xvfb;
1747       this  wastes  memory.  If the Xvfb does not support RandR this can also
1748       cause applications to misbehave (e.g. by letting menus go  off-screen).
1749       This is not a problem when using Xdummy, see the --xvfb= switch for de‐
1750       tails.  Conversely, if the framebuffer is  ever  insufficiently  large,
1751       clients will misbehave in other ways (e.g., input events will be misdi‐
1752       rected).
1753

REPORTING BUGS

1755       Send any questions or bugs reports to https://xpra.org/trac/
1756

SEE ALSO

1758       screen(1), winswitch_applet(1)
1759
1760
1761
1762                                                                       XPRA(1)
Impressum