mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2024-11-07 16:54:13 +01:00
Merge branch 'feature/KASM-3381_kasmvnc_docs' into 'master'
update docs Closes KASM-3381 See merge request kasm-technologies/internal/KasmVNC!80
This commit is contained in:
commit
2f7f090b36
290
README.md
290
README.md
@ -2,21 +2,239 @@
|
||||
|
||||
<a href="https://kasmweb.com"><img src="https://kasm-static-content.s3.amazonaws.com/logo_kasm.png" width="300"><a/>
|
||||
|
||||
[Kasm Technologies](https://www.kasmweb.com) developed Kasm Workspaces, the Containerized Streaming Platform. Kasm has open-sourced the Workspace docker images, which include containerized [full desktops and apps](https://github.com/kasmtech/workspaces-images) and [base images](https://github.com/kasmtech/workspaces-core-images) intended for developers to create custimized streaming containers. These containers can be used standalone or within the [Kasm Workspaces Platform](https://www.kasmweb.com) which provides a full Enterprise feature set. KasmVNC is used as the streaming tech for our container images, however, you can use KasmVNC for individual servers. While the term VNC is in the name, KasmVNC is not intended to remain compliant with the RFB spec and has different goals than other VNC projects:
|
||||
[Kasm Technologies](https://www.kasmweb.com) developed Kasm Workspaces, the Containerized Streaming Platform. Kasm has open-sourced the Workspace docker images, which include containerized [full desktops and apps](https://github.com/kasmtech/workspaces-images) and [base images](https://github.com/kasmtech/workspaces-core-images) intended for developers to create custimized streaming containers. These containers can be used standalone or within the [Kasm Workspaces Platform](https://www.kasmweb.com) which provides a full Enterprise feature set. KasmVNC is used as the streaming tech for our container images, however, you can use KasmVNC for individual servers. While the term VNC is in the name, KasmVNC is not compliant with the RFB spec and has different goals than other VNC projects:
|
||||
|
||||
- Web-based - KasmVNC is designed to provide a web accessible remote desktop. It comes with a web server and websocket server built in. There is no need to install other components. Simply run and navigate to your desktop's URL on the port you specify. While you can still tun on the legacy VNC port, it is disabled by default.
|
||||
- Security - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems.
|
||||
- Simplicity - KasmVNC aims at being simple to deploy and configure.
|
||||
- Modern - KasmVNC is designed to provide a web accessible remote desktop. It comes with a web server and websocket server built in. There is no need to install other components. Simply run and navigate to your desktop's URL on the port you specify. While you can still turn on the legacy VNC port, it is disabled by default and will not work with legacy VNC clients.
|
||||
- Secure - The RFB specification (VNC) limits the password field to 8 characters, so while the client may take a longer password, only the first 8 characters are sent. KasmVNC defaults to HTTPS with HTTP Basic Auth and disables the legacy VNC authentication method which is not sufficiently secure for internet accessible systems.
|
||||
- Simple - KasmVNC aims at being simple to deploy and configure.
|
||||
|
||||
# Releases
|
||||
## Documentation
|
||||
|
||||
**Do not use the README from the master branch**, unless you are compiling KasmVNC yourself from the tip of master. Use the documentation for your specific release.
|
||||
|
||||
- [KasmVNC 1.0.0 Documentation](https://www.kasmweb.com/kasmvnc/docs/1.0.0/index.html)
|
||||
|
||||
For beta releases prior to version 1.0.0, use the README in this github project on the tagged commit for that release.
|
||||
|
||||
## Installation
|
||||
|
||||
**You must disconnect and reconnect to the server after installation, for the group membership to apply.**
|
||||
|
||||
### Debian/Ubuntu/Kali
|
||||
```sh
|
||||
# Please choose the package for your distro here (under Assets):
|
||||
# https://github.com/kasmtech/KasmVNC/releases
|
||||
wget <package_url>
|
||||
|
||||
sudo apt-get install ./kasmvncserver_*.deb
|
||||
|
||||
# Add your user to the ssl-cert group
|
||||
sudo addgroup $USER ssl-cert
|
||||
```
|
||||
|
||||
### Oracle 8
|
||||
```sh
|
||||
# Please choose the package for your distro here (under Assets):
|
||||
# https://github.com/kasmtech/KasmVNC/releases
|
||||
wget <package_url>
|
||||
|
||||
# Ensure KasmVNC dependencies are available
|
||||
sudo dnf config-manager --set-enabled ol8_codeready_builder
|
||||
sudo dnf install oracle-epel-release-el8
|
||||
|
||||
sudo dnf localinstall ./kasmvncserver_*.rpm
|
||||
|
||||
# Add your user to the kasmvnc-cert group
|
||||
sudo usermod -a -G kasmvnc-cert $USER
|
||||
```
|
||||
|
||||
### CentOS 7
|
||||
|
||||
```sh
|
||||
# Please choose the package for your distro here (under Assets):
|
||||
# https://github.com/kasmtech/KasmVNC/releases
|
||||
wget <package_url>
|
||||
|
||||
# Ensure KasmVNC dependencies are available
|
||||
sudo yum install epel-release
|
||||
|
||||
sudo yum install ./kasmvncserver_*.rpm
|
||||
|
||||
# Add your user to the kasmvnc-cert group
|
||||
sudo usermod -a -G kasmvnc-cert $USER
|
||||
```
|
||||
|
||||
## Getting Started
|
||||
|
||||
The following examples provide basic usage of KasmVNC with the tools provided. For full documentation on all the utilities and the runtime environment, see our [KasmVNC Documentation](https://www.kasmweb.com/kasmvnc/docs/latest/index.html)
|
||||
|
||||
```sh
|
||||
# Start a session and be guided to setup a user and select a default desktop environment
|
||||
vncserver
|
||||
|
||||
# Start a session with the mate desktop environment
|
||||
vncserver -select-de mate
|
||||
|
||||
# Add a new user with read/write permissions
|
||||
vncpasswd -u my_username -w -r
|
||||
|
||||
# Tail the logs
|
||||
tail -f ~/.vnc/*.log
|
||||
|
||||
# Get a list of current sessions with display IDs
|
||||
vncserver -list
|
||||
|
||||
# Kill the VNC session with display ID :2
|
||||
vncserver -kill :2
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
KasmVNC is configured via YAML based configurations. The server level configuration is at `/etc/kasmvnc/kasmvnc.yaml`. Edits to this file apply to all users. Individual users can override server global configurations by specifying them in their configuration file at `~/.vnc/kasmvnc.yaml`.
|
||||
|
||||
The following configuration shows all default settings. Many of the encoding settings can be overridden by the client, unless the `runtime_configuration.allow_client_to_override_kasm_server_settings` setting is set tot false. By default the client is allowed to modify encoding settings.
|
||||
|
||||
For a full description of each setting see the [configuration reference](https://www.kasmweb/kasmvnc/docs/latest/index.html).
|
||||
|
||||
```yaml
|
||||
desktop:
|
||||
resolution:
|
||||
width: 1024
|
||||
height: 768
|
||||
allow_resize: true
|
||||
pixel_depth: 24
|
||||
|
||||
network:
|
||||
protocol: http
|
||||
interface: 0.0.0.0
|
||||
websocket_port: auto
|
||||
use_ipv4: true
|
||||
use_ipv6: true
|
||||
udp:
|
||||
public_ip: auto
|
||||
port: auto
|
||||
stun_server: auto
|
||||
ssl:
|
||||
pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
pem_key: /etc/ssl/private/ssl-cert-snakeoil.key
|
||||
require_ssl: true
|
||||
|
||||
user_session:
|
||||
new_session_disconnects_existing_exclusive_session: false
|
||||
concurrent_connections_prompt: false
|
||||
concurrent_connections_prompt_timeout: 10
|
||||
idle_timeout: never
|
||||
|
||||
keyboard:
|
||||
remap_keys:
|
||||
ignore_numlock: false
|
||||
raw_keyboard: false
|
||||
|
||||
pointer:
|
||||
enabled: true
|
||||
|
||||
runtime_configuration:
|
||||
allow_client_to_override_kasm_server_settings: true
|
||||
allow_override_standard_vnc_server_settings: true
|
||||
allow_override_list:
|
||||
- pointer.enabled
|
||||
- data_loss_prevention.clipboard.server_to_client.enabled
|
||||
- data_loss_prevention.clipboard.client_to_server.enabled
|
||||
- data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
|
||||
|
||||
logging:
|
||||
log_writer_name: all
|
||||
log_dest: logfile
|
||||
level: 30
|
||||
|
||||
security:
|
||||
brute_force_protection:
|
||||
blacklist_threshold: 5
|
||||
blacklist_timeout: 10
|
||||
|
||||
data_loss_prevention:
|
||||
visible_region:
|
||||
# top: 10
|
||||
# left: 10
|
||||
# right: 40
|
||||
# bottom: 40
|
||||
concealed_region:
|
||||
allow_click_down: false
|
||||
allow_click_release: false
|
||||
clipboard:
|
||||
delay_between_operations: none
|
||||
allow_mimetypes:
|
||||
- chromium/x-web-custom-data
|
||||
- text/html
|
||||
- image/png
|
||||
server_to_client:
|
||||
enabled: true
|
||||
size: unlimited
|
||||
primary_clipboard_enabled: false
|
||||
client_to_server:
|
||||
enabled: true
|
||||
size: unlimited
|
||||
keyboard:
|
||||
enabled: true
|
||||
rate_limit: unlimited
|
||||
logging:
|
||||
level: off
|
||||
|
||||
encoding:
|
||||
max_frame_rate: 60
|
||||
full_frame_updates: none
|
||||
rect_encoding_mode:
|
||||
min_quality: 7
|
||||
max_quality: 8
|
||||
consider_lossless_quality: 10
|
||||
rectangle_compress_threads: auto
|
||||
|
||||
video_encoding_mode:
|
||||
jpeg_quality: -1
|
||||
webp_quality: -1
|
||||
max_resolution:
|
||||
width: 1920
|
||||
height: 1080
|
||||
enter_video_encoding_mode:
|
||||
time_threshold: 5
|
||||
area_threshold: 45%
|
||||
exit_video_encoding_mode:
|
||||
time_threshold: 3
|
||||
logging:
|
||||
level: off
|
||||
scaling_algorithm: progressive_bilinear
|
||||
|
||||
compare_framebuffer: auto
|
||||
zrle_zlib_level: auto
|
||||
hextile_improved_compression: true
|
||||
|
||||
server:
|
||||
http:
|
||||
headers:
|
||||
- Cross-Origin-Embedder-Policy=require-corp
|
||||
- Cross-Origin-Opener-Policy=same-origin
|
||||
httpd_directory: /usr/share/kasmvnc/www
|
||||
advanced:
|
||||
x_font_path: auto
|
||||
kasm_password_file: ${HOME}/.kasmpasswd
|
||||
x_authority_file: auto
|
||||
auto_shutdown:
|
||||
no_user_session_timeout: never
|
||||
active_user_session_timeout: never
|
||||
inactive_user_session_timeout: never
|
||||
|
||||
command_line:
|
||||
prompt: true
|
||||
```
|
||||
|
||||
Since this is a fast evolving project, the documents on the tip of master are chaning rapidly and will not match releases. Be sure to use the README and other documentation from the release branch that matches the version of KasmVNC you are using. Do not use the README from the master branch, unless you are compiling KasmVNC yourself from the tip of master. All releases starting at 0.9.3 have a branch named in the format 'release/0.9.3', for example.
|
||||
|
||||
# New Features!
|
||||
|
||||
- Webp image compression for better bandwidth usage
|
||||
- Automatic mixing of webp and jpeg based on CPU availability on server
|
||||
- Multi-threaded image encoding for smoother frame rate for servers with more cores
|
||||
- WebRTC UDP Transit
|
||||
- Lossless QOI Image format for Local LAN
|
||||
- [Full screen video detection](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#video-mode), goes into configurable video mode for better full screen videoo playback performance.
|
||||
- [Dynamic jpeg/webp image coompression](https://github.com/kasmtech/KasmVNC/wiki/Video-Rendering-Options#dynamic-image-quality) quality settings based on screen change rates
|
||||
- Seemless clipboard support (on Chromium based browsers)
|
||||
@ -42,68 +260,8 @@ Since this is a fast evolving project, the documents on the tip of master are ch
|
||||
|
||||
Future Goals:
|
||||
|
||||
- UDP transport for faster frame rates
|
||||
- H264 encoding
|
||||
|
||||
### Installation
|
||||
|
||||
#### Debian-based
|
||||
|
||||
```sh
|
||||
# Please choose the package for your distro here (under Assets):
|
||||
# https://github.com/kasmtech/KasmVNC/releases
|
||||
wget <package_url>
|
||||
|
||||
sudo apt-get install ./kasmvncserver_*.deb
|
||||
|
||||
# Add your user to the ssl-cert group
|
||||
sudo addgroup $USER ssl-cert
|
||||
# You will need to re-connect in order to pick up the group change
|
||||
|
||||
# On the first run, vncserver will ask you to create a KasmVNC user and choose a desktop
|
||||
# environment you want to run. It can detect Cinnamon, Mate, LXDE, LXQT, KDE, Gnome,
|
||||
# XFCE. You can also choose to manually edit xstartup.
|
||||
# After you chose a desktop environment or to manually edit xstartup,
|
||||
# vncserver won't ask you again, unless you run it as:
|
||||
vncserver -select-de
|
||||
|
||||
# You can select a specific Desktop Environment like this:
|
||||
vncserver -select-de mate
|
||||
|
||||
# Tail the logs
|
||||
tail -f ~/.vnc/*.log
|
||||
```
|
||||
|
||||
Now navigate to your system at the urls printed by `vncserver`.
|
||||
|
||||
To stop the KasmVNC you started earlier on display 10:
|
||||
|
||||
```sh
|
||||
vncserver -kill <display_number>
|
||||
```
|
||||
|
||||
Settings can be modified via editing `/etc/kasmvnc/kasmvnc.yaml` or `~/.vnc/kasmvnc.yaml`.
|
||||
|
||||
The options for vncserver:
|
||||
|
||||
| Argument | Description |
|
||||
| -------- | ----------- |
|
||||
| depth | Color depth, for jpeg/webp should be 24bit |
|
||||
| geometry | Screensize, this will automatically be adjusted when the client connects. |
|
||||
| websocketPort | The port to use for the web socket. Use a high port to avoid having to run as root. |
|
||||
| cert | SSL cert to use for HTTPS |
|
||||
| sslOnly | Disable HTTP |
|
||||
| interface | Which interface to bind the web server to. |
|
||||
|
||||
### Development
|
||||
Would you like to contribute to KasmVNC? Please reachout to us at info@kasmweb.com. We have investigated or are working on the following, if you have experience in these fields and would like to help please let us know.
|
||||
|
||||
Real-time H264 encoding using NVIDIA and Intel encoding technology.
|
||||
|
||||
Windows version of KasmVNC. We have been able to get it to compile for Windows and increased the performance, but still not releasable. Experienced Windows developers with a background in cross compiling would help.
|
||||
|
||||
ARM version of KasmVNC, we have had requests for this and at one point we did have an ARM build of KasmVNC but it takes dev cycles to mainain and bring it back to life.
|
||||
|
||||
### Compiling From Source
|
||||
See the [builder/README.md](https://github.com/kasmtech/KasmVNC/blob/master/builder/README.md). We containerize our build systems to ensure highly repeatable builds.
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
### logging.log_dest
|
||||
|
||||
Log to the instance's log file in `~/.vnc`, or syslog. You can find the right
|
||||
log file by the display number. For example, in `9b1d402e204c:1.log`, `:1` is
|
||||
the display number. When you start a new instance with `vncserver`, it prints
|
||||
the display number it uses.
|
||||
|
||||
### logging.level
|
||||
|
||||
For the initial setup, it's a good idea to use 100. With 100, you're able to see
|
||||
login attempts and reasons they fail.
|
@ -1,763 +0,0 @@
|
||||
### desktop.resolution.width, desktop.resolution.height
|
||||
Set a fixed desktop resolution. Set `desktop.allow_resize` to `false` for
|
||||
this to work.
|
||||
|
||||
Unit: pixels
|
||||
<br>
|
||||
Default: 1024x768
|
||||
|
||||
### desktop.allow_resize
|
||||
If turned on, resizing browser window changes desktop resolution to fit the
|
||||
window.
|
||||
|
||||
Set to `false` to have a fixed resolution (you need to set
|
||||
[desktop.resolution.width and
|
||||
desktop.resolution.heigh](#desktop.resolution.width%2C-desktop.resolution.height)).
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### desktop.pixel_depth
|
||||
|
||||
Pixel depth in bits. Possible values are 16, 24, 32. These values are fail-safe.
|
||||
You can specify any bit value via command-line.
|
||||
|
||||
Unit: bits
|
||||
<br>
|
||||
Default: `24`
|
||||
|
||||
### network.protocol
|
||||
With KasmVNC, you can use a web browser client (set value to `http`) or a
|
||||
traditional VNC client (set value to `vnc`).
|
||||
|
||||
If you use `vnc` protocol, you're on your own. Passing `Xvnc` options via
|
||||
command-line is required in this case. Most config settings are ignored.
|
||||
|
||||
Unit: `http`, `vnc`
|
||||
<br>
|
||||
Default: `http`
|
||||
|
||||
### network.interface
|
||||
IP address or host name to listen on. Set to `0.0.0.0` to listen on all network
|
||||
interfaces.
|
||||
|
||||
Unit: ip address or host name
|
||||
<br>
|
||||
Default: `0.0.0.0`
|
||||
|
||||
### network.websocket_port
|
||||
|
||||
Listen for websocket connections on this port. `auto` translates to 8443 + X
|
||||
display number.
|
||||
|
||||
Unit: integer
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### network.use_ipv4
|
||||
|
||||
Use IPv4 for incoming and outgoing connections.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### network.use_ipv6
|
||||
Use IPv6 for incoming and outgoing connections.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### network.udp.public_ip
|
||||
|
||||
KasmVNC server needs to know its IP from the perspective of the client. With `auto`,
|
||||
it finds that out automatically (by using a public STUN server).
|
||||
|
||||
If the server and client are on the same private network, and not connected
|
||||
to internet, you need to specify a private IP address of the server, accessible
|
||||
to the client.
|
||||
|
||||
Unit: IP address, `auto`.
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### network.udp.port
|
||||
|
||||
Set UDP port to use. With `auto`,
|
||||
value is inherited from [network.websocket_port](#network.websocket_port).
|
||||
|
||||
Unit: `auto`, integer
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### network.ssl.pem_certificate
|
||||
|
||||
SSL pem certificate to use for websocket connections.
|
||||
|
||||
Unit: path
|
||||
<br>
|
||||
Default: standard snake oil certificate on Debian-based distros. Auto-generated
|
||||
on Fedora-based distros.
|
||||
|
||||
### network.ssl.pem_key
|
||||
|
||||
SSL pem key to use for websocket connections. If you have private and public
|
||||
keys in one file, using
|
||||
[network.ssl.pem_certificate](#network.ssl.pem_certificate) is enough to set
|
||||
both.
|
||||
|
||||
Unit: path
|
||||
<br>
|
||||
Default: standard snake oil certificate on Debian-based distros. Auto-generated
|
||||
on Fedora-based distros.
|
||||
|
||||
### network.ssl.require_ssl
|
||||
|
||||
Require SSL for websocket connections.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### user_session.session_type
|
||||
|
||||
* `shared` - allow multiple sessions for a single desktop.
|
||||
* `exclusive` - only one user session can work with the desktop.
|
||||
|
||||
If set, overrides client settings.
|
||||
|
||||
When combined with
|
||||
[concurrent_connections_prompt](#user_session.concurrent_connections_prompt) ,
|
||||
the user is asked to let the incoming connection in.
|
||||
|
||||
Unit: `shared`, `exclusive`
|
||||
<br>
|
||||
Default: not set, client settings are used
|
||||
|
||||
## user_session.new_session_disconnects_existing_exclusive_session
|
||||
|
||||
Only applies if [session_type](#user_session.session_type) is set to
|
||||
`exclusive`. The user working with the desktop is kicked out by a new session.
|
||||
New session takes over the desktop.
|
||||
|
||||
When combined with
|
||||
[concurrent_connections_prompt](#user_session.concurrent_connections_prompt),
|
||||
the user is asked to confirm session takeover.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### user_session.concurrent_connections_prompt
|
||||
|
||||
Prompts the user of the desktop to explicitly accept or reject incoming
|
||||
connections.
|
||||
|
||||
The vncconfig(1) program must be running on the desktop.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### user_session.concurrent_connections_prompt_timeout
|
||||
|
||||
Active only if
|
||||
[concurrent_connections_prompt](#user_session.concurrent_connections_prompt),
|
||||
is turned on.
|
||||
|
||||
Number of seconds to show the Accept Connection dialog before rejecting the
|
||||
connection.
|
||||
|
||||
Unit: seconds
|
||||
<br>
|
||||
Default: `10`
|
||||
|
||||
### user_session.idle_timeout
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The number of seconds after which an idle session is dropped.
|
||||
|
||||
Unit: seconds
|
||||
<br>
|
||||
Default: `never`
|
||||
|
||||
### keyboard.remap_keys
|
||||
|
||||
Set up 1-to-1 character replacement. For example, to exchange the " and @
|
||||
symbols you would specify the following: `0x22->0x40`. Similar to tr(1).
|
||||
|
||||
Unit: hex numbers in the format <from_character>-><to_character>
|
||||
<br>
|
||||
Default: not set
|
||||
|
||||
### keyboard.ignore_numlock
|
||||
-- TODO
|
||||
|
||||
Key affected by NumLock often require a fake Shift to be inserted in order for
|
||||
the correct symbol to be generated. Turning on this setting avoids these extra
|
||||
fake Shift events but may result in a slightly different symbol (for example, a
|
||||
Return instead of a keypad Enter).
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### keyboard.raw_keyboard
|
||||
|
||||
Send keyboard events straight through and avoid mapping them to the current
|
||||
keyboard layout. This effectively makes the keyboard behave according to the
|
||||
layout configured on the server instead of the layout configured on the client.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### pointer.enabled
|
||||
|
||||
Allows clicks from mice, trackpads, etc.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### runtime_configuration.allow_client_to_override_kasm_server_settings
|
||||
|
||||
KasmVNC exposes a few settings to the client the standard VNC does not. You can
|
||||
let the client override these settings or forbid overriding.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### runtime_configuration.allow_override_standard_vnc_server_settings
|
||||
|
||||
If turned on, VNC settings defined in
|
||||
[runtime_configuration.allow_override_list](#runtime_configuration.allow_override_list)
|
||||
can be changed at runtime.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### runtime_configuration.allow_override_list
|
||||
|
||||
You can modify listed settings at runtime. Settings can be modified, for
|
||||
example, using vncconfig(1) program from inside a running session.
|
||||
|
||||
The list must contain absolute config keys like
|
||||
[pointer.enable](#pointer.enable). To actually change
|
||||
[pointer.enable](#pointer.enable), you need to pass the corresponding
|
||||
command-line option `AcceptPointerEvents` to vncconfig(1).
|
||||
|
||||
Unit: list of absolute config keys
|
||||
<br>
|
||||
Default:
|
||||
```
|
||||
pointer.enabled
|
||||
data_loss_prevention.clipboard.server_to_client.enabled
|
||||
data_loss_prevention.clipboard.client_to_server.enabled
|
||||
data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
|
||||
```
|
||||
|
||||
### logging.log_writer_name
|
||||
Log all subsystems of KasmVNC by setting to `all`. To log a specific subsystem,
|
||||
consult source code for `LogWriter` instances. For example, `static LogWriter
|
||||
vlog("STrayIcon");`. `STrayIcon` is the log writer name here.
|
||||
|
||||
Unit: `all`, \<log writer name found in source code\>
|
||||
<br>
|
||||
Default: `all`
|
||||
|
||||
### logging.log_dest
|
||||
|
||||
Log to the instance's log file in `~/.vnc`, or syslog.
|
||||
|
||||
Unit: `logfile`, `syslog`
|
||||
<br>
|
||||
Default: `logfile`
|
||||
|
||||
### logging.level
|
||||
|
||||
Logging verbosity level. Can be in the 0.\.100 range. 100 meaning most verbose
|
||||
output, 0 meaning most concise.
|
||||
|
||||
Unit: integer in the 0.\.100 range
|
||||
<br>
|
||||
Default: `30`
|
||||
|
||||
### security.brute_force_protection.blacklist_threshold
|
||||
|
||||
The number of unauthenticated connection attempts allowed from any individual
|
||||
host before that host is black-listed.
|
||||
|
||||
Unit: integer
|
||||
<br>
|
||||
Default: `5`
|
||||
|
||||
### security.brute_force_protection.blacklist_timeout
|
||||
|
||||
The initial timeout applied when a host is first black-listed by failing to
|
||||
authenticate
|
||||
[blacklist_threshold](#security.brute_force_protection.blacklist_threshold)
|
||||
times. The host cannot re-attempt a connection until the timeout expires.
|
||||
|
||||
Unit: seconds
|
||||
<br>
|
||||
Default: `10`
|
||||
|
||||
### data_loss_prevention.visible_region.top, data_loss_prevention.visible_region.left, data_loss_prevention.visible_region.right, data_loss_prevention.visible_region.bottom
|
||||
|
||||
The regions feature allows you to select a region of the screen to render to the
|
||||
user. Concealed portions of the screen are blacked out.
|
||||
|
||||
#### Absolute coordinates
|
||||
|
||||
Select a region using pixels:
|
||||
```
|
||||
top: 10
|
||||
left: 10
|
||||
right: 40
|
||||
bottom: 40
|
||||
```
|
||||
|
||||
#### Offset coordinates
|
||||
|
||||
Use negative numbers to offset from the screen boundary. For `left` and `top`,
|
||||
this means 0 plus the provided number. In the below example that would be 10.
|
||||
For `right` and `bottom`, that means the maximum horizontal or vertical
|
||||
resolution minus the provided number.
|
||||
|
||||
If the resolution was 1080x720 in the below example that would equate to a
|
||||
`right` of 1070 and `bottom` of 710. Therefore, the example below would be
|
||||
translated to 10, 10, 1070, 710. Using offset coordinates has an advantage of
|
||||
scaling with screen size changes versus using absolute values.
|
||||
|
||||
Select a region using pixel offsets:
|
||||
```
|
||||
top: -10
|
||||
left: -10
|
||||
right: -10
|
||||
bottom: -10
|
||||
```
|
||||
|
||||
You can combine absolute values with offset values, such as the following
|
||||
example:
|
||||
|
||||
```
|
||||
top: 50
|
||||
left: 10
|
||||
right: -10
|
||||
bottom: -10
|
||||
```
|
||||
|
||||
#### Percentages
|
||||
|
||||
Regions does support percent values, which are evaluated as a border that is a
|
||||
percent of the total width and height respectively. Regions does not support
|
||||
mixing percent values and absolute or offset values.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
top: 10%
|
||||
left: 10%
|
||||
right: 20%
|
||||
bottom: 20%
|
||||
```
|
||||
|
||||
Unit: pixels, offset pixels, percentages
|
||||
<br>
|
||||
Default: not set
|
||||
|
||||
### data_loss_prevention.visible_region.concealed_region.allow_click_down
|
||||
Allow mouse button down events within the concealed regions, by default they are
|
||||
blocked.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### data_loss_prevention.visible_region.concealed_region.allow_click_release
|
||||
|
||||
Allow mouse button releases within the concealed regions, by default they are
|
||||
blocked until the cursor returns to the visible region.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### data_loss_prevention.clipboard.delay_between_operations
|
||||
|
||||
This many milliseconds must pass between clipboard actions.
|
||||
|
||||
Unit: milliseconds, `none`
|
||||
<br>
|
||||
Default: `none`
|
||||
|
||||
### data_loss_prevention.clipboard.allow_mimetypes
|
||||
|
||||
Allowed binary clipboard mimetypes.
|
||||
|
||||
Unit: mimetype
|
||||
<br>
|
||||
Default:
|
||||
```
|
||||
chromium/x-web-custom-data
|
||||
text/html
|
||||
image/png`
|
||||
```
|
||||
|
||||
### data_loss_prevention.clipboard.server_to_client.enabled
|
||||
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
Whether to send desktop clipboard changes to clients.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### data_loss_prevention.clipboard.server_to_client.size
|
||||
|
||||
Limit clipboard bytes to send to clients in one transaction.
|
||||
|
||||
Unit: number of bytes, `unlimited`
|
||||
<br>
|
||||
Default: `unlimited`
|
||||
|
||||
### data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
|
||||
|
||||
Send the primary selection to the client. Meaning, mouse-selected text is copied
|
||||
to clipboard. Only works in Chromium-based browsers.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### data_loss_prevention.clipboard.client_to_server.enabled
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
Accept clipboard updates from clients.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `false`
|
||||
|
||||
### data_loss_prevention.clipboard.client_to_server.size
|
||||
|
||||
Limit clipboard bytes to receive from clients in one transaction.
|
||||
|
||||
Unit: number of bytes, `unlimited`
|
||||
<br>
|
||||
Default: `unlimited`
|
||||
|
||||
### data_loss_prevention.keyboard.enabled
|
||||
|
||||
Accept key press and release events from clients.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### data_loss_prevention.keyboard.rate_limit
|
||||
|
||||
Reject keyboard presses over this many per second.
|
||||
|
||||
Unit: integer, `unlimited`
|
||||
<br>
|
||||
Default: `unlimited`
|
||||
|
||||
### data_loss_prevention.logging.level
|
||||
|
||||
Log clipboard and keyboard actions. `info` logs just clipboard direction and
|
||||
size, `verbose` adds the contents for both.
|
||||
|
||||
Unit: `off`, `info`, `verbose`
|
||||
<br>
|
||||
Default: `off`
|
||||
|
||||
### encoding.max_frame_rate
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The maximum number of updates per second sent to clients. If the screen
|
||||
updates any faster then those changes are aggregated and sent in a single
|
||||
update to the client. Note that this only controls the maximum rate and a client
|
||||
may get a lower rate when resources are limited.
|
||||
|
||||
Unit: integer
|
||||
<br>
|
||||
Default: `60`
|
||||
|
||||
### encoding.full_frame_updates
|
||||
|
||||
KasmVNC cuts the screen up into smaller rectangles and only sends sections of
|
||||
the screen that change. When using UDP, some rectangles can be dropped, so this
|
||||
option forces a full screen update every X frames.
|
||||
|
||||
Unit: `none`, positive integer
|
||||
<br>
|
||||
Default: `none`
|
||||
|
||||
### encoding.rect_encoding_mode.min_quality
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The minimum quality setting for JPEG/WEBP encoding. Rendering automatically
|
||||
degrades JPEG quality when there is a lot of motion in a particular block. This
|
||||
setting controls the minimum quality to use when there is a high degree of
|
||||
change. The accepted values are 0.\.9 where 0 is low and 9 is high.
|
||||
|
||||
Unit: integer in the 0.\.9 range
|
||||
<br>
|
||||
Default: `7`
|
||||
|
||||
### encoding.rect_encoding_mode.max_quality
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The maximum quality setting for JPEG/WEBP encoding. Rendering automatically
|
||||
degrades JPEG quality when there is a lot of motion in a particular block. This
|
||||
setting controls the maximum quality to use when there is no or little motion.
|
||||
The accepted values are 0.\.9 where 0 is low and 9 is high.
|
||||
|
||||
Unit: integer in the 0.\.9 range
|
||||
<br>
|
||||
Default: `8`
|
||||
|
||||
### encoding.rect_encoding_mode.consider_lossless_quality
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
KasmVNC dynamically adjusts the JPEG/WEBP quality based on how much change
|
||||
there is in a particular section. Every x number of frames it sends a
|
||||
'lossless' update. That way, if you are scrolling, the text blurs a little while
|
||||
you scroll but as soon as you stop, it should clear up on the next lossless
|
||||
update. `consider_lossless_quality` means "treat this quality as lossless."
|
||||
Assuming the min quality of 3, the max of 7 and treat lossless of 5. KasmVNC
|
||||
would constantly adjust the quality of images sent anywhere from 3 to 7
|
||||
depending on the rate of change. If the last rectangle sent was at 5 then it
|
||||
would not send a lossless update for that part of the screen.
|
||||
|
||||
Unit: integer in the 0.\.10 range
|
||||
<br>
|
||||
Default: `10`
|
||||
|
||||
### encoding.rect_encoding_mode.rectangle_compress_threads
|
||||
|
||||
Use this many threads to compress rectangles in parallel. `auto` sets threads to
|
||||
match the core count.
|
||||
|
||||
Unit: integer, `auto`.
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### encoding.video_encoding_mode.jpeg_quality
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The JPEG quality to use when in video mode. The accepted values are 0.\.9 where
|
||||
0 is low and 9 is high. A value of -1 keeps the quality level used in normal
|
||||
mode.
|
||||
|
||||
Unit: integer in the -1..9 range
|
||||
<br>
|
||||
Default: `-1`
|
||||
|
||||
### encoding.video_encoding_mode.webp_quality
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The WEBP quality to use when in video mode. The accepted values are 0.\.9 where 0
|
||||
is low and 9 is high. A value of -1 keeps the quality level used in normal mode.
|
||||
|
||||
Unit: integer in the -1..9 range
|
||||
<br>
|
||||
Default: `-1`
|
||||
|
||||
### encoding.video_encoding_mode.max_resolution.width, encoding.video_encoding_mode.max_resolution.height
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
When in Video Mode, downscale the screen to this maximum size. Keeps aspect
|
||||
ratio with client's actual resolution.
|
||||
|
||||
Unit: pixels
|
||||
<br>
|
||||
Default: 1920x1080
|
||||
|
||||
### encoding.video_encoding_mode.enter_video_encoding_mode.time_threshold
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
Number of seconds that a high rate of change most occur before switching to
|
||||
video mode. Setting to 0 forces Video Mode at all times.
|
||||
|
||||
Unit: seconds
|
||||
<br>
|
||||
Default: `5`
|
||||
|
||||
### encoding.video_encoding_mode.enter_video_encoding_mode.area_threshold
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The percent of the screen that must be seeing high rates of change to meet the
|
||||
threshold of Video Mode. This percentage of the screen must see rapid changes
|
||||
for the amount of time specified by [encoding.video_encoding_mode.enter_video_encoding_mode.time_threshold](#encoding.video_encoding_mode.enter_video_encoding_mode.time_threshold).
|
||||
|
||||
Unit: percentage of screen
|
||||
<br>
|
||||
Default: `45%`
|
||||
|
||||
### encoding.video_encoding_mode.exit_video_encoding_mode.time_threshold
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
When in Video Mode, high rates of change must subside for this many seconds
|
||||
before dropping out of video mode.
|
||||
|
||||
Unit: seconds
|
||||
<br>
|
||||
Default: `3`
|
||||
|
||||
### encoding.video_encoding_mode.logging.level
|
||||
|
||||
Print the detected video area % value. This is useful when trying to tune your
|
||||
settings for your particular use case.
|
||||
|
||||
Unit: `info`, `off`
|
||||
<br>
|
||||
Default: `off`
|
||||
|
||||
### encoding.video_encoding_mode.scaling_algorithm
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
The scaling method to use in video mode.
|
||||
|
||||
Unit: `nearest`, `bilinear`, `progressive_bilinear`
|
||||
<br>
|
||||
Default: `progressive_bilinear`
|
||||
|
||||
### encoding.compare_framebuffer
|
||||
|
||||
Perform pixel comparison on frame buffer to reduce unnecessary updates.
|
||||
|
||||
Unit: `off`, `always`, `auto`
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### encoding.zrle_zlib_level
|
||||
⚠️ This setting only applies, when
|
||||
[allow_client_to_override_kasm_server_settings](#runtime_configuration.allow_client_to_override_kasm_server_settings)
|
||||
is turned off.
|
||||
|
||||
Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
|
||||
Acceptable values are between 0.\.9. Set to `auto` to use the standard
|
||||
compression level provided by the zlib(3) compression library.
|
||||
|
||||
Unit: integer in the 0.\.9 range, `auto`
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### encoding.hextile_improved_compression
|
||||
|
||||
Use improved compression algorithm for Hextile encoding which achieves better
|
||||
compression ratios by the cost of using slightly more CPU time.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
||||
|
||||
### server.advanced.x_font_path
|
||||
|
||||
Specify X font path.
|
||||
|
||||
Unit: path, `auto`
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### server.advanced.httpd_directory
|
||||
|
||||
Run a mini-HTTP server which serves files from the given directory. Normally the
|
||||
directory contains the kasmweb client.
|
||||
|
||||
Unit: path
|
||||
<br>
|
||||
Default: `/usr/share/kasmvnc/www`
|
||||
|
||||
### server.advanced.kasm_password_file
|
||||
|
||||
Password file for Basic authentication, created with the `kasmvncpasswd(1)`
|
||||
utility.
|
||||
|
||||
Unit: path
|
||||
<br>
|
||||
Default: `${HOME}/.kasmpasswd`
|
||||
|
||||
### server.advanced.x_authority_file
|
||||
|
||||
Set to X authority file. X authority file stores credentials in cookies used by
|
||||
`xauth(1)` for authentication of X sessions.
|
||||
|
||||
`auto` means using file defined in `$XAUTHORITY` environment variable. If the
|
||||
variable isn't defined, fallback to using `${HOME}/.Xauthority` file.
|
||||
|
||||
Unit: path
|
||||
<br>
|
||||
Default: `auto`
|
||||
|
||||
### server.auto_shutdown.no_user_session_timeout
|
||||
|
||||
Terminate KasmVNC when no client has been connected for this many
|
||||
seconds.
|
||||
|
||||
Unit: seconds, `never`
|
||||
<br>
|
||||
Default: `never`
|
||||
|
||||
### server.auto_shutdown.active_user_session_timeout
|
||||
|
||||
Terminate KasmVNC when a client has been connected for this many
|
||||
seconds.
|
||||
|
||||
Unit: seconds, `never`
|
||||
<br>
|
||||
Default: `never`
|
||||
|
||||
### server.auto_shutdown.inactive_user_session_timeout
|
||||
|
||||
Terminate KasmVNC after this many seconds of user inactivity.
|
||||
|
||||
Unit: seconds, `never`
|
||||
<br>
|
||||
Default: `never`
|
||||
|
||||
### command_line.prompt
|
||||
|
||||
Guide the user (by prompting), to ensure that KasmVNC is usable. For example,
|
||||
prompt to create a KasmVNC user if no users exist or no users can control the
|
||||
desktop.
|
||||
|
||||
Unit: boolean
|
||||
<br>
|
||||
Default: `true`
|
@ -43,4 +43,4 @@ Disabled by default.
|
||||
.B Proxy display :1 to display :10, with resizing on.
|
||||
|
||||
.SH AUTHOR
|
||||
Kasm Technologies http://kasmweb.com
|
||||
Kasm Technologies Corp https://www.kasmweb.com
|
||||
|
@ -117,10 +117,13 @@ When run as a "helper" app, make the window iconified at startup.
|
||||
http://kasmweb.com
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd. and others.
|
||||
Kasm Technologies Corp., Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
|
||||
|
||||
VNC was originally developed by the RealVNC team while at Olivetti
|
||||
Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
|
||||
implemented by Constantin Kaplinsky. Many other people have since
|
||||
participated in development, testing and support. This manual is part
|
||||
of the KasmVNC software suite.
|
||||
participated in development, testing and support. KasmVNC has since
|
||||
forked and the project and has added many modern features and made
|
||||
the solution web native.
|
||||
|
||||
This manual is part of the KasmVNC software suite.
|
@ -95,10 +95,13 @@ $ vncpasswd -u foo -w -n
|
||||
http://kasmweb.com
|
||||
|
||||
.SH AUTHORS
|
||||
Tristan Richardson, RealVNC Ltd., Antoine Martin, D. R. Commander and others.
|
||||
Kasm Technologies Corp., Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
|
||||
|
||||
VNC was originally developed by the RealVNC team while at Olivetti
|
||||
Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
|
||||
implemented by Constantin Kaplinsky. Many other people have since
|
||||
participated in development, testing and support. This manual is part
|
||||
of the KasmVNC software suite.
|
||||
participated in development, testing and support. KasmVNC has since
|
||||
forked and the project and has added many modern features and made
|
||||
the solution web native.
|
||||
|
||||
This manual is part of the KasmVNC software suite.
|
@ -26,9 +26,9 @@ vncserver \- start or stop a VNC server
|
||||
.B vncserver
|
||||
is used to start a VNC (Virtual Network Computing) desktop.
|
||||
.B vncserver
|
||||
is a Perl script which simplifies the process of starting an Xvnc server. It
|
||||
runs Xvnc with appropriate options and starts a window manager on the VNC
|
||||
desktop.
|
||||
is used to launch a VNC desktop session. vncserver interprets the yaml based
|
||||
server level and user level configurations and combines them to execute
|
||||
Xvnc.
|
||||
|
||||
.B vncserver
|
||||
can be run with no options at all. In this case it will choose the first
|
||||
@ -42,8 +42,10 @@ available. For example:
|
||||
vncserver :13
|
||||
.RE
|
||||
|
||||
Editing the file $HOME/.vnc/xstartup allows you to change the applications run
|
||||
at startup (but note that this will not affect an existing VNC session.)
|
||||
vncserver can detect desktop environments and prompt the user to select one to
|
||||
start with the session. The user can also manually edit the file
|
||||
$HOME/.vnc/xstartup to customize what commands should be run on startup of a
|
||||
new session.
|
||||
|
||||
.SH OPTIONS
|
||||
You can get a list of options by passing \fB\-h\fP as an option to vncserver.
|
||||
@ -172,13 +174,16 @@ option.
|
||||
.BR vncconfig (1),
|
||||
.BR Xvnc (1)
|
||||
.br
|
||||
http://kasmweb.com
|
||||
https://www.kasmweb.com
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
|
||||
Kasm Technologies Corp., Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
|
||||
|
||||
VNC was originally developed by the RealVNC team while at Olivetti
|
||||
Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
|
||||
implemented by Constantin Kaplinsky. Many other people have since
|
||||
participated in development, testing and support. This manual is part
|
||||
of the KasmVNC software suite.
|
||||
participated in development, testing and support. KasmVNC has since
|
||||
forked and the project and has added many modern features and made
|
||||
the solution web native.
|
||||
|
||||
This manual is part of the KasmVNC software suite.
|
||||
|
@ -567,10 +567,13 @@ created automatically the next time he connects.
|
||||
http://kasmweb.com
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd. and others.
|
||||
Kasm Technologies Corp., Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
|
||||
|
||||
VNC was originally developed by the RealVNC team while at Olivetti
|
||||
Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
|
||||
implemented by Constantin Kaplinsky. Many other people have since
|
||||
participated in development, testing and support. This manual is part
|
||||
of the KasmVNC software suite.
|
||||
participated in development, testing and support. KasmVNC has since
|
||||
forked and the project and has added many modern features and made
|
||||
the solution web native.
|
||||
|
||||
This manual is part of the KasmVNC software suite.
|
||||
|
Loading…
Reference in New Issue
Block a user