Codebase list virt-viewer / fa02bc64-b963-439a-87b2-b721033a39c5/main man / remote-viewer.pod
fa02bc64-b963-439a-87b2-b721033a39c5/main

Tree @fa02bc64-b963-439a-87b2-b721033a39c5/main (Download .tar.gz)

remote-viewer.pod @fa02bc64-b963-439a-87b2-b721033a39c5/mainraw · history · blame

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
=head1 NAME

remote-viewer - a simple remote desktop client

=head1 SYNOPSIS

B<remote-viewer> [OPTIONS] -- [URI]

=head1 DESCRIPTION

B<remote-viewer> is a simple remote display client. The supported
protocols are SPICE and VNC.

Starting remote-viewer without URI will open a simple dialog with an
entry and a list of previously successfully accessed URI.

The URI can also point to a connection settings file, see the CONNECTION FILE
section for a description of the format.

If URI is '-', then remote-viewer will read the standard input as a
connection settings file and attempt to connect using it.

In some circumstances the viewer may need to grab the mouse pointer. The
default key sequence for releasing the grab is C<Ctrl_L>+C<Alt_L>, however,
this can be overridden using the C<--hotkeys> argument documented below.

=head1 OPTIONS

The following options are accepted when running C<remote-viewer>:

=over 4

=item -h, --help

Display command line help summary

=item -V, --version

Display program version number

=item -v, --verbose

Display information about the connection

=item -z PCT, --zoom=PCT

Zoom level of the display window in percentage. Range 10-400.

=item -f, --full-screen

Start with the windows maximized to fullscreen.

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 and
can be disabled by the C<--auto-resize> arguemnt.

To specify which client monitors are used in fullscreen mode, see the
CONFIGURATION section below.

=item --auto-resize <always|never>

Controls whether it is permitted to attempt to resize the remote framebuffer
to match the local window size. This currently defaults to on, but note that
not all servers will support this.

=item -t TITLE, --title TITLE

Set the window title to B<TITLE>

=item -s, --shared

Permitted a shared session with multiple clients

=item --cursor auto|local

Control how the mouse cursor is rendered. C<auto> is the default behaviour,
which will honour the behaviour requested by the remote server. This may
involve the server remote rendering the cursor into the framebuffer, or
sending the cursor details to the client to render.  C<local> overrides
this default to request that the local desktop cursor is always rendered
regardless of what the server requests. The latter is rarely needed, but
can be used if the server has a bad configuration that results in its
own cursor being hidden.

=item --debug

Print debugging information

=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 B<HOTKEYS>
will be effective even when the guest display widget has input focus. The format
for B<HOTKEYS> is <action1>=<key1>[+<key2>][,<action2>=<key3>[+<key4>]].
Key-names are case-insensitive. Valid actions are: toggle-fullscreen,
release-cursor, zoom-in, zoom-out, zoom-reset,
secure-attention, usb-device-reset, smartcard-insert and
smartcard-remove.  The C<secure-attention> action sends a secure attention
sequence (Ctrl+Alt+Del) to the guest. Examples:

  --hotkeys=toggle-fullscreen=shift+f11,release-cursor=shift+f12

  --hotkeys=release-cursor=ctrl+alt

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.

=item -K, --keymap

Remap and/or block supplied keypresses to the host. All key identifiers are
case-sensitive and follow the naming convention as defined in gdkkeysyms.h
without the GDK_KEY_ prefix.

Running the application with --debug will display keypress symbols in the
following way:
  "Key pressed was keycode='0x63', gdk_keyname='c'"
  "Key pressed was keycode='0xffeb', gdk_keyname='Super_L'"

