dwww Home | Manual pages | Find package

XPRA(1)                     General Commands Manual                    XPRA(1)

NAME
       xpra - viewer for remote, persistent X applications

SYNOPSIS
       xpra  start  [CONNECTIONSTRING] | xpra start-desktop [CONNECTIONSTRING]
            [OPTIONS..]
       xpra attach [CONNECTIONSTRING] [OPTIONS..]
       xpra shadow [CONNECTIONSTRING] [OPTIONS..]
       xpra proxy [:DISPLAY] [OPTIONS..]
       xpra stop | xpra exit | xpra detach | xpra screenshot filename  |  xpra
            version  |  xpra  info  [CONNECTIONSTRING] | xpra top [CONNECTION-
            STRING] [OPTIONS..]
       xpra  control  [CONNECTIONSTRING]  command  [arguments..]   [--ssh=CMD]
            [--remote-xpra=CMD] [--socket-dir=DIR] [--socket-dirs=DIRS]
       xpra initenv [--socket-dir=DIR]
       xpra list [--socket-dir=DIR]
       xpra list-windows [--socket-dir=DIR]
       xpra showconfig [OPTIONS..]
       xpra showsetting [SETTING1..]
       xpra list-mdns
       xpra upgrade [:DISPLAY] [...any options accepted by xpra start...]
       xpra upgrade-desktop [:DISPLAY] [...any options accepted by xpra start-
            desktop...]

DESCRIPTION
       Xpra is a tool which allows you to run X programs — usually on a remote
       host  — and then direct their display to your local machine, disconnect
       from these programs, and reconnect from the same  or  another  machine,
       all without losing any state.  It differs from standard X forwarding in
       that it allows disconnection and reconnection  without  disrupting  the
       forwarded  application;  it differs from VNC and similar remote display
       technologies in that xpra can run  rootless:  i.e.,  applications  for-
       warded by xpra appear on your desktop as normal windows managed by your
       window manager, rather than being all  "trapped  in  a  box  together".
       Xpra also uses a custom protocol that is self-tuning and relatively la-
       tency-insensitive, and thus is usable over network connections that are
       too  slow  or  unreliable  for standard X forwarding.  Xpra can also be
       used to shadow an existing X11 display, or in desktop mode where it be-
       haves more like VNC.

       By  default  the Xpra server announces available sessions (username and
       display number) via mDNS to the local network. Use mdns=no  to  disable
       it.

CONNECTION STRINGS
       Xpra  supports many types of connection strings (some may require extra
       packages to be installed):

   :DISPLAY
       Local displays: this is the simplest form and is  only  valid  for  the
       current local displays of the current user.

   tcp://[USERNAME@]HOST:PORT[/DISPLAY]
       TCP  mode  uses  port numbers and not display numbers. If multiple dis-
       plays are available through a  single  TCP  port  (ie:  using  a  proxy
       server), then one can also specify the display number.

   ssl://[USERNAME@]HOST:PORT[/DISPLAY]
       SSL adds a secure socket layer on top of the TCP mode.

   vsock://[USERNAME[:PASSWORD]@]HOST:PORT
       Almost identical to the TCP mode, but using AF_VSOCK for transport.

   ws://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
       Connect using websocket protocol.

   wss://[USERNAME[:PASSWORD]@]HOST:PORT/[DISPLAY]
       Connect using secure websocket protocol. (websocket with SSL)

   ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]/[DISPLAY][?QUERYSTRING]
       Connect using secure shell. (SSH)

       Further  options  can be specified using the --ssh command line option.
       The   QUERYSTRING   can   be   used   to   specify   an   ssh    proxy:
       ?proxy=ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]  xpra  will then es-
       tablish an SSH connection to the specified "proxy" host, and from  that
       host xpra will set up an SSH connection to the xpra server.

       For  backwards  compatibility,  SSH  mode  also  supports  the  syntax:
       ssh:[USERNAME[:PASSWORD]@]HOST:DISPLAY but this form does  not  support
       specifying the SSH port number.  Older versions also used the form pro-
       tocol:host:port, but users are encouraged to move to  a  more  standard
       URI format using :// as separator.

       The password need only be specified when the server authentication mod-
       ule requires it. (ie: often  when  authenticating  against  MS  Windows
       servers, or with multifile and sqlite authentication modules)

EXAMPLES
       xpra start :7
            Start  an  xpra  server using display number :7.  Note: using DIS-
            PLAY=:7 xterm to start applications against a specific display  is
            not  recommended. Always prefer using xpra's --start= command line
            option instead.  See this next example:

       xpra start --start=firefox
            Start an xpra server, choosing a display automatically  and  start
            firefox  on that virtual display.  No window will appear until you
            attach with xpra attach.  The start child commands will inherit an
            environment tailored for running under xpra.

       xpra start ssh://bigbox/7 --start=xterm
            Start an xpra server on bigbox with an xterm in it, and connect to
            it.

       xpra start-desktop --start=xfce4-session
            Start an xfce session in a nested X11 server on  an  automatically
            assigned display number.

       xpra list
            Show a list of xpra servers you have running on the current host.

       xpra list-windows
            Show  a list of xpra servers you have running on the current host,
            including the session name and a list of windows.   (only  if  the
            session can be queried using xpra info)

       xpra list-mdns
            Show a list of xpra servers found via mDNS. (local network)

       xpra showconfig
            Shows  the  configuration  that  would be used with other sub-com-
            mands, taking into account the command line arguments.

       xpra showsetting [SETTING1..]
            Shows the value of a specific configuration setting and which con-
            figuration directory set this value.

       xpra attach :7
            Attach  to  the xpra server that is using local display number :7.
            Any apps running on that server will appear on your screen.

       xpra attach ssh://foo@frodo/7
            Use ssh to attach to the xpra server that is  running  on  machine
            frodo  as user foo and using display :7.  Any apps running on that
            server will appear on your local screen.

       xpra start :7 --start=screen
            Start an xpra server and a screen(1) session.  If any of  the  ap-
            plications  inside  screen attempt to use X, they will be directed
            to the xpra server.

