Vendor in tigervnc as well
This helps us get rid of postBuild completely, and possibly lets us publish this as a package that can be used elsewhere
|
@ -4,3 +4,4 @@ dependencies:
|
|||
- websockify
|
||||
- pip:
|
||||
- https://github.com/jupyterhub/jupyter-server-proxy/archive/0e67e1afd0bab1342443f13bd147a2f8c682e9e0.zip
|
||||
- .
|
|
@ -5,7 +5,6 @@ import tempfile
|
|||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
def setup_desktop():
|
||||
VNC_APPLICATION_DIR = os.path.join(os.getenv('CONDA_DIR'), 'vnc')
|
||||
# make a secure temporary directory for sockets
|
||||
# This is only readable, writeable & searchable by our uid
|
||||
sockets_dir = tempfile.mkdtemp()
|
||||
|
@ -18,7 +17,7 @@ def setup_desktop():
|
|||
'5901',
|
||||
'--unix-target', sockets_path,
|
||||
'--',
|
||||
VNC_APPLICATION_DIR + '/bin/vncserver',
|
||||
os.path.join(HERE, 'share/tigervnc/bin/vncserver'),
|
||||
'-verbose',
|
||||
'-xstartup', os.path.join(HERE, 'share/xstartup'),
|
||||
'-geometry', '1024x768',
|
||||
|
|
|
@ -0,0 +1,906 @@
|
|||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (C) 2009-2010 D. R. Commander. All Rights Reserved.
|
||||
# Copyright (C) 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright (C) 2002-2003 Constantin Kaplinsky. All Rights Reserved.
|
||||
# Copyright (C) 2002-2005 RealVNC Ltd.
|
||||
# Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
|
||||
#
|
||||
# This is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This software is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this software; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
# USA.
|
||||
#
|
||||
|
||||
#
|
||||
# vncserver - wrapper script to start an X VNC server.
|
||||
#
|
||||
|
||||
# First make sure we're operating in a sane environment.
|
||||
$exedir = "";
|
||||
$slashndx = rindex($0, "/");
|
||||
if($slashndx>=0) {
|
||||
$exedir = substr($0, 0, $slashndx+1);
|
||||
}
|
||||
|
||||
$vncClasses = "";
|
||||
|
||||
&SanityCheck();
|
||||
|
||||
#
|
||||
# Global variables. You may want to configure some of these for
|
||||
# your site
|
||||
#
|
||||
|
||||
$geometry = "1024x768";
|
||||
#$depth = 16;
|
||||
$vncJavaFiles = (((-d "$vncClasses") && "$vncClasses") ||
|
||||
((-d "/usr/share/vnc/classes") && "/usr/share/vnc/classes") ||
|
||||
((-d "/usr/local/vnc/classes") && "/usr/local/vnc/classes"));
|
||||
|
||||
$vncUserDir = "$ENV{HOME}/.vnc";
|
||||
$vncUserConfig = "$vncUserDir/config";
|
||||
|
||||
$vncSystemConfigDir = "/etc/tigervnc";
|
||||
$vncSystemConfigDefaultsFile = "$vncSystemConfigDir/vncserver-config-defaults";
|
||||
$vncSystemConfigMandatoryFile = "$vncSystemConfigDir/vncserver-config-mandatory";
|
||||
|
||||
$skipxstartup = 0;
|
||||
$xauthorityFile = "$ENV{XAUTHORITY}" || "$ENV{HOME}/.Xauthority";
|
||||
|
||||
$xstartupFile = $vncUserDir . "/xstartup";
|
||||
$defaultXStartup
|
||||
= ("#!/bin/sh\n\n".
|
||||
"unset SESSION_MANAGER\n".
|
||||
"unset DBUS_SESSION_BUS_ADDRESS\n".
|
||||
"OS=`uname -s`\n".
|
||||
"if [ \$OS = 'Linux' ]; then\n".
|
||||
" case \"\$WINDOWMANAGER\" in\n".
|
||||
" \*gnome\*)\n".
|
||||
" if [ -e /etc/SuSE-release ]; then\n".
|
||||
" PATH=\$PATH:/opt/gnome/bin\n".
|
||||
" export PATH\n".
|
||||
" fi\n".
|
||||
" ;;\n".
|
||||
" esac\n".
|
||||
"fi\n".
|
||||
"if [ -x /etc/X11/xinit/xinitrc ]; then\n".
|
||||
" exec /etc/X11/xinit/xinitrc\n".
|
||||
"fi\n".
|
||||
"if [ -f /etc/X11/xinit/xinitrc ]; then\n".
|
||||
" exec sh /etc/X11/xinit/xinitrc\n".
|
||||
"fi\n".
|
||||
"[ -r \$HOME/.Xresources ] && xrdb \$HOME/.Xresources\n".
|
||||
"xsetroot -solid grey\n".
|
||||
"xterm -geometry 80x24+10+10 -ls -title \"\$VNCDESKTOP Desktop\" &\n".
|
||||
"twm &\n");
|
||||
|
||||
$defaultConfig
|
||||
= ("## Supported server options to pass to vncserver upon invocation can be listed\n".
|
||||
"## in this file. See the following manpages for more: vncserver(1) Xvnc(1).\n".
|
||||
"## Several common ones are shown below. Uncomment and modify to your liking.\n".
|
||||
"##\n".
|
||||
"# securitytypes=vncauth,tlsvnc\n".
|
||||
"# desktop=sandbox\n".
|
||||
"# geometry=2000x1200\n".
|
||||
"# localhost\n".
|
||||
"# alwaysshared\n");
|
||||
|
||||
chop($host = `uname -n`);
|
||||
|
||||
if (-d "/etc/X11/fontpath.d") {
|
||||
$fontPath = "catalogue:/etc/X11/fontpath.d";
|
||||
}
|
||||
|
||||
@fontpaths = ('/usr/share/X11/fonts', '/usr/share/fonts', '/usr/share/fonts/X11/');
|
||||
if (! -l "/usr/lib/X11") {push(@fontpaths, '/usr/lib/X11/fonts');}
|
||||
if (! -l "/usr/X11") {push(@fontpaths, '/usr/X11/lib/X11/fonts');}
|
||||
if (! -l "/usr/X11R6") {push(@fontpaths, '/usr/X11R6/lib/X11/fonts');}
|
||||
push(@fontpaths, '/usr/share/fonts/default');
|
||||
|
||||
@fonttypes = ('misc',
|
||||
'75dpi',
|
||||
'100dpi',
|
||||
'Speedo',
|
||||
'Type1');
|
||||
|
||||
foreach $_fpath (@fontpaths) {
|
||||
foreach $_ftype (@fonttypes) {
|
||||
if (-f "$_fpath/$_ftype/fonts.dir") {
|
||||
if (! -l "$_fpath/$_ftype") {
|
||||
$defFontPath .= "$_fpath/$_ftype,";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($defFontPath) {
|
||||
if (substr($defFontPath, -1, 1) == ',') {
|
||||
chop $defFontPath;
|
||||
}
|
||||
}
|
||||
|
||||
if ($fontPath eq "") {
|
||||
$fontPath = $defFontPath;
|
||||
}
|
||||
|
||||
# Check command line options
|
||||
|
||||
&ParseOptions("-geometry",1,"-depth",1,"-pixelformat",1,"-name",1,"-kill",1,
|
||||
"-help",0,"-h",0,"--help",0,"-fp",1,"-list",0,"-fg",0,"-autokill",0,"-noxstartup",0,"-xstartup",1);
|
||||
|
||||
&Usage() if ($opt{'-help'} || $opt{'-h'} || $opt{'--help'});
|
||||
|
||||
&Kill() if ($opt{'-kill'});
|
||||
|
||||
&List() if ($opt{'-list'});
|
||||
|
||||
# Uncomment this line if you want default geometry, depth and pixelformat
|
||||
# to match the current X display:
|
||||
# &GetXDisplayDefaults();
|
||||
|
||||
if ($opt{'-geometry'}) {
|
||||
$geometry = $opt{'-geometry'};
|
||||
}
|
||||
if ($opt{'-depth'}) {
|
||||
$depth = $opt{'-depth'};
|
||||
$pixelformat = "";
|
||||
}
|
||||
if ($opt{'-pixelformat'}) {
|
||||
$pixelformat = $opt{'-pixelformat'};
|
||||
}
|
||||
if ($opt{'-noxstartup'}) {
|
||||
$skipxstartup = 1;
|
||||
}
|
||||
if ($opt{'-xstartup'}) {
|
||||
$xstartupFile = $opt{'-xstartup'};
|
||||
}
|
||||
if ($opt{'-fp'}) {
|
||||
$fontPath = $opt{'-fp'};
|
||||
$fpArgSpecified = 1;
|
||||
}
|
||||
|
||||
&CheckGeometryAndDepth();
|
||||
|
||||
# Create the user's vnc directory if necessary.
|
||||
if (!(-e $vncUserDir)) {
|
||||
if (!mkdir($vncUserDir,0755)) {
|
||||
die "$prog: Could not create $vncUserDir.\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Find display number.
|
||||
if ((@ARGV > 0) && ($ARGV[0] =~ /^:(\d+)$/)) {
|
||||
$displayNumber = $1;
|
||||
shift(@ARGV);
|
||||
if (!&CheckDisplayNumber($displayNumber)) {
|
||||
die "A VNC server is already running as :$displayNumber\n";
|
||||
}
|
||||
} elsif ((@ARGV > 0) && ($ARGV[0] !~ /^-/) && ($ARGV[0] !~ /^\+/)) {
|
||||
&Usage();
|
||||
} else {
|
||||
$displayNumber = &GetDisplayNumber();
|
||||
}
|
||||
|
||||
$vncPort = 5900 + $displayNumber;
|
||||
|
||||
if ($opt{'-name'}) {
|
||||
$desktopName = $opt{'-name'};
|
||||
} else {
|
||||
$desktopName = "$host:$displayNumber ($ENV{USER})";
|
||||
}
|
||||
|
||||
my %default_opts;
|
||||
my %config;
|
||||
|
||||
# We set some reasonable defaults. Config file settings
|
||||
# override these where present.
|
||||
$default_opts{desktop} = "edString($desktopName);
|
||||
$default_opts{httpd} = $vncJavaFiles if ($vncJavaFiles);
|
||||
$default_opts{auth} = "edString($xauthorityFile);
|
||||
$default_opts{geometry} = $geometry if ($geometry);
|
||||
$default_opts{depth} = $depth if ($depth);
|
||||
$default_opts{pixelformat} = $pixelformat if ($pixelformat);
|
||||
$default_opts{rfbwait} = 30000;
|
||||
$default_opts{rfbauth} = "$vncUserDir/passwd";
|
||||
$default_opts{rfbport} = $vncPort;
|
||||
$default_opts{fp} = $fontPath if ($fontPath);
|
||||
$default_opts{pn} = "";
|
||||
|
||||
# Load user-overrideable system defaults
|
||||
LoadConfig($vncSystemConfigDefaultsFile);
|
||||
|
||||
# Then the user's settings
|
||||
LoadConfig($vncUserConfig);
|
||||
|
||||
# And then override anything set above if mandatory settings exist.
|
||||
# WARNING: "Mandatory" is used loosely here! As the man page says,
|
||||
# there is nothing stopping someone from EASILY subverting the
|
||||
# settings in $vncSystemConfigMandatoryFile by simply passing
|
||||
# CLI args to vncserver, which trump config files! To properly
|
||||
# hard force policy in a non-subvertible way would require major
|
||||
# development work that touches Xvnc itself.
|
||||
LoadConfig($vncSystemConfigMandatoryFile, 1);
|
||||
|
||||
#
|
||||
# Check whether VNC authentication is enabled, and if so, prompt the user to
|
||||
# create a VNC password if they don't already have one.
|
||||
#
|
||||
|
||||
$securityTypeArgSpecified = 0;
|
||||
$vncAuthEnabled = 0;
|
||||
$passwordArgSpecified = 0;
|
||||
@vncAuthStrings = ("vncauth", "tlsvnc", "x509vnc");
|
||||
|
||||
# ...first we check our configuration files' settings
|
||||
if ($config{'securitytypes'}) {
|
||||
$securityTypeArgSpecified = 1;
|
||||
foreach $arg2 (split(',', $config{'securitytypes'})) {
|
||||
if (grep {$_ eq lc($arg2)} @vncAuthStrings) {
|
||||
$vncAuthEnabled = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ...and finally we check CLI args, which in the case of the topic at
|
||||
# hand (VNC auth or not), override anything found in configuration files
|
||||
# (even so-called "mandatory" settings).
|
||||
for ($i = 0; $i < @ARGV; ++$i) {
|
||||
# -SecurityTypes can be followed by a space or "="
|
||||
my @splitargs = split('=', $ARGV[$i]);
|
||||
if (@splitargs <= 1 && $i < @ARGV - 1) {
|
||||
push(@splitargs, $ARGV[$i + 1]);
|
||||
}
|
||||
if (lc(@splitargs[0]) eq "-securitytypes") {
|
||||
if (@splitargs > 1) {
|
||||
$securityTypeArgSpecified = 1;
|
||||
}
|
||||
foreach $arg2 (split(',', @splitargs[1])) {
|
||||
if (grep {$_ eq lc($arg2)} @vncAuthStrings) {
|
||||
$vncAuthEnabled = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((lc(@splitargs[0]) eq "-password")
|
||||
|| (lc(@splitargs[0]) eq "-passwordfile"
|
||||
|| (lc(@splitargs[0]) eq "-rfbauth"))) {
|
||||
$passwordArgSpecified = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!$securityTypeArgSpecified || $vncAuthEnabled) && !$passwordArgSpecified) {
|
||||
($z,$z,$mode) = stat("$vncUserDir/passwd");
|
||||
if (!(-e "$vncUserDir/passwd") || ($mode & 077)) {
|
||||
warn "\nYou will require a password to access your desktops.\n\n";
|
||||
system($exedir."vncpasswd -q $vncUserDir/passwd");
|
||||
if (($? >> 8) != 0) {
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$desktopLog = "$vncUserDir/$host:$displayNumber.log";
|
||||
unlink($desktopLog);
|
||||
|
||||
# Make an X server cookie and set up the Xauthority file
|
||||
# mcookie is a part of util-linux, usually only GNU/Linux systems have it.
|
||||
$cookie = `mcookie`;
|
||||
# Fallback for non GNU/Linux OS - use /dev/urandom on systems that have it,
|
||||
# otherwise use perl's random number generator, seeded with the sum
|
||||
# of the current time, our PID and part of the encrypted form of the password.
|
||||
if ($cookie eq "" && open(URANDOM, '<', '/dev/urandom')) {
|
||||
my $randata;
|
||||
if (sysread(URANDOM, $randata, 16) == 16) {
|
||||
$cookie = unpack 'h*', $randata;
|
||||
}
|
||||
close(URANDOM);
|
||||
}
|
||||
if ($cookie eq "") {
|
||||
srand(time+$$+unpack("L",`cat $vncUserDir/passwd`));
|
||||
for (1..16) {
|
||||
$cookie .= sprintf("%02x", int(rand(256)) % 256);
|
||||
}
|
||||
}
|
||||
|
||||
open(XAUTH, "|xauth -f $xauthorityFile source -");
|
||||
print XAUTH "add $host:$displayNumber . $cookie\n";
|
||||
print XAUTH "add $host/unix:$displayNumber . $cookie\n";
|
||||
close(XAUTH);
|
||||
|
||||
# Now start the X VNC Server
|
||||
|
||||
# We build up our Xvnc command with options
|
||||
$cmd = $exedir."Xvnc :$displayNumber";
|
||||
|
||||
foreach my $k (sort keys %config) {
|
||||
$cmd .= " -$k $config{$k}";
|
||||
delete $default_opts{$k}; # file options take precedence
|
||||
}
|
||||
|
||||
foreach my $k (sort keys %default_opts) {
|
||||
$cmd .= " -$k $default_opts{$k}";
|
||||
}
|
||||
|
||||
# Add color database stuff here, e.g.:
|
||||
# $cmd .= " -co /usr/lib/X11/rgb";
|
||||
|
||||
foreach $arg (@ARGV) {
|
||||
$cmd .= " " . "edString($arg);
|
||||
}
|
||||
$cmd .= " >> " . "edString($desktopLog) . " 2>&1";
|
||||
|
||||
# Run $cmd and record the process ID.
|
||||
$pidFile = "$vncUserDir/$host:$displayNumber.pid";
|
||||
system("$cmd & echo \$! >$pidFile");
|
||||
|
||||
# Give Xvnc a chance to start up
|
||||
|
||||
sleep(3);
|
||||
if ($fontPath ne $defFontPath) {
|
||||
unless (kill 0, `cat $pidFile`) {
|
||||
if ($fpArgSpecified) {
|
||||
warn "\nWARNING: The first attempt to start Xvnc failed, probably because the font\n";
|
||||
warn "path you specified using the -fp argument is incorrect. Attempting to\n";
|
||||
warn "determine an appropriate font path for this system and restart Xvnc using\n";
|
||||
warn "that font path ...\n";
|
||||
} else {
|
||||
warn "\nWARNING: The first attempt to start Xvnc failed, possibly because the font\n";
|
||||
warn "catalog is not properly configured. Attempting to determine an appropriate\n";
|
||||
warn "font path for this system and restart Xvnc using that font path ...\n";
|
||||
}
|
||||
$cmd =~ s@-fp [^ ]+@@;
|
||||
$cmd .= " -fp $defFontPath" if ($defFontPath);
|
||||
system("$cmd & echo \$! >$pidFile");
|
||||
sleep(3);
|
||||
}
|
||||
}
|
||||
unless (kill 0, `cat $pidFile`) {
|
||||
warn "Could not start Xvnc.\n\n";
|
||||
unlink $pidFile;
|
||||
open(LOG, "<$desktopLog");
|
||||
while (<LOG>) { print; }
|
||||
close(LOG);
|
||||
die "\n";
|
||||
}
|
||||
|
||||
warn "\nNew '$desktopName' desktop is $host:$displayNumber\n\n";
|
||||
|
||||
# Create the user's xstartup script if necessary.
|
||||
if (! $skipxstartup) {
|
||||
if (!(-e "$xstartupFile")) {
|
||||
warn "Creating default startup script $xstartupFile\n";
|
||||
open(XSTARTUP, ">$xstartupFile");
|
||||
print XSTARTUP $defaultXStartup;
|
||||
close(XSTARTUP);
|
||||
chmod 0755, "$xstartupFile";
|
||||
}
|
||||
}
|
||||
|
||||
# Create the user's config file if necessary.
|
||||
if (!(-e "$vncUserDir/config")) {
|
||||
warn "Creating default config $vncUserDir/config\n";
|
||||
open(VNCUSERCONFIG, ">$vncUserDir/config");
|
||||
print VNCUSERCONFIG $defaultConfig;
|
||||
close(VNCUSERCONFIG);
|
||||
chmod 0644, "$vncUserDir/config";
|
||||
}
|
||||
|
||||
# Run the X startup script.
|
||||
if (! $skipxstartup) {
|
||||
warn "Starting applications specified in $xstartupFile\n";
|
||||
}
|
||||
warn "Log file is $desktopLog\n\n";
|
||||
|
||||
# If the unix domain socket exists then use that (DISPLAY=:n) otherwise use
|
||||
# TCP (DISPLAY=host:n)
|
||||
|
||||
if (-e "/tmp/.X11-unix/X$displayNumber" ||
|
||||
-e "/usr/spool/sockets/X11/$displayNumber")
|
||||
{
|
||||
$ENV{DISPLAY}= ":$displayNumber";
|
||||
} else {
|
||||
$ENV{DISPLAY}= "$host:$displayNumber";
|
||||
}
|
||||
$ENV{VNCDESKTOP}= $desktopName;
|
||||
|
||||
if ($opt{'-fg'}) {
|
||||
if (! $skipxstartup) {
|
||||
system("$xstartupFile >> " . "edString($desktopLog) . " 2>&1");
|
||||
}
|
||||
if (kill 0, `cat $pidFile`) {
|
||||
$opt{'-kill'} = ':'.$displayNumber;
|
||||
&Kill();
|
||||
}
|
||||
} else {
|
||||
if ($opt{'-autokill'}) {
|
||||
if (! $skipxstartup) {
|
||||
system("($xstartupFile; $0 -kill :$displayNumber) >> "
|
||||
. "edString($desktopLog) . " 2>&1 &");
|
||||
}
|
||||
} else {
|
||||
if (! $skipxstartup) {
|
||||
system("$xstartupFile >> " . "edString($desktopLog)
|
||||
. " 2>&1 &");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
###############################################################################
|
||||
# Functions
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Populate the global %config hash with settings from a specified
|
||||
# vncserver configuration file if it exists
|
||||
#
|
||||
# Args: 1. file path
|
||||
# 2. optional boolean flag to enable warning when a previously
|
||||
# set configuration setting is being overridden
|
||||
#
|
||||
sub LoadConfig {
|
||||
local ($configFile, $warnoverride) = @_;
|
||||
local ($toggle) = undef;
|
||||
|
||||
if (stat($configFile)) {
|
||||
if (open(IN, $configFile)) {
|
||||
while (<IN>) {
|
||||
next if /^#/;
|
||||
if (my ($k, $v) = /^\s*(\w+)\s*=\s*(.+)$/) {
|
||||
$k = lc($k); # must normalize key case
|
||||
if ($warnoverride && $config{$k}) {
|
||||
print("Warning: $configFile is overriding previously defined '$k' to be '$v'\n");
|
||||
}
|
||||
$config{$k} = $v;
|
||||
} elsif ($_ =~ m/^\s*(\S+)/) {
|
||||
# We can't reasonably warn on override of toggles (e.g. AlwaysShared)
|
||||
# because it would get crazy to do so. We'd have to check if the
|
||||
# current config file being loaded defined the logical opposite setting
|
||||
# (NeverShared vs. AlwaysShared, etc etc).
|
||||
$toggle = lc($1); # must normalize key case
|
||||
$config{$toggle} = $k;
|
||||
}
|
||||
}
|
||||
close(IN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# CheckGeometryAndDepth simply makes sure that the geometry and depth values
|
||||
# are sensible.
|
||||
#
|
||||
|
||||
sub CheckGeometryAndDepth
|
||||
{
|
||||
if ($geometry =~ /^(\d+)x(\d+)$/) {
|
||||
$width = $1; $height = $2;
|
||||
|
||||
if (($width<1) || ($height<1)) {
|
||||
die "$prog: geometry $geometry is invalid\n";
|
||||
}
|
||||
|
||||
$geometry = "${width}x$height";
|
||||
} else {
|
||||
die "$prog: geometry $geometry is invalid\n";
|
||||
}
|
||||
|
||||
if ($depth && (($depth < 8) || ($depth > 32))) {
|
||||
die "Depth must be between 8 and 32\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# GetDisplayNumber gets the lowest available display number. A display number
|
||||
# n is taken if something is listening on the VNC server port (5900+n) or the
|
||||
# X server port (6000+n).
|
||||
#
|
||||
|
||||
sub GetDisplayNumber
|
||||
{
|
||||
foreach $n (1..99) {
|
||||
if (&CheckDisplayNumber($n)) {
|
||||
return $n+0; # Bruce Mah's workaround for bug in perl 5.005_02
|
||||
}
|
||||
}
|
||||
|
||||
die "$prog: no free display number on $host.\n";
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# CheckDisplayNumber checks if the given display number is available. A
|
||||
# display number n is taken if something is listening on the VNC server port
|
||||
# (5900+n) or the X server port (6000+n).
|
||||
#
|
||||
|
||||
sub CheckDisplayNumber
|
||||
{
|
||||
local ($n) = @_;
|
||||
|
||||
socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
|
||||
eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
|
||||
if (!bind(S, pack('S n x12', $AF_INET, 6000 + $n))) {
|
||||
close(S);
|
||||
return 0;
|
||||
}
|
||||
close(S);
|
||||
|
||||
socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
|
||||
eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
|
||||
if (!bind(S, pack('S n x12', $AF_INET, 5900 + $n))) {
|
||||
close(S);
|
||||
return 0;
|
||||
}
|
||||
close(S);
|
||||
|
||||
if (-e "/tmp/.X$n-lock") {
|
||||
warn "\nWarning: $host:$n is taken because of /tmp/.X$n-lock\n";
|
||||
warn "Remove this file if there is no X server $host:$n\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (-e "/tmp/.X11-unix/X$n") {
|
||||
warn "\nWarning: $host:$n is taken because of /tmp/.X11-unix/X$n\n";
|
||||
warn "Remove this file if there is no X server $host:$n\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (-e "/usr/spool/sockets/X11/$n") {
|
||||
warn("\nWarning: $host:$n is taken because of ".
|
||||
"/usr/spool/sockets/X11/$n\n");
|
||||
warn "Remove this file if there is no X server $host:$n\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# GetXDisplayDefaults uses xdpyinfo to find out the geometry, depth and pixel
|
||||
# format of the current X display being used. If successful, it sets the
|
||||
# options as appropriate so that the X VNC server will use the same settings
|
||||
# (minus an allowance for window manager decorations on the geometry). Using
|
||||
# the same depth and pixel format means that the VNC server won't have to
|
||||
# translate pixels when the desktop is being viewed on this X display (for
|
||||
# TrueColor displays anyway).
|
||||
#
|
||||
|
||||
sub GetXDisplayDefaults
|
||||
{
|
||||
local (@lines, @matchlines, $width, $height, $defaultVisualId, $i,
|
||||
$red, $green, $blue);
|
||||
|
||||
$wmDecorationWidth = 4; # a guess at typical size for window manager
|
||||
$wmDecorationHeight = 24; # decoration size
|
||||
|
||||
return if (!defined($ENV{DISPLAY}));
|
||||
|
||||
@lines = `xdpyinfo 2>/dev/null`;
|
||||
|
||||
return if ($? != 0);
|
||||
|
||||
@matchlines = grep(/dimensions/, @lines);
|
||||
if (@matchlines) {
|
||||
($width, $height) = ($matchlines[0] =~ /(\d+)x(\d+) pixels/);
|
||||
|
||||
$width -= $wmDecorationWidth;
|
||||
$height -= $wmDecorationHeight;
|
||||
|
||||
$geometry = "${width}x$height";
|
||||
}
|
||||
|
||||
@matchlines = grep(/default visual id/, @lines);
|
||||
if (@matchlines) {
|
||||
($defaultVisualId) = ($matchlines[0] =~ /id:\s+(\S+)/);
|
||||
|
||||
for ($i = 0; $i < @lines; $i++) {
|
||||
if ($lines[$i] =~ /^\s*visual id:\s+$defaultVisualId$/) {
|
||||
if (($lines[$i+1] !~ /TrueColor/) ||
|
||||
($lines[$i+2] !~ /depth/) ||
|
||||
($lines[$i+4] !~ /red, green, blue masks/))
|
||||
{
|
||||
return;
|
||||
}
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
return if ($i >= @lines);
|
||||
|
||||
($depth) = ($lines[$i+2] =~ /depth:\s+(\d+)/);
|
||||
($red,$green,$blue)
|
||||
= ($lines[$i+4]
|
||||
=~ /masks:\s+0x([0-9a-f]+), 0x([0-9a-f]+), 0x([0-9a-f]+)/);
|
||||
|
||||
$red = hex($red);
|
||||
$green = hex($green);
|
||||
$blue = hex($blue);
|
||||
|
||||
if ($red > $blue) {
|
||||
$red = int(log($red) / log(2)) - int(log($green) / log(2));
|
||||
$green = int(log($green) / log(2)) - int(log($blue) / log(2));
|
||||
$blue = int(log($blue) / log(2)) + 1;
|
||||
$pixelformat = "rgb$red$green$blue";
|
||||
} else {
|
||||
$blue = int(log($blue) / log(2)) - int(log($green) / log(2));
|
||||
$green = int(log($green) / log(2)) - int(log($red) / log(2));
|
||||
$red = int(log($red) / log(2)) + 1;
|
||||
$pixelformat = "bgr$blue$green$red";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# quotedString returns a string which yields the original string when parsed
|
||||
# by a shell.
|
||||
#
|
||||
|
||||
sub quotedString
|
||||
{
|
||||
local ($in) = @_;
|
||||
|
||||
$in =~ s/\'/\'\"\'\"\'/g;
|
||||
|
||||
return "'$in'";
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# removeSlashes turns slashes into underscores for use as a file name.
|
||||
#
|
||||
|
||||
sub removeSlashes
|
||||
{
|
||||
local ($in) = @_;
|
||||
|
||||
$in =~ s|/|_|g;
|
||||
|
||||
return "$in";
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Usage
|
||||
#
|
||||
|
||||
sub Usage
|
||||
{
|
||||
die("\nusage: $prog [:<number>] [-name <desktop-name>] [-depth <depth>]\n".
|
||||
" [-geometry <width>x<height>]\n".
|
||||
" [-pixelformat rgbNNN|bgrNNN]\n".
|
||||
" [-fp <font-path>]\n".
|
||||
" [-fg]\n".
|
||||
" [-autokill]\n".
|
||||
" [-noxstartup]\n".
|
||||
" [-xstartup <file>]\n".
|
||||
" <Xvnc-options>...\n\n".
|
||||
" $prog -kill <X-display>\n\n".
|
||||
" $prog -list\n\n");
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# List
|
||||
#
|
||||
|
||||
sub List
|
||||
{
|
||||
opendir(dir, $vncUserDir);
|
||||
my @filelist = readdir(dir);
|
||||
closedir(dir);
|
||||
print "\nTigerVNC server sessions:\n\n";
|
||||
print "X DISPLAY #\tPROCESS ID\n";
|
||||
foreach my $file (@filelist) {
|
||||
if ($file =~ /$host:(\d+)$\.pid/) {
|
||||
chop($tmp_pid = `cat $vncUserDir/$file`);
|
||||
if (kill 0, $tmp_pid) {
|
||||
print ":".$1."\t\t".`cat $vncUserDir/$file`;
|
||||
} else {
|
||||
unlink ($vncUserDir . "/" . $file);
|
||||
}
|
||||
}
|
||||
}
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Kill
|
||||
#
|
||||
|
||||
sub Kill
|
||||
{
|
||||
$opt{'-kill'} =~ s/(:\d+)\.\d+$/$1/; # e.g. turn :1.0 into :1
|
||||
|
||||
if ($opt{'-kill'} =~ /^:\d+$/) {
|
||||
$pidFile = "$vncUserDir/$host$opt{'-kill'}.pid";
|
||||
} else {
|
||||
if ($opt{'-kill'} !~ /^$host:/) {
|
||||
die "\nCan't tell if $opt{'-kill'} is on $host\n".
|
||||
"Use -kill :<number> instead\n\n";
|
||||
}
|
||||
$pidFile = "$vncUserDir/$opt{'-kill'}.pid";
|
||||
}
|
||||
|
||||
if (! -r $pidFile) {
|
||||
die "\nCan't find file $pidFile\n".
|
||||
"You'll have to kill the Xvnc process manually\n\n";
|
||||
}
|
||||
|
||||
$SIG{'HUP'} = 'IGNORE';
|
||||
chop($pid = `cat $pidFile`);
|
||||
warn "Killing Xvnc process ID $pid\n";
|
||||
|
||||
if (kill 0, $pid) {
|
||||
system("kill $pid");
|
||||
sleep(1);
|
||||
if (kill 0, $pid) {
|
||||
print "Xvnc seems to be deadlocked. Kill the process manually and then re-run\n";
|
||||
print " ".$0." -kill ".$opt{'-kill'}."\n";
|
||||
print "to clean up the socket files.\n";
|
||||
exit
|
||||
}
|
||||
|
||||
} else {
|
||||
warn "Xvnc process ID $pid already killed\n";
|
||||
$opt{'-kill'} =~ s/://;
|
||||
|
||||
if (-e "/tmp/.X11-unix/X$opt{'-kill'}") {
|
||||
print "Xvnc did not appear to shut down cleanly.";
|
||||
print " Removing /tmp/.X11-unix/X$opt{'-kill'}\n";
|
||||
unlink "/tmp/.X11-unix/X$opt{'-kill'}";
|
||||
}
|
||||
if (-e "/tmp/.X$opt{'-kill'}-lock") {
|
||||
print "Xvnc did not appear to shut down cleanly.";
|
||||
print " Removing /tmp/.X$opt{'-kill'}-lock\n";
|
||||
unlink "/tmp/.X$opt{'-kill'}-lock";
|
||||
}
|
||||
}
|
||||
|
||||
unlink $pidFile;
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# ParseOptions takes a list of possible options and a boolean indicating
|
||||
# whether the option has a value following, and sets up an associative array
|
||||
# %opt of the values of the options given on the command line. It removes all
|
||||
# the arguments it uses from @ARGV and returns them in @optArgs.
|
||||
#
|
||||
|
||||
sub ParseOptions
|
||||
{
|
||||
local (@optval) = @_;
|
||||
local ($opt, @opts, %valFollows, @newargs);
|
||||
|
||||
while (@optval) {
|
||||
$opt = shift(@optval);
|
||||
push(@opts,$opt);
|
||||
$valFollows{$opt} = shift(@optval);
|
||||
}
|
||||
|
||||
@optArgs = ();
|
||||
%opt = ();
|
||||
|
||||
arg: while (defined($arg = shift(@ARGV))) {
|
||||
foreach $opt (@opts) {
|
||||
if ($arg eq $opt) {
|
||||
push(@optArgs, $arg);
|
||||
if ($valFollows{$opt}) {
|
||||
if (@ARGV == 0) {
|
||||
&Usage();
|
||||
}
|
||||
$opt{$opt} = shift(@ARGV);
|
||||
push(@optArgs, $opt{$opt});
|
||||
} else {
|
||||
$opt{$opt} = 1;
|
||||
}
|
||||
next arg;
|
||||
}
|
||||
}
|
||||
push(@newargs,$arg);
|
||||
}
|
||||
|
||||
@ARGV = @newargs;
|
||||
}
|
||||
|
||||
|
||||
# Routine to make sure we're operating in a sane environment.
|
||||
sub SanityCheck
|
||||
{
|
||||
local ($cmd);
|
||||
|
||||
# Get the program name
|
||||
($prog) = ($0 =~ m|([^/]+)$|);
|
||||
|
||||
#
|
||||
# Check we have all the commands we'll need on the path.
|
||||
#
|
||||
|
||||
cmd:
|
||||
foreach $cmd ("uname","xauth") {
|
||||
for (split(/:/,$ENV{PATH})) {
|
||||
if (-x "$_/$cmd") {
|
||||
next cmd;
|
||||
}
|
||||
}
|
||||
die "$prog: couldn't find \"$cmd\" on your PATH.\n";
|
||||
}
|
||||
|
||||
if($exedir eq "") {
|
||||
cmd2:
|
||||
foreach $cmd ("Xvnc","vncpasswd") {
|
||||
for (split(/:/,$ENV{PATH})) {
|
||||
if (-x "$_/$cmd") {
|
||||
$vncClasses = "$_/../vnc/classes";
|
||||
next cmd2;
|
||||
}
|
||||
}
|
||||
die "$prog: couldn't find \"$cmd\" on your PATH.\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
cmd3:
|
||||
foreach $cmd ($exedir."Xvnc",$exedir."vncpasswd") {
|
||||
for (split(/:/,$ENV{PATH})) {
|
||||
if (-x "$cmd") {
|
||||
$vncClasses = $exedir."../vnc/classes";
|
||||
next cmd3;
|
||||
}
|
||||
}
|
||||
die "$prog: couldn't find \"$cmd\".\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined($ENV{HOME})) {
|
||||
die "$prog: The HOME environment variable is not set.\n";
|
||||
}
|
||||
|
||||
#
|
||||
# Find socket constants. 'use Socket' is a perl5-ism, so we wrap it in an
|
||||
# eval, and if it fails we try 'require "sys/socket.ph"'. If this fails,
|
||||
# we just guess at the values. If you find perl moaning here, just
|
||||
# hard-code the values of AF_INET and SOCK_STREAM. You can find these out
|
||||
# for your platform by looking in /usr/include/sys/socket.h and related
|
||||
# files.
|
||||
#
|
||||
|
||||
chop($os = `uname`);
|
||||
chop($osrev = `uname -r`);
|
||||
|
||||
eval 'use Socket';
|
||||
if ($@) {
|
||||
eval 'require "sys/socket.ph"';
|
||||
if ($@) {
|
||||
if (($os eq "SunOS") && ($osrev !~ /^4/)) {
|
||||
$AF_INET = 2;
|
||||
$SOCK_STREAM = 2;
|
||||
} else {
|
||||
$AF_INET = 2;
|
||||
$SOCK_STREAM = 1;
|
||||
}
|
||||
} else {
|
||||
$AF_INET = &AF_INET;
|
||||
$SOCK_STREAM = &SOCK_STREAM;
|
||||
}
|
||||
} else {
|
||||
$AF_INET = &AF_INET;
|
||||
$SOCK_STREAM = &SOCK_STREAM;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
[Desktop Entry]
|
||||
Name[bg]=Визуализатор на TigerVNC
|
||||
Name[cs]=Prohlížeč TigerVNC
|
||||
Name[da]=TigerVNC-fremviser
|
||||
Name[de]=TigerVNC-Betrachter
|
||||
Name[el]=Θεατής TigerVNC
|
||||
Name[eo]=Rigardilo TigerVNC
|
||||
Name[es]=Visor TigerVNC
|
||||
Name[fi]=TigerVNC-selain
|
||||
Name[fr]=Visionneuse TigerVNC
|
||||
Name[fur]=Visualizadôr TigerVNC
|
||||
Name[hu]=TigerVNC megjelenítő
|
||||
Name[id]=Penampil TigerVNC
|
||||
Name[nl]=TigerVNC-viewer
|
||||
Name[pt_BR]=Visualizador TigerVNC
|
||||
Name[ru]=TigerVNC Viewer
|
||||
Name[sr]=Прегледач ТигарВНЦ
|
||||
Name[sv]=VNC-visare
|
||||
Name[tr]=TigerVNC Görüntüleyici
|
||||
Name[uk]=Засіб перегляду TigerVNC
|
||||
Name[vi]=Bộ xem TigerVNC
|
||||
Name[zh_CN]=TigerVNC 查看器
|
||||
Name=TigerVNC Viewer
|
||||
GenericName[cs]=Prohlížeč vzdálené plochy
|
||||
GenericName[pt_BR]=Visualização de área de trabalho remota
|
||||
GenericName[ru]=Просмотр удалённых рабочих столов
|
||||
GenericName[sv]=Fjärrskrivbordsvisare
|
||||
GenericName[uk]=Засіб перегляду віддаленої стільниці
|
||||
GenericName[vi]=Trình xem màn hình từ xa
|
||||
GenericName=Remote Desktop Viewer
|
||||
Comment[cs]=Připojí se k severu VNC a zobrazí vzdálenou plochu
|
||||
Comment[da]=Opret forbindelse til VNC-server og vis fjern-skrivebord
|
||||
Comment[fr]=Se connecter à un serveur VNC et afficher le bureau distant
|
||||
Comment[pt_BR]=Conecte a um servidor VNC e exiba a área de trabalho remota
|
||||
Comment[ru]=Подключиться к серверу VNC и показать удалённый рабочий стол
|
||||
Comment[sv]=Anslut till en VNC-server och visa ett fjärrskrivbord
|
||||
Comment[uk]=З'єднання із сервером VNC і показ віддаленої стільниці
|
||||
Comment[vi]=Kết nối đến máy phục vụ VNC và hiển thị màn hình từ xa
|
||||
Comment=Connect to VNC server and display remote desktop
|
||||
Exec=/usr/bin/vncviewer
|
||||
Icon[cs]=tigervnc
|
||||
Icon[pt_BR]=tigervnc
|
||||
Icon[ru]=tigervnc
|
||||
Icon[sv]=tigervnc
|
||||
Icon[uk]=tigervnc
|
||||
Icon[vi]=tigervnc
|
||||
Icon=tigervnc
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupWMClass=TigerVNC Viewer: Connection Details
|
||||
Categories=Network;RemoteAccess;
|
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,178 @@
|
|||
About TigerVNC
|
||||
==============
|
||||
|
||||
Virtual Network Computing (VNC) is a remote display system which allows you to
|
||||
view and interact with a virtual desktop environment that is running on another
|
||||
computer on the network. Using VNC, you can run graphical applications on a
|
||||
remote machine and send only the display from these applications to your local
|
||||
machine. VNC is platform-independent and supports a wide variety of operating
|
||||
systems and architectures as both servers and clients.
|
||||
|
||||
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code
|
||||
bases. TigerVNC started as a next-generation development effort for TightVNC
|
||||
on Unix and Linux platforms, but it split from its parent project in early 2009
|
||||
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant
|
||||
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo
|
||||
JPEG codec.
|
||||
|
||||
|
||||
Legal
|
||||
=====
|
||||
|
||||
Incomplete and generally out of date copyright list::
|
||||
|
||||
Copyright (C) 1999 AT&T Laboratories Cambridge
|
||||
Copyright (C) 2002-2005 RealVNC Ltd.
|
||||
Copyright (C) 2000-2006 TightVNC Group
|
||||
Copyright (C) 2005-2006 Martin Koegler
|
||||
Copyright (C) 2005-2006 Sun Microsystems, Inc.
|
||||
Copyright (C) 2006 OCCAM Financial Technology
|
||||
Copyright (C) 2000-2008 Constantin Kaplinsky
|
||||
Copyright (C) 2004-2017 Peter Astrand for Cendio AB
|
||||
Copyright (C) 2010 Antoine Martin
|
||||
Copyright (C) 2010 m-privacy GmbH
|
||||
Copyright (C) 2009-2011 D. R. Commander
|
||||
Copyright (C) 2009-2011 Pierre Ossman for Cendio AB
|
||||
Copyright (C) 2004, 2009-2011 Red Hat, Inc.
|
||||
Copyright (C) 2009-2018 TigerVNC Team
|
||||
All Rights Reserved.
|
||||
|
||||
This software is distributed under the GNU General Public Licence as published
|
||||
by the Free Software Foundation. See the file LICENCE.TXT for the conditions
|
||||
under which this software is made available. TigerVNC also contains code from
|
||||
other sources. See the Acknowledgements section below, and the individual
|
||||
source files, for details of the conditions under which they are made
|
||||
available.
|
||||
|
||||
|
||||
All Platforms
|
||||
=============
|
||||
|
||||
All versions of TigerVNC contain the following programs:
|
||||
|
||||
* vncviewer - the cross-platform TigerVNC Viewer, written using FLTK.
|
||||
vncviewer connects to a VNC server and allows you to interact
|
||||
with the remote desktop being displayed by the VNC server. The
|
||||
VNC server can be running on a Windows or a Unix/Linux machine.
|
||||
|
||||
|
||||
Windows-Specific
|
||||
================
|
||||
|
||||
The Windows version of TigerVNC contains the following programs:
|
||||
|
||||
* winvnc - the TigerVNC Server for Windows. winvnc allows a Windows desktop to
|
||||
be accessed remotely using a VNC viewer.
|
||||
|
||||
winvnc may not work if the Fast User Switching or Remote Desktop features are
|
||||
in use.
|
||||
|
||||
|
||||
Unix/Linux-Specific (not Mac)
|
||||
=============================
|
||||
|
||||
The Unix/Linux version of TigerVNC contains the following programs:
|
||||
|
||||
* Xvnc - the TigerVNC Server for Unix. Xvnc is both a VNC server and an X
|
||||
server with a "virtual" framebuffer. You should normally use the
|
||||
vncserver script to start Xvnc.
|
||||
|
||||
* vncserver - a wrapper script which makes starting Xvnc more convenient.
|
||||
vncserver requires Perl.
|
||||
|
||||
* vncpasswd - a program which allows you to change the VNC password used to
|
||||
access your VNC server sessions (assuming that VNC authentication
|
||||
is being used.) The vncserver script will automatically launch
|
||||
this program if it detects that VNC authentication is in use and
|
||||
a VNC password has not yet been configured.
|
||||
|
||||
* vncconfig - a program which is used to configure and control a running
|
||||
instance of Xvnc.
|
||||
|
||||
* x0vncserver - an inefficient VNC server which continuously polls any X
|
||||
display, allowing it to be controlled via VNC. It is intended
|
||||
mainly as a demonstration of a simple VNC server.
|
||||
|
||||
|
||||
ACKNOWLEDGEMENTS
|
||||
================
|
||||
|
||||
This distribution contains zlib compression software. This is:
|
||||
|
||||
Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly Mark Adler
|
||||
jloup@gzip.org madler@alumni.caltech.edu
|
||||
|
||||
The data format used by the zlib library is described by RFCs (Request for
|
||||
Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
|
||||
(zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
|
||||
|
||||
|
||||
This distribution contains public domain DES software by Richard Outerbridge.
|
||||
This is:
|
||||
|
||||
Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge.
|
||||
(GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992.
|
||||
|
||||
|
||||
This distribution contains software from the X Window System. This is:
|
||||
|
||||
Copyright 1987, 1988, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,440 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg2475"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="tigervnc.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs2477">
|
||||
<linearGradient
|
||||
id="linearGradient3250">
|
||||
<stop
|
||||
style="stop-color:#00b33b;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3252" />
|
||||
<stop
|
||||
style="stop-color:#faffb7;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3254" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3250"
|
||||
id="radialGradient4632"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="412"
|
||||
cy="741.36218"
|
||||
fx="412"
|
||||
fy="741.36218"
|
||||
r="40" />
|
||||
<linearGradient
|
||||
id="linearGradient4670">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4672" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4674" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient4676"
|
||||
cx="1295.3251"
|
||||
cy="3900.0645"
|
||||
fx="1295.3251"
|
||||
fy="3900.0645"
|
||||
r="143.33163"
|
||||
gradientTransform="matrix(1.7404518,0,0,1.7404518,-2126.3102,-6728.444)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4680">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4682" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4684" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient4686"
|
||||
cx="1273.4048"
|
||||
cy="3903.5999"
|
||||
fx="1273.4048"
|
||||
fy="3903.5999"
|
||||
r="140.78125"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9924488,0,0,0.9924488,-897.35354,-3576.3994)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2483" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient2537"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.7404518,0,0,1.7404518,-2126.3102,-6728.444)"
|
||||
cx="1295.3251"
|
||||
cy="3900.0645"
|
||||
fx="1295.3251"
|
||||
fy="3900.0645"
|
||||
r="143.33163" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient2539"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9924488,0,0,0.9924488,-897.35354,-3576.3994)"
|
||||
cx="1273.4048"
|
||||
cy="3903.5999"
|
||||
fx="1273.4048"
|
||||
fy="3903.5999"
|
||||
r="140.78125" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3250"
|
||||
id="radialGradient3402"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="412"
|
||||
cy="741.36218"
|
||||
fx="412"
|
||||
fy="741.36218"
|
||||
r="40" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient3435"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8961233,0,0,0.8961233,3.6695317,3.6695317)" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient3448"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8961233,0,0,0.8961233,-252.33047,-252.33047)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3250"
|
||||
id="radialGradient3509"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="412"
|
||||
cy="741.36218"
|
||||
fx="412"
|
||||
fy="741.36218"
|
||||
r="40" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient3511"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8961233,0,0,0.8961233,3.6695317,3.6695317)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient3513"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8961233,0,0,0.8961233,-252.33047,-252.33047)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient3516"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1520209,0,0,0.1520209,-42.091779,-42.091782)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient3519"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1545359,0,0,0.1545365,-0.4407892,-0.4408045)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3250"
|
||||
id="radialGradient3543"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="412"
|
||||
cy="741.36218"
|
||||
fx="412"
|
||||
fy="741.36218"
|
||||
r="40" />
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath3545">
|
||||
<rect
|
||||
ry="73.044022"
|
||||
rx="73.044022"
|
||||
y="3452.2119"
|
||||
x="957.836"
|
||||
height="311.65448"
|
||||
width="311.65448"
|
||||
id="rect3547"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</clipPath>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient3551"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1544021,0,0,0.154402,-42.422147,-42.422147)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient6774"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1545359,0,0,0.1545365,-42.440629,-42.440805)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3250"
|
||||
id="radialGradient2463"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="412"
|
||||
cy="741.36218"
|
||||
fx="412"
|
||||
fy="741.36218"
|
||||
r="40" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4670"
|
||||
id="radialGradient2465"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1545359,0,0,0.1545365,-0.4407892,-0.4408045)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4680"
|
||||
id="radialGradient2467"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.1545359,0,0,0.1545365,-42.440629,-42.440805)"
|
||||
cx="35.32584"
|
||||
cy="35.32584"
|
||||
fx="35.32584"
|
||||
fy="35.32584"
|
||||
r="112" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9999996"
|
||||
inkscape:cx="22.225066"
|
||||
inkscape:cy="24.691018"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1058"
|
||||
inkscape:window-height="719"
|
||||
inkscape:window-x="102"
|
||||
inkscape:window-y="264"
|
||||
inkscape:snap-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3536"
|
||||
visible="true"
|
||||
enabled="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata2480">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g2444"
|
||||
transform="translate(3,3)">
|
||||
<rect
|
||||
ry="9.84375"
|
||||
rx="9.84375"
|
||||
y="0"
|
||||
x="0"
|
||||
height="42"
|
||||
width="42"
|
||||
id="rect3404"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
inkscape:export-ydpi="90.110069"
|
||||
inkscape:export-xdpi="90.110069"
|
||||
inkscape:export-filename="/home/ossman/Desktop/text4698.png"
|
||||
transform="matrix(0.1219299,0,0,0.1219299,-114.78885,-418.92784)"
|
||||
clip-path="url(#clipPath3545)"
|
||||
id="g4636">
|
||||
<rect
|
||||
y="3451.5559"
|
||||
x="935.90826"
|
||||
height="340"
|
||||
width="373"
|
||||
id="rect4598"
|
||||
style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="csssssssssss"
|
||||
id="path4600"
|
||||
d="M 1007.9083,3544.056 C 996.60993,3550.5153 997.40828,3586.056 997.40828,3599.056 C 997.40828,3612.056 1011.4083,3627.056 1027.4083,3635.056 C 1043.4083,3643.056 1069.4083,3661.056 1086.4083,3664.056 C 1103.4083,3667.056 1128.9083,3670.306 1136.9083,3671.056 C 1144.9083,3671.806 1169.479,3668.7141 1190.9083,3649.556 C 1222.1498,3621.6256 1211.688,3591.0673 1250.4083,3569.556 C 1281.9083,3552.056 1289.266,3546.5648 1288.4083,3531.556 C 1287.4083,3514.056 1264.9083,3513.556 1250.9083,3510.056 C 1238.3151,3506.9077 1197.4083,3502.056 1176.9083,3507.056 C 1156.4083,3512.056 1133.0105,3523.2638 1120.9083,3528.056 C 1074.3873,3546.4772 1068.0958,3509.6467 1007.9083,3544.056 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 1125.9383,3516.0728 C 1128.5902,3524.2775 1137.5571,3522.1047 1151.7131,3517.5999 C 1155.6963,3516.2323 1168.6127,3510.4315 1186.1317,3507.7176 C 1204.8615,3504.8161 1202.3646,3505.0079 1227.5282,3507.8635 C 1246.075,3509.9683 1259.2927,3517.2242 1260.3786,3510.4105 C 1261.6918,3502.1702 1243.8156,3490.9933 1227.5087,3488.29 C 1212.7387,3485.8415 1188.2552,3482.4302 1160.7067,3494.1988 C 1147.1501,3499.9901 1122.8897,3506.6407 1125.9383,3516.0728 z"
|
||||
id="path4602"
|
||||
sodipodi:nodetypes="ccssssss" />
|
||||
<path
|
||||
id="path4604"
|
||||
d="M 1099.1583,3561.306 C 1093.1583,3564.556 1076.6583,3579.806 1069.4083,3580.556 C 1062.1583,3581.306 1059.1583,3577.306 1053.1583,3579.556 C 1047.1583,3581.806 1015.9083,3591.556 1012.1583,3594.056 C 1008.4083,3596.556 1007.1583,3601.556 1009.6583,3603.806 C 1012.1583,3606.056 1042.9083,3608.056 1047.1583,3610.306 C 1051.4083,3612.556 1076.6583,3625.056 1083.9083,3624.806 C 1091.1583,3624.556 1117.9083,3626.806 1128.1583,3622.556 C 1138.4083,3618.306 1155.9083,3591.806 1165.1583,3585.056 C 1174.4083,3578.306 1185.1583,3569.806 1195.4083,3566.806 C 1205.6583,3563.806 1217.6583,3555.806 1222.1583,3549.806 C 1226.6583,3543.806 1227.9083,3538.306 1222.1583,3537.056 C 1216.4083,3535.806 1208.4083,3543.306 1201.4083,3544.806 C 1194.4083,3546.306 1171.9083,3546.306 1158.4083,3544.806 C 1144.9083,3543.306 1099.6583,3561.806 1099.1583,3561.306 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<g
|
||||
id="g4606"
|
||||
transform="translate(689.40828,2839.6938)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:1;fill:url(#radialGradient2463);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4608"
|
||||
sodipodi:cx="412"
|
||||
sodipodi:cy="741.36218"
|
||||
sodipodi:rx="40"
|
||||
sodipodi:ry="40"
|
||||
d="M 452,741.36218 A 40,40 0 1 1 372,741.36218 A 40,40 0 1 1 452,741.36218 z"
|
||||
transform="translate(12,12)" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4610"
|
||||
sodipodi:cx="424"
|
||||
sodipodi:cy="753.36218"
|
||||
sodipodi:rx="10"
|
||||
sodipodi:ry="10"
|
||||
d="M 434,753.36218 A 10,10 0 1 1 414,753.36218 A 10,10 0 1 1 434,753.36218 z" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cssssscscssssscsc"
|
||||
id="path4612"
|
||||
d="M 1180.8263,3543.8623 C 1159.6524,3538.7809 1132.8731,3544.167 1117.3915,3547.9227 C 1103.1996,3551.3655 1089.8752,3558.9657 1084.4298,3564.23 C 1081.5341,3567.0293 1075.4203,3572.3599 1072.1736,3573.9138 C 1069.7125,3575.0917 1066.2312,3575.4187 1062.7851,3574.9156 C 1058.3095,3574.2623 1054.8724,3571.2806 1053.2894,3565.8065 C 1051.2729,3558.8332 1049.4416,3552.8194 1052.0958,3545.0375 C 1052.4668,3543.9934 1051.9212,3542.8461 1050.877,3542.475 C 1049.8329,3542.104 1048.6856,3542.6496 1048.3145,3543.6938 C 1044.6477,3553.961 1044.3935,3564.0662 1047.0333,3572.0063 C 1049.673,3579.9463 1055.4515,3585.8246 1063.4083,3586.6625 C 1068.7949,3587.2298 1073.1533,3586.1872 1076.9083,3584.1625 C 1080.6634,3582.1379 1083.8342,3579.2154 1087.4083,3576.0688 C 1094.5565,3569.7756 1103.2494,3562.3166 1120.7208,3557.6 C 1157.3906,3547.7008 1140.723,3548.61 1180.92,3547.8623 C 1182.0246,3547.8364 1182.899,3546.92 1182.8732,3545.8154 C 1182.8473,3544.7109 1181.9308,3543.8364 1180.8263,3543.8623 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccsccssssssssssssssssssssccsssssssssssssssc"
|
||||
id="path4614"
|
||||
d="M 1219.5646,3534.225 C 1217.4737,3534.538 1215.4367,3535.4046 1213.2833,3536.4125 C 1202.5945,3542.871 1192.0875,3543.7482 1179.9708,3542.9125 C 1172.4025,3542.3845 1164.3465,3541.6345 1157.2521,3542.3813 C 1143.2449,3543.8558 1133.5646,3549.8188 1133.5646,3549.8188 L 1136.1896,3554.0688 C 1136.1896,3554.0688 1144.9205,3548.7041 1157.7833,3547.35 C 1164.1239,3546.6826 1171.9926,3547.3487 1179.6271,3547.8813 C 1187.2616,3548.4139 1194.6444,3548.8746 1200.5958,3547.2875 C 1206.3268,3545.7593 1211.4065,3542.817 1215.4083,3540.9438 C 1217.4092,3540.0072 1219.1259,3539.367 1220.2833,3539.1938 C 1221.4407,3539.0206 1221.774,3539.1219 1222.2208,3539.5688 C 1223.0114,3540.3594 1223.3268,3541.0055 1223.4396,3541.6938 C 1223.5523,3542.3821 1223.473,3543.2443 1222.8771,3544.5063 C 1221.6852,3547.0303 1218.3878,3550.8155 1212.5021,3555.6625 C 1206.9665,3560.2213 1199.244,3563.0338 1190.7208,3566.3188 C 1182.1976,3569.6038 1173.4254,3574.1079 1164.4083,3580.4125 C 1154.4712,3587.3605 1153.8322,3594.4722 1142.745,3604.4377 C 1135.7573,3610.7185 1127.1781,3619.4803 1116.9077,3620.6886 C 1087.2226,3624.181 1079.4555,3617.1468 1060.377,3612.6625 C 1048.3008,3609.8241 1036.4026,3606.0357 1026.3458,3605.1313 C 1021.3174,3604.6791 1016.9684,3604.2216 1014.2208,3603.3813 C 1012.8469,3602.9611 1011.9138,3602.4421 1011.4395,3602.0063 C 1010.9653,3601.5705 1010.8381,3601.3097 1010.8145,3600.6313 C 1010.7402,3598.4937 1011.2269,3597.8051 1012.9083,3596.725 C 1014.5897,3595.645 1017.6374,3594.6647 1021.627,3593.6313 C 1029.6064,3591.5644 1041.2821,3589.0351 1054.4395,3581.6938 L 1052.002,3577.3188 C 1039.5136,3584.2869 1028.5359,3586.6742 1020.377,3588.7875 C 1016.2976,3589.8442 1012.8828,3590.7763 1010.1895,3592.5063 C 1007.4963,3594.2363 1005.6908,3597.2582 1005.8145,3600.8188 C 1005.8803,3602.7109 1006.7613,3604.4962 1008.0645,3605.6938 C 1009.3678,3606.8914 1010.9602,3607.6145 1012.752,3608.1625 C 1016.3358,3609.2586 1020.8206,3609.6453 1025.877,3610.1 C 1035.9898,3611.0094 1048.2967,3612.0501 1058.0645,3617.1 C 1077.2026,3626.9944 1092.7394,3637.8981 1123.1583,3634.3194 C 1135.4042,3632.8787 1149.8612,3622.006 1155.9169,3612.8758 C 1161.9726,3603.7455 1166.4914,3596.5842 1174.3207,3590.6705 C 1179.8516,3586.4928 1184.8359,3580.7308 1193.2833,3574.725 C 1200.6617,3569.4793 1209.1731,3564.8783 1215.6583,3559.5375 C 1221.7934,3554.4851 1225.5638,3550.4713 1227.3771,3546.6313 C 1228.2837,3544.7113 1228.6842,3542.7562 1228.3771,3540.8813 C 1228.07,3539.0064 1227.0828,3537.3683 1225.7521,3536.0375 C 1224.0776,3534.3631 1221.6555,3533.9121 1219.5646,3534.225 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cssssss"
|
||||
id="path4616"
|
||||
d="M 1109.0744,3449.7716 C 1108.772,3465.4611 1097.0291,3483.3995 1094.4992,3489.8922 C 1090.7893,3499.4129 1075.7567,3514.6927 1084.219,3522.0832 C 1088.6593,3525.9611 1096.4886,3516.3948 1099.1802,3512.3636 C 1109.3374,3497.1512 1101.1546,3508.731 1118.6862,3472.8529 C 1122.7814,3464.4722 1126.0134,3454.7028 1126.3071,3446.6759 C 1127.1647,3422.8869 1109.4065,3432.1473 1109.0744,3449.7716 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="csccssssssscc"
|
||||
id="path4618"
|
||||
d="M 989.54389,3439.6645 C 992.72586,3476.434 995.66515,3477.1261 1007.2657,3505.7933 C 1020.5056,3538.5116 989.38312,3596.4604 1016.0554,3591.7539 C 1031.1353,3595.7743 1028.8254,3600.0934 1017.5058,3608.5062 C 1002.2246,3609.3304 1018.3235,3622.1959 1033.0622,3624.7696 C 1060.0296,3629.4787 1075.7594,3658.6694 1096.1978,3659.5226 C 1115.741,3660.3529 1138.0676,3666.0851 1138.0676,3671.0851 C 1138.0676,3675.6813 1125.1629,3669.1406 1113.9376,3670.378 C 1102.3629,3671.654 1080.2322,3680.4036 1065.5891,3667.5496 C 1025.9616,3632.7638 990.83125,3632.2144 986.959,3598.6158 C 983.41065,3567.8277 1006.957,3541.8387 993.73345,3508.7166 C 980.50992,3475.5946 951.36533,3449.0042 950.48145,3442.5076 L 989.54389,3439.6645 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="csscc"
|
||||
id="path4620"
|
||||
d="M 1037.2337,3422.765 C 1037.2337,3422.765 1049.2546,3492.7686 1057.0327,3494.8899 C 1064.811,3497.0112 1047.4188,3457.6485 1052.1541,3441.2711 C 1058.8664,3418.0559 1073.2962,3412.8655 1073.2962,3412.8655 L 1037.2337,3422.765 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 1041,3711.3622 C 1067.5107,3726.1479 1113,3744.3622 1158,3730.3622 C 1203,3716.3622 1227,3707.3622 1254,3672.3622 C 1281,3637.3622 1286,3670.3622 1281,3682.3622 C 1276,3694.3622 1253,3714.3622 1235,3727.3622 C 1217,3740.3622 1145.862,3762.318 1108,3756.3622 C 1063.5,3749.3622 1024,3722.3622 1019,3717.3622 C 1014,3712.3622 1003,3705.3622 1009,3698.3622 C 1015,3691.3622 1034.0152,3707.4666 1041,3711.3622 z"
|
||||
id="path4634"
|
||||
sodipodi:nodetypes="cssssssss" />
|
||||
</g>
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:url(#radialGradient2465);stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect3419"
|
||||
width="35.99984"
|
||||
height="36"
|
||||
x="2.9999998"
|
||||
y="3"
|
||||
rx="7.8385191"
|
||||
ry="7.8385539" />
|
||||
<rect
|
||||
transform="scale(-1,-1)"
|
||||
ry="7.8385539"
|
||||
rx="7.8385191"
|
||||
y="-39"
|
||||
x="-38.99984"
|
||||
height="36"
|
||||
width="35.99984"
|
||||
id="rect6772"
|
||||
style="fill:none;fill-opacity:1;stroke:url(#radialGradient2467);stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
|
@ -0,0 +1,408 @@
|
|||
.TH Xvnc 1 "" "TigerVNC" "Virtual Network Computing"
|
||||
.SH NAME
|
||||
Xvnc \- the X VNC server
|
||||
.SH SYNOPSIS
|
||||
.B Xvnc
|
||||
.RI [ options ]
|
||||
.RI : display#
|
||||
.SH DESCRIPTION
|
||||
.B Xvnc
|
||||
is the X VNC (Virtual Network Computing) server. It is based on a standard X
|
||||
server, but it has a "virtual" screen rather than a physical one. X
|
||||
applications display themselves on it as if it were a normal X display, but
|
||||
they can only be accessed via a VNC viewer - see \fBvncviewer\fP(1).
|
||||
|
||||
So Xvnc is really two servers in one. To the applications it is an X server,
|
||||
and to the remote VNC users it is a VNC server. By convention we have arranged
|
||||
that the VNC server display number will be the same as the X server display
|
||||
number, which means you can use eg. snoopy:2 to refer to display 2 on machine
|
||||
"snoopy" in both the X world and the VNC world.
|
||||
|
||||
The best way of starting \fBXvnc\fP is via the \fBvncserver\fP script. This
|
||||
sets up the environment appropriately and runs some X applications to get you
|
||||
going. See the manual page for \fBvncserver\fP(1) for more information.
|
||||
|
||||
.SH OPTIONS
|
||||
.B Xvnc
|
||||
takes lots of options - running \fBXvnc -help\fP gives a list. Many of these
|
||||
are standard X server options, which are described in the \fBXserver\fP(1)
|
||||
manual page. In addition to options which can only be set via the
|
||||
command-line, there are also "parameters" which can be set both via the
|
||||
command-line and through the \fBvncconfig\fP(1) program.
|
||||
|
||||
.TP
|
||||
.B \-geometry \fIwidth\fPx\fIheight\fP
|
||||
Specify the size of the desktop to be created. Default is 1024x768.
|
||||
.
|
||||
.TP
|
||||
.B \-depth \fIdepth\fP
|
||||
Specify the pixel depth in bits of the desktop to be created. Default is 24,
|
||||
other possible values are 8, 15, and 16 - anything else is likely to cause
|
||||
strange behaviour by applications.
|
||||
.
|
||||
.TP
|
||||
.B \-pixelformat \fIformat\fP
|
||||
Specify pixel format for server to use (BGRnnn or RGBnnn). The default for
|
||||
depth 8 is BGR233 (meaning the most significant two bits represent blue, the
|
||||
next three green, and the least significant three represent red), the default
|
||||
for depth 16 is RGB565 and for depth 24 is RGB888.
|
||||
.
|
||||
.TP
|
||||
.B \-interface \fIIP address\fP
|
||||
Listen on interface. By default Xvnc listens on all available interfaces.
|
||||
.
|
||||
.TP
|
||||
.B \-inetd
|
||||
This significantly changes Xvnc's behaviour so that it can be launched from
|
||||
inetd. See the section below on usage with inetd.
|
||||
.
|
||||
.TP
|
||||
.B \-help
|
||||
List all the options and parameters
|
||||
|
||||
.SH PARAMETERS
|
||||
VNC parameters can be set both via the command-line and through the
|
||||
\fBvncconfig\fP(1) program, and with a VNC-enabled Xorg server via Options
|
||||
entries in the xorg.conf file.
|
||||
|
||||
Parameters can be turned on with -\fIparam\fP or off with
|
||||
-\fIparam\fP=0. Parameters which take a value can be specified as
|
||||
-\fIparam\fP \fIvalue\fP. Other valid forms are \fIparam\fP\fB=\fP\fIvalue\fP
|
||||
-\fIparam\fP=\fIvalue\fP --\fIparam\fP=\fIvalue\fP. Parameter names are
|
||||
case-insensitive.
|
||||
|
||||
.TP
|
||||
.B \-desktop \fIdesktop-name\fP
|
||||
Each desktop has a name which may be displayed by the viewer. It defaults to
|
||||
"x11".
|
||||
.
|
||||
.TP
|
||||
.B \-rfbport \fIport\fP
|
||||
Specifies the TCP port on which Xvnc listens for connections from viewers (the
|
||||
protocol used in VNC is called RFB - "remote framebuffer"). The default is
|
||||
5900 plus the display number.
|
||||
.
|
||||
.TP
|
||||
.B \-UseIPv4
|
||||
Use IPv4 for incoming and outgoing connections. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-UseIPv6
|
||||
Use IPv6 for incoming and outgoing connections. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbunixpath \fIpath\fP
|
||||
Specifies the path of a Unix domain socket on which Xvnc listens for
|
||||
connections from viewers, instead of listening on a TCP port.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbunixmode \fImode\fP
|
||||
Specifies the mode of the Unix domain socket. The default is 0600.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbwait \fItime\fP, \-ClientWaitTimeMillis \fItime\fP
|
||||
Time in milliseconds to wait for a viewer which is blocking the server. This is
|
||||
necessary because the server is single-threaded and sometimes blocks until the
|
||||
viewer has finished sending or receiving a message - note that this does not
|
||||
mean an update will be aborted after this time. Default is 20000 (20 seconds).
|
||||
.
|
||||
.TP
|
||||
.B \-httpd \fIdirectory\fP
|
||||
Run a mini-HTTP server which serves files from the given directory. Normally
|
||||
the directory will contain the classes for the Java viewer. In addition, files
|
||||
with a .vnc extension will have certain substitutions made so that a single
|
||||
installation of the Java VNC viewer can be served by separate instances of
|
||||
Xvnc.
|
||||
.
|
||||
.TP
|
||||
.B \-httpPort \fIport\fP
|
||||
Specifies the port on which the mini-HTTP server runs. Default is 5800 plus
|
||||
the display number.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbauth \fIpasswd-file\fP, \-PasswordFile \fIpasswd-file\fP
|
||||
Password file for VNC authentication. There is no default, you should
|
||||
specify the password file explicitly. Password file should be created with
|
||||
the \fBvncpasswd\fP(1) utility. The file is accessed each time a connection
|
||||
comes in, so it can be changed on the fly.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptCutText
|
||||
Accept clipboard updates from clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxCutText \fIbytes\fP
|
||||
The maximum size of a clipboard update that will be accepted from a client.
|
||||
Default is \fB262144\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-SendCutText
|
||||
Send clipboard changes to clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-SendPrimary
|
||||
Send the primary selection and cut buffer to the server as well as the
|
||||
clipboard selection. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptPointerEvents
|
||||
Accept pointer press and release events from clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptKeyEvents
|
||||
Accept key press and release events from clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptSetDesktopSize
|
||||
Accept requests to resize the size of the desktop. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-DisconnectClients
|
||||
Disconnect existing clients if an incoming connection is non-shared. Default is
|
||||
on. If \fBDisconnectClients\fP is false, then a new non-shared connection will
|
||||
be refused while there is a client active. When combined with
|
||||
\fBNeverShared\fP this means only one client is allowed at a time.
|
||||
.
|
||||
.TP
|
||||
.B \-NeverShared
|
||||
Never treat incoming connections as shared, regardless of the client-specified
|
||||
setting. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-AlwaysShared
|
||||
Always treat incoming connections as shared, regardless of the client-specified
|
||||
setting. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-Protocol3.3
|
||||
Always use protocol version 3.3 for backwards compatibility with badly-behaved
|
||||
clients. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-FrameRate \fIfps\fP
|
||||
The maximum number of updates per second sent to each client. If the screen
|
||||
updates any faster then those changes will be 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. Default is \fB60\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-CompareFB \fImode\fP
|
||||
Perform pixel comparison on framebuffer to reduce unnecessary updates. Can
|
||||
be either \fB0\fP (off), \fB1\fP (always) or \fB2\fP (auto). Default is
|
||||
\fB2\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-ZlibLevel \fIlevel\fP
|
||||
Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
|
||||
Acceptable values are between 0 and 9. Default is to use the standard
|
||||
compression level provided by the \fBzlib\fP(3) compression library.
|
||||
.
|
||||
.TP
|
||||
.B \-ImprovedHextile
|
||||
Use improved compression algorithm for Hextile encoding which achieves better
|
||||
compression ratios by the cost of using slightly more CPU time. Default is
|
||||
on.
|
||||
.
|
||||
.TP
|
||||
.B \-SecurityTypes \fIsec-types\fP
|
||||
Specify which security scheme to use for incoming connections. Valid values
|
||||
are a comma separated list of \fBNone\fP, \fBVncAuth\fP, \fBPlain\fP,
|
||||
\fBTLSNone\fP, \fBTLSVnc\fP, \fBTLSPlain\fP, \fBX509None\fP, \fBX509Vnc\fP
|
||||
and \fBX509Plain\fP. Default is \fBVncAuth,TLSVnc\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-Password \fIpassword\fP
|
||||
Obfuscated binary encoding of the password which clients must supply to
|
||||
access the server. Using this parameter is insecure, use \fBPasswordFile\fP
|
||||
parameter instead.
|
||||
.
|
||||
.TP
|
||||
.B \-PlainUsers \fIuser-list\fP
|
||||
A comma separated list of user names that are allowed to authenticate via
|
||||
any of the "Plain" security types (Plain, TLSPlain, etc.). Specify \fB*\fP
|
||||
to allow any user to authenticate using this security type. Default is to
|
||||
deny all users.
|
||||
.
|
||||
.TP
|
||||
.B \-pam_service \fIname\fP, \-PAMService \fIname\fP
|
||||
PAM service name to use when authentication users using any of the "Plain"
|
||||
security types. Default is \fBvnc\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-X509Cert \fIpath\fP
|
||||
Path to a X509 certificate in PEM format to be used for all X509 based
|
||||
security types (X509None, X509Vnc, etc.).
|
||||
.
|
||||
.TP
|
||||
.B \-X509Key \fIpath\fP
|
||||
Private key counter part to the certificate given in \fBX509Cert\fP. Must
|
||||
also be in PEM format.
|
||||
.
|
||||
.TP
|
||||
.B \-GnuTLSPriority \fIpriority\fP
|
||||
GnuTLS priority string that controls the TLS session’s handshake algorithms.
|
||||
See the GnuTLS manual for possible values. Default is \fBNORMAL\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-BlacklistThreshold \fIcount\fP
|
||||
The number of unauthenticated connection attempts allowed from any individual
|
||||
host before that host is black-listed. Default is 5.
|
||||
.
|
||||
.TP
|
||||
.B \-BlacklistTimeout \fIseconds\fP
|
||||
The initial timeout applied when a host is first black-listed. The host
|
||||
cannot re-attempt a connection until the timeout expires. Default is 10.
|
||||
.
|
||||
.TP
|
||||
.B \-IdleTimeout \fIseconds\fP
|
||||
The number of seconds after which an idle VNC connection will be dropped.
|
||||
Default is 0, which means that idle connections will never be dropped.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxDisconnectionTime \fIseconds\fP
|
||||
Terminate when no client has been connected for \fIN\fP seconds. Default is
|
||||
0.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxConnectionTime \fIseconds\fP
|
||||
Terminate when a client has been connected for \fIN\fP seconds. Default is
|
||||
0.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxIdleTime \fIseconds\fP
|
||||
Terminate after \fIN\fP seconds of user inactivity. Default is 0.
|
||||
.
|
||||
.TP
|
||||
.B \-QueryConnect
|
||||
Prompts the user of the desktop to explicitly accept or reject incoming
|
||||
connections. Default is off.
|
||||
|
||||
The \fBvncconfig\fP(1) program must be running on the desktop in order for
|
||||
QueryConnect to be supported.
|
||||
.
|
||||
.TP
|
||||
.B \-QueryConnectTimeout \fIseconds\fP
|
||||
Number of seconds to show the Accept Connection dialog before rejecting the
|
||||
connection. Default is \fB10\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-localhost
|
||||
Only allow connections from the same machine. Useful if you use SSH and want to
|
||||
stop non-SSH connections from any other hosts.
|
||||
.
|
||||
.TP
|
||||
.B \-Log \fIlogname\fP:\fIdest\fP:\fIlevel\fP
|
||||
Configures the debug log settings. \fIdest\fP can currently be \fBstderr\fP,
|
||||
\fBstdout\fP or \fBsyslog\fP, and \fIlevel\fP is between 0 and 100, 100 meaning
|
||||
most verbose output. \fIlogname\fP is usually \fB*\fP meaning all, but you can
|
||||
target a specific source file if you know the name of its "LogWriter". Default
|
||||
is \fB*:stderr:30\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-RemapKeys \fImapping
|
||||
Sets up a keyboard mapping.
|
||||
.I mapping
|
||||
is a comma-separated string of character mappings, each of the form
|
||||
.IR char -> char ,
|
||||
or
|
||||
.IR char <> char ,
|
||||
where
|
||||
.I char
|
||||
is a hexadecimal keysym. For example, to exchange the " and @ symbols you would specify the following:
|
||||
|
||||
.RS 10
|
||||
RemapKeys=0x22<>0x40
|
||||
.RE
|
||||
.
|
||||
.TP
|
||||
.B \-AvoidShiftNumLock
|
||||
Key affected by NumLock often require a fake Shift to be inserted in order
|
||||
for the correct symbol to be generated. Turning on this option avoids these
|
||||
extra fake Shift events but may result in a slightly different symbol
|
||||
(e.g. a Return instead of a keypad Enter).
|
||||
.
|
||||
.TP
|
||||
.B \-RawKeyboard
|
||||
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. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-AllowOverride
|
||||
Comma separated list of parameters that can be modified using VNC extension.
|
||||
Parameters can be modified for example using \fBvncconfig\fP(1) program from
|
||||
inside a running session.
|
||||
|
||||
Allowing override of parameters such as \fBPAMService\fP or \fBPasswordFile\fP
|
||||
can negatively impact security if Xvnc runs under different user than the
|
||||
programs allowed to override the parameters.
|
||||
|
||||
When \fBNoClipboard\fP parameter is set, allowing override of \fBSendCutText\fP
|
||||
and \fBAcceptCutText\fP has no effect.
|
||||
|
||||
Default is \fBdesktop,AcceptPointerEvents,SendCutText,AcceptCutText,SendPrimary,SetPrimary\fP.
|
||||
|
||||
.SH USAGE WITH INETD
|
||||
By configuring the \fBinetd\fP(1) service appropriately, Xvnc can be launched
|
||||
on demand when a connection comes in, rather than having to be started
|
||||
manually. When given the \fB-inetd\fP option, instead of listening for TCP
|
||||
connections on a given port it uses its standard input and standard output.
|
||||
There are two modes controlled by the wait/nowait entry in the inetd.conf file.
|
||||
|
||||
In the nowait mode, Xvnc uses its standard input and output directly as the
|
||||
connection to a viewer. It never has a listening socket, so cannot accept
|
||||
further connections from viewers (it can however connect out to listening
|
||||
viewers by use of the vncconfig program). Further viewer connections to the
|
||||
same TCP port result in inetd spawning off a new Xvnc to deal with each
|
||||
connection. When the connection to the viewer dies, the Xvnc and any
|
||||
associated X clients die. This behaviour is most useful when combined with the
|
||||
XDMCP options -query and -once. An typical example in inetd.conf might be (all
|
||||
on one line):
|
||||
|
||||
5950 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query
|
||||
localhost -once securitytypes=none
|
||||
|
||||
In this example a viewer connection to :50 will result in a new Xvnc for that
|
||||
connection which should display the standard XDM login screen on that machine.
|
||||
Because the user needs to login via XDM, it is usually OK to accept connections
|
||||
without a VNC password in this case.
|
||||
|
||||
In the wait mode, when the first connection comes in, inetd gives the listening
|
||||
socket to Xvnc. This means that for a given TCP port, there is only ever one
|
||||
Xvnc at a time. Further viewer connections to the same port are accepted by
|
||||
the same Xvnc in the normal way. Even when the original connection is broken,
|
||||
the Xvnc will continue to run. If this is used with the XDMCP options -query
|
||||
and -once, the Xvnc and associated X clients will die when the user logs out of
|
||||
the X session in the normal way. It is important to use a VNC password in this
|
||||
case. A typical entry in inetd.conf might be:
|
||||
|
||||
5951 stream tcp wait james /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once passwordFile=/home/james/.vnc/passwd
|
||||
|
||||
In fact typically, you would have one entry for each user who uses VNC
|
||||
regularly, each of whom has their own dedicated TCP port which they use. In
|
||||
this example, when user "james" connects to :51, he enters his VNC password,
|
||||
then gets the XDM login screen where he logs in in the normal way. However,
|
||||
unlike the previous example, if he disconnects, the session remains persistent,
|
||||
and when he reconnects he will get the same session back again. When he logs
|
||||
out of the X session, the Xvnc will die, but of course a new one will be
|
||||
created automatically the next time he connects.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR vncconfig (1),
|
||||
.BR vncpasswd (1),
|
||||
.BR vncserver (1),
|
||||
.BR vncviewer (1),
|
||||
.BR Xserver (1),
|
||||
.BR inetd (1)
|
||||
.br
|
||||
http://www.tigervnc.org
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd. 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 TigerVNC software suite.
|
|
@ -0,0 +1,126 @@
|
|||
.TH vncconfig 1 "" "TigerVNC" "Virtual Network Computing"
|
||||
.SH NAME
|
||||
vncconfig \- configure and control a VNC server
|
||||
.SH SYNOPSIS
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
.B \-connect
|
||||
.IR host [: port ]
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
.B \-disconnect
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
.RB [ -set ]
|
||||
.IR Xvnc-param = value " ..."
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
.B \-list
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
\fB\-get\fP \fIXvnc-param\fP
|
||||
.br
|
||||
.B vncconfig
|
||||
.RI [ parameters ]
|
||||
\fB\-desc\fP \fIXvnc-param\fP
|
||||
.SH DESCRIPTION
|
||||
.B vncconfig
|
||||
is used to configure and control a running instance of Xvnc, or any other X
|
||||
server with the VNC extension. Note that it cannot be used to control VNC
|
||||
servers prior to version 4.
|
||||
|
||||
When run with no options, it runs as a kind of "helper" application for Xvnc.
|
||||
Its main purpose when run in this mode is to query the user how new
|
||||
connections should be handled (provided this feature is enabled). The
|
||||
\fB-nowin\fP flag can be used if you always want the query support but don't
|
||||
wish to clutter the desktop with the settings window - alternatively the
|
||||
\fB-iconic\fP option can be used to make it iconified by default.
|
||||
|
||||
When run in any other mode, \fBvncconfig\fP is a one-shot program used to
|
||||
configure or control Xvnc as appropriate. It can be used to tell Xvnc to
|
||||
connect or disconnect from listening viewers, and to set and retrieve Xvnc's
|
||||
parameters.
|
||||
|
||||
Note that the DISPLAY environment variable or the \fB\-display\fP option
|
||||
must be set as appropriate to control Xvnc. If you run it on an ordinary X
|
||||
server (or on a version 3 Xvnc) you will get an error message saying that there
|
||||
is no VNC extension.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-connect \fIhost\fP[:\fIport\fP]
|
||||
Tells an Xvnc server to make a "reverse" connection to a listening VNC viewer
|
||||
(normally connections are made the other way round - the viewer connects to the
|
||||
server). \fIhost\fP is the host where the listening viewer is running. If it's
|
||||
not listening on the default port of 5500, you can specify \fIhost:port\fP
|
||||
instead.
|
||||
.
|
||||
.TP
|
||||
.B \-disconnect
|
||||
This causes Xvnc to disconnect from all viewers so that the VNC desktop is not
|
||||
displayed anywhere.
|
||||
.
|
||||
.TP
|
||||
[\fB-set\fP] \fIXvnc-param\fP=\fIvalue\fP
|
||||
Sets an Xvnc parameter to the given value. Note that some of Xvnc's parameters
|
||||
are read only once at startup so that changing them in this way may not have
|
||||
any effect.
|
||||
.
|
||||
.TP
|
||||
.B \-list
|
||||
Lists all the parameters supported by Xvnc.
|
||||
.
|
||||
.TP
|
||||
.B \-get \fIXvnc-param\fP
|
||||
Prints the current value of the given Xvnc parameter.
|
||||
.
|
||||
.TP
|
||||
.B \-desc \fIXvnc-param\fP
|
||||
Prints a short description of the given Xvnc parameter.
|
||||
|
||||
.SH PARAMETERS
|
||||
.B vncconfig
|
||||
also has parameters of its own which can be set on the command line. These
|
||||
should not be confused with Xvnc's parameters which are manipulated with the
|
||||
\fB-set\fP, \fB-get\fP, \fB-list\fP and \fB-desc\fP options.
|
||||
|
||||
Parameters can be turned on with -\fIparam\fP or off with -\fIparam\fP=0.
|
||||
Parameters which take a value can be specified as -\fIparam\fP \fIvalue\fP.
|
||||
Other valid forms are \fIparam\fP\fB=\fP\fIvalue\fP -\fIparam\fP=\fIvalue\fP
|
||||
--\fIparam\fP=\fIvalue\fP. Parameter names are case-insensitive.
|
||||
|
||||
.TP
|
||||
.B \-display \fIXdisplay\fP
|
||||
Specifies the Xvnc server to control.
|
||||
.
|
||||
.TP
|
||||
.B \-nowin
|
||||
When run as a "helper" app, don't put up a window.
|
||||
.
|
||||
.TP
|
||||
.B \-iconic
|
||||
When run as a "helper" app, make the window iconified at startup.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR vncpasswd (1),
|
||||
.BR vncviewer (1),
|
||||
.BR vncserver (1),
|
||||
.BR Xvnc (1)
|
||||
.br
|
||||
http://www.tigervnc.org
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd. 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 TigerVNC software suite.
|
|
@ -0,0 +1,59 @@
|
|||
.TH vncpasswd 1 "" "TigerVNC" "Virtual Network Computing"
|
||||
.SH NAME
|
||||
vncpasswd \- change the VNC password
|
||||
.SH SYNOPSIS
|
||||
\fBvncpasswd\fR [\fIpasswd-file\fR]
|
||||
.br
|
||||
\fBvncpasswd\fR \-f
|
||||
.SH DESCRIPTION
|
||||
.B vncpasswd
|
||||
allows you to set the password used to access VNC desktops. Its default
|
||||
behavior is to prompt for a VNC password and then store an obfuscated version
|
||||
of this password to \fIpasswd-file\fR (or to $HOME/.vnc/passwd if no password
|
||||
file is specified.) The \fBvncserver\fP script runs \fBvncpasswd\fP the first
|
||||
time you start a VNC desktop, and it invokes \fBXvnc\fP with the appropriate
|
||||
\fB\-rfbauth\fP option. \fBvncviewer\fP can also be given a password file to
|
||||
use via the \fB\-passwd\fP option.
|
||||
|
||||
The password must be at least six characters long (unless the \fB\-f\fR
|
||||
command-line option is used-- see below), and only the first eight
|
||||
characters are significant. Note that the stored password is \fBnot\fP
|
||||
encrypted securely - anyone who has access to this file can trivially find out
|
||||
the plain-text password, so \fBvncpasswd\fP always sets appropriate permissions
|
||||
(read and write only by the owner.) However, when accessing a VNC desktop, a
|
||||
challenge-response mechanism is used over the wire making it hard for anyone to
|
||||
crack the password simply by snooping on the network.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.TP
|
||||
.B \-f
|
||||
Filter mode. Read a plain-text password from stdin and write an encrypted
|
||||
version to stdout. Note that in filter mode, short or even empty passwords
|
||||
will be silently accepted.
|
||||
|
||||
A view-only password must be separated from the normal password by a newline
|
||||
character.
|
||||
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
$HOME/.vnc/passwd
|
||||
Default location of the VNC password file.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR vncviewer (1),
|
||||
.BR vncserver (1),
|
||||
.BR Xvnc (1)
|
||||
.BR vncconfig (1),
|
||||
.br
|
||||
http://www.tigervnc.org
|
||||
|
||||
.SH AUTHORS
|
||||
Tristan Richardson, RealVNC Ltd., Antoine Martin, 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 TigerVNC software suite.
|
|
@ -0,0 +1,204 @@
|
|||
.TH vncserver 1 "" "TigerVNC" "Virtual Network Computing"
|
||||
.SH NAME
|
||||
vncserver \- start or stop a VNC server
|
||||
.SH SYNOPSIS
|
||||
.B vncserver
|
||||
.RI [: display# ]
|
||||
.RB [ \-name
|
||||
.IR desktop-name ]
|
||||
.RB [ \-geometry
|
||||
.IR width x height ]
|
||||
.RB [ \-depth
|
||||
.IR depth ]
|
||||
.RB [ \-pixelformat
|
||||
.IR format ]
|
||||
.RB [ \-fp
|
||||
.IR font-path ]
|
||||
.RB [ \-fg ]
|
||||
.RB [ \-autokill ]
|
||||
.RB [ \-noxstartup ]
|
||||
.RB [ \-xstartup
|
||||
.IR script ]
|
||||
.RI [ Xvnc-options... ]
|
||||
.br
|
||||
.BI "vncserver \-kill :" display#
|
||||
.br
|
||||
.BI "vncserver \-list"
|
||||
.SH DESCRIPTION
|
||||
.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.
|
||||
|
||||
.B vncserver
|
||||
can be run with no options at all. In this case it will choose the first
|
||||
available display number (usually :1), start Xvnc with that display number,
|
||||
and start the default window manager in the Xvnc session. You can also
|
||||
specify the display number, in which case vncserver will attempt to start
|
||||
Xvnc with that display number and exit if the display number is not
|
||||
available. For example:
|
||||
|
||||
.RS
|
||||
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.)
|
||||
|
||||
.SH OPTIONS
|
||||
You can get a list of options by passing \fB\-h\fP as an option to vncserver.
|
||||
In addition to the options listed below, any unrecognised options will be
|
||||
passed to Xvnc - see the Xvnc man page, or "Xvnc \-help", for details.
|
||||
|
||||
.TP
|
||||
.B \-name \fIdesktop-name\fP
|
||||
Each VNC desktop has a name which may be displayed by the viewer. The desktop
|
||||
name defaults to "\fIhost\fP:\fIdisplay#\fP (\fIusername\fP)", but you can
|
||||
change it with this option. The desktop name option is passed to the xstartup
|
||||
script via the $VNCDESKTOP environment variable, which allows you to run a
|
||||
different set of applications depending on the name of the desktop.
|
||||
.
|
||||
.TP
|
||||
.B \-geometry \fIwidth\fPx\fIheight\fP
|
||||
Specify the size of the VNC desktop to be created. Default is 1024x768.
|
||||
.
|
||||
.TP
|
||||
.B \-depth \fIdepth\fP
|
||||
Specify the pixel depth (in bits) of the VNC desktop to be created. Default is
|
||||
24. Other possible values are 8, 15 and 16 - anything else is likely to cause
|
||||
strange behaviour by applications.
|
||||
.
|
||||
.TP
|
||||
.B \-pixelformat \fIformat\fP
|
||||
Specify pixel format for Xvnc to use (BGRnnn or RGBnnn). The default for
|
||||
depth 8 is BGR233 (meaning the most significant two bits represent blue, the
|
||||
next three green, and the least significant three represent red), the default
|
||||
for depth 16 is RGB565, and the default for depth 24 is RGB888.
|
||||
.
|
||||
.TP
|
||||
.B \-cc 3
|
||||
As an alternative to the default TrueColor visual, this allows you to run an
|
||||
Xvnc server with a PseudoColor visual (i.e. one which uses a color map or
|
||||
palette), which can be useful for running some old X applications which only
|
||||
work on such a display. Values other than 3 (PseudoColor) and 4 (TrueColor)
|
||||
for the \-cc option may result in strange behaviour, and PseudoColor desktops
|
||||
must have an 8-bit depth.
|
||||
.
|
||||
.TP
|
||||
.B \-kill :\fIdisplay#\fP
|
||||
This kills a VNC desktop previously started with vncserver. It does this by
|
||||
killing the Xvnc process, whose process ID is stored in the file
|
||||
"$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.pid". The
|
||||
.B \-kill
|
||||
option ignores anything preceding the first colon (":") in the display
|
||||
argument. Thus, you can invoke "vncserver \-kill $DISPLAY", for example at the
|
||||
end of your xstartup file after a particular application exits.
|
||||
.
|
||||
.TP
|
||||
.B \-fp \fIfont-path\fP
|
||||
If the vncserver script detects that the X Font Server (XFS) is running, it
|
||||
will attempt to start Xvnc and configure Xvnc to use XFS for font handling.
|
||||
Otherwise, if XFS is not running, the vncserver script will attempt to start
|
||||
Xvnc and allow Xvnc to use its own preferred method of font handling (which may
|
||||
be a hard-coded font path or, on more recent systems, a font catalog.) In
|
||||
any case, if Xvnc fails to start, the vncserver script will then attempt to
|
||||
determine an appropriate X font path for this system and start Xvnc using
|
||||
that font path.
|
||||
|
||||
The
|
||||
.B \-fp
|
||||
argument allows you to override the above fallback logic and specify a font
|
||||
path for Xvnc to use.
|
||||
.
|
||||
.TP
|
||||
.B \-fg
|
||||
Runs Xvnc as a foreground process. This has two effects: (1) The VNC server
|
||||
can be aborted with CTRL-C, and (2) the VNC server will exit as soon as the
|
||||
user logs out of the window manager in the VNC session. This may be necessary
|
||||
when launching TigerVNC from within certain grid computing environments.
|
||||
.
|
||||
.TP
|
||||
.B \-autokill
|
||||
Automatically kill Xvnc whenever the xstartup script exits. In most cases,
|
||||
this has the effect of terminating Xvnc when the user logs out of the window
|
||||
manager.
|
||||
.
|
||||
.TP
|
||||
.B \-noxstartup
|
||||
Do not run the %HOME/.vnc/xstartup script after launching Xvnc. This
|
||||
option allows you to manually start a window manager in your TigerVNC session.
|
||||
.
|
||||
.TP
|
||||
.B \-xstartup \fIscript\fP
|
||||
Run a custom startup script, instead of %HOME/.vnc/xstartup, after launching
|
||||
Xvnc. This is useful to run full-screen applications.
|
||||
.
|
||||
.TP
|
||||
.B \-list
|
||||
Lists all VNC desktops started by vncserver.
|
||||
|
||||
.SH FILES
|
||||
Several VNC-related files are found in the directory $HOME/.vnc:
|
||||
.TP
|
||||
$HOME/.vnc/xstartup
|
||||
A shell script specifying X applications to be run when a VNC desktop is
|
||||
started. If this file does not exist, then vncserver will create a default
|
||||
xstartup script which attempts to launch your chosen window manager.
|
||||
.TP
|
||||
/etc/tigervnc/vncserver-config-defaults
|
||||
The optional system-wide equivalent of $HOME/.vnc/config. If this file exists
|
||||
and defines options to be passed to Xvnc, they will be used as defaults for
|
||||
users. The user's $HOME/.vnc/config overrides settings configured in this file.
|
||||
The overall configuration file load order is: this file, $HOME/.vnc/config,
|
||||
and then /etc/tigervnc/vncserver-config-mandatory. None are required to exist.
|
||||
.TP
|
||||
/etc/tigervnc/vncserver-config-mandatory
|
||||
The optional system-wide equivalent of $HOME/.vnc/config. If this file exists
|
||||
and defines options to be passed to Xvnc, they will override any of the same
|
||||
options defined in a user's $HOME/.vnc/config. This file offers a mechanism
|
||||
to establish some basic form of system-wide policy. WARNING! There is
|
||||
nothing stopping users from constructing their own vncserver-like script
|
||||
that calls Xvnc directly to bypass any options defined in
|
||||
/etc/tigervnc/vncserver-config-mandatory. Likewise, any CLI arguments passed
|
||||
to vncserver will override ANY config file setting of the same name. The
|
||||
overall configuration file load order is:
|
||||
/etc/tigervnc/vncserver-config-defaults, $HOME/.vnc/config, and then this file.
|
||||
None are required to exist.
|
||||
.TP
|
||||
$HOME/.vnc/config
|
||||
An optional server config file wherein options to be passed to Xvnc are listed
|
||||
to avoid hard-coding them to the physical invocation. List options in this file
|
||||
one per line. For those requiring an argument, simply separate the option from
|
||||
the argument with an equal sign, for example: "geometry=2000x1200" or
|
||||
"securitytypes=vncauth,tlsvnc". Options without an argument are simply listed
|
||||
as a single word, for example: "localhost" or "alwaysshared".
|
||||
.TP
|
||||
$HOME/.vnc/passwd
|
||||
The VNC password file.
|
||||
.TP
|
||||
$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.log
|
||||
The log file for Xvnc and applications started in xstartup.
|
||||
.TP
|
||||
$HOME/.vnc/\fIhost\fP:\fIdisplay#\fP.pid
|
||||
Identifies the Xvnc process ID, used by the
|
||||
.B \-kill
|
||||
option.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR vncviewer (1),
|
||||
.BR vncpasswd (1),
|
||||
.BR vncconfig (1),
|
||||
.BR Xvnc (1)
|
||||
.br
|
||||
http://www.tigervnc.org
|
||||
|
||||
.SH AUTHOR
|
||||
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 TigerVNC software suite.
|
|
@ -0,0 +1,328 @@
|
|||
.TH vncviewer 1 "" "TigerVNC" "Virtual Network Computing"
|
||||
.SH NAME
|
||||
vncviewer \- VNC viewer for X
|
||||
.SH SYNOPSIS
|
||||
.B vncviewer
|
||||
.RI [ options ]
|
||||
.RI [ host ][: display# ]
|
||||
.br
|
||||
.B vncviewer
|
||||
.RI [ options ]
|
||||
.RI [ host ][:: port ]
|
||||
.br
|
||||
.B vncviewer
|
||||
.RI [ options ]
|
||||
.B \-listen
|
||||
.RI [ port ]
|
||||
.br
|
||||
.B vncviewer
|
||||
.RI [ options ]
|
||||
.RI [ .tigervnc file ]
|
||||
.SH DESCRIPTION
|
||||
.B vncviewer
|
||||
is a viewer (client) for Virtual Network Computing. This manual page documents
|
||||
version 4 for the X window system.
|
||||
|
||||
If you run the viewer with no arguments it will prompt you for a VNC server to
|
||||
connect to. Alternatively, specify the VNC server as an argument, e.g.:
|
||||
|
||||
.RS
|
||||
vncviewer snoopy:2
|
||||
.RE
|
||||
|
||||
where 'snoopy' is the name of the machine, and '2' is the display number of the
|
||||
VNC server on that machine. Either the machine name or display number can be
|
||||
omitted. So for example ":1" means display number 1 on the same machine, and
|
||||
"snoopy" means "snoopy:0" i.e. display 0 on machine "snoopy".
|
||||
|
||||
As another quick way to start a connection to a VNC server, specify a .tigervnc
|
||||
configuration file as an argument to the viewer, e.g.:
|
||||
|
||||
.RS
|
||||
vncviewer ./some.tigervnc
|
||||
.RE
|
||||
|
||||
where './some.tigervnc' is an existing and valid TigerVNC configuration file.
|
||||
The file name needs to include a path separator. Additional options may be
|
||||
given too, but the given configuration file will overwrite any conflicting
|
||||
parameters.
|
||||
|
||||
If the VNC server is successfully contacted, you will be prompted for a
|
||||
password to authenticate you. If the password is correct, a window will appear
|
||||
showing the desktop of the VNC server.
|
||||
|
||||
.SH AUTOMATIC PROTOCOL SELECTION
|
||||
|
||||
The viewer tests the speed of the connection to the server and chooses the
|
||||
encoding and pixel format (color level) appropriately. This makes it much
|
||||
easier to use than previous versions where the user had to specify arcane
|
||||
command line arguments.
|
||||
|
||||
The viewer normally starts out assuming the link is slow, using the
|
||||
encoding with the best compression. If it turns out that the link is
|
||||
fast enough it switches to an encoding which compresses less but is
|
||||
faster to generate, thus improving the interactive feel.
|
||||
|
||||
The viewer normally starts in full-color mode, but switches to
|
||||
low-color mode if the bandwidth is insufficient. However, this only
|
||||
occurs when communicating with servers supporting protocol 3.8 or
|
||||
newer, since many old servers does not support color mode changes
|
||||
safely.
|
||||
|
||||
Automatic selection can be turned off by setting the
|
||||
\fBAutoSelect\fP parameter to false, or from the options dialog.
|
||||
|
||||
.SH POPUP MENU
|
||||
The viewer has a popup menu containing entries which perform various actions.
|
||||
It is usually brought up by pressing F8, but this can be configured with the
|
||||
MenuKey parameter. Actions which the popup menu can perform include:
|
||||
.RS 2
|
||||
.IP * 2
|
||||
switching in and out of full-screen mode
|
||||
.IP *
|
||||
quitting the viewer
|
||||
.IP *
|
||||
generating key events, e.g. sending ctrl-alt-del
|
||||
.IP *
|
||||
accessing the options dialog and various other dialogs
|
||||
.RE
|
||||
.PP
|
||||
By default, key presses in the popup menu get sent to the VNC server and
|
||||
dismiss the popup. So to get an F8 through to the VNC server simply press it
|
||||
twice.
|
||||
|
||||
.SH FULL SCREEN MODE
|
||||
A full-screen mode is supported. This is particularly useful when connecting
|
||||
to a remote screen which is the same size as your local one. If the remote
|
||||
screen is bigger, you can scroll by bumping the mouse against the edge of the
|
||||
screen.
|
||||
|
||||
.SH OPTIONS (PARAMETERS)
|
||||
You can get a list of parameters by giving \fB\-h\fP as a command-line option
|
||||
to vncviewer. Parameters can be turned on with -\fIparam\fP or off with
|
||||
-\fIparam\fP=0. Parameters which take a value can be specified as
|
||||
-\fIparam\fP \fIvalue\fP. Other valid forms are \fIparam\fP\fB=\fP\fIvalue\fP
|
||||
-\fIparam\fP=\fIvalue\fP --\fIparam\fP=\fIvalue\fP. Parameter names are
|
||||
case-insensitive.
|
||||
|
||||
Many of the parameters can also be set graphically via the options dialog box.
|
||||
This can be accessed from the popup menu or from the "Connection details"
|
||||
dialog box.
|
||||
|
||||
.TP
|
||||
.B \-display \fIXdisplay\fP
|
||||
Specifies the X display on which the VNC viewer window should appear.
|
||||
.
|
||||
.TP
|
||||
.B \-geometry \fIgeometry\fP
|
||||
Standard X position and sizing specification.
|
||||
.
|
||||
.TP
|
||||
.B \-listen \fI[port]\fP
|
||||
Causes vncviewer to listen on the given port (default 5500) for reverse
|
||||
connections from a VNC server. WinVNC supports reverse connections initiated
|
||||
using the 'Add New Client' menu option or the '\-connect' command-line option.
|
||||
Xvnc supports reverse connections with a helper program called
|
||||
.B vncconfig.
|
||||
.
|
||||
.TP
|
||||
.B \-SecurityTypes \fIsec-types\fP
|
||||
Specify which security schemes to attempt to use when authenticating with
|
||||
the server. Valid values are a comma separated list of \fBNone\fP,
|
||||
\fBVncAuth\fP, \fBPlain\fP, \fBTLSNone\fP, \fBTLSVnc\fP, \fBTLSPlain\fP,
|
||||
\fBX509None\fP, \fBX509Vnc\fP and \fBX509Plain\fP. Default is to attempt
|
||||
every supported scheme.
|
||||
.
|
||||
.TP
|
||||
.B \-passwd, \-PasswordFile \fIpassword-file\fP
|
||||
If you are on a filesystem which gives you access to the password file used by
|
||||
the server, you can specify it here to avoid typing it in. It will usually be
|
||||
"~/.vnc/passwd".
|
||||
.
|
||||
.TP
|
||||
.B \-X509CA \fIpath\fP
|
||||
Path to CA certificate to use when authenticating remote servers using any
|
||||
of the X509 security schemes (X509None, X509Vnc, etc.). Must be in PEM
|
||||
format. Default is \fB$HOME/.vnc/x509_ca.pem\fP, if it exists.
|
||||
.
|
||||
.TP
|
||||
.B \-X509CRL \fIpath\fP
|
||||
Path to certificate revocation list to use in conjunction with
|
||||
\fB-X509CA\fP. Must also be in PEM format. Default is
|
||||
\fB$HOME/.vnc/x509_crl.pem\fP, if it exists.
|
||||
.
|
||||
.TP
|
||||
.B \-Shared
|
||||
When you make a connection to a VNC server, all other existing connections are
|
||||
normally closed. This option requests that they be left open, allowing you to
|
||||
share the desktop with someone already using it.
|
||||
.
|
||||
.TP
|
||||
.B \-ViewOnly
|
||||
Specifies that no keyboard or mouse events should be sent to the server.
|
||||
Useful if you want to view a desktop without interfering; often needs to be
|
||||
combined with
|
||||
.B \-Shared.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptClipboard
|
||||
Accept clipboard changes from the server. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-SetPrimary
|
||||
Set the primary selection as well as the clipboard selection.
|
||||
Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-SendClipboard
|
||||
Send clipboard changes to the server. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-SendPrimary
|
||||
Send the primary selection to the server as well as the clipboard
|
||||
selection. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-Maximize
|
||||
Maximize viewer window.
|
||||
.
|
||||
.TP
|
||||
.B \-FullScreen
|
||||
Start in full-screen mode.
|
||||
.
|
||||
.TP
|
||||
.B \-FullScreenAllMonitors
|
||||
Use all local monitors and not just the current one when switching to
|
||||
full-screen mode.
|
||||
.
|
||||
.TP
|
||||
.B \-FullscreenSystemKeys
|
||||
Pass special keys (like Alt+Tab) directly to the server when in full-screen
|
||||
mode.
|
||||
.
|
||||
.TP
|
||||
.B \-DesktopSize \fIwidth\fPx\fIheight\fP
|
||||
Instead of keeping the existing remote screen size, the client will attempt to
|
||||
switch to the specified since when connecting. If the server does not support
|
||||
the SetDesktopSize message then the screen will retain the original size.
|
||||
.
|
||||
.TP
|
||||
.B \-RemoteResize
|
||||
Dynamically resize the remote desktop size as the size of the local client
|
||||
window changes. Note that this may not work with all VNC servers.
|
||||
.
|
||||
.TP
|
||||
.B \-AutoSelect
|
||||
Use automatic selection of encoding and pixel format (default is on). Normally
|
||||
the viewer tests the speed of the connection to the server and chooses the
|
||||
encoding and pixel format appropriately. Turn it off with \fB-AutoSelect=0\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-FullColor, \-FullColour
|
||||
Tells the VNC server to send full-color pixels in the best format for this
|
||||
display. This is default.
|
||||
.
|
||||
.TP
|
||||
.B \-LowColorLevel, \-LowColourLevel \fIlevel\fP
|
||||
Selects the reduced color level to use on slow links. \fIlevel\fP can range
|
||||
from 0 to 2, 0 meaning 8 colors, 1 meaning 64 colors (the default), 2 meaning
|
||||
256 colors. Note that decision if reduced color level is used is made by
|
||||
vncviewer. If you would like to force vncviewer to use reduced color level
|
||||
use \fB-AutoSelect=0\fP parameter.
|
||||
.
|
||||
.TP
|
||||
.B \-PreferredEncoding \fIencoding\fP
|
||||
This option specifies the preferred encoding to use from one of "Tight", "ZRLE",
|
||||
"hextile" or "raw".
|
||||
.
|
||||
.TP
|
||||
.B \-NoJpeg
|
||||
Disable lossy JPEG compression in Tight encoding. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-QualityLevel \fIlevel\fP
|
||||
JPEG quality level. 0 = Low, 9 = High. May be adjusted automatically if
|
||||
\fB-AutoSelect\fP is turned on. Default is 8.
|
||||
.
|
||||
.TP
|
||||
.B \-CompressLevel \fIlevel\fP
|
||||
Use specified lossless compression level. 0 = Low, 6 = High. Default is 2.
|
||||
.
|
||||
.TP
|
||||
.B \-CustomCompressLevel
|
||||
Use custom compression level. Default if \fBCompressLevel\fP is specified.
|
||||
.
|
||||
.TP
|
||||
.B \-DotWhenNoCursor
|
||||
Show the dot cursor when the server sends an invisible cursor. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-PointerEventInterval \fItime\fP
|
||||
Time in milliseconds to rate-limit successive pointer events. Default is
|
||||
17 ms (60 Hz).
|
||||
.
|
||||
.TP
|
||||
.B \-Log \fIlogname\fP:\fIdest\fP:\fIlevel\fP
|
||||
Configures the debug log settings. \fIdest\fP can currently be \fBstderr\fP or
|
||||
\fBstdout\fP, and \fIlevel\fP is between 0 and 100, 100 meaning most verbose
|
||||
output. \fIlogname\fP is usually \fB*\fP meaning all, but you can target a
|
||||
specific source file if you know the name of its "LogWriter". Default is
|
||||
\fB*:stderr:30\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-MenuKey \fIkeysym-name\fP
|
||||
This option specifies the key which brings up the popup menu. The currently
|
||||
supported list is: F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Pause,
|
||||
Scroll_Lock, Escape, Insert, Delete, Home, Page_Up, Page_Down). Default is F8.
|
||||
.
|
||||
.TP
|
||||
\fB\-via\fR \fIgateway\fR
|
||||
Automatically create encrypted TCP tunnel to the \fIgateway\fR machine
|
||||
before connection, connect to the \fIhost\fR through that tunnel
|
||||
(TigerVNC\-specific). By default, this option invokes SSH local port
|
||||
forwarding, assuming that SSH client binary can be accessed as
|
||||
/usr/bin/ssh. Note that when using the \fB\-via\fR option, the host
|
||||
machine name should be specified as known to the gateway machine, e.g.
|
||||
"localhost" denotes the \fIgateway\fR, not the machine where vncviewer
|
||||
was launched. The environment variable \fIVNC_VIA_CMD\fR can override
|
||||
the default tunnel command of
|
||||
\fB/usr/bin/ssh\ -f\ -L\ "$L":"$H":"$R"\ "$G"\ sleep\ 20\fR. The tunnel
|
||||
command is executed with the environment variables \fIL\fR, \fIH\fR,
|
||||
\fIR\fR, and \fIG\fR taken the values of the local port number, the remote
|
||||
host, the port number on the remote host, and the gateway machine
|
||||
respectively.
|
||||
.
|
||||
.TP
|
||||
.B \-AlertOnFatalError
|
||||
Display a dialog with any fatal error before exiting. Default is on.
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
$HOME/.vnc/default.tigervnc
|
||||
Default configuration options. This file must have a "magic" first line of
|
||||
"TigerVNC Configuration file Version 1.0" (without quotes), followed by simple
|
||||
<setting>=<value> pairs of your choosing. The available settings are those
|
||||
shown in this man page.
|
||||
.TP
|
||||
$HOME/.vnc/x509_ca.pem
|
||||
Default CA certificate for authenticating servers.
|
||||
.TP
|
||||
$HOME/.vnc/x509_crl.pem
|
||||
Default certificate revocation list.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR Xvnc (1),
|
||||
.BR vncpasswd (1),
|
||||
.BR vncconfig (1),
|
||||
.BR vncserver (1)
|
||||
.br
|
||||
http://www.tigervnc.org
|
||||
|
||||
.SH AUTHOR
|
||||
Tristan Richardson, RealVNC Ltd. 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 TigerVNC software suite.
|
|
@ -0,0 +1,314 @@
|
|||
.TH X0VNCSERVER 1 "" "TigerVNC" "TigerVNC Manual"
|
||||
.SH NAME
|
||||
x0vncserver \- TigerVNC Server for X displays
|
||||
.SH SYNOPSIS
|
||||
.B x0vncserver
|
||||
.RI [ options ]
|
||||
.br
|
||||
.B x0vncserver -version
|
||||
.SH DESCRIPTION
|
||||
.B x0vncserver
|
||||
is a TigerVNC Server which makes any X display remotely accessible via VNC,
|
||||
TigerVNC or compatible viewers. Unlike \fBXvnc\fP(1), it does not create a
|
||||
virtual display. Instead, it just shares an existing X server (typically,
|
||||
that one connected to the physical screen).
|
||||
|
||||
XDamage will be used if the existing X server supports it. Otherwise
|
||||
.B x0vncserver
|
||||
will fall back to polling the screen for changes.
|
||||
|
||||
.SH OPTIONS
|
||||
.B x0vncserver
|
||||
interprets the command line as a list of parameters with optional values.
|
||||
Running \fBx0vncserver -h\fP will show a list of all valid parameters with
|
||||
short descriptions. All parameters are optional, but normally you would have
|
||||
to use the \fBPasswordFile\fP parameter (see its description below).
|
||||
.PP
|
||||
There are several forms of specifying parameters in the command line (here we
|
||||
use `\fISomeParameter\fP' as an example parameter name):
|
||||
|
||||
.TP
|
||||
.B -\fISomeParameter\fP
|
||||
Enable the parameter, turn the feature on. This form can be used with
|
||||
parameters that simply enable or disable some feature.
|
||||
.
|
||||
.TP
|
||||
.B -\fISomeParameter\fP=0
|
||||
Disable the parameter, turn the feature off.
|
||||
.
|
||||
.TP
|
||||
.B -\fISomeParameter\fP=\fIvalue\fP
|
||||
Assign the specified \fIvalue\fP to the parameter. The leading dash can be
|
||||
omitted, or it can be doubled if desired (like in GNU-style long options).
|
||||
.PP
|
||||
Parameter names are case-insensitive, their order in the command line can be
|
||||
arbitrary.
|
||||
|
||||
.SH PARAMETERS
|
||||
|
||||
.TP
|
||||
.B \-display \fIdisplay\fP
|
||||
The X display name. If not specified, it defaults to the value of the
|
||||
DISPLAY environment variable.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbport \fIport\fP
|
||||
Specifies the TCP port on which x0vncserver listens for connections from
|
||||
viewers (the protocol used in VNC is called RFB - "remote framebuffer").
|
||||
The default port is 5900.
|
||||
.
|
||||
.TP
|
||||
.B \-UseIPv4
|
||||
Use IPv4 for incoming and outgoing connections. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-UseIPv6
|
||||
Use IPv6 for incoming and outgoing connections. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbunixpath \fIpath\fP
|
||||
Specifies the path of a Unix domain socket on which x0vncserver listens for
|
||||
connections from viewers, instead of listening on a TCP port.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbunixmode \fImode\fP
|
||||
Specifies the mode of the Unix domain socket. The default is 0600.
|
||||
.
|
||||
.TP
|
||||
.B \-Log \fIlogname\fP:\fIdest\fP:\fIlevel\fP
|
||||
Configures the debug log settings. \fIdest\fP can currently be \fBstderr\fP,
|
||||
\fBstdout\fP or \fBsyslog\fP, and \fIlevel\fP is between 0 and 100, 100 meaning
|
||||
most verbose output. \fIlogname\fP is usually \fB*\fP meaning all, but you can
|
||||
target a specific source file if you know the name of its "LogWriter". Default
|
||||
is \fB*:stderr:30\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-HostsFile \fIfilename\fP
|
||||
This parameter allows to specify a file name with IP access control rules.
|
||||
The file should include one rule per line, and the rule format is one of the
|
||||
following: +\fIaddress\fP/\fIprefix\fP (accept connections from the
|
||||
specified address group), -\fIaddress\fP/\fIprefix\fP (reject connections)
|
||||
or ?\fIaddress\fP/\fIprefix\fP (query the local user). The first rule
|
||||
matching the IP address determines the action to be performed. Rules that
|
||||
include only an action sign (+, - or ?) will match any IP address.
|
||||
\fIPrefix\fP is optional and is specified as a number of bits (e.g. /24).
|
||||
Default is to accept connections from any IP address.
|
||||
.
|
||||
.TP
|
||||
.B \-SecurityTypes \fIsec-types\fP
|
||||
Specify which security scheme to use for incoming connections. Valid values
|
||||
are a comma separated list of \fBNone\fP, \fBVncAuth\fP, \fBPlain\fP,
|
||||
\fBTLSNone\fP, \fBTLSVnc\fP, \fBTLSPlain\fP, \fBX509None\fP, \fBX509Vnc\fP
|
||||
and \fBX509Plain\fP. Default is \fBVncAuth,TLSVnc\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-rfbauth \fIpasswd-file\fP, \-PasswordFile \fIpasswd-file\fP
|
||||
Password file for VNC authentication. There is no default, you should
|
||||
specify the password file explicitly. Password file should be created with
|
||||
the \fBvncpasswd\fP(1) utility. The file is accessed each time a connection
|
||||
comes in, so it can be changed on the fly.
|
||||
.
|
||||
.TP
|
||||
.B \-Password \fIpassword\fP
|
||||
Obfuscated binary encoding of the password which clients must supply to
|
||||
access the server. Using this parameter is insecure, use \fBPasswordFile\fP
|
||||
parameter instead.
|
||||
.
|
||||
.TP
|
||||
.B \-PlainUsers \fIuser-list\fP
|
||||
A comma separated list of user names that are allowed to authenticate via
|
||||
any of the "Plain" security types (Plain, TLSPlain, etc.). Specify \fB*\fP
|
||||
to allow any user to authenticate using this security type. Default is to
|
||||
deny all users.
|
||||
.
|
||||
.TP
|
||||
.B \-pam_service \fIname\fP, \-PAMService \fIname\fP
|
||||
PAM service name to use when authentication users using any of the "Plain"
|
||||
security types. Default is \fBvnc\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-X509Cert \fIpath\fP
|
||||
Path to a X509 certificate in PEM format to be used for all X509 based
|
||||
security types (X509None, X509Vnc, etc.).
|
||||
.
|
||||
.TP
|
||||
.B \-X509Key \fIpath\fP
|
||||
Private key counter part to the certificate given in \fBX509Cert\fP. Must
|
||||
also be in PEM format.
|
||||
.
|
||||
.TP
|
||||
.B \-GnuTLSPriority \fIpriority\fP
|
||||
GnuTLS priority string that controls the TLS session’s handshake algorithms.
|
||||
See the GnuTLS manual for possible values. Default is \fBNORMAL\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-BlacklistThreshold \fIcount\fP
|
||||
The number of unauthenticated connection attempts allowed from any individual
|
||||
host before that host is black-listed. Default is 5.
|
||||
.
|
||||
.TP
|
||||
.B \-BlacklistTimeout \fIseconds\fP
|
||||
The initial timeout applied when a host is first black-listed. The host
|
||||
cannot re-attempt a connection until the timeout expires. Default is 10.
|
||||
.
|
||||
.TP
|
||||
.B \-QueryConnect
|
||||
Prompts the user of the desktop to explicitly accept or reject incoming
|
||||
connections. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-QueryConnectTimeout \fIseconds\fP
|
||||
Number of seconds to show the Accept Connection dialog before rejecting the
|
||||
connection. Default is \fB10\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-AlwaysShared
|
||||
Always treat incoming connections as shared, regardless of the client-specified
|
||||
setting. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-NeverShared
|
||||
Never treat incoming connections as shared, regardless of the client-specified
|
||||
setting. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-DisconnectClients
|
||||
Disconnect existing clients if an incoming connection is non-shared. Default is
|
||||
on. If \fBDisconnectClients\fP is false, then a new non-shared connection will
|
||||
be refused while there is a client active. When combined with
|
||||
\fBNeverShared\fP this means only one client is allowed at a time.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptKeyEvents
|
||||
Accept key press and release events from clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptPointerEvents
|
||||
Accept pointer press and release events from clients. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-RemapKeys \fImapping
|
||||
Sets up a keyboard mapping.
|
||||
.I mapping
|
||||
is a comma-separated string of character mappings, each of the form
|
||||
.IR char -> char ,
|
||||
or
|
||||
.IR char <> char ,
|
||||
where
|
||||
.I char
|
||||
is a hexadecimal keysym. For example, to exchange the " and @ symbols you would specify the following:
|
||||
|
||||
.RS 10
|
||||
RemapKeys=0x22<>0x40
|
||||
.RE
|
||||
.
|
||||
.TP
|
||||
.B \-RawKeyboard
|
||||
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. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-Protocol3.3
|
||||
Always use protocol version 3.3 for backwards compatibility with badly-behaved
|
||||
clients. Default is off.
|
||||
.
|
||||
.TP
|
||||
.B \-Geometry \fIgeometry\fP
|
||||
This option specifies the screen area that will be shown to VNC clients. The
|
||||
format is
|
||||
.B \fIwidth\fPx\fIheight\fP+\fIxoffset\fP+\fIyoffset\fP
|
||||
, where `+' signs can be replaced with `\-' signs to specify offsets from the
|
||||
right and/or from the bottom of the screen. Offsets are optional, +0+0 is
|
||||
assumed by default (top left corner). If the argument is empty, full screen
|
||||
is shown to VNC clients (this is the default).
|
||||
.
|
||||
.TP
|
||||
.B \-MaxProcessorUsage \fIpercent\fP
|
||||
Maximum percentage of CPU time to be consumed when polling the
|
||||
screen. Default is 35.
|
||||
.
|
||||
.TP
|
||||
.B \-PollingCycle \fImilliseconds\fP
|
||||
Milliseconds per one polling cycle. Actual interval may be dynamically
|
||||
adjusted to satisfy \fBMaxProcessorUsage\fP setting. Default is 30.
|
||||
.
|
||||
.TP
|
||||
.B \-FrameRate \fIfps\fP
|
||||
The maximum number of updates per second sent to each client. If the screen
|
||||
updates any faster then those changes will be 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. Default is \fB60\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-CompareFB \fImode\fP
|
||||
Perform pixel comparison on framebuffer to reduce unnecessary updates. Can
|
||||
be either \fB0\fP (off), \fB1\fP (always) or \fB2\fP (auto). Default is
|
||||
\fB2\fP.
|
||||
.
|
||||
.TP
|
||||
.B \-UseSHM
|
||||
Use MIT-SHM extension if available. Using that extension accelerates reading
|
||||
the screen. Default is on.
|
||||
.
|
||||
.TP
|
||||
.B \-ZlibLevel \fIlevel\fP
|
||||
Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
|
||||
Acceptable values are between 0 and 9. Default is to use the standard
|
||||
compression level provided by the \fBzlib\fP(3) compression library.
|
||||
.
|
||||
.TP
|
||||
.B \-ImprovedHextile
|
||||
Use improved compression algorithm for Hextile encoding which achieves better
|
||||
compression ratios by the cost of using slightly more CPU time. Default is
|
||||
on.
|
||||
.
|
||||
.TP
|
||||
.B \-IdleTimeout \fIseconds\fP
|
||||
The number of seconds after which an idle VNC connection will be dropped.
|
||||
Default is 0, which means that idle connections will never be dropped.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxDisconnectionTime \fIseconds\fP
|
||||
Terminate when no client has been connected for \fIN\fP seconds. Default is
|
||||
0.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxConnectionTime \fIseconds\fP
|
||||
Terminate when a client has been connected for \fIN\fP seconds. Default is
|
||||
0.
|
||||
.
|
||||
.TP
|
||||
.B \-MaxIdleTime \fIseconds\fP
|
||||
Terminate after \fIN\fP seconds of user inactivity. Default is 0.
|
||||
.
|
||||
.TP
|
||||
.B \-ClientWaitTimeMillis \fItime\fP
|
||||
Time in milliseconds to wait for a viewer which is blocking the server. This is
|
||||
necessary because the server is single-threaded and sometimes blocks until the
|
||||
viewer has finished sending or receiving a message - note that this does not
|
||||
mean an update will be aborted after this time. Default is 20000 (20 seconds).
|
||||
.
|
||||
.TP
|
||||
.B \-AcceptCutText
|
||||
.TQ
|
||||
.B \-SendCutText
|
||||
.TQ
|
||||
.B \-MaxCutText
|
||||
Currently unused.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR Xvnc (1),
|
||||
.BR vncpasswd (1),
|
||||
.br
|
||||
http://www.tigervnc.org/
|
||||
|
||||
.SH AUTHOR
|
||||
Constantin Kaplinsky 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 TigerVNC software suite.
|
|
@ -0,0 +1,179 @@
|
|||
|
||||
TigerVNC Java Viewer
|
||||
====================
|
||||
|
||||
This distribution is based on the standard VNC source and includes new
|
||||
TigerVNC-specific features and fixes, such as additional low-bandwidth
|
||||
optimizations, major GUI improvements, and more.
|
||||
|
||||
Copyright (C) 2000-2003 Constantin Kaplinsky
|
||||
Copyright (C) 2003 Sun Microsystems, Inc.
|
||||
Copyright (C) 2002-2005 RealVNC Ltd.
|
||||
Copyright (C) 2004-2005 Cendio AB
|
||||
Copyright (C) 2005 Martin Koegler
|
||||
Copyright (C) 2009 Pierre Ossman for Cendio AB
|
||||
Copyright (C) 2009-2018 TigerVNC Team
|
||||
Copyright (C) 2011-2014 Brian P. Hinz
|
||||
All rights reserved.
|
||||
|
||||
This software is distributed under the GNU General Public Licence as
|
||||
published by the Free Software Foundation. See the file LICENCE.TXT for the
|
||||
conditions under which this software is made available. TigerVNC also
|
||||
contains code from other sources. See the Acknowledgements section below, and
|
||||
the individual files for details of the conditions under which they are made
|
||||
available.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
There are three basic ways to use the TigerVNC Java Viewer:
|
||||
|
||||
1. Running the applet as part of a TigerVNC Server installation.
|
||||
|
||||
Both the Unix and Windows versions of the TigerVNC Server include a small
|
||||
built-in HTTP server that can serve the TigerVNC Java Viewer to web
|
||||
clients. This enables easy access to the shared desktop without the need
|
||||
to install any software on the client machine.
|
||||
|
||||
The Unix TigerVNC Server (Xvnc) is able to serve up any set of files that
|
||||
are present in a particular directory, which is specified in the -httpd
|
||||
argument to Xvnc. The default version of the vncserver script will look
|
||||
for a directory called vnc/classes, one level up from the directory
|
||||
containing the vncserver script, then it will look for a directory called
|
||||
/usr/share/vnc/classes, then /usr/local/vnc/classes. It will set the
|
||||
-httpd argument to Xvnc to the first one of these VNC classes directories
|
||||
it finds. Thus, one can easily deploy a modified version of the TigerVNC
|
||||
Java Viewer by simply copying a new version of VncViewer.jar and/or
|
||||
index.vnc into the VNC classes directory.
|
||||
|
||||
On Windows and Linux, the embedded applet can be drag-undocked from the
|
||||
browser window and converted to a standalone application. The drag
|
||||
gesture ALT+drag on Windows, and SHIFT+drag on Linux.
|
||||
|
||||
In the case of the Windows TigerVNC Server, VncViewer.jar and index.vnc
|
||||
are embedded as resources in the WinVNC executable, so deploying a
|
||||
modified version of the TigerVNC Java Viewer on a Windows server requires
|
||||
rebuilding WinVNC.
|
||||
|
||||
2. Running the applet from a standalone web server.
|
||||
|
||||
Another possibility for using the TigerVNC Java Viewer is to install it
|
||||
under a fully-functional HTTP server, such as Apache or IIS. Due to Java
|
||||
security restrictions, the applet must be signed in order for it to
|
||||
connect to a VNC server running on a different machine from the HTTP
|
||||
server.
|
||||
|
||||
One can install the TigerVNC Java Viewer by simply copying the .class and
|
||||
.jar files into a directory that is under the control of the HTTP server.
|
||||
Also, an HTML page should be created to act as a the base document for the
|
||||
TigerVNC Java Viewer applet (an example named index.html is provided in
|
||||
this directory. Modify this file to suit your specific needs.)
|
||||
|
||||
3. Running the viewer as a standalone application.
|
||||
|
||||
Finally, the TigerVNC Java Viewer can be executed locally on the client
|
||||
machine, but this method requires installation of either a JRE (Java
|
||||
Runtime Environment) or a JDK (Java Development Kit). If VncViewer.jar is
|
||||
in the current directory, then the TigerVNC Java Viewer can be launched
|
||||
with the following command line:
|
||||
|
||||
java -jar VncViewer.jar [parameters]
|
||||
|
||||
Add an argument of -? to the above command line to print a list of
|
||||
optional parameters supported by VncViewer.
|
||||
|
||||
|
||||
Parameters
|
||||
==========
|
||||
|
||||
The TigerVNC Java Viewer accepts a number of optional parameters, allowing you
|
||||
to customize its behavior.
|
||||
|
||||
Parameters can be specified in one of the two ways, depending on how the
|
||||
TigerVNC Java Viewer is used:
|
||||
|
||||
1. When the TigerVNC Java Viewer is run as an applet (embedded within an HTML
|
||||
document), parameters should be specified using the <PARAM> HTML tags
|
||||
within the appropriate <APPLET> section. Example:
|
||||
|
||||
<APPLET CODE=com.tigervnc.vncviewer.VncViewer ARCHIVE=VncViewer.jar
|
||||
WIDTH=400 HEIGHT=300>
|
||||
<PARAM NAME="PORT" VALUE=5901>
|
||||
<PARAM NAME="ScalingFactor" VALUE=50>
|
||||
</APPLET>
|
||||
|
||||
2. When run as a standalone application, the TigerVNC Java Viewer reads
|
||||
parameters from the command line. Example:
|
||||
|
||||
java -jar VncViewer.jar Port=5901 ScalingFactor=50
|
||||
|
||||
Both parameter names and their values are case-insensitive.
|
||||
|
||||
For a complete list of parameters and their descriptions, run:
|
||||
|
||||
java -jar VncViewer.jar -?
|
||||
|
||||
|
||||
HINTS
|
||||
=====
|
||||
|
||||
--> To refresh the remote desktop in the view-only mode, press "r" or "R"
|
||||
on the keyboard.
|
||||
|
||||
|
||||
ACKNOWLEDGEMENTS
|
||||
================
|
||||
|
||||
This distribution contains Java DES software by Dave Zimmerman
|
||||
<dzimm@widget.com> and Jef Poskanzer <jef@acme.com>. This is:
|
||||
|
||||
Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for NON-COMMERCIAL or COMMERCIAL purposes and without fee
|
||||
is hereby granted, provided that this copyright notice is kept intact.
|
||||
|
||||
WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
|
||||
SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
|
||||
NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE
|
||||
LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
|
||||
MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
|
||||
|
||||
THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
|
||||
CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
|
||||
PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
|
||||
NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
|
||||
SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
|
||||
PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). WIDGET
|
||||
WORKSHOP SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF
|
||||
FITNESS FOR HIGH RISK ACTIVITIES.
|
||||
|
||||
Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights
|
||||
reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Visit the ACME Labs Java page for up-to-date versions of this and other
|
||||
fine Java utilities: http://www.acme.com/java/
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,22 @@
|
|||
<!--
|
||||
index.vnc - default HTML page for TigerVNC Java viewer applet, to be
|
||||
used with Xvnc. On any file ending in .vnc, the HTTP server embedded in
|
||||
Xvnc will substitute the following variables when preceded by a dollar:
|
||||
USER, DESKTOP, DISPLAY, APPLETWIDTH, APPLETHEIGHT, WIDTH, HEIGHT, PORT,
|
||||
Use two dollar signs ($$) to get a dollar sign in the generated
|
||||
HTML page.
|
||||
-->
|
||||
|
||||
<HTML>
|
||||
<TITLE>
|
||||
$USER's $DESKTOP desktop ($DISPLAY)
|
||||
</TITLE>
|
||||
<APPLET CODE=com.tigervnc.vncviewer.VncViewer ARCHIVE=VncViewer.jar
|
||||
WIDTH=$APPLETWIDTH HEIGHT=$APPLETHEIGHT>
|
||||
<param name=PORT value=$PORT>
|
||||
<param name="Embed" value="true">
|
||||
<param name="draggable" value="true">
|
||||
</APPLET>
|
||||
<BR>
|
||||
<A href="http://www.tigervnc.org/">TigerVNC site</A>
|
||||
</HTML>
|
14
postBuild
|
@ -1,14 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
env
|
||||
|
||||
VNC_APPLICATION_DIR=$CONDA_DIR/vnc
|
||||
mkdir $VNC_APPLICATION_DIR
|
||||
pushd $VNC_APPLICATION_DIR
|
||||
|
||||
|
||||
# Install tigervnc
|
||||
curl -sSfL 'https://bintray.com/tigervnc/stable/download_file?file_path=tigervnc-1.9.0.x86_64.tar.gz' | tar -zxf - --strip=2
|
||||
|
||||
pip install $REPO_DIR
|