.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.32)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.if !\nF .nr F 0
.if \nF>0 \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "REMOTE-VIEWER 1"
.TH REMOTE-VIEWER 1 "2016-11-02" "perl v5.24.0" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
remote\-viewer \- a simple remote desktop client
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBremote-viewer\fR [\s-1OPTIONS\s0] \*(-- [\s-1URI\s0]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBremote-viewer\fR is a simple remote display client. The supported
protocols are \s-1SPICE\s0 and \s-1VNC.\s0
.PP
Starting remote-viewer without \s-1URI\s0 will open a simple dialog with an
entry and a list of previously successfully accessed \s-1URI.\s0
.PP
The \s-1URI\s0 can also point to a connection settings file, see the \s-1CONNECTION FILE\s0
section for a description of the format.
.SH "OPTIONS"
.IX Header "OPTIONS"
The following options are accepted when running \f(CW\*(C`remote\-viewer\*(C'\fR:
.IP "\-h, \-\-help" 4
.IX Item "-h, --help"
Display command line help summary
.IP "\-V, \-\-version" 4
.IX Item "-V, --version"
Display program version number
.IP "\-v, \-\-verbose" 4
.IX Item "-v, --verbose"
Display information about the connection
.IP "\-z \s-1PCT,\s0 \-\-zoom=PCT" 4
.IX Item "-z PCT, --zoom=PCT"
Zoom level of the display window in percentage. Range 10\-400.
.IP "\-f, \-\-full\-screen" 4
.IX Item "-f, --full-screen"
Start with the windows maximized to fullscreen.
.Sp
If supported, the remote display will be reconfigured to match the physical
client monitor configuration, by enabling or disabling extra monitors as
necessary. This is currently implemented by the Spice backend only.
.Sp
To specify which client monitors are used in fullscreen mode, see the
\&\s-1CONFIGURATION\s0 section below.
.IP "\-t \s-1TITLE,\s0 \-\-title \s-1TITLE\s0" 4
.IX Item "-t TITLE, --title TITLE"
Set the window title to \fB\s-1TITLE\s0\fR
.IP "\-\-spice\-controller" 4
.IX Item "--spice-controller"
Use the \s-1SPICE\s0 controller to initialize the connection with the \s-1SPICE\s0
server. This option is used by the \s-1SPICE\s0 browser addons to allow web
page to start a client.
.IP "\-\-debug" 4
.IX Item "--debug"
Print debugging information
.IP "\-H \s-1HOTKEYS,\s0 \-\-hotkeys \s-1HOTKEYS\s0" 4
.IX Item "-H HOTKEYS, --hotkeys HOTKEYS"
Set global hotkey bindings. By default, keyboard shortcuts only work when the
guest display widget does not have focus. Any actions specified in \fB\s-1HOTKEYS\s0\fR
will be effective even when the guest display widget has input focus. The format
for \fB\s-1HOTKEYS\s0\fR is <action1>=<key1>[+<key2>][,<action2>=<key3>[+<key4>]].
Key-names are case-insensitive. Valid actions are: toggle-fullscreen,
release-cursor, secure-attention, smartcard-insert and smartcard-remove. The
\&\f(CW\*(C`secure\-attention\*(C'\fR action sends a secure attention sequence (Ctrl+Alt+Del) to
the guest. Examples:
.Sp
.Vb 1
\& \-\-hotkeys=toggle\-fullscreen=shift+f11,release\-cursor=shift+f12
\&
\& \-\-hotkeys=release\-cursor=ctrl+alt
.Ve
.Sp
Note that hotkeys for which no binding is given are disabled. Although the
hotkeys specified here are handled by the client, it is still possible to send
these key combinations to the guest via a menu item.
.IP "\-k, \-\-kiosk" 4
.IX Item "-k, --kiosk"
Start in kiosk mode. In this mode, the application will start in
fullscreen with minimal \s-1UI.\s0 It will prevent the user from quitting or
performing any interaction outside of usage of the remote desktop
session.
.Sp
Note that it can't offer a complete secure solution by itself. Your
kiosk system must have additional configuration and security settings
to lock down the \s-1OS.\s0 In particular, you must configure or disable the
window manager, limit the session capabilities, use some
restart/watchdog mechanism, disable \s-1VT\s0 switching etc.
.IP "\-\-kiosk\-quit <never|on\-disconnect>" 4
.IX Item "--kiosk-quit <never|on-disconnect>"
By default, when kiosk mode is enabled, virt-viewer will remain open
when the connection to the remote server is terminated. By setting
kiosk-quit option to \*(L"on-disconnect\*(R" value, virt-viewer will quit
instead.
.SH "HOTKEY"
.IX Header "HOTKEY"
A key binding combination is described by a series of key strings
separated by '+' that must be pressed together in order to activate
the associated action.
.PP
It must be composed of modifiers (shift, ctrl or alt) and a
non-modifier key. For example, \*(L"shift+f11\*(R".
.SH "CONNECTION FILE"
.IX Header "CONNECTION FILE"
\&\fBremote-viewer\fR connection file is of \s-1INI\s0 file format, with a
mandatory [virt\-viewer] group and \*(L"type\*(R" key.
.SS "Example"
.IX Subsection "Example"
Opening a file with the following content will start remote-viewer in
fullscreen and connect to the host \*(L"betsiboka\*(R" using the \s-1SPICE\s0
protocol:
.PP
.Vb 5
\& [virt\-viewer]
\& type=spice
\& host=betsiboka
\& port=5900
\& fullscreen=1
.Ve
.SS "Key list"
.IX Subsection "Key list"
.ie n .IP """version"" (string)" 4
.el .IP "\f(CWversion\fR (string)" 4
.IX Item "version (string)"
If remote-viewer version number isn't greater or equal to the required
version, an error is raised with the expected version.
.Sp
The version format accepted is a list of integers separated by '.'. It can
be followed by a dash '\-' and an additional build number with the same format.
.Sp
Version comparison is done by comparing each integer from the list one by
one. If any of the component is not a number, the version comparison will fail
and consider that the 2 versions are considered to be the same.
.ie n .IP """versions"" (osid:version list)" 4
.el .IP "\f(CWversions\fR (osid:version list)" 4
.IX Item "versions (osid:version list)"
This is a list of osid:version couples separated by ';'. osid is an arbitrary string, version is
a version number in the same format as in the 'version' field. A given couple indicates that
remote-viewer builds matching the given 'osid' (fedora22, debian7, ...) must
be at least version 'version'. For consistency, it's recommended to use libosinfo \s-1OS\s0 shortids as
the osid.
.ie n .IP """newer\-version\-url"" (string)" 4
.el .IP "\f(CWnewer\-version\-url\fR (string)" 4
.IX Item "newer-version-url (string)"
If specified, this field is an \s-1URL\s0 which will be displayed to the user when a version check
fails.
.ie n .IP """type"" (string, mandatory)" 4
.el .IP "\f(CWtype\fR (string, mandatory)" 4
.IX Item "type (string, mandatory)"
The session type, either \*(L"spice\*(R", \*(L"vnc\*(R" or \*(L"ovirt\*(R".
.ie n .IP """host"" (string, mandatory)" 4
.el .IP "\f(CWhost\fR (string, mandatory)" 4
.IX Item "host (string, mandatory)"
The server host to connect to.
.ie n .IP """port"" (integer)" 4
.el .IP "\f(CWport\fR (integer)" 4
.IX Item "port (integer)"
The server port to connect to.
.ie n .IP """tls\-port"" (integer)" 4
.el .IP "\f(CWtls\-port\fR (integer)" 4
.IX Item "tls-port (integer)"
The server \s-1TLS/SSL\s0 port to connect to.
.ie n .IP """username"" (string)" 4
.el .IP "\f(CWusername\fR (string)" 4
.IX Item "username (string)"
The username for the session authentication.
.ie n .IP """password"" (string)" 4
.el .IP "\f(CWpassword\fR (string)" 4
.IX Item "password (string)"
The password for the session authentication.
.ie n .IP """disable\-channels"" (string list)" 4
.el .IP "\f(CWdisable\-channels\fR (string list)" 4
.IX Item "disable-channels (string list)"
The list of session channels to disable.
.Sp
The current \s-1SPICE\s0 channels are: main, display, inputs, cursor, playback, record, smartcard, usbredir.
.ie n .IP """tls\-ciphers"" (string)" 4
.el .IP "\f(CWtls\-ciphers\fR (string)" 4
.IX Item "tls-ciphers (string)"
Set the cipher list to use for the secure connection, in textual
OpenSSL cipher list format. (see \fIciphers\fR\|(1))
.ie n .IP """title"" (string)" 4
.el .IP "\f(CWtitle\fR (string)" 4
.IX Item "title (string)"
String to present in the window title.
.ie n .IP """fullscreen"" (boolean)" 4
.el .IP "\f(CWfullscreen\fR (boolean)" 4
.IX Item "fullscreen (boolean)"
Opens the client windows in fullscreen.
.ie n .IP """ca"" (string)" 4
.el .IP "\f(CWca\fR (string)" 4
.IX Item "ca (string)"
\&\s-1CA\s0 certificate in \s-1PEM\s0 format (using \*(L"\en\*(R" to separate the lines). This will be
used to verify the \s-1SSL\s0 certificate used for \s-1SPICE TLS\s0 sessions.
.ie n .IP """host\-subject"" (string)" 4
.el .IP "\f(CWhost\-subject\fR (string)" 4
.IX Item "host-subject (string)"
Verify the certificate subject matches with the given subject.
.ie n .IP """toggle\-fullscreen"" (hotkey string)" 4
.el .IP "\f(CWtoggle\-fullscreen\fR (hotkey string)" 4
.IX Item "toggle-fullscreen (hotkey string)"
Key binding for entering and leaving fullscreen mode. (see \s-1HOTKEY\s0 for description of expected string)
.ie n .IP """release\-cursor"" (hotkey string)" 4
.el .IP "\f(CWrelease\-cursor\fR (hotkey string)" 4
.IX Item "release-cursor (hotkey string)"
Key binding for releasing cursor grab. (see \s-1HOTKEY\s0 for description of expected string)
.ie n .IP """smartcard\-insert"" (hotkey string)" 4
.el .IP "\f(CWsmartcard\-insert\fR (hotkey string)" 4
.IX Item "smartcard-insert (hotkey string)"
Key binding for inserting emulated smartcard. (see \s-1HOTKEY\s0 for description of expected string)
.ie n .IP """smartcard\-remove"" (hotkey string)" 4
.el .IP "\f(CWsmartcard\-remove\fR (hotkey string)" 4
.IX Item "smartcard-remove (hotkey string)"
Key binding for removing emulated smartcard. (see \s-1HOTKEY\s0 for description of expected string)
.ie n .IP """color\-depth"" (integer)" 4
.el .IP "\f(CWcolor\-depth\fR (integer)" 4
.IX Item "color-depth (integer)"
Set the color depth of the guest display (16 or 32).
.ie n .IP """disable\-effects"" (string list)" 4
.el .IP "\f(CWdisable\-effects\fR (string list)" 4
.IX Item "disable-effects (string list)"
A list of desktop effects to disable in the remote guest.
.Sp
The effects that can be disabled with \s-1SPICE\s0 are: wallpaper,
font-smooth, animation or all.
.ie n .IP """enable\-smartcard"" (boolean)" 4
.el .IP "\f(CWenable\-smartcard\fR (boolean)" 4
.IX Item "enable-smartcard (boolean)"
Set to 1 to enable client smartcard redirection.
.ie n .IP """enable\-usbredir"" (boolean)" 4
.el .IP "\f(CWenable\-usbredir\fR (boolean)" 4
.IX Item "enable-usbredir (boolean)"
Set to 1 to enable client \s-1USB\s0 device redirection.
.ie n .IP """enable\-usb\-autoshare"" (boolean)" 4
.el .IP "\f(CWenable\-usb\-autoshare\fR (boolean)" 4
.IX Item "enable-usb-autoshare (boolean)"
Set to 1 to enable client \s-1USB\s0 devices auto-sharing.
.ie n .IP """usb\-filter"" (string)" 4
.el .IP "\f(CWusb\-filter\fR (string)" 4
.IX Item "usb-filter (string)"
Set a string specifying a filter to use to determine which \s-1USB\s0 devices
to autoconnect when plugged in, a filter consists of one or more
rules. Where each rule has the form of:
.Sp
\&\f(CW\*(C`class,vendor,product,version,allow\*(C'\fR
.Sp
Use \-1 for class/vendor/product/version to accept any value.
.Sp
And the rules themselves are concatenated like this:
.Sp
\&\f(CW\*(C`rule1|rule2|rule3\*(C'\fR
.ie n .IP """secure\-channels"" (string list)" 4
.el .IP "\f(CWsecure\-channels\fR (string list)" 4
.IX Item "secure-channels (string list)"
The list of session channels to secure.
.Sp
The current \s-1SPICE\s0 channels are: main, display, inputs, cursor, playback, record, smartcard, usbredir.
.ie n .IP """delete\-this\-file"" (boolean)" 4
.el .IP "\f(CWdelete\-this\-file\fR (boolean)" 4
.IX Item "delete-this-file (boolean)"
Set to 1 for the client to remove this connection file (if it can't, it will fail silently)
.ie n .IP """proxy"" (string)" 4
.el .IP "\f(CWproxy\fR (string)" 4
.IX Item "proxy (string)"
A proxy \s-1URL\s0 to tunnel the connection through.
.Sp
At the time of writing this documentation, the only supported proxy
method with Spice is \s-1HTTP CONNECT.\s0
.Sp
For example, to tunnel connection through foobar host \s-1HTTP\s0 proxy on
port 8080, use the value \*(L"http://foobar:8080\*(R".
.SS "oVirt Support"
.IX Subsection "oVirt Support"
The connection file can also carry some oVirt-specific options when oVirt
support is compiled in. These options are used to interact with oVirt \s-1REST API.\s0
This is currently only used in order to show a menu allowing to change the \s-1CD\s0
image being used by the virtual machine from remote-viewer user interface.
These options go in an optional [ovirt] group.
.ie n .IP """host"" (string, mandatory)" 4
.el .IP "\f(CWhost\fR (string, mandatory)" 4
.IX Item "host (string, mandatory)"
The oVirt instance to connect to. This corresponds to the hostname one would
connect to access the oVirt user or admin portal.
.ie n .IP """vm\-guid"" (string, mandatory)" 4
.el .IP "\f(CWvm\-guid\fR (string, mandatory)" 4
.IX Item "vm-guid (string, mandatory)"
\&\s-1GUID\s0 of the oVirt virtual machine to connect to.
.ie n .IP """jsessionid"" (string)" 4
.el .IP "\f(CWjsessionid\fR (string)" 4
.IX Item "jsessionid (string)"
Value to set the 'jsessionid' cookie to. With oVirt 3.6, setting this
authentication cookie to a valid value will allow to interact with the oVirt
\&\s-1REST API\s0 without being asked for credentials.
.ie n .IP """sso\-token"" (string)" 4
.el .IP "\f(CWsso\-token\fR (string)" 4
.IX Item "sso-token (string)"
Value to set the 'Authorization' header to. With oVirt 4.0 or newer, setting
this authentication header to a valid value will allow to interact with the
oVirt \s-1REST API\s0 without being asked for credentials.
.ie n .IP """ca"" (string)" 4
.el .IP "\f(CWca\fR (string)" 4
.IX Item "ca (string)"
\&\s-1CA\s0 certificate in \s-1PEM\s0 format (using \*(L"\en\*(R" to separate the lines). This will be used to validate
the certificate used for the oVirt \s-1REST\s0 https session remote-viewer will establish.
.SH "CONFIGURATION"
.IX Header "CONFIGURATION"
A small number of configuration options can be controlled by editing the
settings file located in the user configuration directory:
.PP
.Vb 1
\& <USER\-CONFIG\-DIR>/virt\-viewer/settings
.Ve
.PP
This file is a text file in \s-1INI\s0 format, with application options in the
[virt\-viewer] group and per-guest options in a group identified by the guest's
\&\s-1UUID.\s0 The application options should not be edited manually. There is also a
special [fallback] group which specifies options for all guests that don't have
an explicit group.
.PP
For each guest, the initial fullscreen monitor configuration can be specified
by using the \fBmonitor-mapping\fR key. This configuration only takes effect when
the \-f/\-\-full\-screen option is specified.
.PP
The value of this key is a list of mappings between a guest display and a
client monitor. Each mapping is separated by a semicolon character, and the
mappings have the format <\s-1GUEST\-DISPLAY\-ID\s0>:<\s-1CLIENT\-MONITOR\-ID\s0>.
.PP
For example, to map guest displays 1 and 2 to client monitors 2 and 3 for the
guest with a \s-1UUID\s0 of e4591275\-d9d3\-4a44\-a18b\-ef2fbc8ac3e2, use:
.PP
.Vb 2
\& [e4591275\-d9d3\-4a44\-a18b\-ef2fbc8ac3e2]
\& monitor\-mapping=1:2;2:3
.Ve
.PP
The monitor-mapping must contain ids of all displays from 1 to the last
desired display id, e.g. \*(L"monitor\-mapping=3:3\*(R" is invalid because mappings
for displays 1 and 2 are not specified.
.SH "EXAMPLES"
.IX Header "EXAMPLES"
To connect to \s-1SPICE\s0 server on host \*(L"makai\*(R" with port 5900
.PP
.Vb 1
\& remote\-viewer spice://makai:5900
.Ve
.PP
To connect to \s-1VNC\s0 server on host \*(L"tsingy\*(R" with port 5900
.PP
.Vb 1
\& remote\-viewer vnc://tsingy:5900
.Ve
.PP
To connect to a virtual machine named \*(L"toliara\*(R" on an oVirt server at
example.org
.PP
.Vb 1
\& remote\-viewer ovirt://[username@]example.org/toliara
.Ve
.SH "BUGS"
.IX Header "BUGS"
Report bugs to the mailing list \f(CW\*(C`http://www.redhat.com/mailman/listinfo/virt\-tools\-list\*(C'\fR
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (C) 2012\-2014 Red Hat, Inc., and various contributors.
This is free software. You may redistribute copies of it under the terms of the \s-1GNU\s0 General
Public License \f(CW\*(C`https://www.gnu.org/licenses/gpl\-2.0.html\*(C'\fR. There is \s-1NO WARRANTY,\s0
to the extent permitted by law.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\f(CW\*(C`virt\-viewer(1)\*(C'\fR, \f(CW\*(C`spice\-gtk(1)\*(C'\fR, the project website \f(CW\*(C`http://virt\-manager.org\*(C'\fR