DISPLAYS
       Understanding the basic idea of displays is critical to using xpra suc-
       cessfully.

       The idea comes from standard X.  If you have multiple X servers running
       on the same host, then there has to be some way to distinguish them.  X
       does this by assigning each server a small, unique integer called (per-
       haps confusingly) its "display".  In the common case of a  desktop  ma-
       chine that has only one X server running, that server uses display ":0"
       (or sometimes you'll see ":0.0", which is effectively the same).   When
       an application starts under X, it needs to know how to find the right X
       server to use; it does this by checking the environment variable  $DIS-
       PLAY.

       Xpra  faces a similar problem — there may be multiple xpra servers run-
       ning on the same host, as well as multiple X servers.  It  solves  this
       problem by re-using X's solution — each xpra server has a display asso-
       ciated with it.  This display functions as both an X display (for  when
       xpra  is  talking to X applications) and as an identifier by which xpra
       clients (like xpra attach) can locate the xpra server.

       You may omit the display number when using xpra start: a  display  will
       be  chosen  for  you  automatically.  The display number chosen will be
       shown in the log output, you should also be able to see  it  with  xpra
       list.   On  Microsoft Windows and Mac OSX, the display number should be
       omitted.

       Otherwise, when starting an xpra server, you may want  to  specify  the
       name  of  the  display  to use.  To do this, simply pick any number you
       like and stick a colon in front of it.  For instance :7, :12, and :3117
       are all valid display names.  Just keep in mind that:

       •      Every  X or xpra server that is running on a single machine must
              use a different display name.  If you pick a number that is  al-
              ready in use then xpra will not work.

       •      The  first  few  numbers  (0,  1, 2) are commonly used by real X
              servers.

       •      Everyone who connects to a given machine  using  ssh(1)  with  X
              forwarding enabled will also use a display number; ssh generally
              picks numbers near ten (10, 11, 12, ...).

       When specifying an xpra server to a client program  like  xpra  attach,
       xpra  detach,  xpra stop, xpra exit, xpra version, xpra info, xpra list
       or xpra screenshot then you can use a display of the form  :DISPLAY  to
       refer   to   a   server   on  the  local  host,  or  one  of  the  form
       ssh://[USER@]HOST/DISPLAY to refer to a server on a remote  host;  xpra
       will automatically connect to the remote host using ssh(1).  Generally,
       if you have only one xpra session running on a machine (which  you  can
       verify  by  running  xpra  list on that machine), then you can omit the
       number entirely; xpra attach alone will attach to the lone xpra  server
       on   the   current  machine  regardless  of  its  number,  xpra  attach
       ssh://frodo will similarly attach to the lone xpra session on a  remote
       machine.

       Connecting  using the display number assumes that the client and server
       use the same configuration for socket directories, or at least that the
       client can find at least one of the directories used by the unix domain
       sockets (see bind, socket-dir and socket-dirs).

       If the  xpra  server  was  given  the  --bind-tcp,  --bind-ssl  --bind-
       udp=[HOST]:PORT,  --bind-ws,  --bind-wss  or  --bind-vsock  option when
       started then you can also connect to it using a  display  of  the  form
       tcp://HOST:PORT[/DISPLAY],                   udp://HOST:PORT[/DISPLAY],
       ssl://HOST:PORT[/DISPLAY],                    ws://HOST:PORT[/DISPLAY],
       wss://HOST:PORT[/DISPLAY] or vsock://HOST:PORT[/DISPLAY].

SUBCOMMANDS
   xpra start
       This  command  starts a new xpra server, including any necessary setup.
       (When starting a remote server with the ssh://HOST/DISPLAY syntax,  the
       new session will also be attached.)

   xpra start-desktop
       Starts  a  nested X11 server, all child commands will be started in the
       nested X11 server.

   xpra attach
       This command attaches to a running xpra server, and forwards any appli-
       cations using that server to appear on your current screen.

   xpra detach
       Detaches the given xpra display.

   xpra screenshot
       Takes  a  screenshot  and  saves  it  to the filename specified.  Note:
       screenshots can only be taken when a client is attached.

   xpra version
       Queries the server version and prints it out.  Note: older servers  may
       not support this feature.

   xpra info
       Queries the server for version, status and statistics.

   xpra top
       Shows the server's key health attributes.

   xpra control
       Modify the server at runtime by issuing commands.  The list of commands
       can be obtained by specifying "help" as command.  Some  of  those  com-
       mands may support a "help" mode themselves.

   xpra initenv
       This internal command creates the run-xpra script used with ssh connec-
       tions.

   xpra stop
       This command attaches to a running xpra server, and  requests  that  it
       terminates  immediately.   This generally causes any applications using
       that server to terminate as well.

   xpra exit
       This command attaches to a running xpra server, and  requests  that  it
       terminates immediately.  Unlike xpra stop, the Xvfb process and its X11
       clients (if any) will be left running.

   xpra showconfig
       This commands shows the configuration which would be used given the ar-
       guments provided.  You can also specify as extra arguments the specific
       options that should be displayed, or use the special value all to  dis-
       play  all  the  options  including the ones which are normally not dis-
       played because they are not relevant on the given system.

   xpra list
       This command finds all xpra servers that have been started by the  cur-
       rent user on the current machine, and lists them.

   xpra upgrade
       This  command starts a new xpra server, but instead of creating it from
       scratch, it attaches to another existing server, tells it to exit,  and
       takes  over  managing the applications that it was managing before.  As
       the name suggests, the main use case is to  replace  a  server  running
       against  an  older version of xpra with a newer version, without having
       to restart your session.  Any  currently-running  xpra  attach  command
       will exit and need to be restarted.

   xpra upgrade-desktop
       Same  as  upgrade  but  for servers started using start-desktop.  It is
       possible to upgrade seamless server into  a  desktop  server  and  vice
       versa.

   xpra shadow
       This  command shadows an existing X11 display. If there is only one X11
       display active and its number is below 10, it can be auto-detected.

       Note that this mode of operation uses screenscraping which is far  less
       efficient.  Using  a  video encoder (h264 or vp8) is highly recommended
       for this mode of operation.

   xpra proxy
       This command allows a single server to proxy connections  for  multiple
       others, potentially serving as a load balancing or authentication entry
       point for many sessions.  The proxy server will spawn a new process for
       each  proxy  connection,  this proxy process will create an unauthenti-
       cated new unix domain socket which can be  used  with  the  subcommands
       info, version and stop.

   Important Note
       Some platforms and package managers may choose to only build the client
       and not the server. In this case, only the attach  subcommand  will  be
       available.

OPTIONS
   General options
       --version
              Displays xpra's version number.

       -h, --help
              Displays a summary of command line usage.

       -d FILTER1,FILTER2,..., --debug=FILTER1,FILTER2,...
              Enable  debug logging.  The special value all enables all debug-
              ging.

       --mmap=yes|no|ABSOLUTEFILENAME
              Enable or disable memory mapped pixel data transfer.  By default
              it  is  normally  enabled  automatically  if  the server and the
              client reside on the same filesystem namespace.  This method  of
              data  transfer  offers much lower overheads and reduces both CPU
              consumption and local network traffic.  When attaching, you  can
              also  specify  an absolute path where the mmap file will be cre-
              ated.

       --mmap-group=GROUP
              Sets the mmap file's gid to the group specified,  and  sets  the
              permissions  to  660.   This is necessary to share the mmap file
              across user accounts.  You can also use the special  GROUP  val-
              ues:

              no     Disable the functionality, the mmap file will use the de-
                     fault file permissions and default group ownership.

              SOCKET The group used will be the same one as found on the  unix
                     domain  socket  file  the client connects to.  Obviously,
                     this can only work when connecting to unix  domain  sock-
                     ets.

              auto   Will use the 'xpra' group if the user is a member, other-
                     wise it will fallback to the same behaviour as SOCKET.

       --windows=yes|no
              Enable or disable the forwarding of windows. This is usually the
              primary use for xpra and should be enabled.

       --min-size=WIDTHxHEIGHT
              Sets the minimum size for all decorated windows.

       --max-size=WIDTHxHEIGHT
              Sets the maximum size for all windows.

       --readonly=yes|no
              Read only mode ignores all keyboard and mouse activity.

       --clipboard=yes|no|clipboard-type
              Enable or disable clipboard synchronization.  If disabled on the
              server, no clients will be able to use clipboard synchronization
              at  all.  If turned off on the client, only this particular con-
              nection will ignore clipboard data from the  server.   This  can
              also  be  used  to specify a different clipboard implementation.
              The clipboard types available will vary from platform  to  plat-
              form  and  also  depend on build time environment and options so
              this is best left on auto.  Other clipboard types available  may
              include:

              translated
                     Clipboard  which can translate from one type of selection
                     to another

              GDK    The most complete clipboard implementation, includes full
                     X11 support

              default
                     Fallback clipboard, with limited X11 support

              OSX    OSX specific clipboard

       --clipboard-direction=to-server|to-client|both|disabled
              Choose the direction of the clipboard synchronization.

       --pulseaudio=yes|no
              Enable  or  disable the starting of a pulseaudio server with the
              session.

       --pulseaudio-command=SERVER-START-COMMAND
              Specifies the pulseaudio command to use to start the  pulseaudio
              server, unless disabled with pulseaudio=no.

       --session-name=VALUE
              Sets the name of this session. This value may be used in notifi-
              cations, utilities, tray menu, etc.  Setting this value  on  the
              server  provides  a default value which may be overridden on the
              client.

       --encoding=ENCODING
              This specifies the image encoding to use, there are a number  of
              encodings  supported:  jpeg,  png, png/P, png/L, webp, rgb, vp8,
              vp9, h264 and h265 (some may not be available in  your  environ-
              ment).   The  default  option is auto which allows the server to
              select the best encoding automatically.

              auto   default mode: the built-in  heuristics  will  choose  the
                     most appropriate encoding

              png    compressed and lossless, can be quite slow.

              png/P  compressed  and  lossy:  it  uses a colour palette, which
                     means better compression but still slow.

              png/L  compressed and lossy: grayscale only using a palette.

              rgb    a raw pixel format (lossless) compressed with lz4, lzo or
                     zlib  (see  compressors)  the compression ratio is lower,
                     but it is by far the fastest encoding available.

              webp   can be used in lossy or lossless mode, useful for graphi-
                     cal  applications,  it compresses better than jpeg and is
                     reasonably fast except at high resolutions.

              jpeg   can be useful for graphical applications, it is lossy and
                     usually very fast.

              vp8    lossy  video  encoding  which  always uses colour subsam-
                     pling.  Fast at encoding and decoding.

              vp9    Video encoding which supports  both  lossy  and  lossless
                     modes, available if your ffmpeg library version is recent
                     enough.

              h264   One of the best encoding available: it is fast, efficient
                     and tunable via the quality and speed options.

              h265   Far too slow at encoding, avoid.

       The  default  encoding  which  is  automatically selected if you do not
       specify one will depend on what  options  are  available  on  both  the
       server  and the client: rgb is always available (builtin), jpeg and png
       require the Python Imaging Library, vp8, vp9, webp, h264 and  h265  all
       require  their  respective  shared libraries, as well as the xpra codec
       that uses them.

       Note: when selecting a video encoding (usually h264, vp8  or  vp9),  it
       will only be used if the screen is updating quickly enough, some of the
       smaller screen updates will also be sent using one of  the  other  non-
       video encodings.

       --video-scaling=on|off|SCALING
              How  much  automatic  video  downscaling  should be used, from 1
              (rarely) to 100 (aggressively), 0 to disable.  Video scaling  is
              normally  used  with  video regions or very large windows (espe-
              cially full screen windows) to try to maintain a decent  framer-
              ate.   Video  downscaling  negatively affects visual quality and
              will cause automatic refreshes (if enabled), it is  most  useful
              on  video  content where it saves a considerable amount of band-
              width.

       --socket-dir=DIR
              Location where to write and look for the Xpra socket files.  The
              default  location varies from platform to platform ("~/.xpra" on
              most Posix systems).   If  unspecified,  the  first  value  from
              socket-dirs  will  be  used.  It may also be specified using the
              XPRA_SOCKET_DIR environment variable.

              When using the socket-dir option, it is generally  necessary  to
              specify socket-dir or socket-dirs on all following commands, for
              xpra to work with the open sessions.

              By specifying a shared directory this can be  coupled  with  the
              mmap-group  and  socket-permissions  option to connect Xpra ses-
              sions across user accounts with shared memory acceleration.

       --socket-dirs=DIR
              Specifies the directories where to look for existing sockets  if
              a  specific  one  was not set using socket-dir.  You may specify
              each directory using a new --socket-dirs command line  argument,
              or  joined  together  by  the  path separator (: on Posix).  The
              paths will be expanded.  (ie: --socket-dirs=~/.xpra:/tmp)

       --file-transfer=on|off
              Enable file transfers.

       --open-files=on|off
              This option may be used to allow the remote end to automatically
              open  files  after they have been uploaded.  This may be a secu-
              rity risk if you are using xpra to constrain  what  the  clients
              can execute on the server.

       --forward-xdg-open=on|off
              Intercept  execution  of xdg-open and forward the request to the
              client.

       --open-command=COMMAND
              The command to use for opening files and URLs.

       --bandwidth-limit=BITSPERSECOND
              Restrict bandwidth usage to below the limit given.  The client's
              value  cannot  raise  the limit of the server.  The value may be
              specified using standard units, ie:  1Mbps  or  500K.   In  auto
              mode,  the  client  will set the bandwidth limit value to 80% of
              the maximum speed of the network interface it is using  to  con-
              nect to the server.

   Options for start, start-desktop, upgrade, proxy and shadow
       --daemon=yes|no
              By  default,  the  xpra  server puts itself into the background,
              i.e. 'daemonizes', and redirects its output to a log file.  This
              can  be  used to prevent that behavior (useful mostly for debug-
              ging).

       --resize-display=yes|no
              Resize the virtual display to match the resolution of the client
              currently  connected.  This only applies to the start and start-
              desktop subcommands.

       --fake-xinerama=PATH|auto|no
              Specify the path to the libfakeXinerama.so library which will be
              injected  into  all  the child processes the server starts using
              LD_PRELOAD.  This can also be  disabled  or  set  to  auto:  the
              server  will  then  try to locate the library itself.  This only
              applies to the start subcommand.

       --chdir=DIR
              Change to this directory after daemonizing.

       --uid=UID and --gid=GID
              When launching the server as root, these options can be used  to
              drop privileges to the given UID / GID.

       --pidfile=FILENAME
              Writes  the  server  process ID to this file on startup.  If the
              file has not been replaced, it will be deleted when  the  server
              exits.

       --bind=BIND_LOCATION
              Create a local Unix domain socket (on Unix) or named-pipe (on MS
              Windows) for each bind option specified.

              This option can be specified multiple times to specify  multiple
              socket  locations.  These sockets support local connections with
              the :7-style display address, and remote  connections  with  the
              ssh://frodo/7-style display address.

              Local  sockets  may also process HTTP / Websocket connections if
              the html switch is enabled.

              The location can take the form:

              none   do not create a socket

              auto   backwards  compatible  default  which  uses  the  current
                     socket-dir

              DIRECTORY/
                     create a socket in the directory specified, if the direc-
                     tory does not exist then it will be created - you  should
                     include  the trailing slash to prevent the confusion with
                     the PATH form:

              PATH   create the socket using the path specified

       --bind-tcp=[HOST]:PORT
              Create a TCP socket for each --bind-tcp  option  specified.   If
              the  host portion is omitted, then 127.0.0.1 (localhost) will be
              used.  If you wish to accept connections on all interfaces, pass
              0.0.0.0 for the host portion.

              Using  this switch without using the tcp-auth option is not rec-
              ommended, and is a major security risk (especially when  passing
              0.0.0.0)!   Anyone  at  all  may connect to this port and access
              your session.

              TCP sockets may also process HTTP / Websocket connections if the
              html switch is enabled.  TCP sockets may also be upgraded to SSL
              sockets if the ssl switch is enabled.

       --bind-udp=[HOST]:PORT
              Create a UDP socket for each --bind-udp  option  specified.   If
              the  host portion is omitted, then 127.0.0.1 (localhost) will be
              used.  If you wish to accept connections on all interfaces, pass
              0.0.0.0 for the host portion.

              Using  this switch without using the udp-auth option is not rec-
              ommended, and is a major security risk (especially when  passing
              0.0.0.0)!   Anyone  at  all  may connect to this port and access
              your session.  UDP sessions are trivial  to  hijack  for  anyone
              able  to sniff even just a single packet, it should only be used
              in very specific use-cases, and never over unsecured networks.

       --bind-ws=[HOST]:PORT
              Create an HTTP / Websocket listener.  See bind-tcp for host  re-
              strictions, you should use the auth-ws to secure access.

       --bind-wss=[HOST]:PORT
              Create  an  HTTPS / Secure Websocket listener.  See bind-tcp for
              host restrictions, you should use the auth-wss to secure access.

       --bind-ssl=[HOST]:PORT
              Just like --bind-tcp but for SSL sockets.  See ssl-auth and  the
              other SSL options.

       --bind-rfb=[HOST]:PORT
              Listens  for  RFB  connections on the given port.  These sockets
              are only supported with the start-desktop and shadow modes.

       --bind-vsock=CID:PORT
              Create a VSOCK socket for each --bind-vsock option specified.

       --auth=MODULE[:OPTION=VALUE]
              Specifies the authentication module to use for unix domain sock-
              ets  created  using  the bind switch. Authentication modules can
              validate a username and password against a  variety  of  backend
              modules:

              allow  always  allows  authentication  -  this  is dangerous and
                     should only be used for testing

              fail   always fails authentication, useful for testing

              env    matches against the environment variable specified by the
                     name  option  (which  defaults  to  XPRA_PASSWORD).   ie:
                     --auth=env:name=SOME_OTHER_ENV_VAR_NAME.

              password
                     matches against the password specified  using  the  value
                     option.   ie:  --auth=password:value=YOURPASSWORD.  Note:
                     this command line option may be  exposed  to  other  pro-
                     cesses on the same system.

              file   checks  the  password  against the password data found in
                     the  file  specified  using  the  filename  option.   ie:
                     --auth=file:filename=./password.txt.

                     The contents of this file will be treated as binary data,
                     there are no restrictions on character encodings or  file
                     size.   Beware  of trailing newline characters which will
                     be included in the password data.

              multifile
                     checks the username and password against the file  speci-
                     fied  using  the  filename option.  The file must contain
                     each user credentials on one line of the form:

                     username|password|uid|gid|displays|env_opts|session_opts

                     It is not possible to have  usernames  or  password  that
                     contain  the pipe character | which is used as delimiter,
                     or newlines and carriage returns.  This module is  depre-
                     cated, sqlite should be used instead.

              sqlite

              mysql

              sql    checks the username and password against the sqlite data-
                     base file specified using the filename  option  (for  the
                     sqlite  backend), or the database specified using the uri
                     option (mysql and sql backends).  The authentication will
                     be  processed using the following query (which is config-
                     urable using the password_query option): SELECT  password
                     FROM users WHERE username=(?)  The sessions available for
                     each user will be queried using:  (this  is  configurable
                     using  the  sessions_query option): SELECT uid, gid, dis-
                     plays,  env_options,  session_options  FROM  users  WHERE
                     username=(?)   Multiple  displays  may  be specified as a
                     comma separated list.

              hosts  checks the host using the system's tcp-wrappers  library.
                     (Posix only, and not available on Mac OS) See hosts.allow
                     and hosts.deny for details.

              exec   Executes the command specified using the  command  attri-
                     bute, the arguments to this command are: a description of
                     the access request and the timeout value.  (also  config-
                     urable)  If the command is not specified, the system will
                     try to locate and use the auth_dialog  utility  which  is
                     shipped  with xpra.  The command should return 0 to allow
                     access, any other value will deny access.

              peercred
                     checks the unix  domain  socket  peer  credentials  using
                     SO_PEERCRED.   This  authentication module is only avail-
                     able on some Posix compliant operating systems. This mod-
                     ule  will  verify  that the operating system provides the
                     uid and gid of the process that initiated the connection.
                     Access  can  be restricted by supplying a colon separated
                     list of valid uids and gids that are allowed to  connect.
                     Those  id  values may be specified using numerical values
                     or using the usernames / group  names.   This  module  is
                     different from the others in that it will not require the
                     client to supply a username or password, as those are ig-
                     nored.    Environment  variables  and  pseudo-environment
                     variables may also be used as  values,  eg:  --auth=peer-
                     cred:uid=\$UID:fred,gid=xpra.

              pam    validates the username and password using the PAM system

              win32  validates  the username and password using Microsoft Win-
                     dows authentication (only available on this platform)

              sys    chooses the appropriate system authentication module  au-
                     tomatically (either pam or win32)

              kerberos-password
                     validates  the  username  and password using kerberos au-
                     thentication.  Warning: this module does not use kerberos
                     tickets  and  the  password will be sent in plain text to
                     the server. This should only be used for testing.

              kerberos-ticket
                     validates a kerberos ticket obtained by the client.

              gss    validates a GSS ticket obtained by the client.

              u2f    requests a U2F token from the client.

              ldap   validates the  username  and  password  against  an  LDAP
                     server, using the python-ldap library.

              ldap3  validates  the  username  and  password  against  an LDAP
                     server, using the python ldap3 library.

       --tcp-auth=MODULE
              Just like the auth switch, except this one only applies  to  TCP
              sockets (sockets defined using the bind-tcp switch).

       --udp-auth=MODULE
              Just  like  the tcp-auth switch, except this one only applies to
              UDP sockets (sockets defined using the bind-udp switch).

       --ws-auth=MODULE
              Just like the auth switch, except this one only  applies  to  ws
              sockets:  sockets defined using the bind-ws switch, or TCP sock-
              ets upgraded to websockets. (if the html option is enabled).

       --wss-auth=MODULE
              Just like the auth switch, except this one only applies  to  wss
              sockets:  sockets  defined using the bind-wss switch, ws sockets
              upgraded to SSL (if the ssl option is enabled)  or  TCP  sockets
              upgraded  to SSL and then to wss.  (if both the ssl and html op-
              tions are enabled).

       --ssl-auth=MODULE
              Just like the auth switch, except this one only applies  to  SSL
              sockets: sockets defined using the bind-ssl switch, or TCP sock-
              ets upgraded by ssl=auto or ssl=on.

       --rfb-auth=MODULE
              Authentication module to use for the bind-rfb sockets.

       --vsock-auth=MODULE
              Just like the auth switch, except this one only applies to VSOCK
              sockets (sockets defined using the bind-vsock switch).

       --challenge-handlers=MODULE:options
              Configures  which  challenge handlers are used by the client and
              in which order. This option may be repeated to specify  multiple
              handlers,  which can be useful if the server sends more than one
              authentication challenge.  The default value is: all which  cor-
              responds to: uri,file,env,kerberos,gss,u2f,prompt.

              uri    Use  the  password specified on the connection string, if
                     any.

              file   The filename used to store the password can be  specified
                     using  the filename option.  If this option is not speci-
                     fied, it will fallback to  using  the  password  filename
                     specified with the password-file switch.

              env    Use the password specified using the environment variable
                     specified  using  the  name  option,  which  defaults  to
                     XPRA_PASSWORD if unspecified.

              kerberos
                     Requests a kerberos token for the service specified.

              gss    Requests a gss token for the service specified.

              u2f    Requests a token from a U2F device.

              prompt Prompt  the  user for the value.  Terminal clients prompt
                     using text input, GUI clients use a dialog.

       --min-port=PORT
              The minimum port number allowed when creating UDP and TCP  sock-
              ets.   You  can use a lower value to allow unprivileged users to
              bind to privileged ports when starting sessions via  the  system
              wide proxy server.  The default value is 1024 which is the stan-
              dard value for privileged ports.

       --mdns=yes|no
              Enable or disable the publication of new sessions via mDNS.

       --dbus-launch=COMMAND|no
              Start the session within a dbus-launch context, you can  specify
              the dbus launch command to use, or turn it off completely.  Some
              features may not be available without a dbus context.

       --dbus-proxy=yes|no
              Allows the client to forward dbus calls to the server.

       --dbus-control=yes|no
              Start a dbus server which can  be  used  to  interact  with  the
              server process.

   Options for start, start-desktop, upgrade
       --exec-wrapper=CMD
              A  wrapper  command  which  is  prepended to all start commands.
              Typically, this is used for starting all sub-commands via Virtu-
              alGL.

       --start=CMD
              After  starting  the  server, runs the command CMD using the de-
              fault shell.  The command is run with its $DISPLAY set to  point
              to  the newly-started server.  This option may be given multiple
              times to start multiple commands.

       --start-child=CMD
              Identical to --start, except that the commands  are  taken  into
              account by --exit-with-children.

       --start-after-connect=CMD
              Wait  for  the  first client to connect before starting the com-
              mand.

       --start-child-after-connect=CMD
              Wait for the first client to connect before starting  the  child
              command.  See start-child.

       --start-on-connect=CMD
              Execute this command every time a client connects.

       --start-child-on-connect=CMD
              Execute  this  child  command every time a client connects.  See
              start-child.

       --start-on-last-client-exit=CMD
              Execute this command every time a client disconnects  and  there
              are no other clients left.

       --start-child-on-last-client-exit=CMD
              Execute  this  child command every time a client disconnects and
              there are no other clients left.  See start-child.

       --terminate-children=yes|no
              On server stop, terminate all the child commands that have  been
              started  by  the server. This does not affect server exit.  Most
              child commands are tied to the  display  so  they  are  normally
              forced  to  shutdown  anyway,  but  this gives them more time to
              cleanup properly and can be used  to  stop  background  commands
              that aren't tied to a display.

       --exit-with-children=yes|no
              This option may only be used if --start-child is also given.  If
              it is given, then the xpra server will monitor the status of the
              children started by --start-child, and will automatically termi-
              nate itself when the last of them has exited.

       --exit-with-client=yes|no
              The server will terminate when the last client disconnects.

       --env=KEY=VALUE
              Extra environment variables  which  will  only  affect  commands
              started using fB--start or --start-child.

       --start-new-commands=yes|no
              Allow  clients to ask the server to execute new commands.  (this
              can also be used via the control channel)

       --start-via-proxy=yes|no|auto
              If enabled, the start and start-desktop subcommands will be del-
              egated  to  the  system  wide  proxy server instance.  With auto
              mode, this delegation will only occur if the system  wide  proxy
              server is found.

       --systemd-run=yes|no|auto
              Wrap server start commands with systemd-run.

       --systemd-run-args=ARGS
              Command line arguments passed to systemd-run.

       --use-display
              Use an existing display rather than starting one with xvfb.  You
              are responsible for starting the  display  yourself.   This  can
              also be used to rescue an existing display whose xpra server in-
              stance crashed or for running xpra against  an  accelerated  X11
              server.

       --displayfd=FD
              The  xpra server will write the display number back on this file
              descriptor as a newline-terminated string.  This is most  useful
              when  the display number is not specified with the xpra start or
              start-desktop subcommands.

       --xvfb=CMD
              When starting a seamless server, xpra starts a virtual X  server
              to run the clients on.  If your Xvfb is installed in a funny lo-
              cation, or you want to use some other  virtual  X  server,  then
              this  switch  allows  you to specify how to run your preferred X
              server executable.  The default value used depends on your plat-
              form.  For more information, see: https://xpra.org/Xdummy.html

       --sync-xvfb=DELAY
              The  windows  are normally only displayed on the client(s), they
              are not painted on the virtual display.  Some applications  like
              screen  recorders  may  want to capture the window contents, you
              can use this option to enable painting with a configurable delay
              (in  milliseconds).   Warning:  this extra painting is expensive
              and quite slow, which is why it is not enabled by default.

       --attach=yes|no|auto
              Once the server has started, immediately connect a client to it.
              With  the  value  auto,  a  client is started for remote servers
              only. (servers specified via a network URI)

   Options for start, start-desktop, upgrade, shadow
       --tcp-proxy=HOST:PORT
              Specifies the address to which non-xpra  packets  will  be  for-
              warded.   This  can  be used to share the same TCP port with an-
              other TCP servers, usually a web server.  xpra clients will con-
              nect  as usual, but any client that does not speak the xpra pro-
              tocol will be forwarded to the alternative server.

       --html=on|off|auto|webrootpath
              Respond to HTTP requests on the TCP port(s) and  local  sockets.
              This  requires at least one TCP or local socket to be configured
              using the matching bind option.  The auto mode will enable  sup-
              port  if possible.  By default the server will provide access to
              the HTML5 client.  You can also specify your own web  root  path
              as argument.

       --rfb-upgrade=DELAY
              Allows  RFB  clients (ie: VNC) to connect to a plain TCP socket.
              If no data is received after DELAY seconds, the server will send
              a  RFB  handshake.   This  option  is only applicable to servers
              started in start-desktop or shadow modes.

       --video-encoders=ENCODERS
              Specifies the video encoders to try to load.  By default, all of
              them  are loaded, but one may want to specify a more restrictive
              list of encoders.  Use the special value 'help' to get a list of
              options.  Use the value 'none' to not load any video encoders.

       --csc-modules=MODULES
              Specifies the colourspace conversion modules to try to load.  By
              default, all of them are loaded, but one may want to  specify  a
              more  restrictive list of modules.  Use the special value 'help'
              to get a list of options.  Use the value 'none' to not load  any
              colourspace conversion modules.

       --socket-permissions=ACCESS-MODE
              Specifies the file permissions on the server's unix domain sock-
              ets.  Defaults to 600. This is ignored when  mmap-group  is  en-
              abled.

   Options for start, start-desktop, upgrade and attach
       --encryption=CIPHER
              Specifies  the  cipher  to  use for securing the connection from
              prying eyes.  This option requires the use of the  --encryption-
              keyfile option.  The only cipher supported at present is AES, if
              the client requests encryption it  will  be  used  by  both  the
              client  and server for all communication after the initial pass-
              word verification, but only if the server supports this  feature
              too.   Note:  this feature has not been extensively reviewed and
              as it is it should not be considered safe  from  determined  at-
              tackers.

       --tcp-encryption=CIPHER
              Just like the encryption switch, except this one only applies to
              TCP sockets (sockets defined using the bind-tcp switch).

       --encryption-keyfile=FILENAME
              Specifies the key to use with the  encryption  cipher  specified
              with --encryption.  The client and server must use the same key-
              file contents.

       --tcp-encryption-keyfile=FILENAME
              Just like the encryption-keyfile switch, except  this  one  only
              applies  to  TCP  sockets  (sockets  defined  using the bind-tcp
              switch).

       --idle-timeout=IDLETIMEOUT
              The connection will be terminated if there is no  user  activity
              (mouse  clicks  or key presses) for the given amount of time (in
              seconds). Use the value 0 to disable this timeout.

       --server-idle-timeout=IDLETIMEOUT
              The server will exit if there are no active connections for  the
              given  amount  of time (in seconds).  Use the value 0 to disable
              this timeout.

       --clipboard-filter-file=FILENAME
              Name of a file containing  regular  expressions,  any  clipboard
              data  that  matches  one  of  these  regular expressions will be
              dropped.  Note: at present this only applies to copying from the
              machine where this option is used, not to it.

       --dpi=VALUE
              The 'dots per inch' value that client applications should try to
              honour.  This numeric value should be in the range 10 to 500  to
              be  useful.   Many  applications  will only read this value when
              starting up, so connecting to an existing session started with a
              different DPI value may not have the desired effect.

       --pixel-depth=VALUE
              When  starting a server, this switch controls the bits per pixel
              of the virtual framebuffer. Possible values: 0 (auto),  16,  24,
              30.   When  starting  a client, this switch controls the picture
              rendering with the opengl backend: values higher  than  24  will
              enable  deep color, the value 24 enables regular true color ren-
              dering. Use the value 0 to let the client decide if the  render-
              ing  will benefit from using deep color. (this is only supported
              on some Posix clients) Other values should not be used.

       --cursors=yes|no
              Enable or disable forwarding of custom  application  mouse  cur-
              sors.   Client  applications  may change the mouse cursor at any
              time, which will cause the new cursor's pixels to be sent to the
              client each time.  This disables the feature.

       --notifications=yes|no
              Enable  or  disable  forwarding of system notifications.  System
              notifications require the xpra server to have its  own  instance
              of  a dbus daemon, if it is missing a warning will be printed on
              startup.  This switch disables the feature entirely, and  avoids
              the warning.

       --input-method=METHOD
              Specify  which input method to configure.  This sets a number of
              environment variables which should be honoured  by  applications
              started with the start-child option.

              The following METHODs are currently supported:

              none   Disable  input methods completely and prevent it from in-
                     terfering with keyboard input. This is the default.

              keep   Keeps the environment unchanged. You are responsible  for
                     ensuring it is correct.

              xim    Enables the X Input Method.

              IBus   Enables the Intelligent Input Bus.

              SCIM   Enables the Smart Common Input Method.

              uim    Enables the Universal Input Method.

       Any other value will also be set up, but will trigger a warning.

       --xsettings=yes|no
              Enable or disable xsettings synchronization.  Xsettings are only
              forwarded from posix clients connecting to  real  posix  servers
              (not shadows).

       --system-tray=yes|no
              Enable or disable forwarding of system tray icons.  This feature
              requires client support and may not be available  on  all  plat-
              forms.

       --bell=yes|no
              Enable or disable forwarding of the system bell.

       --webcam=yes|no
              Enable or disable webcam forwarding.

       --mousewheel=on|off|invert|invert-x|invert-y|invert-z
              Mouse  wheel  handling:  can be used to disable mouse wheel for-
              warding or to invert some or all axes.

       --remote-logging=yes|no|both
              Allow the client to forward its log output to the  server.   The
              client  can specify the value both to both send it to the server
              and keep it locally.

       --av-sync=yes|no
              Enable or disable audio-video synchronization.  The  video  data
              will  be delayed so that it is displayed in sync with the audio.
              Note: this only applies to video regions,  either  auto-detected
              via  the  builtin  heuristics or specified using the dbus inter-
              face.

   Options for attach
       --modal-windows=yes|no
              Honour modal windows.  This may have  undesirable  side  effects
              when  multiple  applications are forwarded through the same xpra
              server: modal windows will be made modal for  all  the  applica-
              tions  forwarded  by  xpra  rather than just the one application
              which owns that window.

       --password-file=FILENAME
              Supply the password to be used for connecting to a  server  that
              uses authentication. See auth, tcp-auth, ssl-auth and vsock-auth
              for details.  Alternatively, you may use the XPRA_PASSWORD envi-
              ronment variable.

       --opengl=(yes|no|auto)[:backend]
              Use  OpenGL accelerated rendering on the client.  The default is
              to detect if the graphics card and drivers are  supported  (auto
              mode),  but one can also disable OpenGL (no) or force it enabled
              (yes).  On some platforms, it is also possible to specify  which
              backends  should be used, only gtk and native are currently sup-
              ported and only on X11  platforms.   ie:  opengl=yes:native,  or
              opengl=auto:gtk,native.

       --webcam=yes|no|/dev/deviceXXX|DEVICEID
              Enable  or  disable webcam forwarding.  The webcam device to use
              can also be specified.

       -zLEVEL, --compress=LEVEL
              Select the level of compression xpra will use when  transmitting
              data  over the network.  With the lz4 and lzo compressors, there
              are only two possible values: 0 (meaning no compression)  and  1
              (compression  enabled).  The zlib compressor supports values be-
              tween 0 (meaning no compression) and  9,  inclusive.  It  should
              only be used when lz4 and lzo are not available.

              This  compression  is  not used on pixel data (except when using
              the rgb encoding).

       --quality=VALUE
              This option sets a fixed image compression quality for lossy en-
              codings  (jpeg,  webp,  h264/h265  and  vp8/vp9).  First, one of
              those lossy encodings must be enabled with  --encoding.   Values
              range from 1 (lowest quality, high compression - generally unus-
              able) to 100 (highest  quality,  low  compression).   Specify  a
              value  of zero to let the system tune the quality dynamically to
              achieve the best bandwidth usage possible.  It is  usually  best
              not to use this option and use min-quality instead.

       --min-quality=MIN-QUALITY
              This  option  sets the minimum encoding quality allowed when the
              quality option is set to automatic mode.

       --speed=SPEED
              This option sets the encoding speed.   Slower  compresses  more,
              faster  will  give  better  latency.  The system normally uses a
              variable speed, this option forces a fixed speed setting  to  be
              used instead.  It is usually best not to use this option and use
              min-speed instead.

       --min-speed=MIN-SPEED
              This option sets the minimum encoding  speed  allowed  when  the
              speed option is set to automatic mode.

       --auto-refresh-delay=DELAY
              This  option  sets a delay after which the windows are automati-
              cally refreshed using a lossless frame.  The delay is  a  float-
              ing-point  number  and is in seconds.  This option is enabled by
              default with a delay of 0.25 seconds.  This option is only rele-
              vant when using a lossy encoding.

       --shortcut-modifiers=MODIFIERS
              Defines  the  default  shortcut  modifiers  required by the key-
              shortcuts, these modifiers can then be referred to  as  #.   The
              default  value  is  'auto' which evaluates to Meta+Shift on most
              platforms.

       --key-shortcut=KEY:ACTION
              Can be specified multiple times to add multiple  key  shortcuts.
              These  keys  will be caught by the client and trigger the action
              specified and the key presses will  not  be  passed  on  to  the
              server.

              The KEY specification may include keyboard modifiers in the form
              [modifier+]*key, for example: Shift+F10 or Shift+Control+B.  You
              can  refer  to  the  shorcut-modifers  option value using #, ie:
              #+F1.

              If no shortcuts are defined on the  command  line,  the  default
              builtin list will be used.

              Some  of  the  actions  may  allow arguments (ie: the log action
              does), in which case they are specified in the usual programming
              style syntax: ACTION(ARG1, ARG2, etc)
              String  arguments  must be quoted (both single and double quotes
              are supported) and numeric arguments must not be quoted.  Beware
              the the parenthesis and quotes must usually be escaped when used
              from   a   shell   command    line.     Example:    --key-short-
              cut=Meta+Shift+F7:log\(\'hello\'\)

              The following ACTIONs are currently defined:

              quit   Disconnect the xpra client.

              log("MESSAGE")
                     Sends MESSAGE to the log.

              show_session_info[("TabName")]
                     Shows  the  session information window. The optional Tab-
                     Name allows the information tab shown to be selected. Use
                     the value help to get the list of options.

              show_menu
                     Shows the menu normally found in the system tray.

              show_start_new_command
                     Shows the start new command dialog.

              magic_key
                     Placeholder which can be used by some client toolkits.

              void   Does  not  do anything, and can therefore be used to pre-
                     vent certain key combinations from ever being sent to the
                     server.

              refresh_window
                     Force the currently focused window to be refreshed.

              refresh_all_windows
                     Force all windows to be refreshed.

              toggle_keyboard_grab
                     The  keyboard  will be grabbed / ungrabbed by the current
                     window.

              toggle_pointer_grab
                     The pointer will be grabbed and confined to  the  current
                     window.

              toggle_fullscreen
                     Make the current window fullscreen / unfullscreen.

              toggle_debug
                     Turn debugging on or off.

              scaleup
                     Increase the current value of desktop-scaling.

              scaledown
                     Decrease the current value of desktop-scaling.

              scalereset
                     Reset the desktop-scaling to its original value.

              scalingoff
                     Turn off desktop-scaling.

              increase_quality
                     Increase  the  min-quality  or quality setting (whichever
                     one is currently in use).

              decrease_quality
                     Decrease the min-quality or  quality  setting  (whichever
                     one is currently in use).

              increase_speed
                     Increase the min-speed or speed setting (whichever one is
                     currently in use).

              decrease_speed
                     Decrease the min-speed or speed setting (whichever one is
                     currently in use).

       --sharing=yes|no|auto
              Sharing  allows more than one client to connect to the same ses-
              sion.  This must be enabled on both the server and all  co-oper-
              ating  clients  to function.  When used server-side, the default
              value auto allows the clients to decide if they are  willing  to
              share  the  session.   When  used client-side, the default value
              auto evaluates to no.  To allow sharing to work with unix domain
              sockets  (either using local connections or via ssh), you should
              create at least one socket in a group accessible  directory.  On
              Posix  with  a default configuration, being a member of the xpra
              group should be enough to create a socket in /run/xpra. You must
              also ensure that the permissions of this socket file allow group
              access, see socket-permissions.

       --lock=yes|no|auto
              Locking allows a client to refuse to hand over the session to  a
              new  client.   The  session  may  still  be shared with multiple
              clients (see the sharing option), but otherwise the server  will
              reject  new  clients.   When used server-side, the default value
              auto allows the clients to decide if they want to lock the  ses-
              sion.   When  used client-side, the default value auto evaluates
              to no.

       --keyboard-sync=yes|no
              Normally the key presses and key release events are sent to  the
              server  as  they occur so that the server can maintain a consis-
              tent keyboard state.  Disabling synchronization can prevent keys
              from  repeating  unexpectedly  on  high latency links but it may
              also disrupt applications which  access  the  keyboard  directly
              (games, etc.).

       --keyboard-raw=yes|no
              Tells  the  server  to  process all keyboard input untranslated.
              Both the client and the server must be using the  same  type  of
              keyboard interface. (ie: both using X11)

       --keyboard-layout=LAYOUTSTRING
              The  keyboard  layout  is normally detected automatically.  This
              option overrides it.

       --keyboard-layouts=LAYOUTS
              The list of keyboard layouts to enable.

       --keyboard-variant=VARIANT
              Override for the keyboard layout variant.

       --keyboard-variants=VARIANTS
              Override for the keyboard layout variants.

       --keyboard-options=OPTIONS
              Override for the keyboard options sent to the server.

       --swap-keys=YES|NO
              This option only applies to MacOS clients, it swaps the  command
              and control keys and is enabled by default.

       --sound-source=PLUGIN
              Specifies  the  GStreamer  sound  plugin  used for capturing the
              sound stream.  This affects "speaker forwarding" on the  server,
              and "microphone" forwarding on the client.  To get a list of op-
              tions use the special value 'help'.   It  is  also  possible  to
              specify  plugin options using the form: --sound-source= pulsede-
              vice=device.alsa_input.pci-0000_00_14.2.analog-stereo

       --speaker=on|off|disabled    and    --microphone=on|off|disabled|on:DE-
       VICE|off:DEVICE
              Sound  input  and  output  forwarding support: on will start the
              forwarding as soon as the connection is  established,  off  will
              require  the  user to enable it via the menu, disabled will pre-
              vent it from being used and the menu  entry  will  be  disabled.
              With  microphone  forwarding,  you  may  also be able to specify
              which device to use.

       --speaker-codec=CODEC and --microphone-codec=CODEC
              Specify the codec(s) to use for sound output (speaker) or  input
              (microphone).   This  parameter  can be specified multiple times
              and the order in which the codecs are specified defines the pre-
              ferred  codec order.  Use the special value 'help' to get a list
              of options.  When unspecified, all the available codecs are  al-
              lowed and the first one is used.

       --title=VALUE
              Sets  the  text  shown as window title.  The string supplied can
              make use of remote metadata placeholders which will be populated
              at  runtime with the values from the remote server.  The default
              value used is "@title@ on @client-machine@".

              The following placeholders are defined:

              @title@
                     Will be replaced by the remote window's title.

              @client-machine@
                     Will be replaced by the hostname of the system where  the
                     application  is  running,  if provided, the xpra server's
                     hostname otherwise.

              @server-machine@
                     Will be replaced by the hostname of the xpra server.

              @server-display@
                     Will be replaced by the name of the display on which  the
                     application is running.

       --border=BORDER
              Specifies  the color and size of the border to draw inside every
              xpra window.  This can be used to easily distinguish  xpra  win-
              dows running on remote hosts from local windows.  The BORDER can
              be specified using standard color names (ie: red, or orange)  or
              using the web hexadecimal syntax (ie: #F00 or #FF8C00). The spe-
              cial color name "auto" will derive the  color  from  the  server
              target address (the connection string) so that connecting to the
              same target should always give the same  color.   You  may  also
              specify  the  size  of  the  border in pixels, ie: --border=yel-
              low,10.

       --window-icon=FILENAME
              Path to the default image which will be used  for  all  windows.
              This  icon may be shown in the window's bar, its iconified state
              or task switchers.  This depends on the  operating  system,  the
              window manage and the application may override this too.

       --window-close=ACTION
              Choose  what  action  to  take  when the window is closed by the
              client.  The following actions can be used:

              auto   The client will figure out what is best based on the win-
                     dow  type.  This is the default.  ie: it will use discon-
                     nect shadow sessions, Iforward for seamless windows.

              forward
                     The event will be forwarded to the server.

              ignore Do nothing.

              disconnect
                     Disconnect from the server.

              shutdown
                     Shutdown the server.

       --desktop-scaling=off|on|auto|VALUE
              Desktop scaling allows the windows to be scaled by  the  client.
              Downscaling  will  mostly  waste bandwidth, upscaling allows the
              window's pixels to be sent over the wire at a lower  resolution,
              saving  bandwidth and CPU time.  This option can also be used to
              request a specific scaling value.  For best results, use  opengl
              client rendering, the other display backends may show visual ar-
              tifacts when scaling.  Note: the scaling may also be adjusted at
              runtime through keyboard shortcuts if those are configured.

              The desktop-scaling value can take the form:

              off    scaling will be disabled

              on     scaling will be allowed, but it will start unscaled

              auto   scaling will be allowed and a scaling value will be auto-
                     matically chosen if the client's desktop is large (bigger
                     desktops will use higher scaling values)

              scaling-value
                     scaling  will  be enabled and use the given value, speci-
                     fied as a number, fraction or percentage. ie: 2,  3/2  or
                     150%.

              pair   the scaling will be enabled and use a different value for
                     the X and Y axis. ie: 3x2 or 3/2x4/3

              desktop-size
                     the scaling will be enabled and the server will render to
                     the given size. ie: 1600x1200

       --tray=yes|no  Enable or disable the system tray.  Not available on OSX
       since the dock icon is always shown.

       --delay-tray
              Waits for the first window  or  notification  to  appear  before
              showing the system tray. (posix only)

       --tray-icon=FILENAME
              Specifies the icon shown in the dock/tray.  By default it uses a
              simple default 'xpra' icon.  (On  Microsoft  Windows,  the  icon
              must be in ico format.)

       --enable-pings
              The  client and server will exchange ping and echo packets which
              are used to gather latency statistics.  Those statistics can  be
              seen using the xpra info command.

   Options for attach, stop, info, screenshot, version
       --ssh=CMD
              When  you  use  an  ssh: address to connect to a remote display,
              xpra runs ssh(1) to make the underlying connection. By  default,
              it  does  this by running the command "ssh". If your ssh program
              is in an unusual location, has an unusual name, or you  want  to
              pass  special options to change ssh's behavior, then you can use
              the --ssh switch to tell xpra how to run ssh.

              For example, if you want to use  arcfour  encryption,  then  you
              should run

                     xpra attach --ssh="ssh -c arcfour" ssh://frodo/7

              Note:  Don't bother to enable ssh compression; this is redundant
              with xpra's own compression, and will just waste your CPU.   See
              also xpra's --compress switch.

              On  MS Windows, where backslashes are used to separate path ele-
              ments and where spaces are often used as part of paths, you need
              to    add    quotes    around    paths.   (ie:   ssh="C:\Program
              Files\Xpra\Plink.exe" -ssh -agent)

       --exit-ssh=yes|no
              Choose whether the SSH client process should be forcibly  termi-
              nated  when  xpra disconnects from the server.  If you are using
              SSH connection sharing, you may want to avoid stopping  the  SSH
              master  process  instance  spawned  by xpra as it may be used by
              other SSH sessions.  Note:  the  exit-ssh=no  detaches  the  SSH
              process  from  the  terminal which prevents the SSH process from
              interacting with the terminal input, this disables the  keyboard
              interaction  required for password input, host key verification,
              etc..

       --remote-xpra=CMD
              When connecting to a remote server over ssh, xpra  needs  to  be
              able to find and run the xpra executable on the remote host.  If
              this executable is in a non-standard location, or requires  spe-
              cial environment variables to be set before it can run, then ac-
              complishing this may be non-trivial.   If  running  xpra  attach
              ssh:something fails because it cannot find the remote xpra, then
              you can use this option to specify how to run xpra on the remote
              host.

              That  said, this option should not be needed in normal usage, as
              xpra tries quite hard to work around the above problems.  If you
              find  yourself  needing  it  often, then that may indicate a bug
              that we would appreciate hearing about.

   SSL Options
       --ssl=on|auto|off|tcp|www
              Whether to enable SSL on TCP sockets and for what purpose.   The
              TCP sockets will automatically be upgraded to SSL when SSL pack-
              ets are received.

              auto   The server will try to guess what  protocol  to  use  for
                     each new SSL connection: either xpra's native protocol or
                     https / websocket (wss)

              tcp    The SSL sockets will only be used for xpra's native  pro-
                     tocol

              www    The SSL sockets will only be used for https and websocket
                     (wss)
       If SSL is enabled, then a ssl-cert is required.  Authentication, if re-
       quired,  will  use  the ssl-auth module specified, and fallback to tcp-
       auth or auth unless the value none is specified.

       The remaining options mirror the Python ssl module attributes.   Please
       refer  to  that documentation and bear in mind that configuring SSL for
       security is not trivial, and definitely not just a matter  of  enabling
       SSL.  See:  https://docs.python.org/2/library/ssl.html Some options may
       not be available with older versions of Python.

       Summary: --ssl-key=KEYFILE The key file to use.

       --ssl-cert=ERTFILEORDIR
              Certificate file, required for server SSL support.

       --ssl-protocol=PROTOCOLVERSION
              Specifies which version of the SSL protocol to use.

       --ssl-ca-certs=CACERTSFILE
              The ca_certs file contains a set of concatenated  'certification
              authority'  certificates. If a directory is specified, it should
              contain the certificates.

       --ssl-ca-data=ERTDATA
              Certificate data.

       --ssl-ciphers=CIPHERS
              Sets the available ciphers, it should be a string in the OpenSSL
              cipher list format.

       --ssl-client-verify-mode=none|optional|required
              Whether  to  try  to verify the client's certificates and how to
              behave if verification fails.

       --ssl-server-verify-mode=none|optional|required
              Whether to try to verify the server's certificates  and  how  to
              behave if verification fails.

       --ssl-verify-flags=FLAGS
              The flags for certificate verification operations.

       --ssl-check-hostname=yes|no
              Whether to match the peer cert's hostname.

       --ssl-options=options
              Set of SSL options enabled on this context.

       ENVIRONMENT

       DISPLAY
              xpra  start --start-child=... sets this variable in the environ-
              ment of the child to point to the xpra display.

              xpra attach, on the other hand, uses this variable to  determine
              which display the remote applications should be shown on.

              fIXPRA_PASSWORD  may  be  used  with  xpra attach instead of the
              password-file option.

FILES
       xpra.conf stores default values for most options.  There  is  a  global
       configuration  file  in /etc or /usr/local/etc, and each user may over-
       ride those defaults by creating the file .xpra/xpra.conf.  You can also
       split  the  options into multiple files by placing them in a conf.d di-
       rectory with the .conf extension.  Depending on OS  and  version,  xpra
       uses  the  directory  ~/.xpra  or  /run/<uid>/xpra to store a number of
       files.  (The examples below are given for the display :7.)

       ~/.xpra/:7
              The unix domain socket that clients  use  to  contact  the  xpra
              server, if the system configuration uses this directory.

       ~/.xpra/:7.log
              When  run  in daemon mode (the default), the xpra server directs
              all output to this file.  This includes all debugging output, if
              debugging is enabled.

       ~/.xpra/run-xpra
              A  shell  script that, when run, starts up xpra with the correct
              python interpreter, PYTHONPATH, PATH, location of the main  xpra
              script,  etc.   Automatically  generated  by  xpra initenv, xpra
              start and used by xpra attach (see also the discussion of  --re-
              mote-xpra).

BUGS
       Xpra has no test suite.

       Xpra does not fully handle all aspects of the X protocol; for instance,
       fancy input features like pressure-sensitivity on tablets, some  window
       manager hints, and probably other more obscure parts of the X protocol.
       It does, however, degrade gracefully,  and  patches  for  each  feature
       would be gratefully accepted.

       The  xpra  server  allocates an over-large framebuffer when using Xvfb;
       this wastes memory.  If the Xvfb does not support RandR this  can  also
       cause  applications to misbehave (e.g. by letting menus go off-screen).
       This is not a problem when using Xdummy, see the --xvfb= switch for de-
       tails.   Conversely,  if  the framebuffer is ever insufficiently large,
       clients will misbehave in other ways (e.g., input events will be misdi-
       rected).

REPORTING BUGS
       Send any questions or bugs reports to http://xpra.org/trac/

SEE ALSO
       screen(1), winswitch_applet(1)

                                                                       XPRA(1)

Generated by dwww version 1.15 on Thu Jun 20 14:00:22 CEST 2024.