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-session
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
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-client=yes|no
936              The server will terminate when the last client disconnects.
937
938       --env=KEY=VALUE
939              Extra environment variables  which  will  only  affect  commands
940              started using fB--start or --start-child.
941
942       --start-new-commands=yes|no
943              Allow  clients to ask the server to execute new commands.  (this
944              can also be used via the control channel)
945
946       --start-via-proxy=yes|no|auto
947              If enabled, the start and start-desktop subcommands will be del‐
948              egated  to  the  system  wide  proxy server instance.  With auto
949              mode, this delegation will only occur if the system  wide  proxy
950              server is found.
951
952       --systemd-run=yes|no|auto
953              Wrap server start commands with systemd-run.
954
955       --systemd-run-args=ARGS
956              Command line arguments passed to systemd-run.
957
958       --use-display=yes|no|auto
959              Use an existing display rather than starting one with xvfb.  You
960              are responsible for starting the  display  yourself.   This  can
961              also be used to rescue an existing display whose xpra server in‐
962              stance crashed or for running xpra against  an  accelerated  X11
963              server.   With auto, xpra will use the existing display if it is
964              found.
965
966       --displayfd=FD
967              The xpra server will write the display number back on this  file
968              descriptor  as a newline-terminated string.  This is most useful
969              when the display number is not specified with the xpra start  or
970              start-desktop subcommands.
971
972       --xvfb=CMD
973              When  starting a seamless server, xpra starts a virtual X server
974              to run the clients on.  If your Xvfb is installed in a funny lo‐
975              cation,  or  you  want  to use some other virtual X server, then
976              this switch allows you to specify how to run  your  preferred  X
977              server executable.  The default value used depends on your plat‐
978              form.  For more information, see: https://xpra.org/Xdummy.html
979
980       --sync-xvfb=DELAY
981              The windows are normally only displayed on the  client(s),  they
982              are  not painted on the virtual display.  Some applications like
983              screen recorders may want to capture the  window  contents,  you
984              can use this option to enable painting with a configurable delay
985              (in milliseconds).  Warning: this extra  painting  is  expensive
986              and quite slow, which is why it is not enabled by default.
987
988       --attach=yes|no|auto
989              Once the server has started, immediately connect a client to it.
990              With the value auto, a client  is  started  for  remote  servers
991              only.  (servers  specified  via  a  network URI) If a display is
992              specified and a server is already running, xpra will not try  to
993              start a new one and it will just attach to it.
994
995
996          Options for start, start-desktop, upgrade, shadow
997
998       --tcp-proxy=HOST:PORT
999              Specifies  the  address  to  which non-xpra packets will be for‐
1000              warded.  This can be used to share the same TCP  port  with  an‐
1001              other TCP servers, usually a web server.  xpra clients will con‐
1002              nect as usual, but any client that does not speak the xpra  pro‐
1003              tocol will be forwarded to the alternative server.
1004
1005
1006       --html=on|off|auto|webrootpath
1007              Respond  to  HTTP requests on the TCP port(s) and local sockets.
1008              This requires at least one TCP or local socket to be  configured
1009              using  the matching bind option.  The auto mode will enable sup‐
1010              port if possible.  By default the server will provide access  to
1011              the  HTML5  client.  You can also specify your own web root path
1012              as argument.
1013
1014       --http-scripts=off|all|SCRIPTS
1015              Enable the builtin web server scripts  that  expose  the  server
1016              status, current active sessions and displays, the list of appli‐
1017              cations and desktop sessions installed.  This can be used by the
1018              client's user interface.
1019
1020
1021       --rfb-upgrade=DELAY
1022              Allows  RFB  clients (ie: VNC) to connect to a plain TCP socket.
1023              If no data is received after DELAY seconds, the server will send
1024              a  RFB  handshake.   This  option  is only applicable to servers
1025              started in start-desktop or shadow modes.
1026
1027
1028       --video-encoders=ENCODERS
1029              Specifies the video encoders to try to load.  By default, all of
1030              them  are loaded, but one may want to specify a more restrictive
1031              list of encoders.  Use the special value 'help' to get a list of
1032              options.  Use the value 'none' to not load any video encoders.
1033
1034
1035       --csc-modules=MODULES
1036              Specifies the colourspace conversion modules to try to load.  By
1037              default, all of them are loaded, but one may want to  specify  a
1038              more  restrictive list of modules.  Use the special value 'help'
1039              to get a list of options.  Use the value 'none' to not load  any
1040              colourspace conversion modules.
1041
1042
1043       --socket-permissions=ACCESS-MODE
1044              Specifies the file permissions on the server's unix domain sock‐
1045              ets.  Defaults to 600. This is ignored when  mmap-group  is  en‐
1046              abled.
1047
1048
1049
1050   Options for start, start-desktop, upgrade and attach
1051       --encryption=CIPHER
1052              Specifies  the  cipher  to  use for securing the connection from
1053              prying eyes.  This option requires the use of the  --encryption-
1054              keyfile option.  The only ciphers supported at present are:
1055
1056              AES    For  servers, this allows the client to choose any of the
1057                     modes it wants to use.  For clients, this is an alias for
1058                     AES-CBC  and  using  a  more specific mode should be pre‐
1059                     ferred.
1060
1061              AES-CBC
1062                     AES in cipher block chaining mode
1063
1064              AES-GCM
1065                     AES in galois/counter mode
1066
1067              AES-CFB
1068                     AES in cipher feedback mode
1069
1070              AES-CTR
1071                     AES in counter mode
1072
1073       If the client requests encryption it will be used by  both  the  client
1074       and  server  for all communication after the initial password verifica‐
1075       tion, but only if the server supports this  feature  too.   Note:  this
1076       feature has not been extensively reviewed and as it is it should not be
1077       considered safe from determined attackers.
1078
1079       --tcp-encryption=CIPHER
1080              Just like the encryption switch, except this one only applies to
1081              TCP sockets (sockets defined using the bind-tcp switch).
1082
1083       --encryption-keyfile=FILENAME
1084              Specifies  the  key  to use with the encryption cipher specified
1085              with --encryption.  The client and server must use the same key‐
1086              file contents.
1087
1088       --tcp-encryption-keyfile=FILENAME
1089              Just  like  the  encryption-keyfile switch, except this one only
1090              applies to TCP  sockets  (sockets  defined  using  the  bind-tcp
1091              switch).
1092
1093       --idle-timeout=IDLETIMEOUT
1094              The  connection  will be terminated if there is no user activity
1095              (mouse clicks or key presses) for the given amount of  time  (in
1096              seconds). Use the value 0 to disable this timeout.
1097
1098       --server-idle-timeout=IDLETIMEOUT
1099              The  server will exit if there are no active connections for the
1100              given amount of time (in seconds).  Use the value 0  to  disable
1101              this timeout.
1102
1103       --clipboard-filter-file=FILENAME
1104              Name  of  a  file  containing regular expressions, any clipboard
1105              data that matches one  of  these  regular  expressions  will  be
1106              dropped.  Note: at present this only applies to copying from the
1107              machine where this option is used, not to it.
1108
1109       --dpi=VALUE
1110              The 'dots per inch' value that client applications should try to
1111              honour.   This numeric value should be in the range 10 to 500 to
1112              be useful.  Many applications will only  read  this  value  when
1113              starting up, so connecting to an existing session started with a
1114              different DPI value may not have the desired effect.
1115
1116       --pixel-depth=VALUE
1117              When starting a server, this switch controls the bits per  pixel
1118              of  the  virtual framebuffer. Possible values: 0 (auto), 16, 24,
1119              30.  When starting a client, this switch  controls  the  picture
1120              rendering  with  the  opengl backend: values higher than 24 will
1121              enable deep color, the value 24 enables regular true color  ren‐
1122              dering.  Use the value 0 to let the client decide if the render‐
1123              ing will benefit from using deep color. (this is only  supported
1124              on some Posix clients) Other values should not be used.
1125
1126       --cursors=yes|no
1127              Enable  or  disable  forwarding of custom application mouse cur‐
1128              sors.  Client applications may change the mouse  cursor  at  any
1129              time, which will cause the new cursor's pixels to be sent to the
1130              client each time.  This disables the feature.
1131
1132       --notifications=yes|no
1133              Enable or disable forwarding of  system  notifications.   System
1134              notifications  require  the xpra server to have its own instance
1135              of a dbus daemon, if it is missing a warning will be printed  on
1136              startup.   This switch disables the feature entirely, and avoids
1137              the warning.
1138
1139       --input-method=METHOD
1140              Specify which input method to configure.  This sets a number  of
1141              environment  variables  which should be honoured by applications
1142              started with the start-child option.
1143
1144              The following METHODs are currently supported:
1145
1146              none   Disable input methods completely and prevent it from  in‐
1147                     terfering with keyboard input. This is the default.
1148
1149              keep   Keeps  the environment unchanged. You are responsible for
1150                     ensuring it is correct.
1151
1152              xim    Enables the X Input Method.
1153
1154              IBus   Enables the Intelligent Input Bus.
1155
1156              SCIM   Enables the Smart Common Input Method.
1157
1158              uim    Enables the Universal Input Method.
1159
1160       Any other value will also be set up, but will trigger a warning.
1161
1162
1163       --xsettings=auto|yes|no
1164              Enable or disable xsettings synchronization.  Xsettings are only
1165              forwarded  from  posix  clients connecting to real posix servers
1166              (not shadows).  In 'auto' mode,  only  seamless  servers  enable
1167              xsettings synchronization.
1168
1169       --system-tray=yes|no
1170              Enable or disable forwarding of system tray icons.  This feature
1171              requires client support and may not be available  on  all  plat‐
1172              forms.
1173
1174       --bell=yes|no
1175              Enable or disable forwarding of the system bell.
1176
1177       --webcam=yes|no
1178              Enable or disable webcam forwarding.
1179
1180       --mousewheel=on|off|invert|invert-x|invert-y|invert-z
1181              Mouse  wheel  handling:  can be used to disable mouse wheel for‐
1182              warding using the value no, or to invert some or all  axes:  in‐
1183              vert-all, invert-x, invert-y, invert-z.
1184
1185
1186       --remote-logging=both|all|send|receive|no
1187              Remote logging is always initiated by the client, but the server
1188              can restrict which direction log messages are allowed to flow.
1189
1190              both   The log output is both forwarded  and  sent  locally  (to
1191                     stdout, stderr or a log file).
1192
1193              allow  Used  by  the server to allow both send and receive, when
1194                     sending the log output it will no longer be recorded  lo‐
1195                     cally.
1196
1197              send   Used  by the client to send its log output to the server.
1198                     Used by the server to allow clients to request  log  for‐
1199                     warding.
1200
1201              receive
1202                     Used  by  the client to request that the server sends its
1203                     log output to the client.  Used by the  server  to  allow
1204                     clients to forward their logging.
1205
1206              no     Remote logging is disabled.
1207
1208       --av-sync=yes|no
1209              Enable  or  disable audio-video synchronization.  The video data
1210              will be delayed so that it is displayed in sync with the  audio.
1211              Note:  this  only applies to video regions, either auto-detected
1212              via the builtin heuristics or specified using  the  dbus  inter‐
1213              face.
1214
1215
1216
1217   Options for attach
1218       --modal-windows=yes|no
1219              Honour  modal  windows.   This may have undesirable side effects
1220              when multiple applications are forwarded through the  same  xpra
1221              server:  modal  windows  will be made modal for all the applica‐
1222              tions forwarded by xpra rather than  just  the  one  application
1223              which owns that window.
1224
1225       --headerbar=auto|no|force
1226              Replaces the window's standard title bar with a custom one which
1227              is used to give access to xpra specific window  controls.   This
1228              feature can have side effects and it is incompatible with OpenGL
1229              acceleration on MS Windows.
1230
1231       --password-file=FILENAME
1232              Supply the password to be used for connecting to a  server  that
1233              uses authentication. See auth, tcp-auth, ssl-auth and vsock-auth
1234              for details.  Alternatively, you may use the XPRA_PASSWORD envi‐
1235              ronment variable.
1236
1237       --opengl=(yes|no|auto)[:backend]
1238              Use  OpenGL accelerated rendering on the client.  The default is
1239              to detect if the graphics card and drivers are  supported  (auto
1240              mode),  but one can also disable OpenGL (no) or force it enabled
1241              (yes).  On some platforms, it is also possible to specify  which
1242              backends  should be used, only gtk and native are currently sup‐
1243              ported and only on X11  platforms.   ie:  opengl=yes:native,  or
1244              opengl=auto:gtk,native.
1245
1246       --webcam=yes|no|/dev/deviceXXX|DEVICEID
1247              Enable  or  disable webcam forwarding.  The webcam device to use
1248              can also be specified.
1249
1250
1251       -zLEVEL, --compress=LEVEL
1252              Select the level of compression xpra will use when  transmitting
1253              data  over the network.  With the lz4 and lzo compressors, there
1254              are only two possible values: 0 (meaning no compression)  and  1
1255              (compression  enabled).  The zlib compressor supports values be‐
1256              tween 0 (meaning no compression) and  9,  inclusive.  It  should
1257              only be used when lz4 and lzo are not available.
1258
1259              This  compression  is  not used on pixel data (except when using
1260              the rgb encoding).
1261
1262       --quality=VALUE
1263              This option sets a fixed image compression quality for lossy en‐
1264              codings  (jpeg,  webp,  h264/h265  and  vp8/vp9).  First, one of
1265              those lossy encodings must be enabled with  --encoding  or  when
1266              using  the default auto mode.  Values range from 1 (lowest qual‐
1267              ity, high compression -  generally  unusable)  to  100  (highest
1268              quality,  low  compression).  Specify a value of zero to let the
1269              system tune the quality dynamically to achieve  the  best  band‐
1270              width usage possible.  It is usually best not to use this option
1271              and use min-quality instead.
1272
1273       --min-quality=MIN-QUALITY
1274              This option sets the minimum encoding quality allowed  when  the
1275              quality option is set to automatic mode. See quality above.
1276
1277       --speed=SPEED
1278              This  option  sets  the  encoding speed, from 1 (slowest) to 100
1279              (fastest).  Slower compresses better and  will  use  less  band‐
1280              width,  faster will give better latency as long as there is suf‐
1281              ficient bandwidth.  The system normally uses a  variable  speed,
1282              this option forces a fixed speed setting to be used instead.  It
1283              is usually best not to use this option  and  use  min-speed  in‐
1284              stead.
1285
1286       --min-speed=MIN-SPEED
1287              This  option  sets  the  minimum encoding speed allowed when the
1288              speed option is set to automatic mode. See speed above.
1289
1290       --auto-refresh-delay=DELAY
1291              This option sets a delay after which the windows  are  automati‐
1292              cally  refreshed  using  a  lossless frame if their contents had
1293              been updated using a lossy encoding previously.  The delay is  a
1294              floating-point number and is in seconds.  This option is enabled
1295              by default with a delay of 0.25 seconds.  This  option  is  only
1296              relevant when using a lossy encoding.
1297
1298       --shortcut-modifiers=MODIFIERS
1299              Defines  the  default  shortcut  modifiers  required by the key-
1300              shortcuts, these modifiers can then be referred to  as  #.   The
1301              default  value  is  'auto' which evaluates to Meta+Shift on most
1302              platforms.
1303
1304       --key-shortcut=KEY:ACTION
1305              Can be specified multiple times to add multiple  key  shortcuts.
1306              These  keys  will be caught by the client and trigger the action
1307              specified and the key presses will  not  be  passed  on  to  the
1308              server.
1309
1310              The KEY specification may include keyboard modifiers in the form
1311              [modifier+]*key, for example: Shift+F10 or Shift+Control+B.  You
1312              can  refer  to  the  shorcut-modifers  option value using #, ie:
1313              #+F1.
1314
1315              Shortcuts defined on the command line are added to  the  builtin
1316              default  shortcuts.   To  clear  the list of shortcuts, use key-
1317              shortcut=clear and define your shortcuts after this one.
1318
1319              Some of the actions may allow  arguments  (ie:  the  log  action
1320              does), in which case they are specified in the usual programming
1321              style syntax: ACTION(ARG1, ARG2, etc)
1322              String arguments must be quoted (both single and  double  quotes
1323              are supported) and numeric arguments must not be quoted.  Beware
1324              the the parenthesis and quotes must usually be escaped when used
1325              from    a    shell    command   line.    Example:   --key-short‐
1326              cut=Meta+Shift+F7:log\(\'hello\'\)
1327
1328              The following ACTIONs are currently defined:
1329
1330              quit   Disconnect the xpra client.
1331
1332              log("MESSAGE")
1333                     Sends MESSAGE to the log.
1334
1335              show_session_info[("TabName")]
1336                     Shows the session information window. The  optional  Tab‐
1337                     Name allows the information tab shown to be selected. Use
1338                     the value help to get the list of options.
1339
1340              show_menu
1341                     Shows the menu normally found in the system tray.
1342
1343              show_start_new_command
1344                     Shows the start new command dialog.
1345
1346              magic_key
1347                     Placeholder which can be used by some client toolkits.
1348
1349              void   Does not do anything, and can therefore be used  to  pre‐
1350                     vent certain key combinations from ever being sent to the
1351                     server.
1352
1353              pass   Does not do anything. However, unlike void the key  event
1354                     is forwarded to the server.
1355
1356              -      Removes an existing key shortcut if one exists.
1357
1358              refresh_window
1359                     Force the currently focused window to be refreshed.
1360
1361              refresh_all_windows
1362                     Force all windows to be refreshed.
1363
1364              toggle_keyboard_grab
1365                     The  keyboard  will be grabbed / ungrabbed by the current
1366                     window.
1367
1368              toggle_pointer_grab
1369                     The pointer will be grabbed and confined to  the  current
1370                     window.
1371
1372              toggle_fullscreen
1373                     Make the current window fullscreen / unfullscreen.
1374
1375              toggle_debug
1376                     Turn debugging on or off.
1377
1378              scaleup
1379                     Increase the current value of desktop-scaling.
1380
1381              scaledown
1382                     Decrease the current value of desktop-scaling.
1383
1384              scalereset
1385                     Reset the desktop-scaling to its original value.
1386
1387              scalingoff
1388                     Turn off desktop-scaling.
1389
1390              increase_quality
1391                     Increase  the  min-quality  or quality setting (whichever
1392                     one is currently in use).
1393
1394              decrease_quality
1395                     Decrease the min-quality or  quality  setting  (whichever
1396                     one is currently in use).
1397
1398              increase_speed
1399                     Increase the min-speed or speed setting (whichever one is
1400                     currently in use).
1401
1402              decrease_speed
1403                     Decrease the min-speed or speed setting (whichever one is
1404                     currently in use).
1405
1406       --sharing=yes|no|auto
1407              Sharing  allows more than one client to connect to the same ses‐
1408              sion.  This must be enabled on both the server and all  co-oper‐
1409              ating  clients  to function.  When used server-side, the default
1410              value auto allows the clients to decide if they are  willing  to
1411              share  the  session.   When  used client-side, the default value
1412              auto evaluates to no.  To allow sharing to work with unix domain
1413              sockets  (either using local connections or via ssh), you should
1414              create at least one socket in a group accessible  directory.  On
1415              Posix  with  a default configuration, being a member of the xpra
1416              group should be enough to create a socket in /run/xpra. You must
1417              also ensure that the permissions of this socket file allow group
1418              access, see socket-permissions.
1419
1420       --lock=yes|no|auto
1421              Locking allows a client to refuse to hand over the session to  a
1422              new  client.   The  session  may  still  be shared with multiple
1423              clients (see the sharing option), but otherwise the server  will
1424              reject  new  clients.   When used server-side, the default value
1425              auto allows the clients to decide if they want to lock the  ses‐
1426              sion.   When  used client-side, the default value auto evaluates
1427              to no.
1428
1429       --keyboard-sync=yes|no
1430              Normally the key presses and key release events are sent to  the
1431              server  as  they occur so that the server can maintain a consis‐
1432              tent keyboard state.  Disabling synchronization can prevent keys
1433              from  repeating  unexpectedly  on  high latency links but it may
1434              also disrupt applications which  access  the  keyboard  directly
1435              (games, etc.).
1436
1437       --keyboard-raw=yes|no
1438              Tells  the  server  to  process all keyboard input untranslated.
1439              Both the client and the server must be using the  same  type  of
1440              keyboard interface. (ie: both using X11)
1441
1442       --keyboard-layout=LAYOUTSTRING
1443              The  keyboard  layout  is normally detected automatically.  This
1444              option overrides it.
1445
1446       --keyboard-layouts=LAYOUTS
1447              The list of keyboard layouts to enable.
1448
1449       --keyboard-variant=VARIANT
1450              Override for the keyboard layout variant.
1451
1452       --keyboard-variants=VARIANTS
1453              Override for the keyboard layout variants.
1454
1455       --keyboard-options=OPTIONS
1456              Override for the keyboard options sent to the server.
1457
1458       --swap-keys=YES|NO
1459              This option only applies to MacOS clients, it swaps the  command
1460              and control keys and is enabled by default.
1461
1462       --sound-source=PLUGIN
1463              Specifies  the  GStreamer  sound  plugin  used for capturing the
1464              sound stream.  This affects "speaker forwarding" on the  server,
1465              and "microphone" forwarding on the client.  To get a list of op‐
1466              tions use the special value 'help'.   It  is  also  possible  to
1467              specify  plugin options using the form: --sound-source= pulsede‐
1468              vice=device.alsa_input.pci-0000_00_14.2.analog-stereo
1469
1470       --speaker=on|off|disabled    and    --microphone=on|off|disabled|on:DE‐
1471       VICE|off:DEVICE
1472              Sound  input  and  output  forwarding support: on will start the
1473              forwarding as soon as the connection is  established,  off  will
1474              require  the  user to enable it via the menu, disabled will pre‐
1475              vent it from being used and the menu  entry  will  be  disabled.
1476              With  microphone  forwarding,  you  may  also be able to specify
1477              which device to use.
1478
1479       --speaker-codec=CODEC and --microphone-codec=CODEC
1480              Specify the codec(s) to use for sound output (speaker) or  input
1481              (microphone).   This  parameter  can be specified multiple times
1482              and the order in which the codecs are specified defines the pre‐
1483              ferred  codec order.  Use the special value 'help' to get a list
1484              of options.  When unspecified, all the available codecs are  al‐
1485              lowed and the first one is used.
1486
1487       --title=VALUE
1488              Sets  the  text  shown as window title.  The string supplied can
1489              make use of remote metadata placeholders which will be populated
1490              at  runtime with the values from the remote server.  The default
1491              value used is "@title@ on @client-machine@".
1492
1493              The following placeholders are defined:
1494
1495              @title@
1496                     Will be replaced by the remote window's title.
1497
1498              @client-machine@
1499                     Will be replaced by the hostname of the system where  the
1500                     application  is  running,  if provided, the xpra server's
1501                     hostname otherwise.
1502
1503              @server-machine@
1504                     Will be replaced by the hostname of the xpra server.
1505
1506              @server-display@
1507                     Will be replaced by the name of the display on which  the
1508                     application is running.
1509
1510       --border=BORDER
1511              Specifies  the color and size of the border to draw inside every
1512              xpra window.  This can be used to easily distinguish  xpra  win‐
1513              dows running on remote hosts from local windows.  The BORDER can
1514              be specified using standard color names (ie: red, or orange)  or
1515              using the web hexadecimal syntax (ie: #F00 or #FF8C00). The spe‐
1516              cial color name "auto" will derive the  color  from  the  server
1517              target address (the connection string) so that connecting to the
1518              same target should always give the same  color.   You  may  also
1519              specify  the  size  of  the  border in pixels, ie: --border=yel‐
1520              low,10.
1521
1522       --window-icon=FILENAME
1523              Path to the default image which will be used  for  all  windows.
1524              This  icon may be shown in the window's bar, its iconified state
1525              or task switchers.  This depends on the  operating  system,  the
1526              window manage and the application may override this too.
1527
1528       --window-close=ACTION
1529              Choose  what  action  to  take  when the window is closed by the
1530              client.  The following actions can be used:
1531
1532              auto   The client will figure out what is best based on the win‐
1533                     dow  type.  This is the default.  ie: it will use discon‐
1534                     nect shadow sessions, Iforward for seamless windows.
1535
1536              forward
1537                     The event will be forwarded to the server.
1538
1539              ignore Do nothing.
1540
1541              disconnect
1542                     Disconnect from the server.
1543
1544              shutdown
1545                     Shutdown the server.
1546
1547       --desktop-scaling=off|on|auto|VALUE
1548              Desktop scaling allows the windows to be scaled by  the  client.
1549              Downscaling  will  mostly  waste bandwidth, upscaling allows the
1550              window's pixels to be sent over the wire at a lower  resolution,
1551              saving  bandwidth and CPU time.  This option can also be used to
1552              request a specific scaling value.  For best results, use  opengl
1553              client rendering, the other display backends may show visual ar‐
1554              tifacts when scaling.  Note: the scaling may also be adjusted at
1555              runtime through keyboard shortcuts if those are configured.
1556
1557              The desktop-scaling value can take the form:
1558
1559              off    scaling will be disabled
1560
1561              on     scaling will be allowed, but it will start unscaled
1562
1563              auto   scaling will be allowed and a scaling value will be auto‐
1564                     matically chosen if the client's desktop is large (bigger
1565                     desktops will use higher scaling values)
1566
1567              scaling-value
1568                     scaling  will  be enabled and use the given value, speci‐
1569                     fied as a number, fraction or percentage. ie: 2,  3/2  or
1570                     150%.
1571
1572              pair   the scaling will be enabled and use a different value for
1573                     the X and Y axis. ie: 3x2 or 3/2x4/3
1574
1575              desktop-size
1576                     the scaling will be enabled and the server will render to
1577                     the given size. ie: 1600x1200
1578
1579       --tray=yes|no  Enable or disable the system tray.  Not available on OSX
1580       since the dock icon is always shown.
1581
1582       --delay-tray
1583              Waits for the first window  or  notification  to  appear  before
1584              showing the system tray. (posix only)
1585
1586       --tray-icon=FILENAME
1587              Specifies the icon shown in the dock/tray.  By default it uses a
1588              simple default 'xpra' icon.  (On  Microsoft  Windows,  the  icon
1589              must be in ico format.)
1590
1591       --enable-pings
1592              The  client and server will exchange ping and echo packets which
1593              are used to gather latency statistics.  Those statistics can  be
1594              seen using the xpra info command.
1595
1596
1597
1598   Options for attach, stop, info, screenshot, version
1599       --ssh=CMD
1600              When  you  use  an  ssh: address to connect to a remote display,
1601              xpra runs ssh(1) to make the underlying connection. By  default,
1602              it  does  this by running the command "ssh". If your ssh program
1603              is in an unusual location, has an unusual name, or you  want  to
1604              pass  special options to change ssh's behavior, then you can use
1605              the --ssh switch to tell xpra how to run ssh.
1606
1607              For example, if you want to use  arcfour  encryption,  then  you
1608              should run
1609
1610                     xpra attach --ssh="ssh -c arcfour" ssh://frodo/7
1611
1612              Note:  Don't bother to enable ssh compression; this is redundant
1613              with xpra's own compression, and will just waste your CPU.   See
1614              also xpra's --compress switch.
1615
1616              On  MS Windows, where backslashes are used to separate path ele‐
1617              ments and where spaces are often used as part of paths, you need
1618              to    add    quotes    around    paths.   (ie:   ssh="C:\Program
1619              Files\Xpra\Plink.exe" -ssh -agent)
1620
1621
1622       --exit-ssh=yes|no
1623              Choose whether the SSH client process should be forcibly  termi‐
1624              nated  when  xpra disconnects from the server.  If you are using
1625              SSH connection sharing, you may want to avoid stopping  the  SSH
1626              master  process  instance  spawned  by xpra as it may be used by
1627              other SSH sessions.  Note:  the  exit-ssh=no  detaches  the  SSH
1628              process  from  the  terminal which prevents the SSH process from
1629              interacting with the terminal input, this disables the  keyboard
1630              interaction  required for password input, host key verification,
1631              etc..
1632
1633       --remote-xpra=CMD
1634              When connecting to a remote server over ssh, xpra  needs  to  be
1635              able to find and run the xpra executable on the remote host.  If
1636              this executable is in a non-standard location, or requires  spe‐
1637              cial environment variables to be set before it can run, then ac‐
1638              complishing this may be non-trivial.   If  running  xpra  attach
1639              ssh:something fails because it cannot find the remote xpra, then
1640              you can use this option to specify how to run xpra on the remote
1641              host.
1642
1643              That  said, this option should not be needed in normal usage, as
1644              xpra tries quite hard to work around the above problems.  If you
1645              find  yourself  needing  it  often, then that may indicate a bug
1646              that we would appreciate hearing about.
1647
1648
1649   SSL Options
1650       --ssl=on|auto|off|tcp|www
1651              Whether to enable SSL on TCP sockets and for what purpose.   The
1652              TCP sockets will automatically be upgraded to SSL when SSL pack‐
1653              ets are received.
1654
1655              auto   The server will try to guess what  protocol  to  use  for
1656                     each new SSL connection: either xpra's native protocol or
1657                     https / websocket (wss)
1658
1659              tcp    The SSL sockets will only be used for xpra's native  pro‐
1660                     tocol
1661
1662              www    The SSL sockets will only be used for https and websocket
1663                     (wss)
1664       If SSL is enabled, then a ssl-cert is required.  Authentication, if re‐
1665       quired,  will  use  the ssl-auth module specified, and fallback to tcp-
1666       auth or auth unless the value none is specified.
1667
1668       The remaining options mirror the Python ssl module attributes.   Please
1669       refer  to  that documentation and bear in mind that configuring SSL for
1670       security is not trivial, and definitely not just a matter  of  enabling
1671       SSL.  See:  https://docs.python.org/2/library/ssl.html Some options may
1672       not be available with older versions of Python.
1673
1674       Summary: --ssl-key=KEYFILE The key file to use.
1675
1676       --ssl-cert=ERTFILEORDIR
1677              Certificate file, required for server SSL support.
1678
1679       --ssl-protocol=PROTOCOLVERSION
1680              Specifies which version of the SSL protocol to use.
1681
1682       --ssl-ca-certs=CACERTSFILE
1683              The ca_certs file contains a set of concatenated  'certification
1684              authority'  certificates. If a directory is specified, it should
1685              contain the certificates.
1686
1687       --ssl-ca-data=ERTDATA
1688              Certificate data.
1689
1690       --ssl-ciphers=CIPHERS
1691              Sets the available ciphers, it should be a string in the OpenSSL
1692              cipher list format.
1693
1694       --ssl-client-verify-mode=none|optional|required
1695              Whether  to  try  to verify the client's certificates and how to
1696              behave if verification fails.
1697
1698       --ssl-server-verify-mode=none|optional|required
1699              Whether to try to verify the server's certificates  and  how  to
1700              behave if verification fails.
1701
1702       --ssl-verify-flags=FLAGS
1703              The flags for certificate verification operations.
1704
1705       --ssl-check-hostname=yes|no
1706              Whether to match the peer cert's hostname.
1707
1708       --ssl-options=options
1709              Set of SSL options enabled on this context.
1710
1711
1712
1713       ENVIRONMENT
1714
1715       DISPLAY
1716              xpra  start --start-child=... sets this variable in the environ‐
1717              ment of the child to point to the xpra display.
1718
1719              xpra attach, on the other hand, uses this variable to  determine
1720              which display the remote applications should be shown on.
1721
1722              XPRA_PASSWORD  may be used with xpra attach instead of the pass‐
1723              word-file option.
1724
1725

FILES

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

BUGS

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

REPORTING BUGS

1769       Send any questions or bugs reports to https://xpra.org/trac/
1770

SEE ALSO

1772       screen(1),
1773
1774
1775
1776                                                                       XPRA(1)
Impressum