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 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

DESCRIPTION

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

CONNECTION STRINGS

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

EXAMPLES

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

DISPLAYS

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

SUBCOMMANDS

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

OPTIONS

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
566
567   Options for start, start-desktop, upgrade, proxy and shadow
568       --daemon=yes|no
569              By default, the xpra server puts  itself  into  the  background,
570              i.e. 'daemonizes', and redirects its output to a log file.  This
571              can be used to prevent that behavior (useful mostly  for  debug‐
572              ging).
573
574
575       --resize-display=yes|no|WIDTHxHEIGHT
576              Resize the virtual display to match the resolution of the client
577              currently connected.  This only applies to the start and  start-
578              desktop subcommands.  If a resolution is given, this will be the
579              initial resolution of the display and the display will be resiz‐
580              able.   A  small  set  of  pre-defined aliases can also be used:
581              QVGA, VGA, SVGA, XGA, 1080p, FHD, 4K.
582
583
584       --fake-xinerama=PATH|auto|no
585              Specify the path to the libfakeXinerama.so library which will be
586              injected  into  all  the child processes the server starts using
587              LD_PRELOAD.  This can also be  disabled  or  set  to  auto:  the
588              server  will  then  try to locate the library itself.  This only
589              applies to the start subcommand.
590
591
592       --chdir=DIR
593              Change to this directory after daemonizing.
594
595
596       --uid=UID and --gid=GID
597              When launching the server as root, these options can be used  to
598              drop privileges to the given UID / GID.
599
600
601       --pidfile=FILENAME
602              Writes  the  server  process ID to this file on startup.  If the
603              file has not been replaced, it will be deleted when  the  server
604              exits.
605
606
607       --challenge-handlers=MODULE:options
608              Configures  which  challenge handlers are used by the client and
609              in which order. This option may be repeated to specify  multiple
610              handlers,  which can be useful if the server sends more than one
611              authentication challenge.  The default value is: all which  cor‐
612              responds to: uri,file,env,kerberos,gss,u2f,prompt.
613
614              uri    Use  the  password specified on the connection string, if
615                     any.
616
617              file   The filename used to store the password can be  specified
618                     using  the filename option.  If this option is not speci‐
619                     fied, it will fallback to  using  the  password  filename
620                     specified with the password-file switch.
621
622              env    Use the password specified using the environment variable
623                     specified  using  the  name  option,  which  defaults  to
624                     XPRA_PASSWORD if unspecified.
625
626              kerberos
627                     Requests a kerberos token for the service specified.
628
629              gss    Requests a gss token for the service specified.
630
631              u2f    Requests a token from a U2F device.
632
633              prompt Prompt  the  user for the value.  Terminal clients prompt
634                     using text input, GUI clients use a dialog.
635
636       --min-port=PORT
637              The minimum port number allowed when creating TCP sockets.   You
638              can  use  a  lower  value to allow unprivileged users to bind to
639              privileged ports when starting  sessions  via  the  system  wide
640              proxy  server.   The default value is 1024 which is the standard
641              value for privileged ports.
642
643       --mdns=yes|no
644              Enable or disable the publication of new sessions via mDNS.
645
646       --dbus-launch=COMMAND|no
647              Start the session within a dbus-launch context, you can  specify
648              the dbus launch command to use, or turn it off completely.  Some
649              features may not be available without a dbus context.
650
651       --dbus-proxy=yes|no
652              Allows the client to forward dbus calls to the server.
653
654       --dbus-control=yes|no
655              Start a dbus server which can  be  used  to  interact  with  the
656              server process.
657
658
659
660   Options for start, start-desktop, upgrade and listen:
661       In  previous  versions, the authentication for each connection type was
662       configured using a separate command line option which  would  apply  to
663       all  connections of the same type. ie: tcp-auth for bind-tcp.  Although
664       this is still supported as a fallback, the recommended way is to  spec‐
665       ify   authentication   options   using   bind  properties.   ie:  bind-
666       tcp=0.0.0.0:14500,auth=file:filename=password.txt.  For more details on
667       authentication  configuration,  see auth=.  The properties can also de‐
668       fine extra configuration options.
669
670       --bind=BIND_LOCATION[,PROPERTIES] Create a local Unix domain socket (on
671       Unix) or named-pipe (on MS Windows) for each bind option specified.
672
673       This  option can be specified multiple times to specify multiple socket
674       locations.  These sockets support local connections with  the  :7-style
675       display  address,  and  remote connections with the ssh://frodo/7-style
676       display address.
677
678       Local sockets may also process HTTP / Websocket connections if the html
679       switch is enabled.
680
681       The location can take the form:
682
683              none   do not create a socket
684
685              auto   backwards  compatible  default  which  uses  the  current
686                     socket-dir
687
688              DIRECTORY/
689                     create a socket in the directory specified, if the direc‐
690                     tory  does not exist then it will be created - you should
691                     include the trailing slash to prevent the confusion  with
692                     the PATH form:
693
694              PATH   create the socket using the path specified
695
696       --bind-tcp=[HOST]:PORT[,PROPERTIES]
697              Create  a  TCP  socket for each --bind-tcp option specified.  If
698              the host portion is omitted, then 127.0.0.1 (localhost) will  be
699              used.  If you wish to accept connections on all interfaces, pass
700              0.0.0.0 for the host portion.
701
702              Using this switch without using the tcp-auth option is not  rec‐
703              ommended,  and is a major security risk (especially when passing
704              0.0.0.0)!  Anyone at all may connect to  this  port  and  access
705              your session.
706
707              TCP sockets may also process HTTP / Websocket connections if the
708              html switch is enabled.  TCP sockets may also be upgraded to SSL
709              sockets if the ssl switch is enabled.
710
711
712       --bind-ws=[HOST]:PORT[,PROPERTIES]
713              Create  an HTTP / Websocket listener.  See bind-tcp for host re‐
714              strictions, you should use the auth-ws to secure access.
715
716       --bind-wss=[HOST]:PORT[,PROPERTIES]
717              Create an HTTPS / Secure Websocket listener.  See  bind-tcp  for
718              host restrictions, you should use the auth-wss to secure access.
719
720       --bind-ssl=[HOST]:PORT[,PROPERTIES]
721              Just  like --bind-tcp but for SSL sockets.  See ssl-auth and the
722              other SSL options.
723
724       --bind-rfb=[HOST]:PORT[,PROPERTIES]
725              Listens for RFB connections on the given  port.   These  sockets
726              are only supported with the start-desktop and shadow modes.
727
728       --bind-vsock=CID:PORT[,PROPERTIES]
729              Create a VSOCK socket for each --bind-vsock option specified.
730
731       --auth=MODULE[:OPTION=VALUE]
732              Specifies  the  authentication module to use for all unix domain
733              sockets created using the bind  switch.  Authentication  modules
734              can  validate a username and password against a variety of back‐
735              end modules:
736
737              allow  always allows authentication  -  this  is  dangerous  and
738                     should only be used for testing
739
740              fail   always fails authentication, useful for testing
741
742              env    matches against the environment variable specified by the
743                     name  option  (which  defaults  to  XPRA_PASSWORD).   ie:
744                     --auth=env:name=SOME_OTHER_ENV_VAR_NAME.
745
746              password
747                     matches  against  the  password specified using the value
748                     option.  ie:  --auth=password:value=YOURPASSWORD.   Note:
749                     this  command  line  option  may be exposed to other pro‐
750                     cesses on the same system.
751
752              file   checks the password against the password  data  found  in
753                     the  file  specified  using  the  filename  option.   ie:
754                     --auth=file:filename=./password.txt.
755
756                     The contents of this file will be treated as binary data,
757                     there  are no restrictions on character encodings or file
758                     size.  Beware of trailing newline characters  which  will
759                     be included in the password data.
760
761
762              multifile
763                     checks  the username and password against the file speci‐
764                     fied using the filename option.  The  file  must  contain
765                     each user credentials on one line of the form:
766
767                     username|password|uid|gid|displays|env_opts|session_opts
768
769                     It  is  not  possible  to have usernames or password that
770                     contain the pipe character | which is used as  delimiter,
771                     or  newlines and carriage returns.  This module is depre‐
772                     cated, sqlite should be used instead.
773
774
775              sqlite
776
777              mysql
778
779              sql    checks the username and password against the sqlite data‐
780                     base  file  specified  using the filename option (for the
781                     sqlite backend), or the database specified using the  uri
782                     option (mysql and sql backends).  The authentication will
783                     be processed using the following query (which is  config‐
784                     urable  using the password_query option): SELECT password
785                     FROM users WHERE username=(?)  The sessions available for
786                     each  user  will  be queried using: (this is configurable
787                     using the sessions_query option): SELECT uid,  gid,  dis‐
788                     plays,  env_options,  session_options  FROM  users  WHERE
789                     username=(?)  Multiple displays may  be  specified  as  a
790                     comma separated list.
791
792
793              hosts  checks  the host using the system's tcp-wrappers library.
794                     (Posix only, and not available on Mac OS) See hosts.allow
795                     and hosts.deny for details.
796
797
798              exec   Executes  the  command specified using the command attri‐
799                     bute, the arguments to this command are: a description of
800                     the  access  request and the timeout value. (also config‐
801                     urable) If the command is not specified, the system  will
802                     try  to  locate  and use the auth_dialog utility which is
803                     shipped with xpra.  The command should return 0 to  allow
804                     access, any other value will deny access.
805
806
807              peercred
808                     checks  the  unix  domain  socket  peer credentials using
809                     SO_PEERCRED.  This authentication module is  only  avail‐
810                     able on some Posix compliant operating systems. This mod‐
811                     ule will verify that the operating  system  provides  the
812                     uid and gid of the process that initiated the connection.
813                     Access can be restricted by supplying a  colon  separated
814                     list  of valid uids and gids that are allowed to connect.
815                     Those id values may be specified using  numerical  values
816                     or  using  the  usernames  / group names.  This module is
817                     different from the others in that it will not require the
818                     client to supply a username or password, as those are ig‐
819                     nored.   Environment  variables  and   pseudo-environment
820                     variables  may  also  be used as values, eg: --auth=peer‐
821                     cred:uid=\$UID:fred,gid=xpra.
822
823
824              pam    validates the username and password using the PAM system
825
826              win32  validates the username and password using Microsoft  Win‐
827                     dows authentication (only available on this platform)
828
829              sys    chooses  the appropriate system authentication module au‐
830                     tomatically (either pam or win32)
831
832
833              kerberos-password
834                     validates the username and password  using  kerberos  au‐
835                     thentication.  Warning: this module does not use kerberos
836                     tickets and the password will be sent in  plain  text  to
837                     the server. This should only be used for testing.
838
839              kerberos-ticket
840                     validates a kerberos ticket obtained by the client.
841
842              gss    validates a GSS ticket obtained by the client.
843
844              u2f    requests a U2F token from the client.
845
846              ldap   validates  the  username  and  password  against  an LDAP
847                     server, using the python-ldap library.
848
849              ldap3  validates the  username  and  password  against  an  LDAP
850                     server, using the python ldap3 library.
851
852       --tcp-auth=MODULE
853              Just  like  the auth switch, except this one only applies to TCP
854              sockets (sockets defined using the bind-tcp switch).
855
856       --ws-auth=MODULE
857              Just like the auth switch, except this one only  applies  to  ws
858              sockets:  sockets defined using the bind-ws switch, or TCP sock‐
859              ets upgraded to websockets. (if the html option is enabled).
860
861       --wss-auth=MODULE
862              Just like the auth switch, except this one only applies  to  wss
863              sockets:  sockets  defined using the bind-wss switch, ws sockets
864              upgraded to SSL (if the ssl option is enabled)  or  TCP  sockets
865              upgraded  to SSL and then to wss.  (if both the ssl and html op‐
866              tions are enabled).
867
868       --ssl-auth=MODULE
869              Just like the auth switch, except this one only applies  to  SSL
870              sockets: sockets defined using the bind-ssl switch, or TCP sock‐
871              ets upgraded by ssl=auto or ssl=on.
872
873       --rfb-auth=MODULE
874              Authentication module to use for the bind-rfb sockets.
875
876       --vsock-auth=MODULE
877              Just like the auth switch, except this one only applies to VSOCK
878              sockets (sockets defined using the bind-vsock switch).
879
880
881
882   Options for start, start-desktop, upgrade
883       --exec-wrapper=CMD
884              A  wrapper  command  which  is  prepended to all start commands.
885              Typically, this is used for starting all sub-commands via Virtu‐
886              alGL.
887
888       --start=CMD
889              After  starting  the  server, runs the command CMD using the de‐
890              fault shell.  The command is run with its $DISPLAY set to  point
891              to  the newly-started server.  This option may be given multiple
892              times to start multiple commands.
893
894       --start-child=CMD
895              Identical to --start, except that the commands  are  taken  into
896              account by --exit-with-children.
897
898       --start-after-connect=CMD
899              Wait  for  the  first client to connect before starting the com‐
900              mand.
901
902       --start-child-after-connect=CMD
903              Wait for the first client to connect before starting  the  child
904              command.  See start-child.
905
906       --start-on-connect=CMD
907              Execute this command every time a client connects.
908
909       --start-child-on-connect=CMD
910              Execute  this  child  command every time a client connects.  See
911              start-child.
912
913       --start-on-last-client-exit=CMD
914              Execute this command every time a client disconnects  and  there
915              are no other clients left.
916
917       --start-child-on-last-client-exit=CMD
918              Execute  this  child command every time a client disconnects and
919              there are no other clients left.  See start-child.
920
921       --terminate-children=yes|no
922              On server stop, terminate all the child commands that have  been
923              started  by  the server. This does not affect server exit.  Most
924              child commands are tied to the  display  so  they  are  normally
925              forced  to  shutdown  anyway,  but  this gives them more time to
926              cleanup properly and can be used  to  stop  background  commands
927              that aren't tied to a display.
928
929       --exit-with-children=yes|no
930              This option may only be used if --start-child is also given.  If
931              it is given, then the xpra server will monitor the status of the
932              children started by --start-child, and will automatically termi‐
933              nate itself when the last of them has exited.
934
935       --exit-with-windows=yes|no
936              The server will terminate automatically when there are  no  more
937              windows  or  system  trays being forwarded.  This option is only
938              relevant for seamless servers.
939
940       --exit-with-client=yes|no
941              The server will terminate when the last client disconnects.
942
943       --env=KEY=VALUE
944              Extra environment variables  which  will  only  affect  commands
945              started using --start or --start-child.
946
947       --start-new-commands=yes|no
948              Allow  clients to ask the server to execute new commands.  (this
949              can also be used via the control channel)
950
951       --start-via-proxy=yes|no|auto
952              If enabled, the start and start-desktop subcommands will be del‐
953              egated  to  the  system  wide  proxy server instance.  With auto
954              mode, this delegation will only occur if the system  wide  proxy
955              server is found.
956
957       --systemd-run=yes|no|auto
958              Wrap server start commands with systemd-run.
959
960       --systemd-run-args=ARGS
961              Command line arguments passed to systemd-run.
962
963       --use-display=yes|no|auto
964              Use an existing display rather than starting one with xvfb.  You
965              are responsible for starting the  display  yourself.   This  can
966              also be used to rescue an existing display whose xpra server in‐
967              stance crashed or for running xpra against  an  accelerated  X11
968              server.   With auto, xpra will use the existing display if it is
969              found.
970
971       --displayfd=FD
972              The xpra server will write the display number back on this  file
973              descriptor  as a newline-terminated string.  This is most useful
974              when the display number is not specified with the xpra start  or
975              start-desktop subcommands.
976
977       --xvfb=CMD
978              When  starting a seamless server, xpra starts a virtual X server
979              to run the clients on.  If your Xvfb is installed in a funny lo‐
980              cation,  or  you  want  to use some other virtual X server, then
981              this switch allows you to specify how to run  your  preferred  X
982              server executable.  The default value used depends on your plat‐
983              form.  For more information, see: https://xpra.org/Xdummy.html
984
985       --sync-xvfb=DELAY
986              The windows are normally only displayed on the  client(s),  they
987              are  not painted on the virtual display.  Some applications like
988              screen recorders may want to capture the  window  contents,  you
989              can use this option to enable painting with a configurable delay
990              (in milliseconds).  Warning: this extra  painting  is  expensive
991              and quite slow, which is why it is not enabled by default.
992
993       --attach=yes|no|auto
994              Once the server has started, immediately connect a client to it.
995              With the value auto, a client  is  started  for  remote  servers
996              only.  (servers  specified  via  a  network URI) If a display is
997              specified and a server is already running, xpra will not try  to
998              start a new one and it will just attach to it.
999
1000
1001          Options for start, start-desktop, upgrade, shadow
1002
1003
1004       --html=on|off|auto|webrootpath
1005              Respond  to  HTTP requests on the TCP port(s) and local sockets.
1006              This requires at least one TCP or local socket to be  configured
1007              using  the matching bind option.  The auto mode will enable sup‐
1008              port if possible.  By default the server will provide access  to
1009              the  HTML5  client.  You can also specify your own web root path
1010              as argument.
1011
1012       --http-scripts=off|all|SCRIPTS
1013              Enable the builtin web server scripts  that  expose  the  server
1014              status, current active sessions and displays, the list of appli‐
1015              cations and desktop sessions installed.  This can be used by the
1016              client's user interface.
1017
1018
1019       --rfb-upgrade=DELAY
1020              Allows  RFB  clients (ie: VNC) to connect to a plain TCP socket.
1021              If no data is received after DELAY seconds, the server will send
1022              a  RFB  handshake.   This  option  is only applicable to servers
1023              started in start-desktop or shadow modes.
1024
1025
1026       --video-encoders=ENCODERS
1027              Specifies the video encoders to try to load.  By default, all of
1028              them  are loaded, but one may want to specify a more restrictive
1029              list of encoders.  Use the special value 'help' to get a list of
1030              options.  Use the value 'none' to not load any video encoders.
1031
1032
1033       --csc-modules=MODULES
1034              Specifies the colourspace conversion modules to try to load.  By
1035              default, all of them are loaded, but one may want to  specify  a
1036              more  restrictive list of modules.  Use the special value 'help'
1037              to get a list of options.  Use the value 'none' to not load  any
1038              colourspace conversion modules.
1039
1040
1041       --socket-permissions=ACCESS-MODE
1042              Specifies the file permissions on the server's unix domain sock‐
1043              ets.  Defaults to 600. This is ignored when  mmap-group  is  en‐
1044              abled.
1045
1046
1047
1048   Options for start, start-desktop, upgrade and attach
1049       --encryption=CIPHER
1050              Specifies  the  cipher  to  use for securing the connection from
1051              prying eyes.  This option requires the use of the  --encryption-
1052              keyfile option.  The only ciphers supported at present are:
1053
1054              AES    For  servers, this allows the client to choose any of the
1055                     modes it wants to use.  For clients, this is an alias for
1056                     AES-CBC  and  using  a  more specific mode should be pre‐
1057                     ferred.
1058
1059              AES-CBC
1060                     AES in cipher block chaining mode
1061
1062              AES-GCM
1063                     AES in galois/counter mode
1064
1065              AES-CFB
1066                     AES in cipher feedback mode
1067
1068              AES-CTR
1069                     AES in counter mode
1070
1071       If the client requests encryption it will be used by  both  the  client
1072       and  server  for all communication after the initial password verifica‐
1073       tion, but only if the server supports this  feature  too.   Note:  this
1074       feature has not been extensively reviewed and as it is it should not be
1075       considered safe from determined attackers.
1076
1077       --tcp-encryption=CIPHER
1078              Just like the encryption switch, except this one only applies to
1079              TCP sockets (sockets defined using the bind-tcp switch).
1080
1081       --encryption-keyfile=FILENAME
1082              Specifies  the  key  to use with the encryption cipher specified
1083              with --encryption.  The client and server must use the same key‐
1084              file contents.
1085
1086       --tcp-encryption-keyfile=FILENAME
1087              Just  like  the  encryption-keyfile switch, except this one only
1088              applies to TCP  sockets  (sockets  defined  using  the  bind-tcp
1089              switch).
1090
1091       --idle-timeout=IDLETIMEOUT
1092              The  connection  will be terminated if there is no user activity
1093              (mouse clicks or key presses) for the given amount of  time  (in
1094              seconds). Use the value 0 to disable this timeout.
1095
1096       --server-idle-timeout=IDLETIMEOUT
1097              The  server will exit if there are no active connections for the
1098              given amount of time (in seconds).  Use the value 0  to  disable
1099              this timeout.
1100
1101       --clipboard-filter-file=FILENAME
1102              Name  of  a  file  containing regular expressions, any clipboard
1103              data that matches one  of  these  regular  expressions  will  be
1104              dropped.  Note: at present this only applies to copying from the
1105              machine where this option is used, not to it.
1106
1107       --dpi=VALUE
1108              The 'dots per inch' value that client applications should try to
1109              honour.   This numeric value should be in the range 10 to 500 to
1110              be useful.  Many applications will only  read  this  value  when
1111              starting up, so connecting to an existing session started with a
1112              different DPI value may not have the desired effect.
1113
1114       --pixel-depth=VALUE
1115              When starting a server, this switch controls the bits per  pixel
1116              of  the  virtual framebuffer. Possible values: 0 (auto), 16, 24,
1117              30.  When starting a client, this switch  controls  the  picture
1118              rendering  with  the  opengl backend: values higher than 24 will
1119              enable deep color, the value 24 enables regular true color  ren‐
1120              dering.  Use the value 0 to let the client decide if the render‐
1121              ing will benefit from using deep color. (this is only  supported
1122              on some Posix clients) Other values should not be used.
1123
1124       --cursors=yes|no
1125              Enable  or  disable  forwarding of custom application mouse cur‐
1126              sors.  Client applications may change the mouse  cursor  at  any
1127              time, which will cause the new cursor's pixels to be sent to the
1128              client each time.  This disables the feature.
1129
1130       --notifications=yes|no
1131              Enable or disable forwarding of  system  notifications.   System
1132              notifications  require  the xpra server to have its own instance
1133              of a dbus daemon, if it is missing a warning will be printed  on
1134              startup.   This switch disables the feature entirely, and avoids
1135              the warning.
1136
1137       --input-method=METHOD
1138              Specify which input method to configure.  This sets a number  of
1139              environment  variables  which should be honoured by applications
1140              started with the start-child option.
1141
1142              The following METHODs are currently supported:
1143
1144              none   Disable input methods completely and prevent it from  in‐
1145                     terfering with keyboard input. This is the default.
1146
1147              keep   Keeps  the environment unchanged. You are responsible for
1148                     ensuring it is correct.
1149
1150              xim    Enables the X Input Method.
1151
1152              IBus   Enables the Intelligent Input Bus.
1153
1154              SCIM   Enables the Smart Common Input Method.
1155
1156              uim    Enables the Universal Input Method.
1157
1158       Any other value will also be set up, but will trigger a warning.
1159
1160
1161       --xsettings=auto|yes|no
1162              Enable or disable xsettings synchronization.  Xsettings are only
1163              forwarded  from  posix  clients connecting to real posix servers
1164              (not shadows).  In 'auto' mode,  only  seamless  servers  enable
1165              xsettings synchronization.
1166
1167       --system-tray=yes|no
1168              Enable or disable forwarding of system tray icons.  This feature
1169              requires client support and may not be available  on  all  plat‐
1170              forms.
1171
1172       --bell=yes|no
1173              Enable or disable forwarding of the system bell.
1174
1175       --webcam=yes|no
1176              Enable or disable webcam forwarding.
1177
1178       --mousewheel=on|off|invert|invert-x|invert-y|invert-z
1179              Mouse  wheel  handling:  can be used to disable mouse wheel for‐
1180              warding using the value no, or to invert some or all  axes:  in‐
1181              vert-all, invert-x, invert-y, invert-z.
1182
1183
1184       --remote-logging=both|all|send|receive|no
1185              Remote logging is always initiated by the client, but the server
1186              can restrict which direction log messages are allowed to flow.
1187
1188              both   The log output is both forwarded  and  sent  locally  (to
1189                     stdout, stderr or a log file).
1190
1191              allow  Used  by  the server to allow both send and receive, when
1192                     sending the log output it will no longer be recorded  lo‐
1193                     cally.
1194
1195              send   Used  by the client to send its log output to the server.
1196                     Used by the server to allow clients to request  log  for‐
1197                     warding.
1198
1199              receive
1200                     Used  by  the client to request that the server sends its
1201                     log output to the client.  Used by the  server  to  allow
1202                     clients to forward their logging.
1203
1204              no     Remote logging is disabled.
1205
1206       --av-sync=yes|no
1207              Enable  or  disable audio-video synchronization.  The video data
1208              will be delayed so that it is displayed in sync with the  audio.
1209              Note:  this  only applies to video regions, either auto-detected
1210              via the builtin heuristics or specified using  the  dbus  inter‐
1211              face.
1212
1213
1214
1215   Options for attach
1216       --modal-windows=yes|no
1217              Honour  modal  windows.   This may have undesirable side effects
1218              when multiple applications are forwarded through the  same  xpra
1219              server:  modal  windows  will be made modal for all the applica‐
1220              tions forwarded by xpra rather than  just  the  one  application
1221              which owns that window.
1222
1223       --headerbar=auto|no|force
1224              Replaces the window's standard title bar with a custom one which
1225              is used to give access to xpra specific window  controls.   This
1226              feature can have side effects and it is incompatible with OpenGL
1227              acceleration on MS Windows.
1228
1229       --password-file=FILENAME
1230              Supply the password to be used for connecting to a  server  that
1231              uses authentication. See auth, tcp-auth, ssl-auth and vsock-auth
1232              for details.  Alternatively, you may use the XPRA_PASSWORD envi‐
1233              ronment variable.
1234
1235       --opengl=(yes|no|auto)[:backend]
1236              Use  OpenGL accelerated rendering on the client.  The default is
1237              to detect if the graphics card and drivers are  supported  (auto
1238              mode),  but one can also disable OpenGL (no) or force it enabled
1239              (yes).  On some platforms, it is also possible to specify  which
1240              backends  should be used, only gtk and native are currently sup‐
1241              ported and only on X11  platforms.   ie:  opengl=yes:native,  or
1242              opengl=auto:gtk,native.
1243
1244       --webcam=yes|no|/dev/deviceXXX|DEVICEID
1245              Enable  or  disable webcam forwarding.  The webcam device to use
1246              can also be specified.
1247
1248
1249       -zLEVEL, --compress=LEVEL
1250              Select the level of compression xpra will use when  transmitting
1251              data  over the network.  With the lz4 and lzo compressors, there
1252              are only two possible values: 0 (meaning no compression)  and  1
1253              (compression  enabled).  The zlib compressor supports values be‐
1254              tween 0 (meaning no compression) and  9,  inclusive.  It  should
1255              only be used when lz4 and lzo are not available.
1256
1257              This  compression  is  not used on pixel data (except when using
1258              the rgb encoding).
1259
1260       --quality=VALUE
1261              This option sets a fixed image compression quality for lossy en‐
1262              codings  (jpeg,  webp,  h264/h265  and  vp8/vp9).  First, one of
1263              those lossy encodings must be enabled with  --encoding  or  when
1264              using  the default auto mode.  Values range from 1 (lowest qual‐
1265              ity, high compression -  generally  unusable)  to  100  (highest
1266              quality,  low  compression).  Specify a value of zero to let the
1267              system tune the quality dynamically to achieve  the  best  band‐
1268              width usage possible.  It is usually best not to use this option
1269              and use min-quality instead.
1270
1271       --min-quality=MIN-QUALITY
1272              This option sets the minimum encoding quality allowed  when  the
1273              quality option is set to automatic mode. See quality above.
1274
1275       --speed=SPEED
1276              This  option  sets  the  encoding speed, from 1 (slowest) to 100
1277              (fastest).  Slower compresses better and  will  use  less  band‐
1278              width,  faster will give better latency as long as there is suf‐
1279              ficient bandwidth.  The system normally uses a  variable  speed,
1280              this option forces a fixed speed setting to be used instead.  It
1281              is usually best not to use this option  and  use  min-speed  in‐
1282              stead.
1283
1284       --min-speed=MIN-SPEED
1285              This  option  sets  the  minimum encoding speed allowed when the
1286              speed option is set to automatic mode. See speed above.
1287
1288       --auto-refresh-delay=DELAY
1289              This option sets a delay after which the windows  are  automati‐
1290              cally  refreshed  using  a  lossless frame if their contents had
1291              been updated using a lossy encoding previously.  The delay is  a
1292              floating-point number and is in seconds.  This option is enabled
1293              by default with a delay of 0.25 seconds.  This  option  is  only
1294              relevant when using a lossy encoding.
1295
1296       --shortcut-modifiers=MODIFIERS
1297              Defines  the  default  shortcut  modifiers  required by the key-
1298              shortcuts, these modifiers can then be referred to  as  #.   The
1299              default  value  is  'auto' which evaluates to Meta+Shift on most
1300              platforms.
1301
1302       --key-shortcut=KEY:ACTION
1303              Can be specified multiple times to add multiple  key  shortcuts.
1304              These  keys  will be caught by the client and trigger the action
1305              specified and the key presses will  not  be  passed  on  to  the
1306              server.
1307
1308              The KEY specification may include keyboard modifiers in the form
1309              [modifier+]*key, for example: Shift+F10 or Shift+Control+B.  You
1310              can  refer  to  the  shorcut-modifers  option value using #, ie:
1311              #+F1.
1312
1313              Shortcuts defined on the command line are added to  the  builtin
1314              default  shortcuts.   To  clear  the list of shortcuts, use key-
1315              shortcut=clear and define your shortcuts after this one.
1316
1317              Some of the actions may allow  arguments  (ie:  the  log  action
1318              does), in which case they are specified in the usual programming
1319              style syntax: ACTION(ARG1, ARG2, etc)
1320              String arguments must be quoted (both single and  double  quotes
1321              are supported) and numeric arguments must not be quoted.  Beware
1322              the the parenthesis and quotes must usually be escaped when used
1323              from    a    shell    command   line.    Example:   --key-short‐
1324              cut=Meta+Shift+F7:log\(\'hello\'\)
1325
1326              The following ACTIONs are currently defined:
1327
1328              quit   Disconnect the xpra client.
1329
1330              log("MESSAGE")
1331                     Sends MESSAGE to the log.
1332
1333              show_session_info[("TabName")]
1334                     Shows the session information window. The  optional  Tab‐
1335                     Name allows the information tab shown to be selected. Use
1336                     the value help to get the list of options.
1337
1338              show_menu
1339                     Shows the menu normally found in the system tray.
1340
1341              show_start_new_command
1342                     Shows the start new command dialog.
1343
1344              show_shortcuts
1345                     Shows the list of shortcuts.
1346
1347              show_docs
1348                     Shows the documentation in a browser window.
1349
1350              magic_key
1351                     Placeholder which can be used by some client toolkits.
1352
1353              void   Does not do anything, and can therefore be used  to  pre‐
1354                     vent certain key combinations from ever being sent to the
1355                     server.
1356
1357              pass   Does not do anything. However, unlike void the key  event
1358                     is forwarded to the server.
1359
1360              -      Removes an existing key shortcut if one exists.
1361
1362              refresh_window
1363                     Force the currently focused window to be refreshed.
1364
1365              refresh_all_windows
1366                     Force all windows to be refreshed.
1367
1368              toggle_keyboard_grab
1369                     The  keyboard  will be grabbed / ungrabbed by the current
1370                     window.
1371
1372              toggle_pointer_grab
1373                     The pointer will be grabbed and confined to  the  current
1374                     window.
1375
1376              toggle_fullscreen
1377                     Make the current window fullscreen / unfullscreen.
1378
1379              toggle_debug
1380                     Turn debugging on or off.
1381
1382              scaleup
1383                     Increase the current value of desktop-scaling.
1384
1385              scaledown
1386                     Decrease the current value of desktop-scaling.
1387
1388              scalereset
1389                     Reset the desktop-scaling to its original value.
1390
1391              scalingoff
1392                     Turn off desktop-scaling.
1393
1394              increase_quality
1395                     Increase  the  min-quality  or quality setting (whichever
1396                     one is currently in use).
1397
1398              decrease_quality
1399                     Decrease the min-quality or  quality  setting  (whichever
1400                     one is currently in use).
1401
1402              increase_speed
1403                     Increase the min-speed or speed setting (whichever one is
1404                     currently in use).
1405
1406              decrease_speed
1407                     Decrease the min-speed or speed setting (whichever one is
1408                     currently in use).
1409
1410       --sharing=yes|no|auto
1411              Sharing  allows more than one client to connect to the same ses‐
1412              sion.  This must be enabled on both the server and all  co-oper‐
1413              ating  clients  to function.  When used server-side, the default
1414              value auto allows the clients to decide if they are  willing  to
1415              share  the  session.   When  used client-side, the default value
1416              auto evaluates to no.  To allow sharing to work with unix domain
1417              sockets  (either using local connections or via ssh), you should
1418              create at least one socket in a group accessible  directory.  On
1419              Posix  with  a default configuration, being a member of the xpra
1420              group should be enough to create a socket in /run/xpra. You must
1421              also ensure that the permissions of this socket file allow group
1422              access, see socket-permissions.
1423
1424       --lock=yes|no|auto
1425              Locking allows a client to refuse to hand over the session to  a
1426              new  client.   The  session  may  still  be shared with multiple
1427              clients (see the sharing option), but otherwise the server  will
1428              reject  new  clients.   When used server-side, the default value
1429              auto allows the clients to decide if they want to lock the  ses‐
1430              sion.   When  used client-side, the default value auto evaluates
1431              to no.
1432
1433       --keyboard-sync=yes|no
1434              Normally the key presses and key release events are sent to  the
1435              server  as  they occur so that the server can maintain a consis‐
1436              tent keyboard state.  Disabling synchronization can prevent keys
1437              from  repeating  unexpectedly  on  high latency links but it may
1438              also disrupt applications which  access  the  keyboard  directly
1439              (games, etc.).
1440
1441       --keyboard-raw=yes|no
1442              Tells  the  server  to  process all keyboard input untranslated.
1443              Both the client and the server must be using the  same  type  of
1444              keyboard interface. (ie: both using X11)
1445
1446       --keyboard-layout=LAYOUTSTRING
1447              The  keyboard  layout  is normally detected automatically.  This
1448              option overrides it.
1449
1450       --keyboard-layouts=LAYOUTS
1451              The list of keyboard layouts to enable.
1452
1453       --keyboard-variant=VARIANT
1454              Override for the keyboard layout variant.
1455
1456       --keyboard-variants=VARIANTS
1457              Override for the keyboard layout variants.
1458
1459       --keyboard-options=OPTIONS
1460              Override for the keyboard options sent to the server.
1461
1462       --swap-keys=YES|NO
1463              This option only applies to MacOS clients, it swaps the  command
1464              and control keys and is enabled by default.
1465
1466       --sound-source=PLUGIN
1467              Specifies  the  GStreamer  sound  plugin  used for capturing the
1468              sound stream.  This affects "speaker forwarding" on the  server,
1469              and "microphone" forwarding on the client.  To get a list of op‐
1470              tions use the special value 'help'.   It  is  also  possible  to
1471              specify  plugin options using the form: --sound-source= pulsede‐
1472              vice=device.alsa_input.pci-0000_00_14.2.analog-stereo
1473
1474       --speaker=on|off|disabled    and    --microphone=on|off|disabled|on:DE‐
1475       VICE|off:DEVICE
1476              Sound  input  and  output  forwarding support: on will start the
1477              forwarding as soon as the connection is  established,  off  will
1478              require  the  user to enable it via the menu, disabled will pre‐
1479              vent it from being used and the menu  entry  will  be  disabled.
1480              With  microphone  forwarding,  you  may  also be able to specify
1481              which device to use.
1482
1483       --speaker-codec=CODEC and --microphone-codec=CODEC
1484              Specify the codec(s) to use for sound output (speaker) or  input
1485              (microphone).   This  parameter  can be specified multiple times
1486              and the order in which the codecs are specified defines the pre‐
1487              ferred  codec order.  Use the special value 'help' to get a list
1488              of options.  When unspecified, all the available codecs are  al‐
1489              lowed and the first one is used.
1490
1491       --title=VALUE
1492              Sets  the  text  shown as window title.  The string supplied can
1493              make use of remote metadata placeholders which will be populated
1494              at  runtime with the values from the remote server.  The default
1495              value used is "@title@ on @client-machine@".
1496
1497              The following placeholders are defined:
1498
1499              @title@
1500                     Will be replaced by the remote window's title.
1501
1502              @client-machine@
1503                     Will be replaced by the hostname of the system where  the
1504                     application  is  running,  if provided, the xpra server's
1505                     hostname otherwise.
1506
1507              @server-machine@
1508                     Will be replaced by the hostname of the xpra server.
1509
1510              @server-display@
1511                     Will be replaced by the name of the display on which  the
1512                     application is running.
1513
1514       --border=BORDER
1515              Specifies  the color and size of the border to draw inside every
1516              xpra window.  This can be used to easily distinguish  xpra  win‐
1517              dows running on remote hosts from local windows.  The BORDER can
1518              be specified using standard color names (ie: red, or orange)  or
1519              using the web hexadecimal syntax (ie: #F00 or #FF8C00). The spe‐
1520              cial color name "auto" will derive the  color  from  the  server
1521              target address (the connection string) so that connecting to the
1522              same target should always give the same  color.   You  may  also
1523              specify  the  size  of  the  border in pixels, ie: --border=yel‐
1524              low,10.
1525
1526       --window-icon=FILENAME
1527              Path to the default image which will be used  for  all  windows.
1528              This  icon may be shown in the window's bar, its iconified state
1529              or task switchers.  This depends on the  operating  system,  the
1530              window manage and the application may override this too.
1531
1532       --window-close=ACTION
1533              Choose  what  action  to  take  when the window is closed by the
1534              client.  The following actions can be used:
1535
1536              auto   The client will figure out what is best based on the win‐
1537                     dow  type.  This is the default.  ie: it will use discon‐
1538                     nect shadow sessions, Iforward for seamless windows.
1539
1540              forward
1541                     The event will be forwarded to the server.
1542
1543              ignore Do nothing.
1544
1545              disconnect
1546                     Disconnect from the server.
1547
1548              shutdown
1549                     Shutdown the server.
1550
1551       --desktop-scaling=off|on|auto|VALUE
1552              Desktop scaling allows the windows to be scaled by  the  client.
1553              Downscaling  will  mostly  waste bandwidth, upscaling allows the
1554              window's pixels to be sent over the wire at a lower  resolution,
1555              saving  bandwidth and CPU time.  This option can also be used to
1556              request a specific scaling value.  For best results, use  opengl
1557              client rendering, the other display backends may show visual ar‐
1558              tifacts when scaling.  Note: the scaling may also be adjusted at
1559              runtime through keyboard shortcuts if those are configured.
1560
1561              The desktop-scaling value can take the form:
1562
1563              off    scaling will be disabled
1564
1565              on     scaling will be allowed, but it will start unscaled
1566
1567              auto   scaling will be allowed and a scaling value will be auto‐
1568                     matically chosen if the client's desktop is large (bigger
1569                     desktops will use higher scaling values)
1570
1571              scaling-value
1572                     scaling  will  be enabled and use the given value, speci‐
1573                     fied as a number, fraction or percentage. ie: 2,  3/2  or
1574                     150%.
1575
1576              pair   the scaling will be enabled and use a different value for
1577                     the X and Y axis. ie: 3x2 or 3/2x4/3
1578
1579              desktop-size
1580                     the scaling will be enabled and the server will render to
1581                     the given size. ie: 1600x1200
1582
1583       --tray=yes|no  Enable or disable the system tray.  Not available on OSX
1584       since the dock icon is always shown.
1585
1586       --delay-tray
1587              Waits for the first window  or  notification  to  appear  before
1588              showing the system tray. (posix only)
1589
1590       --tray-icon=FILENAME
1591              Specifies the icon shown in the dock/tray.  By default it uses a
1592              simple default 'xpra' icon.  (On  Microsoft  Windows,  the  icon
1593              must be in ico format.)
1594
1595       --enable-pings
1596              The  client and server will exchange ping and echo packets which
1597              are used to gather latency statistics.  Those statistics can  be
1598              seen using the xpra info command.
1599
1600
1601
1602   Options for attach, stop, info, screenshot, version
1603       --ssh=CMD
1604              When  you  use  an  ssh: address to connect to a remote display,
1605              xpra runs ssh(1) to make the underlying connection. By  default,
1606              it  does  this by running the command "ssh". If your ssh program
1607              is in an unusual location, has an unusual name, or you  want  to
1608              pass  special options to change ssh's behavior, then you can use
1609              the --ssh switch to tell xpra how to run ssh.
1610
1611              For example, if you want to use  arcfour  encryption,  then  you
1612              should run
1613
1614                     xpra attach --ssh="ssh -c arcfour" ssh://frodo/7
1615
1616              Note:  Don't bother to enable ssh compression; this is redundant
1617              with xpra's own compression, and will just waste your CPU.   See
1618              also xpra's --compress switch.
1619
1620              On  MS Windows, where backslashes are used to separate path ele‐
1621              ments and where spaces are often used as part of paths, you need
1622              to    add    quotes    around    paths.   (ie:   ssh="C:\Program
1623              Files\Xpra\Plink.exe" -ssh -agent)
1624
1625
1626       --exit-ssh=yes|no
1627              Choose whether the SSH client process should be forcibly  termi‐
1628              nated  when  xpra disconnects from the server.  If you are using
1629              SSH connection sharing, you may want to avoid stopping  the  SSH
1630              master  process  instance  spawned  by xpra as it may be used by
1631              other SSH sessions.  Note:  the  exit-ssh=no  detaches  the  SSH
1632              process  from  the  terminal which prevents the SSH process from
1633              interacting with the terminal input, this disables the  keyboard
1634              interaction  required for password input, host key verification,
1635              etc..
1636
1637       --remote-xpra=CMD
1638              When connecting to a remote server over ssh, xpra  needs  to  be
1639              able to find and run the xpra executable on the remote host.  If
1640              this executable is in a non-standard location, or requires  spe‐
1641              cial environment variables to be set before it can run, then ac‐
1642              complishing this may be non-trivial.   If  running  xpra  attach
1643              ssh:something fails because it cannot find the remote xpra, then
1644              you can use this option to specify how to run xpra on the remote
1645              host.
1646
1647              That  said, this option should not be needed in normal usage, as
1648              xpra tries quite hard to work around the above problems.  If you
1649              find  yourself  needing  it  often, then that may indicate a bug
1650              that we would appreciate hearing about.
1651
1652
1653   SSL Options
1654       --ssl=on|auto|off|tcp|www
1655              Whether to enable SSL on TCP sockets and for what purpose.   The
1656              TCP sockets will automatically be upgraded to SSL when SSL pack‐
1657              ets are received.
1658
1659              auto   The server will try to guess what  protocol  to  use  for
1660                     each new SSL connection: either xpra's native protocol or
1661                     https / websocket (wss)
1662
1663              tcp    The SSL sockets will only be used for xpra's native  pro‐
1664                     tocol
1665
1666              www    The SSL sockets will only be used for https and websocket
1667                     (wss)
1668       If SSL is enabled, then a ssl-cert is required.  Authentication, if re‐
1669       quired,  will  use  the ssl-auth module specified, and fallback to tcp-
1670       auth or auth unless the value none is specified.
1671
1672       The remaining options mirror the Python ssl module attributes.   Please
1673       refer  to  that documentation and bear in mind that configuring SSL for
1674       security is not trivial, and definitely not just a matter  of  enabling
1675       SSL.  See:  https://docs.python.org/2/library/ssl.html Some options may
1676       not be available with older versions of Python.
1677
1678       Summary: --ssl-key=KEYFILE The key file to use.
1679
1680       --ssl-cert=ERTFILEORDIR
1681              Certificate file, required for server SSL support.
1682
1683       --ssl-protocol=PROTOCOLVERSION
1684              Specifies which version of the SSL protocol to use.
1685
1686       --ssl-ca-certs=CACERTSFILE
1687              The ca_certs file contains a set of concatenated  'certification
1688              authority'  certificates. If a directory is specified, it should
1689              contain the certificates.
1690
1691       --ssl-ca-data=ERTDATA
1692              Certificate data.
1693
1694       --ssl-ciphers=CIPHERS
1695              Sets the available ciphers, it should be a string in the OpenSSL
1696              cipher list format.
1697
1698       --ssl-client-verify-mode=none|optional|required
1699              Whether  to  try  to verify the client's certificates and how to
1700              behave if verification fails.
1701
1702       --ssl-server-verify-mode=none|optional|required
1703              Whether to try to verify the server's certificates  and  how  to
1704              behave if verification fails.
1705
1706       --ssl-verify-flags=FLAGS
1707              The flags for certificate verification operations.
1708
1709       --ssl-check-hostname=yes|no
1710              Whether to match the peer cert's hostname.
1711
1712       --ssl-options=options
1713              Set of SSL options enabled on this context.
1714
1715
1716
1717       ENVIRONMENT
1718
1719       DISPLAY
1720              xpra  start --start-child=... sets this variable in the environ‐
1721              ment of the child to point to the xpra display.
1722
1723              xpra attach, on the other hand, uses this variable to  determine
1724              which display the remote applications should be shown on.
1725
1726              XPRA_PASSWORD  may be used with xpra attach instead of the pass‐
1727              word-file option.
1728
1729

FILES

1731       xpra.conf stores default values for most options.  There  is  a  global
1732       configuration  file  in /etc or /usr/local/etc, and each user may over‐
1733       ride those defaults by creating the file .xpra/xpra.conf.  You can also
1734       split  the  options into multiple files by placing them in a conf.d di‐
1735       rectory with the .conf extension.  Depending on OS  and  version,  xpra
1736       uses  the  directory  ~/.xpra  or  /run/<uid>/xpra to store a number of
1737       files.  (The examples below are given for the display :7.)
1738
1739       ~/.xpra/:7
1740              The unix domain socket that clients  use  to  contact  the  xpra
1741              server, if the system configuration uses this directory.
1742
1743       ~/.xpra/:7.log
1744              When  run  in daemon mode (the default), the xpra server directs
1745              all output to this file.  This includes all debugging output, if
1746              debugging is enabled.
1747
1748       ~/.xpra/run-xpra
1749              A  shell  script that, when run, starts up xpra with the correct
1750              python interpreter, PYTHONPATH, PATH, location of the main  xpra
1751              script,  etc.   Automatically  generated  by  xpra initenv, xpra
1752              start and used by xpra attach (see also the discussion of  --re‐
1753              mote-xpra).
1754

BUGS

1756       Xpra has no test suite.
1757
1758       Xpra does not fully handle all aspects of the X protocol; for instance,
1759       fancy input features like pressure-sensitivity on tablets, some  window
1760       manager hints, and probably other more obscure parts of the X protocol.
1761       It does, however, degrade gracefully,  and  patches  for  each  feature
1762       would be gratefully accepted.
1763
1764       The  xpra  server  allocates an over-large framebuffer when using Xvfb;
1765       this wastes memory.  If the Xvfb does not support RandR this  can  also
1766       cause  applications to misbehave (e.g. by letting menus go off-screen).
1767       This is not a problem when using Xdummy, see the --xvfb= switch for de‐
1768       tails.   Conversely,  if  the framebuffer is ever insufficiently large,
1769       clients will misbehave in other ways (e.g., input events will be misdi‐
1770       rected).
1771

REPORTING BUGS

1773       Send any questions or bugs reports to https://xpra.org/trac/
1774

SEE ALSO

1776       screen(1),
1777
1778
1779
1780                                                                       XPRA(1)
Impressum