[X2Go-Commits] [pyhoca-gui] 08/71: CVix: rewrite CVix_setup.py
git-admin at x2go.org
git-admin at x2go.org
Thu Mar 20 00:32:41 CET 2014
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch cvix/2.x
in repository pyhoca-gui.
commit 752afcaaefb8c1ee31563419db00d4b506b6a370
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Wed Feb 5 16:03:32 2014 +0100
CVix: rewrite CVix_setup.py
---
CVix.py | 65 ++-
CVix_customer.key | 1 +
CVix_nsis_template.py | 4 +-
...template.py => CVix_session_profile_template.py | 1 +
CVix_setup.py | 415 +++-----------------
desktop/CVix.desktop | 12 +
icons/CVix/128x128/CVix_sessionicon.png | Bin 0 -> 3091 bytes
icons/CVix/128x128/CVix_trayicon.png | Bin 0 -> 3091 bytes
icons/CVix/128x128/CVix_winicon.png | Bin 0 -> 3091 bytes
icons/CVix/16x16/CVix_sessionicon.png | Bin 0 -> 483 bytes
icons/CVix/22x22/CVix_sessionicon.png | Bin 0 -> 654 bytes
img/CVix.png | Bin 3956205 -> 0 bytes
pixmaps/CVix.svg | 358 +++++++++++++++++
13 files changed, 493 insertions(+), 363 deletions(-)
diff --git a/CVix.py b/CVix.py
index 25a76dd..d26ccce 100755
--- a/CVix.py
+++ b/CVix.py
@@ -25,13 +25,67 @@ import sys
from pyhoca.wxgui import *
from pyhoca.wxgui import __VERSION__
+import x2go
+import CVix_session_profile_template
+
__author__ = "Mike Gabriel, Dick Kniep"
__version__ = 2.0
-if __name__ == '__main__':
+PROG_NAME = 'CVix'
+# change this to .CVix???
+SESSION_DIR = '.x2goclient'
+
+
+def CVixConfigFile():
+ """\
+ Create CVix's customer based session profile file.
+
+ """
+ f = open(os.path.join('CVix_customer'), 'r')
+ CUSTOMER_HOST = f.read().replace('\n', '').replace('\r', '')
+ f.close()
+ CUSTOMER_USER = CUSTOMER_HOST.split('.')[0]
+ CUSTOMER_KEY = 'CVix_customer.key'
+
+ session_dir = os.path.join(os.path.normpath(os.path.expanduser('~')), SESSION_DIR)
+ session_file = os.path.join(session_dir, 'sessions')
+
+ session_profiles = x2go.X2GoSessionProfiles(config_files=[session_file])
+
+ found = False
+ if 'CVix' in session_profiles.profile_names:
+ session_profiles.delete_profile('CVix')
+
+ profile_config = CVix_session_profile_template.SESSION_PROFILE_TEMPLATE
+ customized_config = {
+ 'sshproxyhost': '{hostname}'.format(hostname=CUSTOMER_HOST),
+ 'sshproxyport': 3389,
+ 'sshproxyuser': CUSTOMER_USER,
+ 'sshproxykeyfile': os.path.join(CUSTOMER_KEY),
+ 'icon': os.path.join('icons', 'CVix', '128x128', 'CVix_sessionicon.png'),
+ 'user': x2go.CURRENT_LOCAL_USER,
+ }
+
+ profile_config['export'] = profile_config['export'].format(local_home=os.path.normpath(os.path.expanduser('~')))
+ profile_config.update(customized_config)
+
+ session_profiles.add_profile(profile_id=None, **profile_config)
+ session_profiles.write_user_config = True
+ session_profiles.write()
+
+def startCVix():
+ """\
+ Deze functie zorgt er voor dat bij verschillende mensen die gebruik
+ maken van dezelfde computer en verschillende accounts hebben,
+ de directory met de juiste instellingen gekopieerd wordt naar
+ de nieuwe gebruiker. Tevens geeft het info indien er een probleem met
+ opstarten.
+
+ """
+
launcher = PyHocaGUI_Launcher()
- launcher.setup_progname('CVix')
+ launcher.setup_progname(PROG_NAME)
launcher.setup_version(__version__)
launcher.setup_consolelog()
launcher.setup_process()
@@ -52,3 +106,10 @@ if __name__ == '__main__':
args, logger, liblogger = launcher.parseargs()
launcher.main(args=args, logger=logger, liblogger=liblogger)
+
+
+if __name__ == '__main__':
+
+ CVixConfigFile()
+ startCVix()
+
diff --git a/CVix_customer.key b/CVix_customer.key
new file mode 120000
index 0000000..242d00d
--- /dev/null
+++ b/CVix_customer.key
@@ -0,0 +1 @@
+CVix_restricted/keys/eega.key
\ No newline at end of file
diff --git a/CVix_nsis_template.py b/CVix_nsis_template.py
index 295f0fe..e267ecf 100644
--- a/CVix_nsis_template.py
+++ b/CVix_nsis_template.py
@@ -15,7 +15,7 @@ Name "{program_name}"
; Sets the title bar text (although NSIS seems to append "Installer")
Caption "{program_desc}"
-!define py2exeOutputDirectory '{output_dir}'
+!define distOutputDirectory '{output_dir}'
; The file to write
OutFile "..\\{program_name}_{schema}_${{VERSION}}_win32-setup.exe"
@@ -163,7 +163,7 @@ Section "{program_name} ($REQUIRED)"
SectionIn RO
; Set output path to the installation directory.
SetOutPath "$INSTDIR"
- File /r /x .svn /x .git "${{py2exeOutputDirectory}}\\*.*"
+ File /r /x .svn /x .git "${{distDirectory}}\\*.*"
; Write the installation path into the registry
WriteRegStr HKLM SOFTWARE\\{program_name} "Install_Dir" "$INSTDIR"
diff --git a/CVix_session_template.py b/CVix_session_profile_template.py
similarity index 98%
rename from CVix_session_template.py
rename to CVix_session_profile_template.py
index 957b883..b199aab 100644
--- a/CVix_session_template.py
+++ b/CVix_session_profile_template.py
@@ -38,6 +38,7 @@ SESSION_PROFILE_TEMPLATE = {
'rdpoptions': '-u X2GO_USER -p X2GO_PASSWORD',
'print': 1,
'usesshproxy': 1,
+ 'sshproxyautologin': False,
'sshproxytunnel': 'localhost:53000:localhost:3389',
# gets substituted during application start
'sshproxykeyfile': '{sshproxykeyfile}',
diff --git a/CVix_setup.py b/CVix_setup.py
index 640f712..d01da0c 100755
--- a/CVix_setup.py
+++ b/CVix_setup.py
@@ -1,389 +1,86 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-#
-# PyHoca 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
+# Copyright (C) 2010-2014 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+#
+# CVix is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
-# PyHoca is distributed in the hope that it will be useful,
+# CVix 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.
+# GNU Affero General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU Affero 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.
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-# import the PyHoca-GUI
import sys
import os
-import shutil
-
-### Create Global variables
-mySCHEMA = None
-#SCHEMATA = None
-CUSTOMER_HOST = None
-CUSTOMER_USER = None
-CUSTOMER_KEY = None
-PROGRAM_DESC = None
-PROGRAM_VERSION = '1.2'
-PROGRAM_ICON = None
PROGRAM_NAME = 'CVix'
+PROGRAM_DESC = '%s Client is a tool to access CVix application servers' % PROGRAM_NAME
+for line in file(os.path.join('pyhoca', 'wxgui', '__init__.py')).readlines():
+ if (line.startswith('__VERSION__')):
+ exec(line.strip())
+PROGRAM_VERSION = __VERSION__
+PROGRAM_ICON = "pixmaps/CVix.ico"
LICENSE = 'AGPLv3+'
AUTHOR = 'Mike Gabriel, Dick Kniep'
-URL = 'http://www.lindix.org'
+URL = 'http://www.lindix.nl'
LIBRARY_ZIP = r"lib\shardlib.zip"
-PROGRAM_ICON_MAP2 = ''
-icon_files = []
-customer_files = []
-
-### customize the SCHEMA before running the setup
-
-def datafilelist(installbase, sourcebase):
- datafileList = []
- for root, subFolders, files in os.walk(sourcebase):
- fileList = []
- for f in files:
- fileList.append(os.path.join(root, f))
- datafileList.append((root.replace(sourcebase, installbase), fileList))
- return datafileList
-
-def _fillGlobals(schema=None):
- global mySCHEMA
- global SCHEMATA
- global CUSTOMER_HOST
- global CUSTOMER_USER
- global CUSTOMER_KEY
- global PROGRAM_DESC
- global PROGRAM_ICON
- global PROGRAM_ICON_MAP2
- global icon_files
- global customer_files
- if len(sys.argv) > 2 and schema is None:
- mySCHEMA = sys.argv[2]
- del sys.argv[2]
- elif schema:
- mySCHEMA = schema
- else:
- mySCHEMA = 'autitude' # not relevant......
-
- SCHEMATA = {
- 'autitude':'autitude.cvix.nl',
- 'cvixcoaches':'cvixcoaches.cvix.nl',
- 'comsupport':'communitysupport.cvix.nl',
- 'nlwerkt':'nederland-werkt.cvix.nl',
- 'amarant':'amarant.cvix.nl',
- 'ambulantehulpverlening':'ambulantehulpverlening.cvix.nl',
- 'deplannenmakers':'deplannenmakers.cvix.nl',
- 'emobrain':'emotionalbrain.cvix.nl',
- 'held':'held.cvix.nl',
- 'leff':'leff.cvix.nl',
- 'menea':'menea.cvix.nl',
- 'meneanew':'meneanew.cvix.nl',
- 'eega':'eega.cvix.nl',
- 'reinaerde':'reinaerde.cvix.nl',
- 'ruimbaan':'ruimbaan.cvix.nl',
- 'streamcvix':'streamtrajecten.cvix.nl',
- 'traject':'trajectbv.cvix.nl',
- 'zorgconcept':'zorgconcept.cvix.nl',
- 'zzpflevoland':'zzpflevoland.cvix.nl',
- 'asscoaching':'asscoaching.cvix.nl',
- 'demo':'demo.cvix.nl',
- }
-
- PROGRAM_NAME = 'CVix'
- if mySCHEMA in SCHEMATA:
- CUSTOMER_HOST = SCHEMATA[mySCHEMA]
- else:
- CUSTOMER_HOST = mySCHEMA + '.cvix.nl'
- CUSTOMER_USER = CUSTOMER_HOST.split('.')[0]
- CUSTOMER_KEY = '%s.key' % CUSTOMER_HOST.split('.')[0]
- f = open(os.path.join(os.getcwd(), PROGRAM_NAME, 'customer'), 'w+')
- f.write(CUSTOMER_HOST)
- f.close()
-
- PROGRAM_DESC = '%s is een terminal server programma aangepast aan het gebruik van CVix door %s' % (PROGRAM_NAME, CUSTOMER_USER)
- PROGRAM_ICON = "%s/pixmaps/%s.ico" % (PROGRAM_NAME, PROGRAM_NAME)
- PROGRAM_ICON_MAP2 = "%s\\pixmaps\\%s.ico" % (PROGRAM_NAME, PROGRAM_NAME)
- icon_files = datafilelist('icons\\PyHoca', r'icons\\PyHoca') + datafilelist('icons\\PyHoca', r'%s\\icons' % PROGRAM_NAME)
- customer_files = [(PROGRAM_NAME, [r'%s\\keys\\' % PROGRAM_NAME + CUSTOMER_KEY, r'%s\\customer' % PROGRAM_NAME])]
-
-#from setuptools import setup, find_packages
+from setuptools import setup, find_packages
from distutils.core import setup, Command
import platform
-_fillGlobals()
-NSIS_COMPILE = os.path.join(os.environ['ProgramFiles'], 'NSIS', 'makensis.exe')
-# from py2exe.build_exe import py2exe
-from bbfreeze import Freezer
-py2exe = object
-import os, os.path
-import subprocess
-sys.path.append(os.path.normpath('../pyhoca-contrib/mswin/ms-vc-runtime'))
-
-from glob import glob
-
-exec("from nsis_template_%s import NSIS_SCRIPT_TEMPLATE" % (PROGRAM_NAME, PROGRAM_NAME))
-
-#
-# to build .exe file, run on Windows:
-# ,,python setup.py py2exe''
-#
-# to update i18n .mo files (and merge .pot file into .po files) run on Linux:
-# ,,python setup.py build_i18n -m''
-
-cmd_class = {}
-data_files = []
-
-class NSISScript(object):
-
- def __init__(self, program_name, program_desc, program_version, dist_dir, icon_loc):
- self.program_name = program_name
- self.program_desc = program_desc
- self.program_version = program_version
- self.dist_dir = dist_dir
- self.icon_loc = icon_loc
- self.pathname = "setup_%s.nsi" % self.program_name
-
- def create(self):
- contents = NSIS_SCRIPT_TEMPLATE.format(
- program_name = self.program_name,
- program_version = self.program_version,
- program_desc = self.program_desc,
- output_dir = self.dist_dir,
- icon_location = os.path.join(self.dist_dir, self.icon_loc),
- schema = mySCHEMA)
-
- with open(self.pathname, "w") as outfile:
- outfile.write(contents)
-
- def compile(self):
- subproc = subprocess.Popen(
- # "/P5" uses realtime priority for the LZMA compression stage.
- # This can get annoying though.
- [NSIS_COMPILE, self.pathname, "/P5"], env=os.environ)
- subproc.communicate()
-
- retcode = subproc.returncode
-
- if retcode:
- raise RuntimeError("NSIS compilation return code: %d" % retcode)
-
-class build_all(Command):
- user_options = [('all','A','yes')]
- def initialize_options(self):
- pass
- def finalize_options(self):
- pass
- def run(self):
-
- logFile = file('build_all.log','ab')
-
- for schema, machine in SCHEMATA.items():
- print "\n\n\n* * * * * * * * * Build environment %s\n\n" % schema
- _fillGlobals(schema)
- sys.argv[1] = 'build_installer_bbfreeze'
- startSetup()
-
-
-class build_installer(object):
-
- # This class first invokes building the the exe file(s) and then creates an NSIS
- # installer
- def __init__(self, dist_dir):
- self.dist_dir = dist_dir
-
- def do_build_exe(self):
- # replace this method with the freezer's build_exe logic
- pass
-
- def run(self):
-
- # clean up dist_dir
- shutil.rmtree(self.dist_dir, ignore_errors=True)
- # and recreate a clean one afterwards
- os.makedirs(self.dist_dir)
-
- # First, build the exe file
- self.do_build_exe()
+import setup
+from CVix_nsis_template import NSIS_SCRIPT_TEMPLATE
+# monkey patch setup.py
+setup.NSIS_SCRIPT_TEMPLATE = NSIS_SCRIPT_TEMPLATE
- # Create the installer, using the files py2exe has created.
- script = NSISScript(
- PROGRAM_NAME,
- PROGRAM_DESC,
- PROGRAM_VERSION,
- self.dist_dir,
- os.path.normpath(PROGRAM_ICON)
- )
- print "*** creating the NSIS setup script***"
- script.create()
- print "*** compiling the NSIS setup script***"
- script.compile()
-class build_installer_bbfreeze(build_installer, Freezer, Command):
-
- user_options = [
- ('dist-dir=', 'd',
- "directory to put final built distributions in (default is dist)"),
-
- ("excludes=", 'e',
- "comma-separated list of modules to exclude"),
- ("includes=", 'i',
- "comma-separated list of modules to include"),
- ]
-
- def __init__(self, *args, **kwargs):
- Command.__init__(self, *args)
- build_installer.__init__(self, dist_dir=self.dist_dir)
-
- def initialize_options(self):
- self.includes = []
- self.excludes = []
- self.packages = []
- self.compressed = False
- self.dist_dir = None
-
- def finalize_options(self):
- self.includes = fancy_split(self.includes)
- self.excludes = fancy_split(self.excludes)
- self.compressed = False
- if self.dist_dir is None:
- self.dist_dir = 'dist'
- self.dist_dir = os.path.abspath(os.path.join(os.getcwd(), self.dist_dir))
- if not os.path.exists(self.dist_dir):
- os.makedirs(self.dist_dir)
-
- def do_build_exe(self):
- Freezer.__init__(self, self.dist_dir,
- includes=self.includes,
- excludes=self.excludes,
- )
- self.addScript("CVix.py", gui_only=True)
- Freezer.__call__(self)
- if self.distribution.has_data_files():
- print "*** copy data files ***"
- install_data = self.reinitialize_command('install_data')
- install_data.install_dir = self.dist_dir
- install_data.ensure_finalized()
- install_data.run()
-
-def fancy_split(strVal, sep=","):
- # a split which also strips whitespace from the items
- # passing a list or tuple will return it unchanged
- if strVal is None:
- return []
- if hasattr(strVal, "split"):
- return [item.strip() for item in strVal.split(sep)]
- return strVal
-
-
-
-executables = []
if platform.system() == 'Windows':
-
- dll_data_files = [("Microsoft.VC90.CRT", glob(r'..\\pyhoca-contrib\\mswin\\ms-vc-runtime\\*.*'))]
- nxproxy_files = [("nxproxy", glob(r'..\\pyhoca-contrib\\mswin\\nxproxy-mswin\\nxproxy-3.5.0.12\\*.*'))]
- pulseaudio_files = [("pulseaudio", glob(r'..\\pyhoca-contrib\\mswin\\pulseaudio-mswin\\pulseaudio-1.1\\*.*'))]
- xserver_files = datafilelist('vcxsrv', r'..\\pyhoca-contrib\\mswin\\vcxsrv-mswin\\vcxsrv-1.14.2.0')
-
- icon_files = datafilelist('icons\\PyHoca', r'icons\\PyHoca')
- img_files = [("img", glob(r'img\\*.*'))]
- i18n_files = datafilelist('mo', r'build\\mo')
-
- data_files.extend([ ('icons', ["pixmaps\\pyhoca-gui.ico"]), ] +
- dll_data_files +
- icon_files +
- img_files +
- nxproxy_files +
- pulseaudio_files +
- xserver_files +
- i18n_files
- )
-
- cmd_class.update(
- {
- "build_with_bbfreeze": build_installer_bbfreeze,
- }
- )
- cmd_class.update({ 'build_exe': cmd_class['build_with_{freezer}'.format(freezer='bbfreeze')] })
+ CVix_icon_files = datafilelist('icons\\CVix', r'icons\\CVix')
+ CVix_data_files = CVix_icon_files
elif platform.system() == 'Linux':
- cmd_class.update(
- {
- "build" : build_extra.build_extra,
- "build_i18n" : build_i18n.build_i18n,
- "clean": clean_i18n.clean_i18n,
- }
- )
-
- icon_files = datafilelist('{prefix}/share/icons/PyHoca'.format(prefix=sys.prefix), r'icons/PyHoca')
- img_files = [("{prefix}/share/pyhoca/img".format(prefix=sys.prefix), glob('img/*.*'))]
- desktop_files = [
- ('{prefix}/share/applications'.format(prefix=sys.prefix), glob('desktop/*')),
- ('{prefix}/share/pixmaps'.format(prefix=sys.prefix), glob('pixmaps/*.svg')),
+ CVix_icon_files = datafilelist('{prefix}/share/icons/CVix'.format(prefix=sys.prefix), r'icons/CVix')
+ CVix_desktop_files = [
+ ('{prefix}/share/applications'.format(prefix=sys.prefix), glob('desktop/CVix.desktop')),
+ ('{prefix}/share/pixmaps'.format(prefix=sys.prefix), glob('pixmaps/CVix.svg')),
]
- manpage_files = [
- ('{prefix}/share/man/man1'.format(prefix=sys.prefix), glob('man/man1/*.1')),
+ CVix_manpage_files = [
+ # ('{prefix}/share/man/man1'.format(prefix=sys.prefix), glob('man/man1/*.1')),
]
- data_files.extend(icon_files +
- img_files +
- desktop_files +
- manpage_files
- )
-
-if platform.system() == 'Windows':
- cmd_options={
- 'py2exe': {
- 'includes': ['greenlet', 'gevent.core', 'gevent.ares', 'gevent._semaphore', 'gevent._util', ],
- 'compressed': 1,
- 'optimize': 2,
- },
- 'build_with_py2exe': {
- 'includes': ['greenlet', 'gevent.core', 'gevent.ares', 'gevent._semaphore', 'gevent._util', ],
- 'compressed': 1,
- 'optimize': 2,
+ CVix_data_files = CVix_icon_files + CVix_desktop_files + CVix_manpage_files
+
+setup.data_files.extend([ ('icons', ["pixmaps\\CVix.ico"]), ] + CVix_files)
+
+setup(
+ name = PROGRAM_NAME,
+ version = PROGRAM_VERSION,
+ description = PROGRAM_DESC,
+ license = LICENSE,
+ author = AUTHOR,
+ url = URL,
+ namespace_packages = [ 'pyhoca', ],
+ packages = [ 'pyhoca.wxgui', ],
+ package_dir = {'': '.'},
+ install_requires = [ 'setuptools', ],
+ cmdclass = setup.cmd_class,
+ windows = [
+ {
+ "script": "CVix.py",
+ "icon_resources": [(0, os.path.normpath(PROGRAM_ICON))],
+ "dest_base": PROGRAM_NAME,
},
- 'build_with_bbfreeze': {
- 'includes': ['greenlet', 'gevent.core', 'gevent.ares', 'gevent._semaphore', 'gevent._util', 'gevent.resolver_thread', 'gevent.resolver_ares', 'gevent.server', 'gevent.socket', 'gevent.threadpool', 'gevent.select', 'gevent.subprocess', 'distutils.version', 'Crypto', 'Crypto.Random', 'Crypto.Hash', 'Crypto.PublicKey', 'Crypto.PublicKey.DSA', 'Crypto.PublicKey.RSA', 'Crypto.Cipher', 'Crypto.Cipher.AES', 'Crypto.Cipher.ARC4', 'Crypto.Cipher.Blowfish', 'Crypto.Cipher.DES3', 'Crypt [...]
- 'excludes': ['MSVCR90.dll', 'MSVCP90.dll', ],
- }
- }
- cmd_options.update({ 'build_exe': cmd_options['build_with_{freezer}'.format(freezer='bbfreeze')] })
-
-else:
- cmd_options={}
-
-def startSetup():
- setup(
- name = PROGRAM_NAME,
- version = PROGRAM_VERSION,
- description = PROGRAM_DESC,
- license = LICENSE,
- author = AUTHOR,
- url = URL,
- namespace_packages = [ 'pyhoca', ],
- packages = [ 'pyhoca.wxgui', ],
- package_dir = {'': '.'},
- install_requires = [ 'setuptools', ],
- cmdclass = cmd_class,
- windows = [
- {
- "script": "pyhoca-gui",
- "icon_resources": [(0, os.path.normpath(PROGRAM_ICON))],
- "dest_base": PROGRAM_NAME,
- },
- ],
- data_files=data_files,
- zipfile = LIBRARY_ZIP,
- executables = executables,
- options=cmd_options,
- )
-
-
-startSetup()
+ ],
+ data_files=data_files,
+ zipfile = LIBRARY_ZIP,
+ executables = executables,
+ options=setup.cmd_options,
+)
diff --git a/desktop/CVix.desktop b/desktop/CVix.desktop
new file mode 100644
index 0000000..16172d5
--- /dev/null
+++ b/desktop/CVix.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=CVix Client
+GenericName=CVix Client
+Comment=Client for accessing CVix Servers
+Exec=CVix
+Icon=CVix
+X-Window-Icon=CVix
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
+Terminal=false
+Type=Application
+Categories=GNOME;KDE;Network;
diff --git a/icons/CVix/128x128/CVix_sessionicon.png b/icons/CVix/128x128/CVix_sessionicon.png
new file mode 100644
index 0000000..9b637cd
Binary files /dev/null and b/icons/CVix/128x128/CVix_sessionicon.png differ
diff --git a/icons/CVix/128x128/CVix_trayicon.png b/icons/CVix/128x128/CVix_trayicon.png
new file mode 100644
index 0000000..9b637cd
Binary files /dev/null and b/icons/CVix/128x128/CVix_trayicon.png differ
diff --git a/icons/CVix/128x128/CVix_winicon.png b/icons/CVix/128x128/CVix_winicon.png
new file mode 100644
index 0000000..9b637cd
Binary files /dev/null and b/icons/CVix/128x128/CVix_winicon.png differ
diff --git a/icons/CVix/16x16/CVix_sessionicon.png b/icons/CVix/16x16/CVix_sessionicon.png
new file mode 100644
index 0000000..3986624
Binary files /dev/null and b/icons/CVix/16x16/CVix_sessionicon.png differ
diff --git a/icons/CVix/22x22/CVix_sessionicon.png b/icons/CVix/22x22/CVix_sessionicon.png
new file mode 100644
index 0000000..9440f6a
Binary files /dev/null and b/icons/CVix/22x22/CVix_sessionicon.png differ
diff --git a/img/CVix.png b/img/CVix.png
deleted file mode 100644
index d27b7d5..0000000
Binary files a/img/CVix.png and /dev/null differ
diff --git a/pixmaps/CVix.svg b/pixmaps/CVix.svg
new file mode 100644
index 0000000..04c15f4
--- /dev/null
+++ b/pixmaps/CVix.svg
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ width="128"
+ height="128"
+ sodipodi:docname="x2go-logo-ubuntu.svg"
+ sodipodi:docbase="/Users/h1/Documents/Projekte/x2go/x2go"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ inkscape:export-filename="/home/h1/Desktop/x2go-logo.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata87">
+ <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>
+ <defs
+ id="defs85">
+ <linearGradient
+ id="linearGradient3453">
+ <stop
+ style="stop-color:#2b0000;stop-opacity:1;"
+ offset="0"
+ id="stop3455" />
+ <stop
+ id="stop3461"
+ offset="0.5"
+ style="stop-color:#950000;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffe400;stop-opacity:1;"
+ offset="1"
+ id="stop3457" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 300 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="800 : 300 : 1"
+ inkscape:persp3d-origin="400 : 200 : 1"
+ id="perspective2637" />
+ <linearGradient
+ id="linearGradient4665">
+ <stop
+ style="stop-color:#162d50;stop-opacity:1;"
+ offset="0"
+ id="stop4667" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop4669" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ x="-0.20268817"
+ width="1.4053763"
+ y="-0.4560484"
+ height="1.9120969"
+ id="filter3580">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="15.201613"
+ id="feGaussianBlur3582" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter4659">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.82806857"
+ id="feGaussianBlur4661" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4665"
+ id="linearGradient4671"
+ x1="400"
+ y1="100"
+ x2="400"
+ y2="0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1,1.1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3453"
+ id="linearGradient3459"
+ x1="0"
+ y1="3"
+ x2="0"
+ y2="128"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="816"
+ inkscape:window-width="1503"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10000"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="true"
+ inkscape:object-nodes="true"
+ inkscape:grid-points="true"
+ inkscape:guide-points="true"
+ width="800px"
+ height="600px"
+ inkscape:zoom="4.625"
+ inkscape:cx="37.664865"
+ inkscape:cy="66.782471"
+ inkscape:window-x="0"
+ inkscape:window-y="22"
+ inkscape:current-layer="svg2"
+ units="mm"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <sodipodi:guide
+ orientation="vertical"
+ position="100"
+ id="guide2393" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="700"
+ id="guide2395" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="1px"
+ spacingy="1px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ dotted="true" />
+ </sodipodi:namedview>
+ <rect
+ style="fill:url(#linearGradient3459);fill-opacity:1;opacity:0.5"
+ id="rect2681"
+ width="128"
+ height="128"
+ x="0"
+ y="-7.1054274e-15"
+ ry="10.162162" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11693546;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;filter:url(#filter3580)"
+ id="path2397"
+ sodipodi:cx="410"
+ sodipodi:cy="150"
+ sodipodi:rx="90"
+ sodipodi:ry="40"
+ d="M 500,150 A 90,40 0 1 1 320,150 A 90,40 0 1 1 500,150 z"
+ transform="matrix(0.888889,0,0,0.75,-224.4445,38.25)" />
+ <g
+ style="fill:#ffffff"
+ id="g4"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 90,977.626 L 103.32,951.85 C 104.256,949.33 104.688,947.53 104.688,946.594 C 104.688,945.082 104.184,943.93 103.248,943.282 C 102.24,942.562 100.512,942.202 98.064,942.202 L 98.064,939.826 L 120.168,939.826 L 120.168,942.202 C 117.144,942.202 114.984,942.85 113.472,944.146 C 111.96,945.442 109.872,948.898 106.992,954.514 L 92.376,982.954 L 110.808,1024.498 C 112.68,1028.386 114.336,1031.122 115.776,1032.634 C 117.216,1034.074 118.944,1034.866 120.888,1034.866 L 120.888,1037.1 [...]
+ id="path6" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g8"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,940.474 L 50.976,939.25 L 50.976,941.698 L 6.984,940.474 z"
+ id="path10" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g12"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,946.45 L 50.976,945.298 L 50.976,946.954 L 56.16,947.026 L 56.52,947.026 L 56.808,947.026 L 57.096,947.098 L 57.384,947.098 L 57.672,947.17 L 57.888,947.242 L 58.104,947.314 L 58.32,947.386 L 58.464,947.458 L 58.608,947.53 L 58.752,947.602 L 58.896,947.674 L 58.968,947.746 L 59.112,947.818 L 59.112,947.89 L 59.184,947.89 L 6.984,946.45 z"
+ id="path14" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g16"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,952.498 L 61.272,950.986 L 61.488,951.346 L 61.776,951.922 L 62.064,952.498 L 62.352,953.146 L 62.64,953.794 L 62.784,954.01 L 6.984,952.498 z"
+ id="path18" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g20"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,958.474 L 63.936,956.89 L 65.376,960.058 L 6.984,958.474 z"
+ id="path22" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g24"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,964.45 L 66.528,962.866 L 67.968,966.106 L 6.984,964.45 z"
+ id="path26" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g28"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,970.498 L 69.12,968.77 L 70.632,972.226 L 6.984,970.498 z"
+ id="path30" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g32"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,976.474 L 71.712,974.674 L 73.296,978.274 L 6.984,976.474 z"
+ id="path34" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g36"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,982.45 L 74.304,980.65 L 75.96,984.322 L 6.984,982.45 z"
+ id="path38" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g40"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,988.426 L 76.896,986.554 L 78.408,989.866 L 78.192,990.37 L 6.984,988.426 z"
+ id="path42" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g44"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,994.402 L 77.112,992.458 L 75.168,996.274 L 6.984,994.402 z"
+ id="path46" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g48"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1000.378 L 74.016,998.578 L 72.216,1002.178 L 6.984,1000.378 z"
+ id="path50" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g52"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1006.354 L 70.92,1004.626 L 69.192,1008.082 L 6.984,1006.354 z"
+ id="path54" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g56"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1012.402 L 67.896,1010.746 L 66.168,1013.986 L 6.984,1012.402 z"
+ id="path58" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g60"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1036.378 L 50.976,1035.154 L 50.976,1037.602 L 6.984,1036.378 z"
+ id="path62" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g64"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1030.402 L 58.104,1028.962 L 58.032,1029.106 L 57.888,1029.178 L 57.744,1029.322 L 57.6,1029.394 L 57.528,1029.538 L 57.384,1029.61 L 57.312,1029.682 L 57.168,1029.682 L 57.024,1029.754 L 56.952,1029.826 L 56.808,1029.898 L 56.736,1029.898 L 56.592,1029.97 L 56.448,1029.97 L 56.376,1029.97 L 56.232,1030.042 L 56.088,1030.042 L 55.944,1030.042 L 50.976,1030.114 L 50.976,1031.554 L 6.984,1030.402 z"
+ id="path66" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g68"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1024.354 L 61.776,1022.914 L 60.984,1024.498 L 60.696,1025.002 L 60.48,1025.506 L 60.264,1025.866 L 6.984,1024.354 z"
+ id="path70" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g72"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 6.984,1018.378 L 64.8,1016.794 L 63.288,1019.89 L 6.984,1018.378 z"
+ id="path74" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g76"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 63.936,924.49 L 118.872,924.49 C 123.84,924.49 127.872,928.522 127.872,933.49 L 127.872,1043.362 C 127.872,1048.33 123.84,1052.362 118.872,1052.362 L 63.936,1052.362 L 63.936,1050.418 L 117.864,1050.418 C 122.256,1050.418 125.856,1046.818 125.856,1042.426 L 125.856,934.498 C 125.856,930.106 122.256,926.506 117.864,926.506 L 63.936,926.506 L 63.936,924.49 z"
+ id="path78" />
+ </g>
+ <g
+ style="fill:#ffffff"
+ id="g80"
+ transform="matrix(1.001001,0,0,1.001001,0,-925.41541)">
+ <path
+ style="fill:#ffffff"
+ d="M 9,924.49 L 63.936,924.49 L 63.936,926.506 L 9.936,926.506 C 5.544,926.506 1.944,930.106 1.944,934.498 L 1.944,1042.426 C 1.944,1046.818 5.544,1050.418 9.936,1050.418 L 63.936,1050.418 L 63.936,1052.362 L 9,1052.362 C 4.032,1052.362 0,1048.33 0,1043.362 L 0,933.49 C 0,928.522 4.032,924.49 9,924.49 z"
+ id="path82" />
+ </g>
+</svg>
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/pyhoca-gui.git
More information about the x2go-commits
mailing list