The format for supplying a keymap is:
<srcKeySym1>=[<destKeySym1>][+<destKeySym2][,<srckeySym2>=[<destKeySym1]

To block a keypress simply assign an empty parameter to the srcKeySym.

Example:
  --keymap=Super_L=,Alt_L=,1=Shift_L+F1,2=Shift_L+F2

This will block the Super_L (typically Windows Key) and ALT_L keypresses
and remap key 1 to Shift F1, 2 to Shift F2.

=item -k, --kiosk

Start in kiosk mode. In this mode, the application will start in
fullscreen with minimal UI. It will prevent the user from quitting or
performing any interaction outside of usage of the remote desktop
session.

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 OS. In particular, you must configure or disable the
window manager, limit the session capabilities, use some
restart/watchdog mechanism, disable VT switching etc.

=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 "on-disconnect" value, virt-viewer will quit
instead.

=back

=head1 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.

It must be composed of modifiers (shift, ctrl or alt) and a
non-modifier key. For example, "shift+f11".

=head1 CONNECTION FILE

B<remote-viewer> connection file is of INI file format, with a
mandatory [virt-viewer] group and "type" key.

=head2 Example

Opening a file with the following content will start remote-viewer in
fullscreen and connect to the host "betsiboka" using the SPICE
protocol:

 [virt-viewer]
 type=spice
 host=betsiboka
 port=5900
 fullscreen=1

=head2 Key list

=over 4

=item C<version> (string)

If remote-viewer version number isn't greater or equal to the required
version, an error is raised with the expected version.

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.

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.

=item C<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 OS shortids as
the osid.

=item C<newer-version-url> (string)

If specified, this field is an URL which will be displayed to the user when a version check
fails.

=item C<type> (string, mandatory)

The session type, either "spice", "vnc" or "ovirt".

=item C<unix-path> (string)

The server to connect to, using a Unix socket path. (supported with spice, since 8.0)

This option is incompatible with C<host>, C<port> and C<tls-port>.

=item C<host> (string)

The server host to connect to.

=item C<port> (integer)

The server port to connect to.

=item C<tls-port> (integer)

The server TLS/SSL port to connect to.

=item C<username> (string)

The username for the session authentication.

=item C<password> (string)

The password for the session authentication.

=item C<disable-channels> (string list)

The list of session channels to disable.

The current SPICE channels are: main, display, inputs, cursor, playback, record, smartcard, usbredir.

=item C<tls-ciphers> (string)

Set the cipher list to use for the secure connection, in textual
OpenSSL cipher list format. (see ciphers(1))

=item C<title> (string)

String to present in the window title.

=item C<fullscreen> (boolean)

Opens the client windows in fullscreen.

=item C<ca> (string)

CA certificate in PEM format (using "\n" to separate the lines). This will be
used to verify the SSL certificate used for SPICE TLS sessions.

=item C<host-subject> (string)

Verify the certificate subject matches with the given subject.

=item C<toggle-fullscreen> (hotkey string)

Key binding for entering and leaving fullscreen mode. (see L<HOTKEY> for description of expected string)

=item C<release-cursor> (hotkey string)

Key binding for releasing cursor grab. (see L<HOTKEY> for description of expected string)

=item C<zoom-in> (hotkey string)

Key binding for zooming in and enlarging client window size. (see L<HOTKEY> for description of expected string)

=item C<zoom-out> (hotkey string)

Key binding for zooming out and reducing client window size. (see L<HOTKEY> for description of expected string)

=item C<zoom-reset> (hotkey string)

Key binding for reseting zoom and client window size. (see L<HOTKEY> for description of expected string)

=item C<smartcard-insert> (hotkey string)

Key binding for inserting emulated smartcard. (see L<HOTKEY> for description of expected string)

=item C<smartcard-remove> (hotkey string)

Key binding for removing emulated smartcard. (see L<HOTKEY> for description of expected string)

=item C<color-depth> (integer)

Set the color depth of the guest display (16 or 32).

=item C<disable-effects> (string list)

A list of desktop effects to disable in the remote guest.

The effects that can be disabled with SPICE are: wallpaper,
font-smooth, animation or all.

=item C<enable-smartcard> (boolean)

Set to 1 to enable client smartcard redirection.

=item C<enable-usbredir> (boolean)

Set to 1 to enable client USB device redirection.

=item C<enable-usb-autoshare> (boolean)

Set to 1 to enable client USB devices auto-sharing.

=item C<usb-filter> (string)

Set a string specifying a filter to use to determine which USB devices
to autoconnect when plugged in, a filter consists of one or more
rules. Where each rule has the form of:

C<class,vendor,product,version,allow>

Use -1 for class/vendor/product/version to accept any value.

And the rules themselves are concatenated like this:

C<rule1|rule2|rule3>

=item C<secure-channels> (string list)

The list of session channels to secure.

The current SPICE channels are: main, display, inputs, cursor, playback, record, smartcard, usbredir.

=item C<delete-this-file> (boolean)

Set to 1 for the client to remove this connection file (if it can't, it will fail silently)

=item C<proxy> (string)

A proxy URL to tunnel the connection through.

At the time of writing this documentation, the only supported proxy
method with Spice is HTTP CONNECT.

For example, to tunnel connection through foobar host HTTP proxy on
port 8080, use the value "http://foobar:8080".

=back

=head2 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 REST API.
This is currently only used in order to show a menu allowing to change the CD
image being used by the virtual machine from remote-viewer user interface.
These options go in an optional [ovirt] group.

=over 4

=item C<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.

=item C<vm-guid> (string, mandatory)

GUID of the oVirt virtual machine to connect to.

=item C<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
REST API without being asked for credentials.

=item C<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 REST API without being asked for credentials.

=item C<ca> (string)

CA certificate in PEM format (using "\n" to separate the lines). This will be used to validate
the certificate used for the oVirt REST https session remote-viewer will establish.

=back

=head1 CONFIGURATION

A small number of configuration options can be controlled by editing the
settings file located in the user configuration directory:

    <USER-CONFIG-DIR>/virt-viewer/settings

This file is a text file in INI format, with application options in the
[virt-viewer] group and per-guest options in a group identified by the guest's
UUID. 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.

For each guest, the initial fullscreen monitor configuration can be specified
by using the B<monitor-mapping> key. This configuration only takes effect when
the -f/--full-screen option is specified.

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 <GUEST-DISPLAY-ID>:<CLIENT-MONITOR-ID>.

For example, to map guest displays 1 and 2 to client monitors 2 and 3 for the
guest with a UUID of e4591275-d9d3-4a44-a18b-ef2fbc8ac3e2, use:

    [e4591275-d9d3-4a44-a18b-ef2fbc8ac3e2]
    monitor-mapping=1:2;2:3

The monitor-mapping must contain ids of all displays from 1 to the last
desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings
for displays 1 and 2 are not specified.

Configuration key B<share-clipboard> contains a boolean value. If it's "true",
then clipboard is shared with guests if clipboard sharing is supported by used protocol.

=head1 EXAMPLES

To connect to SPICE server on host "makai" with port 5900

   remote-viewer spice://makai:5900

To connect to VNC server on host "tsingy" with port 5900

   remote-viewer vnc://tsingy:5900

To connect to a virtual machine named "toliara" on an oVirt server at
example.org

   remote-viewer ovirt://[username@]example.org/toliara

=head1 BUGS

Report bugs to https://gitlab.com/virt-viewer/virt-viewer/-/issues

=head1 COPYRIGHT

Copyright (C) 2012-2020 Red Hat, Inc., and various contributors.
This is free software. You may redistribute copies of it under the terms of the GNU General
Public License C<https://www.gnu.org/licenses/gpl-2.0.html>. There is NO WARRANTY,
to the extent permitted by law.

=head1 SEE ALSO

C<virt-viewer(1)>, C<spice-client(1)>, the project website C<http://gitlab.com/virt-viewer/virt-viewer>

=cut