xpra (1)
Contents
NAME
xpra - viewer for remote, persistent X applicationsSYNOPSIS
-
xpra start :DISPLAY | xpra start ssh:HOST:DISPLAY
[--start-child=CHILD] ...
[--exit-with-children] [--no-daemon]
[--use-display]
[--xvfb=CMD]
[--video-encoders=ENCODERS]
[--csc-modules=MODULES]
[--pulseaudio]
[--no-pulseaudio]
[--pulseaudio-command=SERVER START COMMAND]
[--clipboard]
[--no-clipboard]
[--cursors]
[--no-cursors]
[--notifications]
[--no-notifications]
[--xsettings]
[--no-xsettings]
[--system-tray]
[--no-system-tray]
[--bell]
[--no-bell]
[--speaker]
[--no-speaker]
[--speaker-codec=CODEC]
[--microphone]
[--no-microphone]
[--microphone-codec=CODEC]
[--sharing]
[--no-sharing]
[--bind-tcp=[HOST]:PORT]
[--encryption=CIPHER]
[--encryption-keyfile=FILENAME]
[--auth=MODULE]
[--password-file=FILENAME]
[--clipboard-filter-file=FILENAME]
[--dpi=VALUE]
[--socket-dir=DIR]
[--tcp-proxy=HOST:PORT]
- xpra attach [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:[USER@]HOST:PORT[:DISPLAY]] [-zLEVEL | --compress=LEVEL] [--mmap] [--no-mmap] [--windows] [--no-windows] [--clipboard] [--no-clipboard] [--cursors] [--no-cursors] [--notifications] [--no-notifications] [--xsettings] [--no-xsettings] [--system-tray] [--no-system-tray] [--bell] [--no-bell] [--keyboard-sync] [--no-keyboard-sync] [--tray] [--no-tray] [--speaker] [--no-speaker] [--speaker-codec=CODEC] [--microphone] [--no-microphone] [--microphone-codec=CODEC] [--delay-tray] [--encoding=ENCODING] [--opengl=yes|no|auto] [--quality=QUALITY] [--min-quality=MIN-QUALITY] [--speed=SPEED] [--min-speed=MIN-SPEED] [--auto-refresh-delay=DELAY] [--key-shortcut=KEY:ACTION] [--readwrite] [--readonly] [--sharing] [--no-sharing] [--title=VALUE] [--client-toolkit=TOOLKIT] [--border=BORDER] [--window-layout=LAYOUT] [--window-icon=FILENAME] [--tray-icon=FILENAME] [--ssh=CMD] [--exit-ssh] [--no-exit-ssh] [--remote-xpra=CMD] [--password-file=FILENAME] [--dpi=VALUE] [--socket-dir=DIR] [--mmap-group] [--enable-pings] [--encryption=CIPHER] [--encryption-keyfile=FILENAME]
- xpra shadow [:DISPLAY] | ssh:[USER@]HOST[:DISPLAY] [--start-child=CHILD] ... [--exit-with-children] [--no-daemon] [--clipboard] [--no-clipboard] [--notifications] [--no-notifications] [--bell] [--no-bell] [--speaker] [--no-speaker] [--speaker-codec=CODEC] [--microphone] [--no-microphone] [--microphone-codec=CODEC] [--bind-tcp=[HOST]:PORT] [--auth=MODULE] [--password-file=FILENAME] [--socket-dir=DIR] [--tcp-proxy=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 list [--socket-dir=DIR]
- xpra upgrade :DISPLAY [...any options accepted by xpra start...]
- xpra attach [:DISPLAY | ssh:[USER@]HOST:DISPLAY | tcp:[USER@]HOST:PORT[:DISPLAY]] [-zLEVEL | --compress=LEVEL] [--mmap] [--no-mmap] [--windows] [--no-windows] [--clipboard] [--no-clipboard] [--cursors] [--no-cursors] [--notifications] [--no-notifications] [--xsettings] [--no-xsettings] [--system-tray] [--no-system-tray] [--bell] [--no-bell] [--keyboard-sync] [--no-keyboard-sync] [--tray] [--no-tray] [--speaker] [--no-speaker] [--speaker-codec=CODEC] [--microphone] [--no-microphone] [--microphone-codec=CODEC] [--delay-tray] [--encoding=ENCODING] [--opengl=yes|no|auto] [--quality=QUALITY] [--min-quality=MIN-QUALITY] [--speed=SPEED] [--min-speed=MIN-SPEED] [--auto-refresh-delay=DELAY] [--key-shortcut=KEY:ACTION] [--readwrite] [--readonly] [--sharing] [--no-sharing] [--title=VALUE] [--client-toolkit=TOOLKIT] [--border=BORDER] [--window-layout=LAYOUT] [--window-icon=FILENAME] [--tray-icon=FILENAME] [--ssh=CMD] [--exit-ssh] [--no-exit-ssh] [--remote-xpra=CMD] [--password-file=FILENAME] [--dpi=VALUE] [--socket-dir=DIR] [--mmap-group] [--enable-pings] [--encryption=CIPHER] [--encryption-keyfile=FILENAME]
DESCRIPTION
By default the Xpra server announces available sessions (username and display number) via mDNS to the local network. Use --no-mdns to disable it.
CONNECTION STRINGS
Xpra supports 3 types of connection strings::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 displays are available through a single TCP port (using a proxy server), then one can also specify the display number.ssh/[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]/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.
EXAMPLES
- xpra start :7
- Start an xpra server using display number :7.
- xpra start ssh:bigbox:7 --start-child=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.
DISPLAYS
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.
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.)
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 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 feature.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.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 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.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 debugging.
- --mmap or --no-mmap
- 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.
- --windows or --no-windows
- Enable or disable the forwarding of windows. This is usually the primary use for xpra and should be enabled.
- --clipboard or --no-clipboard
- 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.
- --pulseaudio or --no-pulseaudio
- 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 --no-pulseaudio.
- --session-name=VALUE
- 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.
- --encoding=ENCODING
-
This specifies the image encoding to use,
there are a number of encodings supported:
jpeg, png, webp, rgb, vp8 and h264
(some may not be available in your environment).
png is compressed and lossless.
rgb is a raw pixel format compressed with zlib,
the compression ratio is poor, but it is fast.
webp can be useful for graphical applications, and is
generally better than jpeg. Support for this encoding is currently
broken due to memory leaks - do not use!
jpeg can be useful for graphical applications.
vp8 and h264 are both lossy and are
very efficient with graphics or high framerate applications,
h264 is also very usable with text.
The default encoding 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, webp and h264 require their respective shared libraries.
- --opengl=yes|no|auto
- 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).
- --socket-dir=DIR
-
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 option to connect Xpra sessions across user accounts.
Options for start, upgrade, proxy and shadow
- --no-daemon
- 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 debugging).
- --mdns or --no-mdns
- Enable or disable the publication of new sessions via mDNS.
- --auth=MODULE
-
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 testing
- fail
- always fails authentication, useful for testing
- file
- checks the password against the file specified using password-file switch. The file 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): username|password|uid|gid|displays|env_opts|session_opts
- 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)
-
Options for start, upgrade
- --start-child=CMD
- 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.
- --exit-with-children
- 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-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 instance crashed.
- --xvfb=CMD
-
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 $XAUTHORITY
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
- --bind-tcp=[HOST]:PORT
-
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 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 auth option is not recommended, 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. Use it only if you have special needs, and understand the consequences of your actions.
- --tcp-proxy=HOST:PORT
-
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.
- --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.
Options for start, upgrade and attach
- --password-file=FILENAME
- 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.
- --encryption=CIPHER
- 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. 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.
- --encryption-keyfile=FILENAME
- Specifies the key to use with the encryption cipher specified with --encryption. The client and server must use the same keyfile contents.
- --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.
- --cursors or --no-cursors
- 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.
- --notifications or --no-notifications
- 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.
- --xsettings or --no-xsettings
- Enable or disable xsettings synchronization. Xsettings are only forwarded from posix clients connecting to real posix servers (not shadows).
- --system-tray or --no-system-tray
- Enable or disable forwarding of system tray icons. This feature requires client support and may not be available on all platforms.
- --bell or --no-bell
-
Enable or disable forwarding of the system bell.
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).
- --quality=VALUE
- This option sets a fixed image compression quality lossy encodings (jpeg, webp or h264). 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 - not particularly useful). Specify a value of zero to let the system tune the quality dynamically to achieve the best bandwidth usage possible.
- --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.
- --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 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 (jpeg, webp, h264 or vp8) with a quality lower than 95%.
- --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 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-shortcut=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 TabName allows the information tab shown to be selected. Use the value help to get the list of options.
- magic_key
- 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.
- refresh_window
- Force the currently focused window to be refreshed.
- refresh_all_windows
- Force all windows to be refreshed.
-
- --readonly or --readwrite
- Read only mode prevents all keyboard and mouse activity from being sent to the server.
- --sharing or --no-sharing
- 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.
- --keyboard-sync or --no-keyboard-sync
- 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, etc.).
- --speaker or --no-speaker
- Enable or disable sound output forwarding support. When disabled, application sound output will not be sent to the client(s).
- --microphone or --no-microphone
- Enable or disable sound input forwarding support. Application sound input will not be sent from the client(s) to the server.
- --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.
- --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 remote server's hostname.
-
- --client-toolkit=TOOLKIT
- 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.
- --border=BORDER
- 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: --border=yellow,10.
- --window-layout=LAYOUT
- 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.
- --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.
- --tray or --no-tray
- 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.)
- --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.
- --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
-
xpra attach --ssh="ssh -c arcfour" ssh:frodo:7
-
- --exit-ssh or --no-exit-ssh
- 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 --no-exit-ssh 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 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.
ENVIRONMENT
- DISPLAY
-
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.
FILES
xpra.conf stores default values for most options. There is a global config file in /etc or /usr/local/etc, and each user may override it using .xpra/xpra.conf. Xpra uses the directory ~/.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.
- ~/.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 start and used by xpra attach (see also the discussion of --remote-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, and can cause applications to misbehave (e.g., by letting menus go off-screen). Conversely, if the framebuffer is ever insufficiently large, clients will misbehave in other ways (e.g., input events will be misdirected). This is not a problem when using Xdummy, see the --xvfb= switch for details.
The need to choose display numbers by hand is annoying.
REPORTING BUGS
Send any questions or bugs reports to <antoine@devloop.org.uk>.SEE ALSO
screen(1) winswitch_applet(1)