OnWorks favicon

xpra - Online in the Cloud

Run xpra in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command xpra that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



xpra - viewer for remote, persistent X applications


xpra start [:DISPLAY] | xpra start ssh:HOST:DISPLAY [--start-child=CHILD] ...
[--env=KEY=VALUE] [--exit-with-children] [--daemon=yes|no] [--use-display]
[--xvfb=CMD] [--video-encoders=ENCODERS] [--csc-modules=MODULES]
[--pulseaudio=yes|no] [--pulseaudio-command=SERVER START COMMAND]
[--clipboard=yes|no] [--cursors=yes|no] [--notifications=yes|no] [--xsettings=yes|no]
[--system-tray=yes|no] [--bell=yes|no] [--remote-logging=yes|no]
[--sound-source=PLUGIN] [--speaker=yes|no] [--speaker-codec=CODEC]
[--microphone=yes|no] [--microphone-codec=CODEC] [--sharing=yes|no]
[--bind-tcp=[HOST]:PORT] [--encryption=CIPHER] [--encryption-keyfile=FILENAME]
[--auth=MODULE] [--tcp-auth=MODULE] [--password-file=FILENAME]
[--idle-timeout=IDLETIMEOUT] [--clipboard-filter-file=FILENAME] [--dpi=VALUE]
[--input-method=METHOD] [--socket-dir=DIR] [--socket-permissions=ACCESS-MODE]
[--mmap-group] [--tcp-proxy=HOST:PORT] [--html=on|off|[HOST]:PORT]
| --compress=LEVEL] [--mmap=yes|no] [--windows=yes|no] [--clipboard=yes|no]
[--cursors=yes|no] [--notifications=yes|no] [--xsettings=yes|no]
[--system-tray=yes|no] [--bell=yes|no] [--remote-logging=yes|no]
[--keyboard-sync=yes|no] [--tray=yes|no] [--sound-source=PLUGIN]
[--speaker=on|off|disabled] [--speaker-codec=CODEC] [--microphone=on|off|disabled]
[--microphone-codec=CODEC] [--delay-tray] [--encoding=ENCODING]
[--scaling=on|offSCALING] [--opengl=yes|no|auto] [--quality=QUALITY]
[--min-quality=MIN-QUALITY] [--speed=SPEED] [--min-speed=MIN-SPEED]
[--auto-refresh-delay=DELAY] [--key-shortcut=KEY:ACTION] [--readonly=yes|no]
[--sharing=yes|no] [--title=VALUE] [--client-toolkit=TOOLKIT] [--border=BORDER]
[--window-layout=LAYOUT] [--window-icon=FILENAME] [--tray-icon=FILENAME] [--ssh=CMD]
[--exit-ssh=yes|no] [--remote-xpra=CMD] [--password-file=FILENAME] [--dpi=VALUE]
[--mouse-polling=VALUE] [--socket-dir=DIR] [--pings=yes|no] [--encryption=CIPHER]
xpra shadow [:DISPLAY] | ssh:[USER@]HOST[:DISPLAY] [--start=CMD] ...
[--start-child=CHILD] ... [--env=KEY=VALUE] ... [--exit-with-children]
[--daemon=yes|no] [--clipboard=yes|no] [--notifications=yes|no] [--bell=yes|no]
[--sound-source=PLUGIN] [--speaker=on|off|disabled] [--speaker-codec=CODEC]
[--microphone=on|off|disabled] [--microphone-codec=CODEC] [--bind-tcp=[HOST]:PORT]
[--auth=MODULE] [--tcp-auth=MODULE] [--password-file=FILENAME]
[--idle-timeout=IDLETIMEOUT] [--socket-dir=DIR] [--socket-permissions=ACCESS-MODE]
[--mmap-group] [--tcp-proxy=HOST:PORT] [--html=on|off|[HOST]:PORT]
xpra proxy :DISPLAY
xpra stop [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:[USER@]HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra exit [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:[USER@]HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra detach [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra screenshot filename [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra version [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra info [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:HOST:PORT] [--ssh=CMD]
[--remote-xpra=CMD] [--socket-dir=DIR]
xpra control (:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:HOST:PORT) command [arguments..]
[--ssh=CMD] [--remote-xpra=CMD] [--socket-dir=DIR]
xpra initenv [--socket-dir=DIR]
xpra list [--socket-dir=DIR]
xpra upgrade :[DISPLAY] [...any options accepted by xpra start...]


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 is rootless: i.e., applications forwarded 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 latency-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.

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


Xpra supports 3 types of connection strings:

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

TCP mode uses port numbers and not display numbers. If multiple displays are available
through a single TCP port (using a proxy server), then one can also specify the display

SSH mode allows most common connection options to be specified using the connection
string. Further options can be specified using the --ssh command line option.

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.

The password is only actually used on Microsoft Windows.


xpra start :7
Start an xpra server using display number :7.

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

DISPLAY=:7 firefox
Start firefox running inside the xpra server. Run this on the host where xpra was
started or in terminal forwarded by xpra. No window will appear until you attach
with xpra attach.

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

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 && DISPLAY=:7 screen
Start an xpra server and a screen(1) session. If any of the applications inside
screen attempt to use X, they will be directed to the xpra server.


Understanding the basic idea of displays is critical to using xpra successfully.

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 (perhaps confusingly) its "display". In the common case of a
desktop machine 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 $DISPLAY.

Xpra faces a similar problem — there may be multiple xpra servers running 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 associated 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.

If your xvfb command supports the -displayfd argument, you may set the displayfd option to
true in your /etc/xpra/xpra.conf file (or your user's ~/.xpra/xpra.conf) and then 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.

Otherwise, when starting an xpra server, you must 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 already 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.

If the xpra server was given the --bind-tcp option when started then you can also connect
to it using a display of the form tcp:HOST:PORT. (Notice that ssh: takes an optional
display number, while tcp: takes a required port number.)


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 attach
This command attaches to a running xpra server, and forwards any applications 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

xpra info
Queries the server for version, status and statistics. Note: older servers may not
support this feature.

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 commands may support a "help" mode

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

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

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

xpra list
This command finds all xpra servers that have been started by the current 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 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 unauthenticated 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.


General options
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 debugging.

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.

Enable or disable the forwarding of windows. This is usually the primary use for
xpra and should be enabled.

Enable or disable clipboard synchronization. If used on the server, no clients
will be able to use clipboard synchronization at all. If used on the client, only
this particular connection will ignore clipboard data from the server.

Enable or disable the starting of a pulseaudio server with the session.

Specifies the pulseaudio command to use to start the pulseaudio server, unless
disabled with pulseaudio=no.

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

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 environment).

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 zlib or lz4, 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 graphical applications, it
compresses better than jpeg and is reasonably fast except at high

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

vp8 lossy video encoding which always uses colour subsampling. Fast at encoding
and decoding.

vp9 Far too slow at encoding, avoid.

h264 Currently 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 or vp8), some of the smaller screen
updates will be sent using one of the other non-video encodings.

How much automatic window downscaling should be used, from 1 (rarely) to 100
(aggressively), 0 to disable. Window scaling is normally used with large windows
(especially full screen windows) to try to maintain a decent framerate. Window
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 bandwidth.

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

Location where to write and look for the Xpra socket files. Defaults to "~/.xpra".
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
on all following commands, for xpra to work with the open sessions. Mixing
different socket-dir options is not recommended.

By specifying a shared directory this can be coupled with the mmap-group or
socket-permissions option to connect Xpra sessions across user accounts.

Options for start, upgrade, proxy and shadow
By default, the xpra server puts itself into the background, i.e. 'daemonizes', and
redirects its output to a log file. This prevents that behavior (useful mostly for

Enable or disable the publication of new sessions via mDNS.

Specifies the authentication module to use. This can be used to secure sockets in
a different way from the --encryption 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

fail always fails authentication, useful for testing

file checks the password against the file specified using password-file switch or
data provided via the XPRA_PASSWORD environment variable. They can either
contain a single password, in which case it will be used for all usernames,
or a list of user credentials of the form (one per line):

pam validates the username and password using the PAM system

win32 validates the username and password using Microsoft Windows authentication

sys chooses the most appropriate system authentication module automatically
(either pam or win32)

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

Options for start, upgrade

After starting the server, runs the command CMD using the default 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 children. --start-child=CMD
Identical to --start, except the commands are taken into account by

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

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 terminate itself when the last of them has exited.

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 instance crashed.

When starting the server, xpra starts a virtual X server to run the clients on. By
default, this is 'Xvfb'. If your Xvfb is installed in a funny location, 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 is: Xvfb
+extension Composite -screen 0 3840x2560x24+32 -nolisten tcp -noreset -auth

This can also be used to specify Xdummy as an alternative to Xvfb, this requires
Xorg server version 1.12 or later and the dummy driver version 0.3.5 or later. For
more information, see: https://xpra.org/Xdummy.html

Options for start, upgrade, shadow

The xpra server always listens for connections on a local Unix domain socket, and
supports local connections with the :7-style display address, and remote
connections with the ssh:frodo:7-style display address. If you want, it can also
listen for connections on a raw TCP socket. This behavior is enabled with
--bind--tcp. If the host portion is omitted, then (localhost) will be
used. If you wish to accept connections on all interfaces, pass for the
host portion.

Using this switch without using the auth option is not recommended, and is a major
security risk (especially when passing! Anyone at all may connect to this
port and access your session. Use it only if you have special needs, and
understand the consequences of your actions.

Specifies the address to which non-xpra packets will be forwarded. This can be
used to share the same TCP port with another TCP servers, usually a web server.
xpra clients will connect as usual, but any client that does not speak the xpra
protocol will be forwarded to the alternative server.

Takes care of setting up a web server for the html5 client. This automatically
configures a tcp-proxy pointing to the web server it starts. If the port is not
specified, one is chosen automatically. You may want to specify a port number or
at least ensure that firewall restrictions are in place, though web servers are
usually public. This requires websockify to be installed and a single tcp port to
be configured using bind-tcp.

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

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.

--mmap-group Sets the mmap file's gid to match the socket file's gid and sets the
mmap file's permissions to 660. This is necessary to share the mmap file across
user accounts.

Specifies the permissions on the server socket. Defaults to 600. This is ignored
when mmap-group is enabled.

Options for start, upgrade and attach

This allows sessions to be secured with a password stored in a text file. You
should use this if you use the --bind-tcp option. If this is used on the server,
it will reject any client connections that do not provide the same password value.
Instead of using this option, password itself can be provided via the XPRA_PASSWORD
environment variable.

Specifies the cipher to use for securing the connection from prying eyes. This is
only really useful with the --bind-tcp option. This option requires the use of the
--encryption-keyfile option or the XPRA_ENCRYPTION_KEY environment variable. 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
password 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 attackers.

Specifies the key to use with the encryption cipher specified with --encryption.
The client and server must use the same keyfile contents. Instead of using this
option, the key can be provided via the XPRA_ENCRYPTION_KEY environment variable.

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 the

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.

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.

How often to poll the mouse position when the cursor is not hovering over one of
our windows, this is measured in seconds. If you do not wish the server to be able
to have a rough overview of your mouse movements, or if you simply wish to disable
the feature, use the special value '0'.

Enable or disable forwarding of custom application mouse cursors. 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.

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.

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

The following METHODs are currently supported:

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

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

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.

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

Enable or disable forwarding of system tray icons. This feature requires client
support and may not be available on all platforms.

Enable or disable forwarding of the system bell.

Allow the client to forward its log output to the server.

Options for attach
-zLEVEL, --compress=LEVEL
Select the level of zlib compression xpra will use when transmitting data over the
network. Higher levels of compression transmit less data over the network, but use
more CPU power. Valid options are between 0 (meaning no compression) and 9,
inclusive. Higher levels take progressively more CPU while giving diminishing
returns in terms of actual compression achieved; the default is 3, which gives a
reasonable trade-off in general. If lz4 compression is available, it will be
enabled when the level is set to 1, lz4 compresses a lot less than zlib but it is
also much faster.

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

This option sets a fixed image compression quality for lossy encodings (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
unusable) 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

This option sets the minimum encoding quality allowed when the quality option is
set to automatic mode.

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.

This option sets the minimum encoding speed allowed when the speed option is set to
automatic mode.

This option sets a delay after which the windows are automatically refreshed using
a lossless frame. The delay is a floating-point number and is in seconds. This
option is enabled by default with a delay of 1 second. This option is only
relevant when using a lossy encoding with a quality lower than 95%.

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 to the server.

The KEY specification may include keyboard modifiers in the form [modifier+]*key,
for example: Shift+F10 or Shift+Control+B

If no shortcuts are defined on the command line, the following default one will be
used: Meta+Shift+F4:quit

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-

The following ACTIONs are currently defined:

quit Disconnect the xpra client.

Sends MESSAGE to the log.

Shows the session information window. The optional TabName allows the
information tab shown to be selected. Use the value help to get the list of

Shows the start new command dialog.

Placeholder which can be used by some window layouts.

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

Force the currently focused window to be refreshed.

Force all windows to be refreshed.

Read only mode prevents all keyboard and mouse activity from being sent to the

Sharing allows more than one client to connect to the same session. This must be
enabled on both the server and all co-operating clients to function.

Normally the key presses and key release events are sent to the server as they
occur so that the server can maintain a consistent 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,

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 options use the special value 'help'. It is also
possible to specify plugin options using the form: --sound-source=pulse

--speaker=on|off|disabled and --microphone=on|off|disabled
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 prevent it from being used and the menu entry will be disabled.

--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 preferred codec order. Use the special value 'help' to get a
list of options. When unspecified, all the available codecs are allowed and the
first one is used.

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:

Will be replaced by the remote window's title.

Will be replaced by the remote server's hostname.

Specifies the client toolkit to use. This changes the user interface toolkit used
to draw the windows and may affect the availability of other features. The 'gtk2'
toolkit is the one with the most features. Use the special value 'help' to get a
list of options.

Specifies the color and size of the border to draw inside every xpra window. This
can be used to easily distinguish xpra windows 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 special
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:

Specifies how main windows are drawn, this can be used to add widgets or use custom
code. Use the special value 'help' to get a list of options. Each client toolkit
may or may not provide different window layouts.

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.

Enable or disable the system tray. Not available on OSX since the dock icon is
always shown.

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

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

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

Choose whether the SSH client process should be forcibly terminated 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..

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 special environment variables to be set before it can run,
then accomplishing 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.


xpra start --start-child=... sets this variable in the environment 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.

XPRA_PASSWORD Can be used to specify the password (or user and password list) as an
alternative to a password file. If --password-file is also specified, this
environment variable is ignored.

XPRA_ENCRYPTION_KEY Can be used to specify the encryption key to use if encryption
is enabled. Specifying the key on its own does not enable encryption. If
--encryption-keyfile is also specified, this environment variable is ignored.

Use xpra online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Asuswrt-Merlin is a third party
    firmware for select Asus wireless
    routers. Based on the Asuswrt firmware
    developed by Asus, it brings tweaks, new
    features and ...
    Download Asuswrt-Merlin
  • 2
    Atom is a text editor that's
    modern, approachable and full-featured.
    It's also easily customizable- you
    can customize it to do anything and be
    able to ...
    Download Atom
  • 3
    Osu! is a simple rhythm game with a well
    thought out learning curve for players
    of all skill levels. One of the great
    aspects of Osu! is that it is
    Download Osu!
  • 4
    LIBPNG: PNG reference library
    LIBPNG: PNG reference library
    Reference library for supporting the
    Portable Network Graphics (PNG) format.
    Audience: Developers. Programming
    Language: C. This is an application that
    can also...
    Download LIBPNG: PNG reference library
  • 5
    Metal detector based on  RP2040
    Metal detector based on RP2040
    Based on Raspberry Pi Pico board, this
    metal detector is included in pulse
    induction metal detectors category, with
    well known advantages and disadvantages.
    Download Metal detector based on RP2040
  • 6
    PAC Manager
    PAC Manager
    PAC is a Perl/GTK replacement for
    SecureCRT/Putty/etc (linux
    ssh/telnet/... gui)... It provides a GUI
    to configure connections: users,
    passwords, EXPECT regula...
    Download PAC Manager
  • More »

Linux commands