[X2go-Commits] pyhoca-gui.git - build-main (branch) updated: 0.2.0.0

X2Go dev team git-admin at x2go.org
Sun Jun 10 21:20:52 CEST 2012


The branch, build-main has been updated
       via  73647647ec7a3d5c96391eb3b6c94f586c0c947c (commit)
       via  bf751bb015bdff2111982a72f9703cf2d246147c (commit)
       via  6e0930a6543de891b493d8868647e515f2b9985d (commit)
       via  6739270822a083720a20b92c56df5acf9383d16e (commit)
       via  99e23c35af1a3fe3a1e06cd55a29d605d928c561 (commit)
       via  dbd4e8c2126de479b9b3d8c190ae744e78ecf51e (commit)
       via  afce9ce43af2f911111034e243a4921cd771345c (commit)
       via  df14fe3300c259f228c05dca265eeba5ac094bb4 (commit)
       via  33c9583bfe8b14569224ef28995c8006e6d10205 (commit)
       via  81cd8e0962a066eeab9945148e853cfcefe407d2 (commit)
       via  3f5d4fb0c89186b000bce06e538a0a97f4baba6e (commit)
       via  9fa9cca1acf9595583500ef0d3835763cdba0081 (commit)
       via  d79526f48ac661c653fe35866b685bde9bb52cde (commit)
       via  82e608434314fa8419a725d1f2758142bb072c67 (commit)
       via  1b920af010da32ea7b4c9e52ea02a5c690da8f8b (commit)
       via  70ea8219a29ccaae472cd75f193e5d8aad01c55d (commit)
       via  b95753e5e00970953d7b39ff4f255ec3d09057b0 (commit)
       via  854d1f84c838c006bfa3fa62fabb98240ccd2f13 (commit)
       via  2f9afa4170f0122c49035b4b6d380643f96e51cd (commit)
       via  8f723c95e91f302d874bbe6da429e7f87c0a6011 (commit)
       via  16a43c73e7666cc35fd76583ddbdc8f05554c992 (commit)
       via  be50c57fb436994ff63a2b6c26341e7f145d4516 (commit)
       via  638212166a275728ef6086256eb3488f9ef68777 (commit)
       via  a1cf67115558e3cc24448612790ab8a08cfd7777 (commit)
       via  8105c2c19cb4380dabe3b51eb7332f73ccdffac6 (commit)
       via  be2e334d368a099020b8f11d4d5f24479cf1c41d (commit)
       via  66dd00dbdf76afba25b348cf9897c46760d204d1 (commit)
       via  2f0353debe7fb2af9b25ab96a0ee5ddec29add8d (commit)
       via  ccd54373f71d3510904d9f45bb97cdc297755951 (commit)
       via  469584fa40038761b9826971ea9af6d9e8e0ea82 (commit)
       via  c9065ca07a3da3cb8a940fad2285a95dd2b3805b (commit)
       via  a28d17d078fc2ab8789e9cbb4163a88ca10c0a6f (commit)
       via  356a9f714a5a7e16502541770776bb2b549175aa (commit)
       via  6fdcabf69737e3ef53d8423b4b1f412ac93ec9af (commit)
       via  47c31b7c33fc0e0a77d36ae983865fbee9720870 (commit)
       via  12e0b9a0396ffb5651b21e0959dd09373a4ed921 (commit)
       via  05d7b359e15775162ea1d0c47fd909c5cecbaf6a (commit)
       via  b15b026507355da01f19925b1c864a7d82f3579f (commit)
       via  f8fc633098b1c35bbcce8b2be0a63a2ef5ecc439 (commit)
       via  a4d4405105bf3221aa6abca05fc92862527b802a (commit)
       via  ebe0667c3c2a115e5dbdb7b1d08152c166b871a8 (commit)
       via  6aa2c64cfd794a492ff85a4e52c3cee58b1175eb (commit)
       via  d244082e8fd6fac9818a79b917885cb0263535ad (commit)
       via  03afe04286a88a0e24a540cdc39feab3a9705124 (commit)
       via  9264eee6b541eea834b8f46aa975d465cc350f47 (commit)
       via  e3d22dd947f9424598314f589c03ad4284fe3a6d (commit)
       via  d3be56fe6794a891488320343db3cd34b8236b7e (commit)
       via  93e268e71d8e8903f711ad46f10da4d94c5cfa07 (commit)
       via  b3dc28e7af5b2a89a2665ed886c3d5577503e4ca (commit)
       via  1ef96d206379dcb613a5daebc5be573e7114387e (commit)
       via  98159cb25485cc9ecd9f2fb761781702156ba236 (commit)
       via  94d76420b3ce9db86873841a14bbe56fd4ecebd5 (commit)
       via  1e6395a15de1e7ae13442aaaf627ca0dd0881076 (commit)
       via  e8d4a46cf3d46d24f896d23feb4db6806e4b49fd (commit)
       via  a9a9f371037d5eb78ef41f0f6394afbe64da38e7 (commit)
       via  4994d76bbd1b84ea4c75e61254b5337211b7502b (commit)
       via  7ac6e6b5a74b322fdc86f756d150c209229fa54e (commit)
       via  52be973e29bdfe65187916dbec10dd9739e8373b (commit)
       via  9da6af7cadedd6dcc7724ee0ba3ce8d05651df1f (commit)
       via  cd9ab4da648a31e5e86fbf79002ebd39d0c73bdd (commit)
       via  15dab5d01c3fdd027611126acd3205616bcdb815 (commit)
       via  bae5b829194d0c480c1bac2988da6613302db46e (commit)
       via  5c29aff94f6cf0963793a70b78d75fb56a6f8969 (commit)
       via  77c8b6464aa3c845d4b8cdb0d1794c5b57d9ade0 (commit)
       via  703c8897df7a2ac61213a1ad607cdaf9f0ca4292 (commit)
       via  09b9d09489e6fc4c325bd0a73ac0b9b340edb933 (commit)
       via  3bdee1820a55752899982778a828e1b912786df2 (commit)
       via  c3eefb060d951a15a0362b7fe9ffc03b736ba849 (commit)
       via  d7e5809e0a9165ce9dc20c1f4298784da377470d (commit)
       via  f37c235acd7491deb742e38f469c2461f9ec8b52 (commit)
       via  e34ee331758845c3c09e251e96c78bd8451f3a71 (commit)
       via  4897263aded384247aff2172bd913cad6c496d4e (commit)
       via  c68dd2db147558a46570234f3f0eb1c0eca23951 (commit)
       via  730d60a4c88a463e845e1f15756821f0d7f9cd65 (commit)
       via  bbf4b5d7336eb1b10810f44936bc00310e046db9 (commit)
       via  e718a786a188ede8215638d1b79e56faacfceda1 (commit)
       via  b33c348acbc154d47e4adb23ee636cb7addeb1c1 (commit)
       via  fdadc4b1be3a2f78b45c2916203e05bf94e82d0a (commit)
       via  972c1037108b66f343f582dc024fafe6374f6832 (commit)
       via  58bc687468c2bb616afba509c3aea11cf1d9431f (commit)
       via  d580f3416dcf16828c77c2ffd41b4a2e640d07c1 (commit)
       via  a5e98b6ee29ae9f7a4614e0f254910666fad4154 (commit)
       via  532827fbb3819557be1c62eaf659030f4d3e8c49 (commit)
       via  9bd38fc362ba9e8daab09c4896419ffd7c69404e (commit)
       via  a9c1054eeee6dd7f65d43eef3c6b138b108b9cd9 (commit)
       via  a23098780c23c47d2418ccc0102de8d4de985cc2 (commit)
       via  f0709bc89350df2029439b5c40053d098add63f2 (commit)
       via  f90df6b606f0a644b930e9517a1155bda93c541c (commit)
       via  e9478741990ca9cd8a4533f35503562954f82732 (commit)
       via  a3d748dd39e1c1fc5711c0735a71e2cf558332d7 (commit)
       via  2e727de1ae8e4f730ed69b449f56e95747707b1d (commit)
       via  4e9fea939b0696dc10fee7f39f0a9697903e7d74 (commit)
       via  e8c677fb2e9550c67b1442d14d0670bbdfdaa967 (commit)
       via  cd95b031031bc9a28b678787b43fefe735cb0d0d (commit)
       via  62ed99536d9f741df7033bb890eaab468869e412 (commit)
       via  8a1d390676b43170edcf0146c1f20488393624ff (commit)
       via  6f8c10514fb270fe443d13e6c82db8295ba05429 (commit)
       via  a5bf1ea2c008e16f28863c30b4ec92603033aed9 (commit)
       via  cac4c03aa33872cc611697a33fead68409162492 (commit)
       via  3c72825fc5519d1e6733489535c1c91cb2a88767 (commit)
       via  d0347ac0ec771cc951fb20b9ed4ebb8992834248 (commit)
       via  deca2609d5529b3d6a1c4f4737b7674ebec2d87b (commit)
       via  05985163d0026637b5a49e2888d0b7b0cf56276a (commit)
       via  3ac15ccee45500132843039fae9ffdd521f95a1a (commit)
       via  65b6557b68a0cae496fe931ebc1cd87e1da5e910 (commit)
       via  edf44b3f4db29102e1c91a88dfba4780bb2020f4 (commit)
       via  796ee27daaba8c7e7fe31a07742acf2234b200b1 (commit)
       via  986dd6c6e1e8072985974cb1ed88f103c7c8356a (commit)
       via  7d35d2d3f9e73217a9168b8bc202303812628c8b (commit)
       via  32a8c5a5fe0d4b137e86a740825a41eae479518e (commit)
       via  b1cdf8f31e41f5d66b386089d90349cd09a4ff5e (commit)
       via  5ccc7328d8c4e55a07afb1d10484100c19b400a6 (commit)
       via  e6e40b946b276f669dbb250a15db51f21d095b57 (commit)
       via  5b8aeb5140ae32e9fc1276fad11e7f1f79930068 (commit)
       via  2b7e06384eefb27b651be2cdb7fc29ce91d60b57 (commit)
       via  8977aaedd2504284e6c0e42e079a994c19753f19 (commit)
       via  583e35fb52dabb4f43298fd8a3a5b6a347686bfd (commit)
       via  326c0fce32508e936f0c9be04832cc8430628fc0 (commit)
       via  267a47ba565ce1084742def333b82b43ae00f57a (commit)
       via  92608230d3bf666b0cbc981e49efb32ea1baf1d7 (commit)
       via  1adb4328d4ed4511cf90e74b99ee9a2768cbb82f (commit)
       via  533256fe1f91905a6e949bbb16e69ecbfcbee5a6 (commit)
       via  f599a5c9d370edb7e3e5ff15786033cb9a993ebb (commit)
       via  a60401acac4a0363b7dda3f07945058597fd9933 (commit)
       via  8aa34904dee26049e822203507e2336c6e744cd9 (commit)
       via  636b78c351ac2e627be48765a5847f6ac8915951 (commit)
       via  a413fd455ff11664e20e03bab553c419b3545e3a (commit)
       via  8fb7bb58ac12e283ad978b93500e58d2fd8d9467 (commit)
       via  2af9814fdec18b6fedf41c043bbd81e6d41efb7b (commit)
       via  4e59e6aa657b0f49f43a923c1336954da7cd55e3 (commit)
       via  98d21490291ad4781df8ca7859b91c40e587d035 (commit)
       via  d09e0a3ca8e61395093bbcd71d2c6e92a02042bf (commit)
       via  cd90c185ad996237d8d9579d41ed9679cd58261d (commit)
       via  b51e10faab3657f08ef900b26a6c27ab97db72d5 (commit)
       via  65bfa51a7d23aeba4c6517d6a5b11dfa5a8ecdad (commit)
       via  37ad86afa0b4aba68d66e2399d364d7c0987d5ba (commit)
       via  3d5158efbe73b01cc98483e82ce87949abfcf1eb (commit)
       via  153a57fe55d6e1fd5583ae6b1a26e2fa3280e8f2 (commit)
       via  63cb99f90198e4f2d6dc74a4e39a0454d1a5b05e (commit)
       via  73911fefada2e340b0c8444d7f2632f6f44f8ac0 (commit)
       via  062d9b0951363b32bb66a254d4d296542d950e9c (commit)
       via  154515d69cafd6fcd42956f0912e33a2b63e5400 (commit)
       via  c204fa180cecd3e7e9d528e8542a1d2e324678e7 (commit)
       via  474c3ea4cf28b05d8c2655b725c3446fac9b6be0 (commit)
       via  67194cbf85eb95ef18e73a6eb2006d3b3c8d099d (commit)
       via  53a9d5c9ea81eb1cd903f31aa9d9c1821097bd97 (commit)
       via  eb73a2ac865c600edfd2aa22c4c17a10ef0333c9 (commit)
       via  b582768ca80f5e7c03c1286eeed4931438e0fe7b (commit)
       via  1dffd63ae48c8936ed87b68ee7f8240bad7c179d (commit)
       via  05e3a08419451b405d1a8b1d6e676df554b8c1c0 (commit)
       via  f5950620dc1520bb5ea57f61e13bfe82715ec7a2 (commit)
       via  c637f0d561f171465ad8edc57087e5a02fb8e51d (commit)
       via  20652a1dcd988190b59e7cc9378c1409453c7c88 (commit)
       via  fc925cb37581beb10ab990cf9fd08dfb1453c21e (commit)
       via  8d7d3d5b54661c2b490171ae8f5b3c1f2fc44b76 (commit)
       via  7f23b7b0953b00384e7739aaec5350ae1c24f522 (commit)
       via  70008dcfa2a3bd4aeaf73b1173e0a61d9d0a1765 (commit)
       via  ad4034e189a7659add5a748f9c64a91c1c4584cf (commit)
       via  48be2fab98b7a31da4061ddb92c34d98507e9a0c (commit)
       via  599510c98452fe4bfc943ac193a3574b95e0f804 (commit)
       via  77b2ebabe63fbf410cae2138ce6f1f39924e83ea (commit)
       via  01200ab66a4cd89f3c03f2441c5a913d07e747a0 (commit)
       via  5476397b96ccec74885fd91b50b2bf4c05db1016 (commit)
       via  a4c8100805a54e4a2607ae9cbba80a9602ae0411 (commit)
       via  2bc0921e14c4a7afb42636aa9b4cbc7b3cf2ad6d (commit)
       via  69050e8fca3b4e468f09bf51534b859c328ab86d (commit)
       via  1bafcdd48927872f3c265a528ff31958e14f3c93 (commit)
       via  3b77e6c1a28fd9c752ca092fe56fa422743427b9 (commit)
       via  1a606d865abb0ff73115914547fd927987a31ed0 (commit)
       via  d2b5aed4c583497efcf5bec696beeaee745a1ea9 (commit)
       via  03894b689b5b367e29ab4c284e60f82e6faef818 (commit)
       via  8c05a02a227c58df6f1255ce2f327160a13f916c (commit)
       via  026c4a15c437cdd2e129b3d4d82f2ef910a626dd (commit)
       via  50c3cfccf4684baf9c57fff4b9d8fa3cd7285571 (commit)
       via  924ed9a645086b099c9d5e7a64bd60cd0e4d28f7 (commit)
       via  8cf58882de4af11c7238aaf6a046a12b2e18ec5f (commit)
       via  0ede3ea2232bbd63e6d13a22d858ada9543c6916 (commit)
       via  b4c4b60aa4e9adb76678117f9d3266a461e6ac76 (commit)
       via  e953d1ec1b19e5ade649033e354c7f897c372f35 (commit)
       via  78ef88b9d580e0286aa31bdf8d1f5490fb091aa9 (commit)
       via  3da29cb463d66c6fba6abe579fb31fbe781eea4e (commit)
       via  649af1a6598de6243fb793f96c27ee4d964c1721 (commit)
       via  4e9ababbb27bb1718f35ea4a2b38805e4d0d87a7 (commit)
       via  5ea8099a87cea6efe6c44a6b2e70c170559cffd2 (commit)
       via  e78605cd95d364854e42909d519303e3e769b371 (commit)
       via  d76502f0d36e30fc60abc8b33706ecac0e3fb51e (commit)
       via  790e8a8264159ed12cfd132d5cdfc42a457a420d (commit)
       via  007e4b3f47c194baadce0977a8ee3a23e8e13d17 (commit)
       via  0b67b192a1e1c653773e98b306da3eee62bea4c8 (commit)
       via  a0ed4c3cef9eb58a732dc579c0067c2bd0058387 (commit)
       via  87fd34c75e2764f3776a285d6422437684ff901f (commit)
       via  8af9e69cfc2ab18dd3c302363751d929e8c92ade (commit)
       via  445fb0d907a942e2550fb11acea53d6d1e1df93f (commit)
       via  2d38a466d20ee82908b4cafacac59aaac4735a48 (commit)
       via  6aca218cff665f8f148172d12b1c54d2e9099291 (commit)
       via  d08ff66f500246e48ef1201398044ad4e6793acc (commit)
       via  3f88b64993181aebba65e070a4b070964c5e86eb (commit)
       via  d57763f98dca9da4de9bd97d68c9cf2029c6ba63 (commit)
       via  ed82afa94e74ef9f329d3cc8c9b2f5b254590fca (commit)
       via  0c9b5c894ba5a6df70ff7d1544a29d51d6c8528c (commit)
       via  f09fd3f3a752d4b7015c645202b3bd907a092b7d (commit)
       via  4655b0b4c90d061d39b229bee7fcb4db93a7cfd5 (commit)
       via  614c2ab2a202a5a7ce45c3116e4c8a9456f36fd4 (commit)
       via  bbb1ebd1a1814bb493ec9a261cc24a8d93a3e66e (commit)
       via  2d230ec2b7eed7719137ed4daa40da3082416aae (commit)
       via  7760963880bde6ac0531dac086abd92038c0fec3 (commit)
       via  84074f170c26a8d2431571dfbbc64a7aa3464236 (commit)
       via  00250a11898323c98b3dddf97e0e08008532d903 (commit)
       via  5bd4fd3c76cefed7183e1a4cc597ceb7811764ef (commit)
       via  76d638f6abfb6b501d384c411bd858ffbf480c36 (commit)
       via  4f77721cc61f95bca156e6b548c2a2e9ebb1c693 (commit)
       via  3b35f6c1274bdc00ebe61d38cd60eceeb4ee0484 (commit)
       via  5d3209c70a8bdde0789870afc2f141e1efbbcb53 (commit)
       via  1124c19e7f81f650986750f2e3b181588f6bc36d (commit)
       via  7478652dd187ee2bda1bb9c78a2a337b6be318b3 (commit)
       via  baf991787ae289db044b4718a1ba9489716c46cf (commit)
       via  5eb2f6105a2d56261ecf3b99c09093960d638cb8 (commit)
       via  3548f33e206a87a7569735ed7bebdd4615aa4ee1 (commit)
       via  74557671c7b775e687c0aed0229f6952aa0a95f1 (commit)
       via  9c4cac04014241e41a26e059ef6b9193888a1843 (commit)
       via  06c5b76ff81fd1777b8ec017bcf735d0e2e828a6 (commit)
       via  f54d44f85151ef27077320acebf144657489d73e (commit)
       via  fcd6b899b67572c37e3839a8bb39c60732150bc9 (commit)
       via  e4cf19f755c473607995e51c44f1e20d55583c82 (commit)
       via  142408c2e2db2b0ed810fbb7e7168814af5418ec (commit)
       via  06ac0550a15231e2c427f4e5ca2a1cdfe1cf982a (commit)
       via  94bc060beb7fb65b6886a3d6620adb0b0694224c (commit)
       via  19ece3551adb36c82ee6c93eff3aef0f3e102203 (commit)
       via  f77d4e74480b8e21513dac98b8822d4925c11f62 (commit)
       via  73297d0b799254f887a920f00214869aadb2edb1 (commit)
       via  16548c8b56314a64fa66dcfc7fd1400c81e67f14 (commit)
       via  acb41bccfe76aa8c0fdb3fa890473889854ebdaa (commit)
       via  606903710549d3bec2751be846777d5d93d177dd (commit)
       via  5a1a18d7567d9e14f971160cd2247a5f6d8d167a (commit)
       via  c68c5a5f64749dad34276a4e43185db3fcdc3518 (commit)
       via  bea3b4a98da6ae150b4189b284a2cdde7fcfe41c (commit)
       via  137cafc7d13fe7256b4d024c26c9db8adaa5a63a (commit)
       via  f1c7968561910d353638708bb8ce4eb93c68cc7c (commit)
       via  0d2b0325fc8ba69472eba44a0cbc12efcb99ce72 (commit)
       via  ba9784d534e44d1703d2e2c52ae27c888cc860c0 (commit)
       via  1291e2fdb22f247b6cad2fe17c48f6a2d29a6877 (commit)
       via  6087fbd7d899f55bf2b881d7f19c278ddd739fd0 (commit)
       via  6fcb7d97fb4dffe7e086b535d3b0a788d31d8a6f (commit)
       via  3b29fe2bfc67349a60c57ff621d43cc37faddb58 (commit)
       via  54590db82f855178b4f04052cc292b29250d3a72 (commit)
       via  c3cee75a1e9627ef2c565438d5c9e790a6854768 (commit)
       via  e6943699e20d2e459cb428470b9507ffc1cac90b (commit)
       via  b29f70a90e769fd93cd849856f19152ce0ba411e (commit)
       via  44344b979cb13eb0178ba4deba76a14ada3850db (commit)
       via  ceed708ca6d5cf0e2a52eab928ccc7095e446be3 (commit)
       via  b160973ba782315e03cf3ca121ab6d44a3e854ad (commit)
       via  15ef885c1f90035551500089e3285b2afc15f88b (commit)
       via  5e1602ac590f98ff9a89f56b73c454083d719d45 (commit)
       via  f51266d341d999c741da5ca8733e157ba58e7c08 (commit)
       via  fe1d6d33fcefe8229db11150fe753ac604f2a6a7 (commit)
       via  dc9491b2b16a1e87c3e25fabe91fea4043043f34 (commit)
       via  c473ec48be2e79a79a0bc2c1e29e630f0d49820c (commit)
       via  048716a0bdc9e0f3bf4137de66f9b37e005a9e6f (commit)
       via  c3c9a80b9e0c3a48c38440aca0003ea1f182f202 (commit)
       via  17a0f93e9cdf6f96492995dc844ac6fca8edaef5 (commit)
       via  30dd0499b0199a0507d1a03454f56901d013d458 (commit)
       via  519373dfea10d4d15dc31a38b613ce0984c443c7 (commit)
       via  b968c4c400759917c16d9e6fdc0fe476b235ae21 (commit)
       via  1e9ad84f60aa19beb4540303414934d6bc213b3a (commit)
       via  367871d39ee8a270aed41f7ac0e16bc61d706470 (commit)
       via  f571e24d5b002e6a466ecfb77fc8fc75398fef77 (commit)
       via  a4ab34330af41254fdb447f330c1bab09433cfe7 (commit)
       via  a44f8cd2f53dabd95a02ee142ba0eefddeac5481 (commit)
       via  a4c6ebaf8cac950286a3f11aad26f45c2c9be47c (commit)
       via  1d7159183901e1627af9c3d75fbf5a518b39bab8 (commit)
       via  a7df5d3b05ed3f5c46b8ca19d6811fd4f2302d22 (commit)
       via  2d7eacbe52f98d4d25b17cf61f38a609bd1375ca (commit)
       via  0a8c27744d3badb0d879ad01396bfb8a0e363976 (commit)
       via  773ae32bf5e0ec31db6a9af706fa1db52cbc253e (commit)
       via  1445656e56e4d00aded6ff7b98b33cb728822b71 (commit)
       via  020f8ed7b3049b7eecb5ea66600a2ccf9d64b0ee (commit)
       via  51c9f51ab03af63dd9d5400ece25ad8b3c48a838 (commit)
       via  d1a153d8856f052d843624f8ecacd50ebfadbf77 (commit)
       via  8e780efb58fcea962391f8497f0f06ef1fc37813 (commit)
       via  48a207ce768181f00c39a744dfb89de57610c616 (commit)
       via  cbff3fee859a3d209a13155bab7b04e638efe02b (commit)
      from  eb867d7b4a53c2af7711d5466091d32b04254cec (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 LICENSE.txt                                        |  661 +++++++++
 Makefile.docupload                                 |    2 +-
 README                                             |    6 +-
 README.Unity                                       |   34 +
 README.i18n                                        |    4 +-
 TODO                                               |    6 +-
 build/mo/bg/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 541 bytes
 build/mo/de/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 23789 bytes
 build/mo/de/LC_MESSAGES/pyhoca-gui.mo              |  Bin 18072 -> 0 bytes
 build/mo/en/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 22238 bytes
 build/mo/en/LC_MESSAGES/pyhoca-gui.mo              |  Bin 16917 -> 0 bytes
 build/mo/es/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 23773 bytes
 build/mo/es/LC_MESSAGES/pyhoca-gui.mo              |  Bin 18023 -> 0 bytes
 build/mo/nb_NO/LC_MESSAGES/PyHoca-GUI.mo           |  Bin 0 -> 22740 bytes
 build/mo/nl/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 22596 bytes
 build/mo/nl/LC_MESSAGES/pyhoca-gui.mo              |  Bin 16724 -> 0 bytes
 build/mo/sv/LC_MESSAGES/PyHoca-GUI.mo              |  Bin 0 -> 22180 bytes
 debian/changelog                                   |  194 +++-
 debian/control                                     |   20 +-
 debian/copyright                                   |   32 +-
 debian/pyhoca-gui.docs                             |    1 +
 debian/pyhoca-gui.install                          |   35 +-
 debian/pyhoca-gui.links                            |   93 ++
 debian/rules                                       |    4 +-
 debian/source/options                              |    1 +
 desktop/pyhoca-gui.desktop                         |    2 +-
 icons/PyHoca/16x16/applications-development.png    |  Bin 0 -> 914 bytes
 icons/PyHoca/16x16/applications-education.png      |  Bin 0 -> 758 bytes
 icons/PyHoca/16x16/applications-games.png          |  Bin 0 -> 846 bytes
 icons/PyHoca/16x16/applications-graphics.png       |  Bin 0 -> 1179 bytes
 icons/PyHoca/16x16/applications-internet.png       |  Bin 0 -> 1117 bytes
 icons/PyHoca/16x16/applications-multimedia.png     |  Bin 0 -> 1093 bytes
 icons/PyHoca/16x16/applications-office.png         |  Bin 0 -> 841 bytes
 icons/PyHoca/16x16/applications-other.png          |  Bin 0 -> 872 bytes
 icons/PyHoca/16x16/applications-system.png         |  Bin 0 -> 1251 bytes
 icons/PyHoca/16x16/applications-utilities.png      |  Bin 0 -> 888 bytes
 icons/PyHoca/16x16/x2go-logo-grey.png              |  Bin 0 -> 587 bytes
 icons/PyHoca/22x22/application-exit.png            |  Bin 0 -> 870 bytes
 icons/PyHoca/22x22/applications-development.png    |  Bin 0 -> 977 bytes
 icons/PyHoca/22x22/applications-education.png      |  Bin 0 -> 644 bytes
 icons/PyHoca/22x22/applications-games.png          |  Bin 0 -> 688 bytes
 icons/PyHoca/22x22/applications-graphics.png       |  Bin 0 -> 1523 bytes
 icons/PyHoca/22x22/applications-internet.png       |  Bin 0 -> 1355 bytes
 icons/PyHoca/22x22/applications-multimedia.png     |  Bin 0 -> 1353 bytes
 icons/PyHoca/22x22/applications-office.png         |  Bin 0 -> 804 bytes
 icons/PyHoca/22x22/applications-other.png          |  Bin 0 -> 775 bytes
 icons/PyHoca/22x22/applications-system.png         |  Bin 0 -> 1403 bytes
 icons/PyHoca/22x22/applications-utilities.png      |  Bin 0 -> 888 bytes
 icons/PyHoca/22x22/x2go-logo-grey.png              |  Bin 0 -> 794 bytes
 icons/PyHoca/32x32/application-exit.png            |  Bin 0 -> 1289 bytes
 icons/PyHoca/scalable/application-exit.svg         |  332 +++++
 .../PyHoca/128x128/pyhoca-session.png              |  Bin 19982 -> 19982 bytes
 .../PyHoca/128x128/pyhoca-trayicon.png             |  Bin 19982 -> 19982 bytes
 .../PyHoca/128x128/pyhoca-winicon.png              |  Bin 19982 -> 19982 bytes
 .../PyHoca/128x128/question.png                    |  Bin 9673 -> 9673 bytes
 .../PyHoca/128x128/x2go-logo-rotated.png           |  Bin 19360 -> 19360 bytes
 .../PyHoca/128x128/x2go-logo-ubuntu.png            |  Bin 11139 -> 11139 bytes
 .../PyHoca/128x128/x2go-logo-white-bg.png          |  Bin 3714 -> 3714 bytes
 {icons => icons_symlinked}/PyHoca/128x128/x2go.png |  Bin 6095 -> 6095 bytes
 .../PyHoca/16x16/applications-development.png      |  Bin 0 -> 914 bytes
 .../PyHoca/16x16/applications-education.png        |  Bin 0 -> 758 bytes
 .../PyHoca/16x16/applications-games.png            |  Bin 0 -> 846 bytes
 .../PyHoca/16x16/applications-graphics.png         |  Bin 0 -> 1179 bytes
 .../PyHoca/16x16/applications-internet.png         |  Bin 0 -> 1117 bytes
 .../PyHoca/16x16/applications-multimedia.png       |  Bin 0 -> 1093 bytes
 .../PyHoca/16x16/applications-office.png           |  Bin 0 -> 841 bytes
 .../PyHoca/16x16/applications-other.png            |  Bin 0 -> 872 bytes
 .../PyHoca/16x16/applications-system.png           |  Bin 0 -> 1251 bytes
 .../PyHoca/16x16/applications-utilities.png        |  Bin 0 -> 888 bytes
 .../PyHoca/16x16/pyhoca-session.png                |  Bin 1099 -> 1099 bytes
 .../PyHoca/16x16/pyhoca-trayicon.png               |  Bin 1099 -> 1099 bytes
 .../PyHoca/16x16/pyhoca-winicon.png                |  Bin 1099 -> 1099 bytes
 .../PyHoca/16x16/question.png                      |  Bin 846 -> 846 bytes
 icons_symlinked/PyHoca/16x16/system-search.png     |    1 +
 .../PyHoca/16x16/x2go-logo-rotated.png             |  Bin 1367 -> 1367 bytes
 .../PyHoca/16x16/x2go-logo-ubuntu.png              |  Bin 1118 -> 1118 bytes
 .../PyHoca/16x16/x2go-logo-white-bg.png            |  Bin 547 -> 547 bytes
 {icons => icons_symlinked}/PyHoca/16x16/x2go.png   |  Bin 705 -> 705 bytes
 icons_symlinked/PyHoca/22x22/application-exit.png  |  Bin 0 -> 870 bytes
 .../PyHoca/22x22/applications-development.png      |  Bin 0 -> 977 bytes
 .../PyHoca/22x22/applications-education.png        |  Bin 0 -> 644 bytes
 .../PyHoca/22x22/applications-games.png            |  Bin 0 -> 688 bytes
 .../PyHoca/22x22/applications-graphics.png         |  Bin 0 -> 1523 bytes
 .../PyHoca/22x22/applications-internet.png         |  Bin 0 -> 1355 bytes
 .../PyHoca/22x22/applications-multimedia.png       |  Bin 0 -> 1353 bytes
 .../PyHoca/22x22/applications-office.png           |  Bin 0 -> 804 bytes
 .../PyHoca/22x22/applications-other.png            |  Bin 0 -> 775 bytes
 .../PyHoca/22x22/applications-system.png           |  Bin 0 -> 1403 bytes
 .../PyHoca/22x22/applications-utilities.png        |  Bin 0 -> 888 bytes
 .../PyHoca/22x22/pyhoca-session.png                |  Bin 1519 -> 1519 bytes
 .../PyHoca/22x22/pyhoca-trayicon.png               |  Bin 1519 -> 1519 bytes
 .../PyHoca/22x22/pyhoca-winicon.png                |  Bin 1519 -> 1519 bytes
 .../PyHoca/22x22/question.png                      |  Bin 1248 -> 1248 bytes
 .../PyHoca/22x22/x2go-logo-rotated.png             |  Bin 1903 -> 1903 bytes
 .../PyHoca/22x22/x2go-logo-ubuntu.png              |  Bin 1486 -> 1486 bytes
 .../PyHoca/22x22/x2go-logo-white-bg.png            |  Bin 653 -> 653 bytes
 {icons => icons_symlinked}/PyHoca/22x22/x2go.png   |  Bin 900 -> 900 bytes
 icons_symlinked/PyHoca/32x32/application-exit.png  |    1 +
 icons_symlinked/PyHoca/32x32/audio_error.png       |    1 +
 icons_symlinked/PyHoca/32x32/auth_disconnect.png   |    1 +
 icons_symlinked/PyHoca/32x32/auth_error.png        |    1 +
 icons_symlinked/PyHoca/32x32/auth_failed.png       |    1 +
 icons_symlinked/PyHoca/32x32/auth_success.png      |    1 +
 .../PyHoca/32x32/broom-cleanup.png                 |  Bin 2352 -> 2352 bytes
 icons_symlinked/PyHoca/32x32/dialog-apply.png      |    1 +
 icons_symlinked/PyHoca/32x32/dialog-error.png      |    1 +
 icons_symlinked/PyHoca/32x32/dialog-question.png   |    1 +
 icons_symlinked/PyHoca/32x32/dialog-warning.png    |    1 +
 icons_symlinked/PyHoca/32x32/document-save.png     |    1 +
 icons_symlinked/PyHoca/32x32/edit-delete.png       |    1 +
 .../PyHoca/32x32/gnome-dev-printer-network.svg     |    1 +
 icons_symlinked/PyHoca/32x32/gtk-edit.png          |    1 +
 icons_symlinked/PyHoca/32x32/list-add.png          |    1 +
 icons_symlinked/PyHoca/32x32/locked.png            |    1 +
 icons_symlinked/PyHoca/32x32/media-eject.png       |    1 +
 .../PyHoca/32x32/media-playback-pause.png          |    1 +
 .../PyHoca/32x32/media-playback-start.png          |    1 +
 .../PyHoca/32x32/media-playback-stop.png           |    1 +
 icons_symlinked/PyHoca/32x32/media-record.png      |    1 +
 .../PyHoca/32x32/media-seek-backward.png           |    1 +
 .../PyHoca/32x32/media-seek-forward.png            |    1 +
 .../PyHoca/32x32/media-skip-backward.png           |    1 +
 .../PyHoca/32x32/media-skip-forward.png            |    1 +
 icons_symlinked/PyHoca/32x32/network-wired.png     |    1 +
 icons_symlinked/PyHoca/32x32/profile_add.png       |    1 +
 icons_symlinked/PyHoca/32x32/profile_delete.png    |    1 +
 icons_symlinked/PyHoca/32x32/profile_edit.png      |    1 +
 icons_symlinked/PyHoca/32x32/profile_error.png     |    1 +
 icons_symlinked/PyHoca/32x32/profile_save.png      |    1 +
 icons_symlinked/PyHoca/32x32/profile_warning.png   |    1 +
 .../PyHoca/32x32/pyhoca-session.png                |  Bin 2621 -> 2621 bytes
 .../PyHoca/32x32/pyhoca-trayicon.png               |  Bin 2621 -> 2621 bytes
 .../PyHoca/32x32/pyhoca-winicon.png                |  Bin 2621 -> 2621 bytes
 .../PyHoca/32x32/question.png                      |  Bin 1992 -> 1992 bytes
 icons_symlinked/PyHoca/32x32/session_cleanall.png  |    1 +
 icons_symlinked/PyHoca/32x32/session_error.png     |    1 +
 icons_symlinked/PyHoca/32x32/session_pause.png     |    1 +
 .../PyHoca/32x32}/session_printing.svg             |    0
 icons_symlinked/PyHoca/32x32/session_resume.png    |    1 +
 icons_symlinked/PyHoca/32x32/session_start.png     |    1 +
 icons_symlinked/PyHoca/32x32/session_terminate.png |    1 +
 icons_symlinked/PyHoca/32x32/session_warning.png   |    1 +
 icons_symlinked/PyHoca/32x32/unlocked.png          |    1 +
 icons_symlinked/PyHoca/32x32/window-close.png      |    1 +
 icons_symlinked/PyHoca/32x32/window-new.png        |    1 +
 .../PyHoca/32x32/x2go-logo-rotated.png             |  Bin 3107 -> 3107 bytes
 .../PyHoca/32x32/x2go-logo-ubuntu.png              |  Bin 2545 -> 2545 bytes
 .../PyHoca/32x32/x2go-logo-white-bg.png            |  Bin 985 -> 985 bytes
 {icons => icons_symlinked}/PyHoca/32x32/x2go.png   |  Bin 1483 -> 1483 bytes
 .../PyHoca/48x48/pyhoca-session.png                |  Bin 5073 -> 5073 bytes
 .../PyHoca/48x48/pyhoca-trayicon.png               |  Bin 5073 -> 5073 bytes
 .../PyHoca/48x48/pyhoca-winicon.png                |  Bin 5073 -> 5073 bytes
 .../PyHoca/48x48/question.png                      |  Bin 3167 -> 3167 bytes
 .../PyHoca/48x48/x2go-logo-rotated.png             |  Bin 5421 -> 5421 bytes
 .../PyHoca/48x48/x2go-logo-ubuntu.png              |  Bin 4205 -> 4205 bytes
 .../PyHoca/48x48/x2go-logo-white-bg.png            |  Bin 3774 -> 3774 bytes
 {icons => icons_symlinked}/PyHoca/48x48/x2go.png   |  Bin 2357 -> 2357 bytes
 icons_symlinked/PyHoca/64x64/audio_error.png       |    1 +
 icons_symlinked/PyHoca/64x64/auth_error.png        |    1 +
 icons_symlinked/PyHoca/64x64/auth_failed.png       |    1 +
 icons_symlinked/PyHoca/64x64/auth_success.png      |    1 +
 .../PyHoca/64x64/dialog-apply.png                  |  Bin 3213 -> 3213 bytes
 .../PyHoca/64x64/dialog-error.png                  |  Bin 3973 -> 3973 bytes
 .../PyHoca/64x64/dialog-question.png               |  Bin 4966 -> 4966 bytes
 .../PyHoca/64x64/dialog-warning.png                |  Bin 3894 -> 3894 bytes
 icons_symlinked/PyHoca/64x64/profile_error.png     |    1 +
 icons_symlinked/PyHoca/64x64/profile_warning.png   |    1 +
 .../PyHoca/64x64/pyhoca-session.png                |  Bin 7923 -> 7923 bytes
 .../PyHoca/64x64/pyhoca-trayicon.png               |  Bin 7923 -> 7923 bytes
 .../PyHoca/64x64/pyhoca-winicon.png                |  Bin 7923 -> 7923 bytes
 .../PyHoca/64x64/question.png                      |  Bin 4395 -> 4395 bytes
 icons_symlinked/PyHoca/64x64/session_error.png     |    1 +
 icons_symlinked/PyHoca/64x64/session_warning.png   |    1 +
 .../PyHoca/64x64/x2go-logo-rotated.png             |  Bin 7840 -> 7840 bytes
 .../PyHoca/64x64/x2go-logo-ubuntu.png              |  Bin 5704 -> 5704 bytes
 .../PyHoca/64x64/x2go-logo-white-bg.png            |  Bin 1872 -> 1872 bytes
 {icons => icons_symlinked}/PyHoca/64x64/x2go.png   |  Bin 2960 -> 2960 bytes
 .../PyHoca/scalable/application-exit.svg           |    1 +
 .../PyHoca/scalable/audio_error.svg                |    0
 .../PyHoca/scalable/auth_disconnect.svg            |    0
 .../PyHoca/scalable/auth_error.svg                 |    0
 .../PyHoca/scalable/auth_failed.svg                |    0
 .../PyHoca/scalable/auth_success.svg               |    0
 .../PyHoca/scalable/broom-cleanup.svg              |  Bin 75647 -> 75647 bytes
 icons_symlinked/PyHoca/scalable/dialog-apply.svg   |    1 +
 icons_symlinked/PyHoca/scalable/dialog-error.svg   |    1 +
 .../PyHoca/scalable/dialog-question.svg            |    1 +
 icons_symlinked/PyHoca/scalable/dialog-warning.svg |    1 +
 icons_symlinked/PyHoca/scalable/document-save.svg  |    1 +
 icons_symlinked/PyHoca/scalable/edit-delete.svg    |    1 +
 .../PyHoca/scalable/gnome-dev-printer-network.svg  |    1 +
 icons_symlinked/PyHoca/scalable/gtk-edit.svg       |    1 +
 icons_symlinked/PyHoca/scalable/list-add.svg       |    1 +
 icons_symlinked/PyHoca/scalable/locked.svg         |    1 +
 icons_symlinked/PyHoca/scalable/media-eject.svg    |    1 +
 .../PyHoca/scalable/media-playback-pause.svg       |    1 +
 .../PyHoca/scalable/media-playback-start.svg       |    1 +
 .../PyHoca/scalable/media-playback-stop.svg        |    1 +
 icons_symlinked/PyHoca/scalable/media-record.svg   |    1 +
 .../PyHoca/scalable/media-seek-backward.svg        |    1 +
 .../PyHoca/scalable/media-seek-forward.svg         |    1 +
 .../PyHoca/scalable/media-skip-backward.svg        |    1 +
 .../PyHoca/scalable/media-skip-forward.svg         |    1 +
 icons_symlinked/PyHoca/scalable/network-wired.svg  |    1 +
 .../PyHoca/scalable/profile_add.svg                |    0
 .../PyHoca/scalable/profile_delete.svg             |    0
 .../PyHoca/scalable/profile_edit.svg               |    0
 .../PyHoca/scalable/profile_save.svg               |    0
 .../PyHoca/scalable/profile_warning.svg            |    0
 .../PyHoca/scalable/pyhoca-session.svg             |    0
 .../PyHoca/scalable/pyhoca-trayicon.svg            |    0
 .../PyHoca/scalable/pyhoca-winicon.svg             |    0
 .../PyHoca/scalable/question.svg                   |    0
 .../PyHoca/scalable/session_cleanall.svg           |    0
 .../PyHoca/scalable/session_error.svg              |    0
 .../PyHoca/scalable/session_pause.svg              |    0
 .../PyHoca/scalable/session_printing.svg           |    0
 .../PyHoca/scalable/session_resume.svg             |    0
 .../PyHoca/scalable/session_start.svg              |    0
 .../PyHoca/scalable/session_terminate.svg          |    0
 .../PyHoca/scalable/session_warning.svg            |    0
 icons_symlinked/PyHoca/scalable/system-search.svg  |    1 +
 icons_symlinked/PyHoca/scalable/unlocked.svg       |    1 +
 icons_symlinked/PyHoca/scalable/window-close.svg   |    1 +
 icons_symlinked/PyHoca/scalable/window-new.svg     |    1 +
 .../PyHoca/scalable/x2go-logo-rotated.svg          |    0
 .../PyHoca/scalable/x2go-logo-ubuntu.svg           |    0
 .../PyHoca/scalable/x2go-logo-white-bg.svg         |    0
 .../PyHoca/scalable/x2go.svg                       |    0
 img/pyhoca-about-logo.png                          |  Bin 58758 -> 57104 bytes
 man/man1/pyhoca-gui.1                              |  158 ++-
 nsis_include/de.nsi                                |   15 +
 nsis_include/en.nsi                                |   16 +
 nsis_include/es.nsi                                |   15 +
 nsis_include/nl.nsi                                |   15 +
 nsis_template.py                                   |  222 +++
 po/POTFILES.in                                     |    1 +
 po/PyHoca-GUI.pot                                  | 1372 ++++++++++++++++++
 po/bg.po                                           |  866 ++++++++----
 po/de.po                                           | 1007 +++++++++----
 po/en.po                                           |  998 +++++++++----
 po/es.po                                           |  977 +++++++++----
 po/nb_NO.po                                        | 1501 ++++++++++++++++++++
 po/nl.po                                           |  998 +++++++++-----
 po/pyhoca-gui.pot                                  | 1073 --------------
 po/sv.po                                           | 1476 +++++++++++++++++++
 pyhoca-gui                                         |  119 ++-
 pyhoca/__init__.py                                 |   10 +-
 pyhoca/wxgui/__init__.py                           |   12 +-
 pyhoca/wxgui/about.py                              |   81 +-
 pyhoca/wxgui/basepath.py                           |   12 +-
 pyhoca/wxgui/frontend.py                           | 1176 ++++++++++++---
 pyhoca/wxgui/logon.py                              |   80 +-
 pyhoca/wxgui/menus_taskbar.py                      |  705 ++++++++--
 pyhoca/wxgui/messages.py                           |  202 +++-
 pyhoca/wxgui/notify.py                             |  156 ++-
 pyhoca/wxgui/printingprefs.py                      |  144 ++-
 pyhoca/wxgui/profilemanager.py                     | 1185 +++++++++++-----
 pyhoca/wxgui/sessiontitle.py                       |  177 +++
 pyhoca/wxgui/splash.py                             |   59 +-
 pyhoca/wxgui/taskbar.py                            |  114 ++-
 setup.py                                           |  180 ++-
 262 files changed, 12958 insertions(+), 3667 deletions(-)
 create mode 100644 LICENSE.txt
 create mode 100644 README.Unity
 create mode 100644 build/mo/bg/LC_MESSAGES/PyHoca-GUI.mo
 create mode 100644 build/mo/de/LC_MESSAGES/PyHoca-GUI.mo
 delete mode 100644 build/mo/de/LC_MESSAGES/pyhoca-gui.mo
 create mode 100644 build/mo/en/LC_MESSAGES/PyHoca-GUI.mo
 delete mode 100644 build/mo/en/LC_MESSAGES/pyhoca-gui.mo
 create mode 100644 build/mo/es/LC_MESSAGES/PyHoca-GUI.mo
 delete mode 100644 build/mo/es/LC_MESSAGES/pyhoca-gui.mo
 create mode 100644 build/mo/nb_NO/LC_MESSAGES/PyHoca-GUI.mo
 create mode 100644 build/mo/nl/LC_MESSAGES/PyHoca-GUI.mo
 delete mode 100644 build/mo/nl/LC_MESSAGES/pyhoca-gui.mo
 create mode 100644 build/mo/sv/LC_MESSAGES/PyHoca-GUI.mo
 create mode 100644 debian/pyhoca-gui.links
 create mode 100644 debian/source/options
 create mode 100644 icons/PyHoca/16x16/applications-development.png
 create mode 100644 icons/PyHoca/16x16/applications-education.png
 create mode 100644 icons/PyHoca/16x16/applications-games.png
 create mode 100644 icons/PyHoca/16x16/applications-graphics.png
 create mode 100644 icons/PyHoca/16x16/applications-internet.png
 create mode 100644 icons/PyHoca/16x16/applications-multimedia.png
 create mode 100644 icons/PyHoca/16x16/applications-office.png
 create mode 100644 icons/PyHoca/16x16/applications-other.png
 create mode 100644 icons/PyHoca/16x16/applications-system.png
 create mode 100644 icons/PyHoca/16x16/applications-utilities.png
 create mode 100644 icons/PyHoca/16x16/x2go-logo-grey.png
 create mode 100644 icons/PyHoca/22x22/application-exit.png
 create mode 100644 icons/PyHoca/22x22/applications-development.png
 create mode 100644 icons/PyHoca/22x22/applications-education.png
 create mode 100644 icons/PyHoca/22x22/applications-games.png
 create mode 100644 icons/PyHoca/22x22/applications-graphics.png
 create mode 100644 icons/PyHoca/22x22/applications-internet.png
 create mode 100644 icons/PyHoca/22x22/applications-multimedia.png
 create mode 100644 icons/PyHoca/22x22/applications-office.png
 create mode 100644 icons/PyHoca/22x22/applications-other.png
 create mode 100644 icons/PyHoca/22x22/applications-system.png
 create mode 100644 icons/PyHoca/22x22/applications-utilities.png
 create mode 100644 icons/PyHoca/22x22/x2go-logo-grey.png
 create mode 100644 icons/PyHoca/32x32/application-exit.png
 create mode 100644 icons/PyHoca/scalable/application-exit.svg
 copy {icons => icons_symlinked}/PyHoca/128x128/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/question.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/128x128/x2go.png (100%)
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-development.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-education.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-games.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-graphics.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-internet.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-multimedia.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-office.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-other.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-system.png
 create mode 100644 icons_symlinked/PyHoca/16x16/applications-utilities.png
 copy {icons => icons_symlinked}/PyHoca/16x16/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/question.png (100%)
 create mode 120000 icons_symlinked/PyHoca/16x16/system-search.png
 copy {icons => icons_symlinked}/PyHoca/16x16/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/16x16/x2go.png (100%)
 create mode 100644 icons_symlinked/PyHoca/22x22/application-exit.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-development.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-education.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-games.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-graphics.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-internet.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-multimedia.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-office.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-other.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-system.png
 create mode 100644 icons_symlinked/PyHoca/22x22/applications-utilities.png
 copy {icons => icons_symlinked}/PyHoca/22x22/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/question.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/22x22/x2go.png (100%)
 create mode 120000 icons_symlinked/PyHoca/32x32/application-exit.png
 create mode 120000 icons_symlinked/PyHoca/32x32/audio_error.png
 create mode 120000 icons_symlinked/PyHoca/32x32/auth_disconnect.png
 create mode 120000 icons_symlinked/PyHoca/32x32/auth_error.png
 create mode 120000 icons_symlinked/PyHoca/32x32/auth_failed.png
 create mode 120000 icons_symlinked/PyHoca/32x32/auth_success.png
 copy {icons => icons_symlinked}/PyHoca/32x32/broom-cleanup.png (100%)
 create mode 120000 icons_symlinked/PyHoca/32x32/dialog-apply.png
 create mode 120000 icons_symlinked/PyHoca/32x32/dialog-error.png
 create mode 120000 icons_symlinked/PyHoca/32x32/dialog-question.png
 create mode 120000 icons_symlinked/PyHoca/32x32/dialog-warning.png
 create mode 120000 icons_symlinked/PyHoca/32x32/document-save.png
 create mode 120000 icons_symlinked/PyHoca/32x32/edit-delete.png
 create mode 120000 icons_symlinked/PyHoca/32x32/gnome-dev-printer-network.svg
 create mode 120000 icons_symlinked/PyHoca/32x32/gtk-edit.png
 create mode 120000 icons_symlinked/PyHoca/32x32/list-add.png
 create mode 120000 icons_symlinked/PyHoca/32x32/locked.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-eject.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-playback-pause.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-playback-start.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-playback-stop.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-record.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-seek-backward.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-seek-forward.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-skip-backward.png
 create mode 120000 icons_symlinked/PyHoca/32x32/media-skip-forward.png
 create mode 120000 icons_symlinked/PyHoca/32x32/network-wired.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_add.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_delete.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_edit.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_error.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_save.png
 create mode 120000 icons_symlinked/PyHoca/32x32/profile_warning.png
 copy {icons => icons_symlinked}/PyHoca/32x32/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/question.png (100%)
 create mode 120000 icons_symlinked/PyHoca/32x32/session_cleanall.png
 create mode 120000 icons_symlinked/PyHoca/32x32/session_error.png
 create mode 120000 icons_symlinked/PyHoca/32x32/session_pause.png
 copy {icons/PyHoca/scalable => icons_symlinked/PyHoca/32x32}/session_printing.svg (100%)
 create mode 120000 icons_symlinked/PyHoca/32x32/session_resume.png
 create mode 120000 icons_symlinked/PyHoca/32x32/session_start.png
 create mode 120000 icons_symlinked/PyHoca/32x32/session_terminate.png
 create mode 120000 icons_symlinked/PyHoca/32x32/session_warning.png
 create mode 120000 icons_symlinked/PyHoca/32x32/unlocked.png
 create mode 120000 icons_symlinked/PyHoca/32x32/window-close.png
 create mode 120000 icons_symlinked/PyHoca/32x32/window-new.png
 copy {icons => icons_symlinked}/PyHoca/32x32/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/32x32/x2go.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/question.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/48x48/x2go.png (100%)
 create mode 120000 icons_symlinked/PyHoca/64x64/audio_error.png
 create mode 120000 icons_symlinked/PyHoca/64x64/auth_error.png
 create mode 120000 icons_symlinked/PyHoca/64x64/auth_failed.png
 create mode 120000 icons_symlinked/PyHoca/64x64/auth_success.png
 copy {icons => icons_symlinked}/PyHoca/64x64/dialog-apply.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/dialog-error.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/dialog-question.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/dialog-warning.png (100%)
 create mode 120000 icons_symlinked/PyHoca/64x64/profile_error.png
 create mode 120000 icons_symlinked/PyHoca/64x64/profile_warning.png
 copy {icons => icons_symlinked}/PyHoca/64x64/pyhoca-session.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/pyhoca-trayicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/pyhoca-winicon.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/question.png (100%)
 create mode 120000 icons_symlinked/PyHoca/64x64/session_error.png
 create mode 120000 icons_symlinked/PyHoca/64x64/session_warning.png
 copy {icons => icons_symlinked}/PyHoca/64x64/x2go-logo-rotated.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/x2go-logo-ubuntu.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/x2go-logo-white-bg.png (100%)
 copy {icons => icons_symlinked}/PyHoca/64x64/x2go.png (100%)
 create mode 120000 icons_symlinked/PyHoca/scalable/application-exit.svg
 copy icons/PyHoca/scalable/auth_error.svg => icons_symlinked/PyHoca/scalable/audio_error.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/auth_disconnect.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/auth_error.svg (100%)
 copy icons/PyHoca/scalable/session_warning.svg => icons_symlinked/PyHoca/scalable/auth_failed.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/auth_success.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/broom-cleanup.svg (100%)
 create mode 120000 icons_symlinked/PyHoca/scalable/dialog-apply.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/dialog-error.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/dialog-question.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/dialog-warning.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/document-save.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/edit-delete.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/gnome-dev-printer-network.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/gtk-edit.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/list-add.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/locked.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-eject.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-playback-pause.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-playback-start.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-playback-stop.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-record.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-seek-backward.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-seek-forward.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-skip-backward.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/media-skip-forward.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/network-wired.svg
 copy {icons => icons_symlinked}/PyHoca/scalable/profile_add.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/profile_delete.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/profile_edit.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/profile_save.svg (100%)
 copy icons/PyHoca/scalable/session_warning.svg => icons_symlinked/PyHoca/scalable/profile_warning.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/pyhoca-session.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/pyhoca-trayicon.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/pyhoca-winicon.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/question.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_cleanall.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_error.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_pause.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_printing.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_resume.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_start.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_terminate.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/session_warning.svg (100%)
 create mode 120000 icons_symlinked/PyHoca/scalable/system-search.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/unlocked.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/window-close.svg
 create mode 120000 icons_symlinked/PyHoca/scalable/window-new.svg
 copy {icons => icons_symlinked}/PyHoca/scalable/x2go-logo-rotated.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/x2go-logo-ubuntu.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/x2go-logo-white-bg.svg (100%)
 copy {icons => icons_symlinked}/PyHoca/scalable/x2go.svg (100%)
 create mode 100644 nsis_include/de.nsi
 create mode 100644 nsis_include/en.nsi
 create mode 100644 nsis_include/es.nsi
 create mode 100644 nsis_include/nl.nsi
 create mode 100644 nsis_template.py
 create mode 100644 po/PyHoca-GUI.pot
 create mode 100644 po/nb_NO.po
 delete mode 100644 po/pyhoca-gui.pot
 create mode 100644 po/sv.po
 create mode 100644 pyhoca/wxgui/sessiontitle.py

The diff of changes is:
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..dba13ed
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,661 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+  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
+them 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.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero 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 that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  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.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            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
+state 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) <year>  <name of author>
+
+    This program 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.
+
+    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 Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
diff --git a/Makefile.docupload b/Makefile.docupload
index 0607a61..fc1204c 100644
--- a/Makefile.docupload
+++ b/Makefile.docupload
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 # Makefile.docupload file - for pyhoca-gui
-# Copyright 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, GPLv3 applies to this file
+# Copyright 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, GPLv3 applies to this file
 
 VERSION=`head -n1 debian/changelog | sed 's,.*(\(.*\)).*,\1,' | cut -d"-" -f1`
 DOC_HOST=code.x2go.org
diff --git a/README b/README
index 36b2700..17b0438 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
-pyhoca-gui - Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-             Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+pyhoca-gui - Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+             Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
              
-Published under the terms of the GNU General Public License.
+Published under the terms of the GNU Affero General Public License.
 See http://www.gnu.org/licenses/gpl.html for a recent copy.
 
 
diff --git a/README.Unity b/README.Unity
new file mode 100644
index 0000000..c8d7b11
--- /dev/null
+++ b/README.Unity
@@ -0,0 +1,34 @@
+pyhoca-gui - Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+             Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
+
+Published under the terms of the GNU Affero General Public License.
+See http://www.gnu.org/licenses/gpl.html for a recent copy.
+
+
+=== The PyHoca-GUI icon does not appear on Unity (Ubuntu 12.04 or later)? ===
+
+Unity got its notification area (called Systray by the Ubuntu developers) back a
+while ago, but only for a few applications: Java apps, Mumble, Wine applications,
+Skype, and hp-systray.
+
+As you can see: PyHoca-GUI is not among those... :-(
+
+But there's an easy way to either re-enable the Systray for all applications or to
+whitelist a few applications (e.g. PyHoca-GUI) you can't live without. Read on to
+learn how to get your systray back!
+
+Allow all applications to appear in the systray:
+
+  $ gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
+
+Add PyHoca-GUI (or any other application) to the systray whitelist:
+
+  $ gsettings set com.canonical.Unity.Panel systray-whitelist \
+      "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'YOUR_APPLICATION']"
+
+The above command includes the already whitelisted (by default) applications so you should
+replace "YOUR_APPLICATION" with the application you want to whitelist (in our case:
+"pyhoca-gui").
+
+light+love
+Mike Gabriel, 20120531
\ No newline at end of file
diff --git a/README.i18n b/README.i18n
index 0d6dd54..a10c2e6 100644
--- a/README.i18n
+++ b/README.i18n
@@ -11,7 +11,7 @@ The translation files can be found in the /po folder of this source project.
 New team member --- new language for PyHoca-GUI
 -----------------------------------------------
 If you are a new member in the x2go-i18n team, the first we say is: WELCOME!!! and
-THANKS!!! for the time you give to the X2go project.
+THANKS!!! for the time you give to the X2Go project.
 
 And, if you are new to the team and language files for the language you want to feel
 responsible for do not yet exist, please subscribe to this mailing list first:
@@ -30,7 +30,7 @@ folder.
 
 Git cloning
 -----------
-Next thing to do is to obtained the latest sources from X2go Git.
+Next thing to do is to obtained the latest sources from X2Go Git.
 
   $ # git needs to be installed, on Debian/Ubuntu this is
   $ aptitude install git
diff --git a/TODO b/TODO
index 07f2148..66c8987 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,7 @@
-pyhoca-gui - Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-             Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+pyhoca-gui - Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+             Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 
-Published under the terms of the GNU General Public License.
+Published under the terms of the GNU Affero General Public License.
 See http://www.gnu.org/licenses/gpl.html for a recent copy.
 
 === pyhoca-gui TODOs ===
diff --git a/build/mo/bg/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/bg/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..3befb69
Binary files /dev/null and b/build/mo/bg/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/de/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/de/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..252ae8c
Binary files /dev/null and b/build/mo/de/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/de/LC_MESSAGES/pyhoca-gui.mo b/build/mo/de/LC_MESSAGES/pyhoca-gui.mo
deleted file mode 100644
index dcf1b61..0000000
Binary files a/build/mo/de/LC_MESSAGES/pyhoca-gui.mo and /dev/null differ
diff --git a/build/mo/en/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/en/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..81315ae
Binary files /dev/null and b/build/mo/en/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/en/LC_MESSAGES/pyhoca-gui.mo b/build/mo/en/LC_MESSAGES/pyhoca-gui.mo
deleted file mode 100644
index 766ca51..0000000
Binary files a/build/mo/en/LC_MESSAGES/pyhoca-gui.mo and /dev/null differ
diff --git a/build/mo/es/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/es/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..27ae858
Binary files /dev/null and b/build/mo/es/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/es/LC_MESSAGES/pyhoca-gui.mo b/build/mo/es/LC_MESSAGES/pyhoca-gui.mo
deleted file mode 100644
index ae1e526..0000000
Binary files a/build/mo/es/LC_MESSAGES/pyhoca-gui.mo and /dev/null differ
diff --git a/build/mo/nb_NO/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/nb_NO/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..3177d2b
Binary files /dev/null and b/build/mo/nb_NO/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/nl/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/nl/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..d1b543e
Binary files /dev/null and b/build/mo/nl/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo b/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo
deleted file mode 100644
index b8e12b6..0000000
Binary files a/build/mo/nl/LC_MESSAGES/pyhoca-gui.mo and /dev/null differ
diff --git a/build/mo/sv/LC_MESSAGES/PyHoca-GUI.mo b/build/mo/sv/LC_MESSAGES/PyHoca-GUI.mo
new file mode 100644
index 0000000..0b69544
Binary files /dev/null and b/build/mo/sv/LC_MESSAGES/PyHoca-GUI.mo differ
diff --git a/debian/changelog b/debian/changelog
index 046023e..29a9f70 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,173 @@
+pyhoca-gui (0.2.0.0-0~x2go1) unstable; urgency=low
+
+  [ Mike Gabriel ]
+  * New upstream version (0.2.0.0):
+    - Add XFCE4 support.
+    - Add support for renaming session window titles from the client-side.
+    - Add switch that enables/disables custom/server-side session window
+      titles.
+    - Add switch that enables/disables default/custom session window title.
+    - Fix profile manager window size (shrinking for usage on netbooks).
+    - Existing profiles can be used as templates for new session profiles.
+    - Session profile menu: allow multi-depth submenu structures, use '/'
+      as submenu separator item in session profile name.
+    - Port session profile submenus functionality to profile manager.
+    - Rename single application OFFICE from Openoffice.org to Office (more
+      generic name).
+    - Add extra menu: launch single application, once a session profile is
+      connected.
+    - Add extra session menu item: Rename Session Window.
+    - Show desktop session name in menu for ,,start session'' item.
+    - Show session window title in session menu.
+    - Add support for bringing a session window on top of all other 
+      windows (i.e. to foreground). Currently only works on MS Windows.
+    - Add icons folder ,,icons_symlinked'' for people who will package
+      PyHoca-GUI on Debian or other Distros that also ship the
+      gnome-colors-common icon theme.
+    - Replace non-code string ,,X2go'' by ,,X2Go''.
+    - Rearrange profile manager. Add one more tab to the profile manager
+      window.
+    - Use x2golistmounts to detect server-side unsharing of client-side
+      folders.
+    - Remove pointed brackets from new/derived session profile names.
+    - Introduce master session concept. Only master sessions can mount
+      client-side folders into a session. Mark master sessions with a
+      marker ,,(*)''.
+    - Catch AttributeError during taskbar menu generation that occured
+      during querying the session command from a non-existent session.
+    - Enforce startup of rootless session if launching a single application.
+    - Fix profile manager GUI layout, make default keyboard layout i18n
+      capable.
+    - Handle the situation that no printer is installed with CUPS/WinSpool
+      gracefully.
+    - Hook methods that notify about non-availabilities around printing,
+      MIME box, local folder sharing.
+    - Only allow session window manipulations for sessions that are associated
+      to the running PyHoca-GUI client.
+    - Fix icon and button sizes in profile manager.
+    - Use different textfield sizes for wxMSWin and wxGTK.
+    - Beautify MIME box configuration block in profile manager.
+    - Add published applications support.
+    - Send a libnotify warning if server does not support published
+      applications.
+    - Add icon support for the published applications menu (any icon
+      type except SVGs work).
+    - On exit only suspend running sessions we are associated with.
+    - Provide icons for category submenus.
+    - Provide 'en' as default language if --lang has not been given on the
+      command line (MS Windows issue).
+    - Published Applications on MS Windows: icon size is 16x16.
+    - Catch X2GoSessionRegistryException if used session UUID is not valid
+      anymore.
+    - Implement single session profile support (--single-session-profile
+      boolean command line option).
+    - Rendering of published applications menu tree has partially been moved 
+      into Python X2Go.
+    - Fix disabling of published applications tick box in profile manager.
+    - Show the detected GUI language in GUI output.
+    - Add support for published applications with no category submenus.
+      Introduce cmd line option --published-applications-no-submenus <int>.
+    - The maximum number of menu items in published applications mode can now
+      be specified as a session option for X2goSession instances.
+    - Fix for CUPS printer recognition if no default printer was defined.
+    - Add widget to configure autologin and autostart session profile
+      parameters.
+    - Auto-resuming and auto-starting of sessions, as well as auto-connecting
+      to session profiles has been moved into Python X2Go.
+    - Do not let wx.EndBusyCursor crash the application on Windows.
+    - Add connect and exit menu items if in single-session-profile mode.
+    - Properly catch CTRL-C and SIGTERM signals (not working on MS Windows,
+      yet).
+    - Make sure application really exits gracefully.
+    - Provide a separate SetExitHandler function to catch signals from outside
+      (currently unused, though).
+    - Windows binary: include pulseaudio 1.1 and vcxsrv 1.12.0.1.
+    - Provide code for Windows packaging (py2exe, NSIS) in PyHoca-GUI's
+      setup.py.
+    - Stdout/stderr diversion when frozen with py2exe: stdout will overwrite
+      the last log file, stderr will append to the very same file.
+    - Allow TCP ports higher than 64000 for SSH and sound server connections.
+    - Be more precise on error causes during SSH authentication.
+    - Fix cmdline option --restricted-trayicon.
+    - Add cmdline option --disable-notifications.
+    - Drop unused cmdline option --username. Introduce new cmdline option
+      --remember-username.
+    - Implement X2Go-Top category in .desktop files that get used in the
+      context of published applications.
+    - Allow one PyHoca-GUI instance per user, not per system.
+    - Fix folder path extraction from session profile config if client-side
+      folders contain a Windows drive letter.
+    - Update license information and source download location in About-Window.
+    - Add timeout as **kwarg for prepare method in the Windows notification
+      API.
+    - Add menu item ,,Refresh menu tree'' for sessions with published
+      applications mode.
+    - Fix/improve --non-interactive command line option.
+    - When packaging Windows binary with py2exe, use nxproxy-3.5.0.12.
+    - Fix missing declaration of notificationmessage_NotifierPopup.timeout.
+    - Make sure the log file on Windows does not grow limitlessly.
+    - Catch AttributeError in case a published applications session has not yet
+      fully started.
+    - Catch and notify command startup failures for published applications
+      sessions.
+    - Do not suspend session if profile is disconnected.
+    - Non-interactive application runs only disconnect/exit for associated
+      sessions.
+    - Only auto-resume if session profile is not configured for published
+      applications.
+    - Windows packaging: remove dist directory before calling py2exe.
+    - For empty menu maps create a dummy menu.
+    - Python gevent will drop gevent.dns in v1.0. Not using it anymore.
+    - Add options --tray-icon and --tray-icon-connecting to customize the
+      system tray icon (e.g. for branding).
+    - Add option --splash-image that allows to name a custom splash image
+      that gets shown during application startup.
+    - Only show splash if the splash image file does exist.
+    - Fallback to default splash image if the custom splash does not exist.
+    - Do not crash if a provided system tray icon cannot be found. Use a
+      fallback icon instead.
+    - os.path.is<type> require string options, not Unicode.
+    - Add option --about-image. Allow changing the application's name by
+      renaming (or symlinking) the ,,pyhoca-gui'' script.
+    - Allow custom commands to be desktop sessions.
+    - Make new session option keyboard ,,variant'' configurable in profile
+      manager.
+    - Re-register available/registered sessions after session profile changes.
+    - Update man page.
+    - Let logon and session title window appear at top of screen for pyhoca-gui
+      running within a Ubuntu Unity session.
+    - Provide README.Unity that explains how to re-allow the PyHoca-GUI icon in
+      the systray of the panel.
+    - Make auto-detected keyboard setup (i.e. usage of x2gosetkeyboard)
+      configurable in the profile manager.
+  * Depend on Python X2Go 0.2.0.2.
+  * Install GNOME icons via dh_links.
+  * Install X2Go icons with explicit install paths.
+  * Add /debian/source/options file with entry single-debian-patch. Fix control
+    file.
+  * Depend on icons in gnome-colors-common package.
+  * Include dialog-*.png icons for 64x64 pixel size as they are missing in
+    gnome-colors-common package.
+  * Install published applications icons in Debian package.
+
+  [ Terje Andersen ]
+  * New upstream version (0.2.0.0):
+    - Add Bokmal (Norway) translation file (not complete, yet).
+
+  [ Daniel Lindgren ]
+  * New upstream version (0.2.0.0):
+    - Add Swedish translation file.
+
+  [ Dick Kniep ]
+  * New upstream version (0.2.0.0):
+    - Update Dutch translation file.
+
+  [ Ricardo Díaz Martín ]
+  * New upstream version (0.2.0.0):
+    - Update Spanish translation file.
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Sun, 10 Jun 2012 21:19:13 +0200
+
 pyhoca-gui (0.1.0.10-0~x2go1) unstable; urgency=low
 
   * Bugfix release for Windows (0.1.0.10):
@@ -19,7 +189,7 @@ pyhoca-gui (0.1.0.9-0~x2go1) unstable; urgency=low
     - Add submenu support for sharing non-auto-connected shared folders.
     - Only offer foldering sharing in menus if server provides it.
     - Add error message in case logon fails due to a missing home directory on
-      the remote X2go server.
+      the remote X2Go server.
     - Spanish i18n update.
     - Dutch i18n update.
     - Update of README.i18n.
@@ -51,7 +221,7 @@ pyhoca-gui (0.1.0.7-0~x2go1) unstable; urgency=low
     - On no such command errors, detect if we already have a session_name. If
       not, leave it out in the GUI notification.
     - Add HOOK_session_startup_failed as a GUI notification (was: exception
-      raisure), requires Python X2go >= 0.1.1.5.
+      raisure), requires Python X2Go >= 0.1.1.5.
     - Provide complete list of compression methods, profile manager GUI
       improved.
     - Fix for usekbd session profile option, it was misinterpreted before...
@@ -66,8 +236,8 @@ pyhoca-gui (0.1.0.6-0~x2go1) unstable; urgency=low
     - i18n fixes
     - README/TODO update.
     - Handle X2goSession failures (SFTP open) during authentication.
-  * Properly depend on Python X2go package.
-  * Depend on Python X2go 0.1.1.3.
+  * Properly depend on Python X2Go package.
+  * Depend on Python X2Go 0.1.1.3.
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 06 Jul 2011 22:13:14 +0200
 
@@ -87,7 +257,7 @@ pyhoca-gui (0.1.0.5-0~x2go1) unstable; urgency=low
     - Update i18n (en, de, nl).
     - Fix session auto-connecting.
   * React to bug #627990, prefer man2html-base over man2html.
-  * Depend on Python X2go 0.1.1.2
+  * Depend on Python X2Go 0.1.1.2
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Fri, 01 Jul 2011 13:55:42 +0200
 
@@ -107,7 +277,7 @@ pyhoca-gui (0.1.0.3-0~x2go1) unstable; urgency=low
     - Release session name on connection errors when greyed out.
     - Spawn initial list sessions call into background to unblock I/O
       during/after authentication.
-  * Depend on Python X2go 0.1.1.0.
+  * Depend on Python X2Go 0.1.1.0.
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Thu, 23 Jun 2011 00:45:34 +0200
 
@@ -122,7 +292,7 @@ pyhoca-gui (0.1.0.1-0~x2go1) unstable; urgency=low
 
   * new upstream release (0.1.0.1):
     - fixes session profile menus
-  * depends on Python X2go 0.1.0.2
+  * depends on Python X2Go 0.1.0.2
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Tue, 31 May 2011 14:40:51 +0200
 
@@ -150,7 +320,7 @@ pyhoca-gui (0.0.34.1-0~x2go1) unstable; urgency=low
 
   * new upstream version (0.0.34.1):
     - minor fixes
-  * depends on new Python X2go release
+  * depends on new Python X2Go release
   * adds html version of man page in doc folder
   * minor fixes in upstream code
 
@@ -293,7 +463,7 @@ pyhoca-gui (0.0.23-0~nwt1) lucid maverick testing unstable; urgency=low
 
 pyhoca-gui (0.0.22-0~nwt1) lucid maverick testing unstable; urgency=low
 
-  * bugfix for error reporting when a non-X2go user authenticates 
+  * bugfix for error reporting when a non-X2Go user authenticates 
 
  -- Mike Gabriel <m.gabriel at das-netzwerkteam.de>  Wed, 12 Jan 2011 00:35:00 +0100
 
@@ -353,13 +523,13 @@ pyhoca-gui (0.0.17-0~nwt1) lucid maverick testing unstable; urgency=low
 
 pyhoca-gui (0.0.16-0~nwt3) lucid maverick testing unstable; urgency=low
 
-  * updated Python X2go dependency
+  * updated Python X2Go dependency
 
  -- Mike Gabriel <m.gabriel at das-netzwerkteam.de>  Fri, 31 Dec 2010 01:05:00 +0100
 
 pyhoca-gui (0.0.16-0~nwt2) lucid maverick testing unstable; urgency=low
 
-  * updated Python X2go dependency
+  * updated Python X2Go dependency
 
  -- Mike Gabriel <m.gabriel at das-netzwerkteam.de>  Fri, 31 Dec 2010 00:30:00 +0100
 
@@ -425,7 +595,7 @@ pyhoca-gui (0.0.11-0~nwt1) lucid maverick testing unstable; urgency=low
 
 pyhoca-gui (0.0.10-0~nwt1) lucid maverick testing unstable; urgency=low
 
-  * depending on Python X2go 0.0.22
+  * depending on Python X2Go 0.0.22
 
  -- Mike Gabriel <m.gabriel at das-netzwerkteam.de>  Fri, 10 Dec 2010 13:40:00 +0100
 
diff --git a/debian/control b/debian/control
index 1965a97..ab6c18a 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Build-Depends:
  python-distutils-extra,
  python-paramiko,
  python-x2go,
- wx-common(>=2.8.10.0),
+ wx-common (>=2.8.10.0),
  python-wxtools (>=2.8.10.0),
  python-notify,
  python-argparse,
@@ -19,7 +19,7 @@ Build-Depends:
 Standards-Version: 3.9.2
 Homepage: http://code.x2go.org/releases/source/pyhoca-gui
 Vcs-Git: git://code.x2go.org/pyhoca-gui.git
-Vcs-Browser: http://code.x2go.org/gitweb?p=pyhoca-gui.git;a=summary
+Vcs-Browser: http://code.x2go.org/gitweb/?p=pyhoca-gui.git;a=summary
 XS-Python-Version: >= 2.6
 
 Package: pyhoca-gui
@@ -27,14 +27,16 @@ Architecture: all
 Depends: 
  ${misc:Depends},
  python,
- python-x2go (>=0.1.1.8-0~),
+ python-x2go (>=0.2.0.1-0~),
  python-argparse,
  python-notify,
  python-setproctitle,
- wx-common(>=2.8.10.0),
- python-wxtools (>=2.8.10.0)
-Description: A graphical X2go client written in (wx)Python
- X2go is a server based computing environment with
+ wx-common (>=2.8.10.0),
+ python-wxtools (>=2.8.10.0),
+ python-support (>=0.90),
+ gnome-colors-common
+Description: Graphical X2Go client written in (wx)Python
+ X2Go is a server based computing environment with
     - session resuming
     - low bandwith support
     - LDAP support
@@ -42,5 +44,5 @@ Description: A graphical X2go client written in (wx)Python
     - audio support
     - authentication by smartcard and USB stick
  .
- PyHoca-GUI is a slim X2go client that docks to the desktop's
- notification area and allows multiple X2go session handling.
+ PyHoca-GUI is a slim X2Go client that docks to the desktop's
+ notification area and allows multiple X2Go session handling.
diff --git a/debian/copyright b/debian/copyright
index 61a9d18..5771021 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,14 +1,30 @@
-pyhoca-gui - Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-             Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
-             
-Published under the terms of the GNU General Public License.
-See http://www.gnu.org/licenses/gpl.html for a recent copy.
+pyhoca-gui - Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+             Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 
-On Debian/Ubuntu systems a local copy of the GPL license can also be 
-found in /usr/share/common-licenses.
+PyHoca-GUI 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.
 
-The code has been packaged for Debian/Ubuntu by Mike Gabriel 
+PyHoca-GUI 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 Affero General Public License for more details.
+
+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.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Published under the terms of the GNU Affero General Public License.
+See http://www.gnu.org/licenses/agpl-3.0.txt for a recent copy.
+
+The code has been packaged for Debian by Mike Gabriel
 <mike.gabriel at das-netzwerkteam.de>
 
+For the contained packaging files for Debian/Ubuntu, however, the
+,,normal'' GNU General Public License (version 3 or higher) applies. 
+A copy of this license can also be found at /usr/share/common-licenses/.
+
 light+love,
 Dick Kniep and Mike Gabriel
diff --git a/debian/pyhoca-gui.docs b/debian/pyhoca-gui.docs
index efae7f1..f1bf594 100644
--- a/debian/pyhoca-gui.docs
+++ b/debian/pyhoca-gui.docs
@@ -1,3 +1,4 @@
 README
+README.Unity
 TODO
 .build_man2html/html
\ No newline at end of file
diff --git a/debian/pyhoca-gui.install b/debian/pyhoca-gui.install
index 88c8033..b6623e4 100644
--- a/debian/pyhoca-gui.install
+++ b/debian/pyhoca-gui.install
@@ -1,5 +1,36 @@
 pyhoca-gui /usr/bin/
-icons/* /usr/share/icons/
 desktop/* /usr/share/applications/
 pixmaps/*.svg /usr/share/pixmaps/
-img/*.png /usr/share/pyhoca/img/
\ No newline at end of file
+img/*.png /usr/share/pyhoca/img/
+
+icons/PyHoca/16x16/applications-*.png /usr/share/icons/PyHoca/16x16/
+icons/PyHoca/16x16/pyhoca*.png /usr/share/icons/PyHoca/16x16/
+icons/PyHoca/16x16/x2go*.png /usr/share/icons/PyHoca/16x16/
+icons/PyHoca/16x16/question.png /usr/share/icons/PyHoca/16x16/
+icons/PyHoca/22x22/applications-*.png /usr/share/icons/PyHoca/22x22/
+icons/PyHoca/22x22/pyhoca*.png /usr/share/icons/PyHoca/22x22/
+icons/PyHoca/22x22/x2go*.png /usr/share/icons/PyHoca/22x22/
+icons/PyHoca/22x22/question.png /usr/share/icons/PyHoca/22x22/
+icons/PyHoca/32x32/pyhoca*.png /usr/share/icons/PyHoca/32x32/
+icons/PyHoca/32x32/x2go*.png /usr/share/icons/PyHoca/32x32/
+icons/PyHoca/32x32/question.png /usr/share/icons/PyHoca/32x32/
+icons/PyHoca/32x32/broom-cleanup.png /usr/share/icons/PyHoca/32x32/
+icons/PyHoca/48x48/pyhoca*.png /usr/share/icons/PyHoca/48x48/
+icons/PyHoca/48x48/x2go*.png /usr/share/icons/PyHoca/48x48/
+icons/PyHoca/48x48/question.png /usr/share/icons/PyHoca/48x48/
+icons/PyHoca/64x64/pyhoca*.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/64x64/x2go*.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/64x64/question.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/128x128/pyhoca*.png /usr/share/icons/PyHoca/128x128/
+icons/PyHoca/128x128/x2go*.png /usr/share/icons/PyHoca/128x128/
+icons/PyHoca/128x128/question.png /usr/share/icons/PyHoca/128x128/
+icons/PyHoca/scalable/pyhoca*.svg /usr/share/icons/PyHoca/scalable/
+icons/PyHoca/scalable/x2go*.svg /usr/share/icons/PyHoca/scalable/
+icons/PyHoca/scalable/question.svg /usr/share/icons/PyHoca/scalable/
+icons/PyHoca/scalable/broom-cleanup.svg /usr/share/icons/PyHoca/scalable/
+
+# these 64x64 icons are missing in gnome-colors-common
+icons/PyHoca/64x64/dialog-apply.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/64x64/dialog-error.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/64x64/dialog-question.png /usr/share/icons/PyHoca/64x64/
+icons/PyHoca/64x64/dialog-warning.png /usr/share/icons/PyHoca/64x64/
diff --git a/debian/pyhoca-gui.links b/debian/pyhoca-gui.links
new file mode 100644
index 0000000..e594c99
--- /dev/null
+++ b/debian/pyhoca-gui.links
@@ -0,0 +1,93 @@
+/usr/share/icons/gnome-colors-common/16x16/actions/system-search.png /usr/share/icons/PyHoca/16x16/system-search.png
+/usr/share/icons/PyHoca/32x32/list-add.png /usr/share/icons/PyHoca/32x32/profile_add.png
+/usr/share/icons/gnome-colors-common/32x32/devices/network-wired.png /usr/share/icons/PyHoca/32x32/network-wired.png
+/usr/share/icons/gnome-colors-common/32x32/status/unlocked.png /usr/share/icons/PyHoca/32x32/unlocked.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-seek-forward.png /usr/share/icons/PyHoca/32x32/media-seek-forward.png
+/usr/share/icons/PyHoca/32x32/window-close.png /usr/share/icons/PyHoca/32x32/session_terminate.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-seek-backward.png /usr/share/icons/PyHoca/32x32/media-seek-backward.png
+/usr/share/icons/gnome-colors-common/32x32/actions/window-new.png /usr/share/icons/PyHoca/32x32/window-new.png
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-error.png /usr/share/icons/PyHoca/32x32/dialog-error.png
+/usr/share/icons/gnome-colors-common/32x32/actions/list-add.png /usr/share/icons/PyHoca/32x32/list-add.png
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-question.png /usr/share/icons/PyHoca/32x32/dialog-question.png
+/usr/share/icons/gnome-colors-common/32x32/actions/dialog-apply.png /usr/share/icons/PyHoca/32x32/dialog-apply.png
+/usr/share/icons/PyHoca/32x32/dialog-warning.png /usr/share/icons/PyHoca/32x32/session_warning.png
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-forward.svg /usr/share/icons/PyHoca/32x32/media-skip-forward.png
+/usr/share/icons/gnome-colors-common/32x32/devices/gnome-dev-printer-network.png /usr/share/icons/PyHoca/32x32/gnome-dev-printer-network.svg
+/usr/share/icons/PyHoca/32x32/gtk-edit.png /usr/share/icons/PyHoca/32x32/profile_edit.png
+/usr/share/icons/gnome-colors-common/32x32/actions/gtk-edit.png /usr/share/icons/PyHoca/32x32/gtk-edit.png
+/usr/share/icons/PyHoca/32x32/document-save.png /usr/share/icons/PyHoca/32x32/profile_save.png
+/usr/share/icons/PyHoca/32x32/dialog-warning.png /usr/share/icons/PyHoca/32x32/auth_failed.png
+/usr/share/icons/PyHoca/32x32/dialog-error.png /usr/share/icons/PyHoca/32x32/auth_error.png
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-warning.png /usr/share/icons/PyHoca/32x32/dialog-warning.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-eject.png /usr/share/icons/PyHoca/32x32/media-eject.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-skip-backward.png /usr/share/icons/PyHoca/32x32/media-skip-backward.png
+/usr/share/icons/PyHoca/32x32/broom-cleanup.png /usr/share/icons/PyHoca/32x32/session_cleanall.png
+/usr/share/icons/PyHoca/32x32/dialog-warning.png /usr/share/icons/PyHoca/32x32/profile_warning.png
+/usr/share/icons/gnome-colors-common/32x32/actions/edit-delete.png /usr/share/icons/PyHoca/32x32/edit-delete.png
+/usr/share/icons/PyHoca/32x32/dialog-apply.png /usr/share/icons/PyHoca/32x32/auth_success.png
+/usr/share/icons/PyHoca/32x32/edit-delete.png /usr/share/icons/PyHoca/32x32/profile_delete.png
+/usr/share/icons/gnome-colors-common/32x32/actions/document-save.png /usr/share/icons/PyHoca/32x32/document-save.png
+/usr/share/icons/PyHoca/32x32/dialog-error.png /usr/share/icons/PyHoca/32x32/session_error.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-record.png /usr/share/icons/PyHoca/32x32/media-record.png
+/usr/share/icons/gnome-colors-common/32x32/status/locked.png /usr/share/icons/PyHoca/32x32/locked.png
+/usr/share/icons/PyHoca/32x32/dialog-error.png /usr/share/icons/PyHoca/32x32/audio_error.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-start.png /usr/share/icons/PyHoca/32x32/media-playback-start.png
+/usr/share/icons/PyHoca/32x32/dialog-error.png /usr/share/icons/PyHoca/32x32/profile_error.png
+/usr/share/icons/gnome-colors-common/32x32/actions/window-close.png /usr/share/icons/PyHoca/32x32/window-close.png
+/usr/share/icons/PyHoca/32x32/network-wired.png /usr/share/icons/PyHoca/32x32/auth_disconnect.png
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-pause.png /usr/share/icons/PyHoca/32x32/media-playback-pause.png
+/usr/share/icons/PyHoca/32x32/x2go-logo-rotated.png /usr/share/icons/PyHoca/32x32/session_resume.png
+/usr/share/icons/PyHoca/32x32/media-playback-pause.png /usr/share/icons/PyHoca/32x32/session_pause.png
+/usr/share/icons/PyHoca/32x32/gnome-dev-printer-network.svg /usr/share/icons/PyHoca/32x32/session_printing.svg
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-stop.png /usr/share/icons/PyHoca/32x32/media-playback-stop.png
+/usr/share/icons/PyHoca/32x32/x2go-logo-rotated.png /usr/share/icons/PyHoca/32x32/session_start.png
+/usr/share/icons/PyHoca/64x64/dialog-warning.png /usr/share/icons/PyHoca/64x64/session_warning.png
+/usr/share/icons/PyHoca/64x64/dialog-warning.png /usr/share/icons/PyHoca/64x64/auth_failed.png
+/usr/share/icons/PyHoca/64x64/dialog-error.png /usr/share/icons/PyHoca/64x64/auth_error.png
+/usr/share/icons/PyHoca/64x64/dialog-warning.png /usr/share/icons/PyHoca/64x64/profile_warning.png
+/usr/share/icons/PyHoca/64x64/dialog-apply.png /usr/share/icons/PyHoca/64x64/auth_success.png
+/usr/share/icons/PyHoca/64x64/dialog-error.png /usr/share/icons/PyHoca/64x64/session_error.png
+/usr/share/icons/PyHoca/64x64/dialog-error.png /usr/share/icons/PyHoca/64x64/audio_error.png
+/usr/share/icons/PyHoca/64x64/dialog-error.png /usr/share/icons/PyHoca/64x64/profile_error.png
+/usr/share/icons/PyHoca/scalable/dialog-error.svg /usr/share/icons/PyHoca/scalable/audio_error.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-forward.svg /usr/share/icons/PyHoca/scalable/media-skip-forward.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/edit-delete.svg /usr/share/icons/PyHoca/scalable/edit-delete.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-start.svg /usr/share/icons/PyHoca/scalable/media-playback-start.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-eject.svg /usr/share/icons/PyHoca/scalable/media-eject.svg
+/usr/share/icons/PyHoca/scalable/dialog-error.svg /usr/share/icons/PyHoca/scalable/session_error.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-stop.svg /usr/share/icons/PyHoca/scalable/media-playback-stop.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/document-save.svg /usr/share/icons/PyHoca/scalable/document-save.svg
+/usr/share/icons/PyHoca/scalable/dialog-apply.svg /usr/share/icons/PyHoca/scalable/auth_success.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/system-search.svg /usr/share/icons/PyHoca/scalable/system-search.svg
+/usr/share/icons/PyHoca/scalable/document-save.svg /usr/share/icons/PyHoca/scalable/profile_save.svg
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-error.svg /usr/share/icons/PyHoca/scalable/dialog-error.svg
+/usr/share/icons/gnome-colors-common/scalable/devices/gnome-dev-printer-network.svg /usr/share/icons/PyHoca/scalable/gnome-dev-printer-network.svg
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-question.svg /usr/share/icons/PyHoca/scalable/dialog-question.svg
+/usr/share/icons/PyHoca/scalable/x2go-logo-rotated.svg /usr/share/icons/PyHoca/scalable/session_start.svg
+/usr/share/icons/PyHoca/scalable/network-wired.svg /usr/share/icons/PyHoca/scalable/auth_disconnect.svg
+/usr/share/icons/gnome-colors-common/scalable/devices/network-wired.svg /usr/share/icons/PyHoca/scalable/network-wired.svg
+/usr/share/icons/PyHoca/scalable/gtk-edit.svg /usr/share/icons/PyHoca/scalable/profile_edit.svg
+/usr/share/icons/PyHoca/scalable/media-playback-pause.svg /usr/share/icons/PyHoca/scalable/session_pause.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-backward.svg /usr/share/icons/PyHoca/scalable/media-skip-backward.svg
+/usr/share/icons/PyHoca/scalable/dialog-error.svg /usr/share/icons/PyHoca/scalable/auth_error.svg
+/usr/share/icons/PyHoca/scalable/x2go-logo-rotated.svg /usr/share/icons/PyHoca/scalable/session_resume.svg
+/usr/share/icons/PyHoca/scalable/list-add.svg /usr/share/icons/PyHoca/scalable/profile_add.svg
+/usr/share/icons/PyHoca/scalable/broom-cleanup.svg /usr/share/icons/PyHoca/scalable/session_cleanall.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/gtk-edit.svg /usr/share/icons/PyHoca/scalable/gtk-edit.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/window-close.svg /usr/share/icons/PyHoca/scalable/window-close.svg
+/usr/share/icons/PyHoca/scalable/window-close.svg /usr/share/icons/PyHoca/scalable/session_terminate.svg
+/usr/share/icons/PyHoca/scalable/dialog-warning.svg /usr/share/icons/PyHoca/scalable/auth_failed.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/window-new.svg /usr/share/icons/PyHoca/scalable/window-new.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/list-add.svg /usr/share/icons/PyHoca/scalable/list-add.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-record.svg /usr/share/icons/PyHoca/scalable/media-record.svg
+/usr/share/icons/gnome-colors-common/scalable/status/unlocked.svg /usr/share/icons/PyHoca/scalable/unlocked.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-seek-forward.svg /usr/share/icons/PyHoca/scalable/media-seek-forward.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-seek-backward.svg /usr/share/icons/PyHoca/scalable/media-seek-backward.svg
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-warning.svg /usr/share/icons/PyHoca/scalable/dialog-warning.svg
+/usr/share/icons/PyHoca/scalable/edit-delete.svg /usr/share/icons/PyHoca/scalable/profile_delete.svg
+/usr/share/icons/PyHoca/scalable/dialog-warning.svg /usr/share/icons/PyHoca/scalable/profile_warning.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-pause.svg /usr/share/icons/PyHoca/scalable/media-playback-pause.svg
+/usr/share/icons/gnome-colors-common/scalable/status/locked.svg /usr/share/icons/PyHoca/scalable/locked.svg
+/usr/share/icons/gnome-colors-common/scalable/actions/dialog-apply.svg /usr/share/icons/PyHoca/scalable/dialog-apply.svg
+/usr/share/icons/PyHoca/scalable/gnome-dev-printer-network.svg /usr/share/icons/PyHoca/scalable/session_printing.svg
+/usr/share/icons/PyHoca/scalable/dialog-warning.svg /usr/share/icons/PyHoca/scalable/session_warning.svg
diff --git a/debian/rules b/debian/rules
index d7c7299..17aba16 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,7 +1,7 @@
 #!/usr/bin/make -f
-# debian/rules file - for pyhoca-cli
+# debian/rules file - for pyhoca-gui
 # Based on sample debian/rules file - for GNU Hello (1.3).
-# Copyright 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 
 #PYVERS=$(shell pyversions -vr)
 
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 0000000..68eb4bb
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1 @@
+single-debian-patch
\ No newline at end of file
diff --git a/desktop/pyhoca-gui.desktop b/desktop/pyhoca-gui.desktop
index 0fcee16..575c623 100644
--- a/desktop/pyhoca-gui.desktop
+++ b/desktop/pyhoca-gui.desktop
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Name=PyHoca-GUI
 GenericName=PyHoca-GUI
-Comment=Python X2go Client Applet
+Comment=Python X2Go Client Applet
 Exec=pyhoca-gui
 Icon=pyhoca_x2go-logo-ubuntu
 X-Window-Icon=pyhoca_x2go-logo-ubuntu
diff --git a/icons/PyHoca/16x16/applications-development.png b/icons/PyHoca/16x16/applications-development.png
new file mode 100644
index 0000000..50ad862
Binary files /dev/null and b/icons/PyHoca/16x16/applications-development.png differ
diff --git a/icons/PyHoca/16x16/applications-education.png b/icons/PyHoca/16x16/applications-education.png
new file mode 100644
index 0000000..ac63bf5
Binary files /dev/null and b/icons/PyHoca/16x16/applications-education.png differ
diff --git a/icons/PyHoca/16x16/applications-games.png b/icons/PyHoca/16x16/applications-games.png
new file mode 100644
index 0000000..173a7c0
Binary files /dev/null and b/icons/PyHoca/16x16/applications-games.png differ
diff --git a/icons/PyHoca/16x16/applications-graphics.png b/icons/PyHoca/16x16/applications-graphics.png
new file mode 100644
index 0000000..4fc15c9
Binary files /dev/null and b/icons/PyHoca/16x16/applications-graphics.png differ
diff --git a/icons/PyHoca/16x16/applications-internet.png b/icons/PyHoca/16x16/applications-internet.png
new file mode 100644
index 0000000..1a4906a
Binary files /dev/null and b/icons/PyHoca/16x16/applications-internet.png differ
diff --git a/icons/PyHoca/16x16/applications-multimedia.png b/icons/PyHoca/16x16/applications-multimedia.png
new file mode 100644
index 0000000..18a78b4
Binary files /dev/null and b/icons/PyHoca/16x16/applications-multimedia.png differ
diff --git a/icons/PyHoca/16x16/applications-office.png b/icons/PyHoca/16x16/applications-office.png
new file mode 100644
index 0000000..04e8d55
Binary files /dev/null and b/icons/PyHoca/16x16/applications-office.png differ
diff --git a/icons/PyHoca/16x16/applications-other.png b/icons/PyHoca/16x16/applications-other.png
new file mode 100644
index 0000000..a5c500a
Binary files /dev/null and b/icons/PyHoca/16x16/applications-other.png differ
diff --git a/icons/PyHoca/16x16/applications-system.png b/icons/PyHoca/16x16/applications-system.png
new file mode 100644
index 0000000..f34c7c9
Binary files /dev/null and b/icons/PyHoca/16x16/applications-system.png differ
diff --git a/icons/PyHoca/16x16/applications-utilities.png b/icons/PyHoca/16x16/applications-utilities.png
new file mode 100644
index 0000000..c66d253
Binary files /dev/null and b/icons/PyHoca/16x16/applications-utilities.png differ
diff --git a/icons/PyHoca/16x16/x2go-logo-grey.png b/icons/PyHoca/16x16/x2go-logo-grey.png
new file mode 100644
index 0000000..f9be518
Binary files /dev/null and b/icons/PyHoca/16x16/x2go-logo-grey.png differ
diff --git a/icons/PyHoca/22x22/application-exit.png b/icons/PyHoca/22x22/application-exit.png
new file mode 100644
index 0000000..ed77cff
Binary files /dev/null and b/icons/PyHoca/22x22/application-exit.png differ
diff --git a/icons/PyHoca/22x22/applications-development.png b/icons/PyHoca/22x22/applications-development.png
new file mode 100644
index 0000000..656ac3d
Binary files /dev/null and b/icons/PyHoca/22x22/applications-development.png differ
diff --git a/icons/PyHoca/22x22/applications-education.png b/icons/PyHoca/22x22/applications-education.png
new file mode 100644
index 0000000..7c1d933
Binary files /dev/null and b/icons/PyHoca/22x22/applications-education.png differ
diff --git a/icons/PyHoca/22x22/applications-games.png b/icons/PyHoca/22x22/applications-games.png
new file mode 100644
index 0000000..50f62a1
Binary files /dev/null and b/icons/PyHoca/22x22/applications-games.png differ
diff --git a/icons/PyHoca/22x22/applications-graphics.png b/icons/PyHoca/22x22/applications-graphics.png
new file mode 100644
index 0000000..162b10f
Binary files /dev/null and b/icons/PyHoca/22x22/applications-graphics.png differ
diff --git a/icons/PyHoca/22x22/applications-internet.png b/icons/PyHoca/22x22/applications-internet.png
new file mode 100644
index 0000000..0348b21
Binary files /dev/null and b/icons/PyHoca/22x22/applications-internet.png differ
diff --git a/icons/PyHoca/22x22/applications-multimedia.png b/icons/PyHoca/22x22/applications-multimedia.png
new file mode 100644
index 0000000..3213ad5
Binary files /dev/null and b/icons/PyHoca/22x22/applications-multimedia.png differ
diff --git a/icons/PyHoca/22x22/applications-office.png b/icons/PyHoca/22x22/applications-office.png
new file mode 100644
index 0000000..ae877d5
Binary files /dev/null and b/icons/PyHoca/22x22/applications-office.png differ
diff --git a/icons/PyHoca/22x22/applications-other.png b/icons/PyHoca/22x22/applications-other.png
new file mode 100644
index 0000000..c68db38
Binary files /dev/null and b/icons/PyHoca/22x22/applications-other.png differ
diff --git a/icons/PyHoca/22x22/applications-system.png b/icons/PyHoca/22x22/applications-system.png
new file mode 100644
index 0000000..9ab8c04
Binary files /dev/null and b/icons/PyHoca/22x22/applications-system.png differ
diff --git a/icons/PyHoca/22x22/applications-utilities.png b/icons/PyHoca/22x22/applications-utilities.png
new file mode 100644
index 0000000..5b44ae1
Binary files /dev/null and b/icons/PyHoca/22x22/applications-utilities.png differ
diff --git a/icons/PyHoca/22x22/x2go-logo-grey.png b/icons/PyHoca/22x22/x2go-logo-grey.png
new file mode 100644
index 0000000..2c568b9
Binary files /dev/null and b/icons/PyHoca/22x22/x2go-logo-grey.png differ
diff --git a/icons/PyHoca/32x32/application-exit.png b/icons/PyHoca/32x32/application-exit.png
new file mode 100644
index 0000000..affe56b
Binary files /dev/null and b/icons/PyHoca/32x32/application-exit.png differ
diff --git a/icons/PyHoca/scalable/application-exit.svg b/icons/PyHoca/scalable/application-exit.svg
new file mode 100644
index 0000000..56eedfa
--- /dev/null
+++ b/icons/PyHoca/scalable/application-exit.svg
@@ -0,0 +1,332 @@
+<?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="48px"
+   height="48px"
+   id="svg7212"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="drawing-3.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs7214">
+    <linearGradient
+       id="linearGradient9896">
+      <stop
+         id="stop9898"
+         offset="0"
+         style="stop-color:#cecece;stop-opacity:1;" />
+      <stop
+         id="stop9900"
+         offset="1.0000000"
+         style="stop-color:#9e9e9e;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="18.064039"
+       x2="33.710651"
+       y1="21.511185"
+       x1="31.078955"
+       id="linearGradient9902"
+       xlink:href="#linearGradient9896"
+       inkscape:collect="always"
+       gradientTransform="translate(-3.6735026e-4,-2.381e-4)" />
+    <linearGradient
+       id="linearGradient9880"
+       inkscape:collect="always">
+      <stop
+         id="stop9882"
+         offset="0"
+         style="stop-color:#525252;stop-opacity:1;" />
+      <stop
+         id="stop9884"
+         offset="1"
+         style="stop-color:#525252;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="translate(-1.1164876,-2.381e-4)"
+       gradientUnits="userSpaceOnUse"
+       y2="24.764584"
+       x2="34.007416"
+       y1="19.107729"
+       x1="31.852951"
+       id="linearGradient9886"
+       xlink:href="#linearGradient9880"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient9868">
+      <stop
+         style="stop-color:#4e4e4e;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop9870" />
+      <stop
+         style="stop-color:#616161;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop9872" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.565823,0,0,1.403262,-37.783598,-9.4835408)"
+       r="9.7227182"
+       fy="7.1396070"
+       fx="27.883883"
+       cy="7.1396070"
+       cx="27.883883"
+       id="radialGradient9876"
+       xlink:href="#linearGradient9868"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient9888"
+       inkscape:collect="always">
+      <stop
+         id="stop9890"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop9892"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="43.449947"
+       x2="19.755548"
+       y1="13.663074"
+       x1="8.7600641"
+       id="linearGradient9894"
+       xlink:href="#linearGradient9888"
+       inkscape:collect="always"
+       gradientTransform="translate(-3.6735026e-4,-2.381e-4)" />
+    <linearGradient
+       id="linearGradient3197">
+      <stop
+         style="stop-color:#da3f3f;stop-opacity:1;"
+         offset="0"
+         id="stop3199" />
+      <stop
+         style="stop-color:#c22f2f;stop-opacity:1;"
+         offset="1"
+         id="stop3201" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3197"
+       id="linearGradient3203"
+       x1="11.131293"
+       y1="15.165678"
+       x2="11.118231"
+       y2="32.401405"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-3.6735026e-4,-2.381e-4)" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8662">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop8664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop8666" />
+    </linearGradient>
+    <radialGradient
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient9826"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient9854">
+      <stop
+         id="stop9856"
+         offset="0.0000000"
+         style="stop-color:#4e4e4e;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9858"
+         offset="1.0000000"
+         style="stop-color:#ababab;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="27.759069"
+       x2="18.031221"
+       y1="19.804117"
+       x1="46.845825"
+       id="linearGradient9864"
+       xlink:href="#linearGradient9854"
+       inkscape:collect="always"
+       gradientTransform="translate(-3.6735026e-4,-2.381e-4)" />
+    <linearGradient
+       id="linearGradient9842"
+       inkscape:collect="always">
+      <stop
+         id="stop9844"
+         offset="0"
+         style="stop-color:#727e0a;stop-opacity:1;" />
+      <stop
+         id="stop9846"
+         offset="1"
+         style="stop-color:#727e0a;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(1.025512,0,0,0.648342,-0.8658636,15.630022)"
+       gradientUnits="userSpaceOnUse"
+       y2="28.112619"
+       x2="30.935921"
+       y1="43.757359"
+       x1="30.935921"
+       id="linearGradient9848"
+       xlink:href="#linearGradient9842"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient9830">
+      <stop
+         id="stop9832"
+         offset="0.0000000"
+         style="stop-color:#505050;stop-opacity:1.0000000;" />
+      <stop
+         id="stop9834"
+         offset="1.0000000"
+         style="stop-color:#181818;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.0182701,0,0,2.643808,-144.57335,-62.192134)"
+       r="16.321514"
+       fy="40.545052"
+       fx="93.780037"
+       cy="40.545052"
+       cx="93.780037"
+       id="radialGradient9836"
+       xlink:href="#linearGradient9830"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7"
+     inkscape:cx="24"
+     inkscape:cy="24"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="641"
+     inkscape:window-height="690"
+     inkscape:window-x="474"
+     inkscape:window-y="258" />
+  <metadata
+     id="metadata7217">
+    <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
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       ry="1.0048841"
+       rx="0.99447322"
+       y="1"
+       x="12"
+       height="45"
+       width="35"
+       id="rect8242"
+       style="opacity:0.7;fill:#000000;fill-opacity:0.31372549;fill-rule:evenodd;stroke:none;stroke-width:1.00001979;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <rect
+       ry="0.70808184"
+       rx="0.70720309"
+       y="2.5000091"
+       x="13.50001"
+       height="41.999981"
+       width="31.999981"
+       id="rect9828"
+       style="opacity:1;fill:url(#radialGradient9836);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00001979;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <rect
+       y="31.736305"
+       x="13.999632"
+       height="12.263458"
+       width="30.999998"
+       id="rect9840"
+       style="opacity:1;fill:url(#linearGradient9848);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path9852"
+       d="M 14.037294,43.944621 L 13.998461,3.0542871 L 33.940757,3.0984813 L 33.984951,33.017937 L 14.037294,43.944621 z"
+       style="opacity:1;fill:url(#linearGradient9864);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.42222224;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+       d="M 13.969433,43.944621 L 34.117535,33.062131 L 15.555981,41.989354 L 15.555981,3.0100925 L 13.985518,3.0100925 L 13.969433,43.944621 z"
+       id="path1360"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.29946522;fill:url(#radialGradient9826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path8660"
+       sodipodi:cx="24.837126"
+       sodipodi:cy="36.421127"
+       sodipodi:rx="15.644737"
+       sodipodi:ry="8.3968935"
+       d="M 40.481863,36.421127 A 15.644737,8.3968935 0 1 1 9.1923885,36.421127 A 15.644737,8.3968935 0 1 1 40.481863,36.421127 z"
+       transform="matrix(0.77849,0,0,0.77849,-7.5801826,1.5979009)" />
+    <path
+       style="opacity:1;fill:url(#linearGradient3203);fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 1.7314304,17.593581 L 1.7314304,30.355126 L 9.663735,30.355126 L 9.663735,36.175909 L 21.887377,23.952265 L 9.590974,11.655863 L 9.590974,17.596829 L 1.7314304,17.593581 z"
+       id="path8643"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8658"
+       d="M 2.7189574,18.399747 L 2.7189574,29.535791 L 10.552776,29.535791 L 10.552776,33.793741 L 20.404229,23.948168 L 10.488209,13.684476 L 10.488209,18.402629 L 2.7189574,18.399747 z"
+       style="opacity:0.48128339;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient9894);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:1;fill:url(#radialGradient9876);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 14.044443,43.757121 L 13.999632,3.0542871 L 33.940757,3.0542871 L 33.761511,33.68085 L 14.044443,43.757121 z"
+       id="path9866"
+       sodipodi:nodetypes="ccccc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       sodipodi:nodetypes="cccsscc"
+       id="path9878"
+       d="M 29.642657,18.455957 L 31.565104,20.908733 L 30.106696,25.725898 C 30.106696,25.725898 30.371861,27.2285 31.145259,26.212034 C 31.918657,25.195568 34.117714,22.62998 33.730618,20.754053 C 33.443356,19.361937 32.647861,18.699025 32.647861,18.699025 L 29.642657,18.455957 z"
+       style="opacity:1;fill:url(#linearGradient9886);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="csccscs"
+       id="path9862"
+       d="M 31.476716,17.351102 C 31.476716,17.351102 33.639986,18.35282 33.708521,19.229355 C 33.810302,20.531077 29.46588,24.665238 29.46588,24.665238 C 28.957647,25.283956 28.117958,24.731529 28.581997,24.134908 C 28.581997,24.134908 32.048601,20.016935 31.830269,19.693393 C 31.556658,19.287936 29.863628,18.65483 29.863628,18.65483 C 28.847162,17.90353 30.131249,16.349367 31.476716,17.351102 z"
+       style="opacity:1;fill:url(#linearGradient9902);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+  </g>
+</svg>
diff --git a/icons_symlinked/PyHoca/16x16/applications-development.png b/icons_symlinked/PyHoca/16x16/applications-development.png
new file mode 100644
index 0000000..50ad862
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-development.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-education.png b/icons_symlinked/PyHoca/16x16/applications-education.png
new file mode 100644
index 0000000..ac63bf5
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-education.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-games.png b/icons_symlinked/PyHoca/16x16/applications-games.png
new file mode 100644
index 0000000..173a7c0
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-games.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-graphics.png b/icons_symlinked/PyHoca/16x16/applications-graphics.png
new file mode 100644
index 0000000..4fc15c9
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-graphics.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-internet.png b/icons_symlinked/PyHoca/16x16/applications-internet.png
new file mode 100644
index 0000000..1a4906a
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-internet.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-multimedia.png b/icons_symlinked/PyHoca/16x16/applications-multimedia.png
new file mode 100644
index 0000000..18a78b4
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-multimedia.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-office.png b/icons_symlinked/PyHoca/16x16/applications-office.png
new file mode 100644
index 0000000..04e8d55
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-office.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-other.png b/icons_symlinked/PyHoca/16x16/applications-other.png
new file mode 100644
index 0000000..a5c500a
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-other.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-system.png b/icons_symlinked/PyHoca/16x16/applications-system.png
new file mode 100644
index 0000000..f34c7c9
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-system.png differ
diff --git a/icons_symlinked/PyHoca/16x16/applications-utilities.png b/icons_symlinked/PyHoca/16x16/applications-utilities.png
new file mode 100644
index 0000000..c66d253
Binary files /dev/null and b/icons_symlinked/PyHoca/16x16/applications-utilities.png differ
diff --git a/icons_symlinked/PyHoca/16x16/system-search.png b/icons_symlinked/PyHoca/16x16/system-search.png
new file mode 120000
index 0000000..8fa9ef6
--- /dev/null
+++ b/icons_symlinked/PyHoca/16x16/system-search.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/16x16/actions/system-search.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/22x22/application-exit.png b/icons_symlinked/PyHoca/22x22/application-exit.png
new file mode 100644
index 0000000..ed77cff
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/application-exit.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-development.png b/icons_symlinked/PyHoca/22x22/applications-development.png
new file mode 100644
index 0000000..656ac3d
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-development.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-education.png b/icons_symlinked/PyHoca/22x22/applications-education.png
new file mode 100644
index 0000000..7c1d933
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-education.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-games.png b/icons_symlinked/PyHoca/22x22/applications-games.png
new file mode 100644
index 0000000..50f62a1
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-games.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-graphics.png b/icons_symlinked/PyHoca/22x22/applications-graphics.png
new file mode 100644
index 0000000..162b10f
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-graphics.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-internet.png b/icons_symlinked/PyHoca/22x22/applications-internet.png
new file mode 100644
index 0000000..0348b21
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-internet.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-multimedia.png b/icons_symlinked/PyHoca/22x22/applications-multimedia.png
new file mode 100644
index 0000000..3213ad5
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-multimedia.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-office.png b/icons_symlinked/PyHoca/22x22/applications-office.png
new file mode 100644
index 0000000..ae877d5
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-office.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-other.png b/icons_symlinked/PyHoca/22x22/applications-other.png
new file mode 100644
index 0000000..c68db38
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-other.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-system.png b/icons_symlinked/PyHoca/22x22/applications-system.png
new file mode 100644
index 0000000..9ab8c04
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-system.png differ
diff --git a/icons_symlinked/PyHoca/22x22/applications-utilities.png b/icons_symlinked/PyHoca/22x22/applications-utilities.png
new file mode 100644
index 0000000..5b44ae1
Binary files /dev/null and b/icons_symlinked/PyHoca/22x22/applications-utilities.png differ
diff --git a/icons_symlinked/PyHoca/32x32/application-exit.png b/icons_symlinked/PyHoca/32x32/application-exit.png
new file mode 120000
index 0000000..b89298d
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/application-exit.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/application-exit.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/audio_error.png b/icons_symlinked/PyHoca/32x32/audio_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/audio_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/auth_disconnect.png b/icons_symlinked/PyHoca/32x32/auth_disconnect.png
new file mode 120000
index 0000000..54f2738
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/auth_disconnect.png
@@ -0,0 +1 @@
+network-wired.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/auth_error.png b/icons_symlinked/PyHoca/32x32/auth_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/auth_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/auth_failed.png b/icons_symlinked/PyHoca/32x32/auth_failed.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/auth_failed.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/auth_success.png b/icons_symlinked/PyHoca/32x32/auth_success.png
new file mode 120000
index 0000000..d3a064b
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/auth_success.png
@@ -0,0 +1 @@
+dialog-apply.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/dialog-apply.png b/icons_symlinked/PyHoca/32x32/dialog-apply.png
new file mode 120000
index 0000000..b5976ea
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/dialog-apply.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/dialog-apply.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/dialog-error.png b/icons_symlinked/PyHoca/32x32/dialog-error.png
new file mode 120000
index 0000000..ad9ae50
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/dialog-error.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/dialog-question.png b/icons_symlinked/PyHoca/32x32/dialog-question.png
new file mode 120000
index 0000000..d5c131e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/dialog-question.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-question.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/dialog-warning.png b/icons_symlinked/PyHoca/32x32/dialog-warning.png
new file mode 120000
index 0000000..be3fec3
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/dialog-warning.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/status/dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/document-save.png b/icons_symlinked/PyHoca/32x32/document-save.png
new file mode 120000
index 0000000..ef49aec
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/document-save.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/document-save.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/edit-delete.png b/icons_symlinked/PyHoca/32x32/edit-delete.png
new file mode 120000
index 0000000..b5e18b0
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/edit-delete.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/edit-delete.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/gnome-dev-printer-network.svg b/icons_symlinked/PyHoca/32x32/gnome-dev-printer-network.svg
new file mode 120000
index 0000000..235fc5b
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/gnome-dev-printer-network.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/devices/gnome-dev-printer-network.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/gtk-edit.png b/icons_symlinked/PyHoca/32x32/gtk-edit.png
new file mode 120000
index 0000000..9c4f5cf
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/gtk-edit.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/gtk-edit.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/list-add.png b/icons_symlinked/PyHoca/32x32/list-add.png
new file mode 120000
index 0000000..7c78919
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/list-add.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/list-add.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/locked.png b/icons_symlinked/PyHoca/32x32/locked.png
new file mode 120000
index 0000000..d896814
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/locked.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/status/locked.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-eject.png b/icons_symlinked/PyHoca/32x32/media-eject.png
new file mode 120000
index 0000000..d4de743
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-eject.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-eject.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-playback-pause.png b/icons_symlinked/PyHoca/32x32/media-playback-pause.png
new file mode 120000
index 0000000..7494c8a
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-playback-pause.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-pause.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-playback-start.png b/icons_symlinked/PyHoca/32x32/media-playback-start.png
new file mode 120000
index 0000000..76c4b16
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-playback-start.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-start.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-playback-stop.png b/icons_symlinked/PyHoca/32x32/media-playback-stop.png
new file mode 120000
index 0000000..651e82d
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-playback-stop.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-playback-stop.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-record.png b/icons_symlinked/PyHoca/32x32/media-record.png
new file mode 120000
index 0000000..f761ee8
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-record.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-record.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-seek-backward.png b/icons_symlinked/PyHoca/32x32/media-seek-backward.png
new file mode 120000
index 0000000..fdd7ff9
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-seek-backward.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-seek-backward.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-seek-forward.png b/icons_symlinked/PyHoca/32x32/media-seek-forward.png
new file mode 120000
index 0000000..bd56d30
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-seek-forward.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-seek-forward.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-skip-backward.png b/icons_symlinked/PyHoca/32x32/media-skip-backward.png
new file mode 120000
index 0000000..238712b
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-skip-backward.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/media-skip-backward.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/media-skip-forward.png b/icons_symlinked/PyHoca/32x32/media-skip-forward.png
new file mode 120000
index 0000000..afaa06d
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/media-skip-forward.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-forward.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/network-wired.png b/icons_symlinked/PyHoca/32x32/network-wired.png
new file mode 120000
index 0000000..85b6e7a
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/network-wired.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/devices/network-wired.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_add.png b/icons_symlinked/PyHoca/32x32/profile_add.png
new file mode 120000
index 0000000..7d4c878
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_add.png
@@ -0,0 +1 @@
+list-add.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_delete.png b/icons_symlinked/PyHoca/32x32/profile_delete.png
new file mode 120000
index 0000000..bb0a74a
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_delete.png
@@ -0,0 +1 @@
+edit-delete.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_edit.png b/icons_symlinked/PyHoca/32x32/profile_edit.png
new file mode 120000
index 0000000..a09517d
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_edit.png
@@ -0,0 +1 @@
+gtk-edit.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_error.png b/icons_symlinked/PyHoca/32x32/profile_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_save.png b/icons_symlinked/PyHoca/32x32/profile_save.png
new file mode 120000
index 0000000..b1240e1
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_save.png
@@ -0,0 +1 @@
+document-save.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/profile_warning.png b/icons_symlinked/PyHoca/32x32/profile_warning.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/profile_warning.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_cleanall.png b/icons_symlinked/PyHoca/32x32/session_cleanall.png
new file mode 120000
index 0000000..406821b
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_cleanall.png
@@ -0,0 +1 @@
+broom-cleanup.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_error.png b/icons_symlinked/PyHoca/32x32/session_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_pause.png b/icons_symlinked/PyHoca/32x32/session_pause.png
new file mode 120000
index 0000000..0ef65d6
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_pause.png
@@ -0,0 +1 @@
+media-playback-pause.png
\ No newline at end of file
diff --git a/icons/PyHoca/scalable/session_printing.svg b/icons_symlinked/PyHoca/32x32/session_printing.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_printing.svg
copy to icons_symlinked/PyHoca/32x32/session_printing.svg
diff --git a/icons_symlinked/PyHoca/32x32/session_resume.png b/icons_symlinked/PyHoca/32x32/session_resume.png
new file mode 120000
index 0000000..e06eca2
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_resume.png
@@ -0,0 +1 @@
+x2go-logo-rotated.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_start.png b/icons_symlinked/PyHoca/32x32/session_start.png
new file mode 120000
index 0000000..e06eca2
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_start.png
@@ -0,0 +1 @@
+x2go-logo-rotated.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_terminate.png b/icons_symlinked/PyHoca/32x32/session_terminate.png
new file mode 120000
index 0000000..f8a647d
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_terminate.png
@@ -0,0 +1 @@
+window-close.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/session_warning.png b/icons_symlinked/PyHoca/32x32/session_warning.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/session_warning.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/unlocked.png b/icons_symlinked/PyHoca/32x32/unlocked.png
new file mode 120000
index 0000000..8a0f67f
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/unlocked.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/status/unlocked.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/window-close.png b/icons_symlinked/PyHoca/32x32/window-close.png
new file mode 120000
index 0000000..101528e
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/window-close.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/window-close.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/32x32/window-new.png b/icons_symlinked/PyHoca/32x32/window-new.png
new file mode 120000
index 0000000..f3e7654
--- /dev/null
+++ b/icons_symlinked/PyHoca/32x32/window-new.png
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/32x32/actions/window-new.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/audio_error.png b/icons_symlinked/PyHoca/64x64/audio_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/audio_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/auth_error.png b/icons_symlinked/PyHoca/64x64/auth_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/auth_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/auth_failed.png b/icons_symlinked/PyHoca/64x64/auth_failed.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/auth_failed.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/auth_success.png b/icons_symlinked/PyHoca/64x64/auth_success.png
new file mode 120000
index 0000000..d3a064b
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/auth_success.png
@@ -0,0 +1 @@
+dialog-apply.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/profile_error.png b/icons_symlinked/PyHoca/64x64/profile_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/profile_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/profile_warning.png b/icons_symlinked/PyHoca/64x64/profile_warning.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/profile_warning.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/session_error.png b/icons_symlinked/PyHoca/64x64/session_error.png
new file mode 120000
index 0000000..ab8db5e
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/session_error.png
@@ -0,0 +1 @@
+dialog-error.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/64x64/session_warning.png b/icons_symlinked/PyHoca/64x64/session_warning.png
new file mode 120000
index 0000000..91cec00
--- /dev/null
+++ b/icons_symlinked/PyHoca/64x64/session_warning.png
@@ -0,0 +1 @@
+dialog-warning.png
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/application-exit.svg b/icons_symlinked/PyHoca/scalable/application-exit.svg
new file mode 120000
index 0000000..14a727b
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/application-exit.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/application-exit.svg
\ No newline at end of file
diff --git a/icons/PyHoca/scalable/auth_error.svg b/icons_symlinked/PyHoca/scalable/audio_error.svg
similarity index 100%
copy from icons/PyHoca/scalable/auth_error.svg
copy to icons_symlinked/PyHoca/scalable/audio_error.svg
diff --git a/icons/PyHoca/scalable/auth_disconnect.svg b/icons_symlinked/PyHoca/scalable/auth_disconnect.svg
similarity index 100%
copy from icons/PyHoca/scalable/auth_disconnect.svg
copy to icons_symlinked/PyHoca/scalable/auth_disconnect.svg
diff --git a/icons/PyHoca/scalable/auth_error.svg b/icons_symlinked/PyHoca/scalable/auth_error.svg
similarity index 100%
copy from icons/PyHoca/scalable/auth_error.svg
copy to icons_symlinked/PyHoca/scalable/auth_error.svg
diff --git a/icons/PyHoca/scalable/session_warning.svg b/icons_symlinked/PyHoca/scalable/auth_failed.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_warning.svg
copy to icons_symlinked/PyHoca/scalable/auth_failed.svg
diff --git a/icons/PyHoca/scalable/auth_success.svg b/icons_symlinked/PyHoca/scalable/auth_success.svg
similarity index 100%
copy from icons/PyHoca/scalable/auth_success.svg
copy to icons_symlinked/PyHoca/scalable/auth_success.svg
diff --git a/icons_symlinked/PyHoca/scalable/dialog-apply.svg b/icons_symlinked/PyHoca/scalable/dialog-apply.svg
new file mode 120000
index 0000000..218c63c
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/dialog-apply.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/dialog-apply.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/dialog-error.svg b/icons_symlinked/PyHoca/scalable/dialog-error.svg
new file mode 120000
index 0000000..8e5409c
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/dialog-error.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-error.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/dialog-question.svg b/icons_symlinked/PyHoca/scalable/dialog-question.svg
new file mode 120000
index 0000000..56c3ca2
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/dialog-question.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-question.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/dialog-warning.svg b/icons_symlinked/PyHoca/scalable/dialog-warning.svg
new file mode 120000
index 0000000..b784c55
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/dialog-warning.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/status/dialog-warning.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/document-save.svg b/icons_symlinked/PyHoca/scalable/document-save.svg
new file mode 120000
index 0000000..5f900d0
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/document-save.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/document-save.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/edit-delete.svg b/icons_symlinked/PyHoca/scalable/edit-delete.svg
new file mode 120000
index 0000000..8cf0dda
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/edit-delete.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/edit-delete.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/gnome-dev-printer-network.svg b/icons_symlinked/PyHoca/scalable/gnome-dev-printer-network.svg
new file mode 120000
index 0000000..3205804
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/gnome-dev-printer-network.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/devices/gnome-dev-printer-network.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/gtk-edit.svg b/icons_symlinked/PyHoca/scalable/gtk-edit.svg
new file mode 120000
index 0000000..aaa4dd9
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/gtk-edit.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/gtk-edit.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/list-add.svg b/icons_symlinked/PyHoca/scalable/list-add.svg
new file mode 120000
index 0000000..c550197
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/list-add.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/list-add.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/locked.svg b/icons_symlinked/PyHoca/scalable/locked.svg
new file mode 120000
index 0000000..869edf5
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/locked.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/status/locked.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-eject.svg b/icons_symlinked/PyHoca/scalable/media-eject.svg
new file mode 120000
index 0000000..b9423cc
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-eject.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-eject.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-playback-pause.svg b/icons_symlinked/PyHoca/scalable/media-playback-pause.svg
new file mode 120000
index 0000000..4289640
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-playback-pause.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-pause.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-playback-start.svg b/icons_symlinked/PyHoca/scalable/media-playback-start.svg
new file mode 120000
index 0000000..8880dee
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-playback-start.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-start.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-playback-stop.svg b/icons_symlinked/PyHoca/scalable/media-playback-stop.svg
new file mode 120000
index 0000000..f5963ca
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-playback-stop.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-playback-stop.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-record.svg b/icons_symlinked/PyHoca/scalable/media-record.svg
new file mode 120000
index 0000000..b5e2028
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-record.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-record.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-seek-backward.svg b/icons_symlinked/PyHoca/scalable/media-seek-backward.svg
new file mode 120000
index 0000000..ccf0df4
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-seek-backward.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-seek-backward.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-seek-forward.svg b/icons_symlinked/PyHoca/scalable/media-seek-forward.svg
new file mode 120000
index 0000000..177c3d2
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-seek-forward.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-seek-forward.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-skip-backward.svg b/icons_symlinked/PyHoca/scalable/media-skip-backward.svg
new file mode 120000
index 0000000..21c6d8f
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-skip-backward.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-backward.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/media-skip-forward.svg b/icons_symlinked/PyHoca/scalable/media-skip-forward.svg
new file mode 120000
index 0000000..afaa06d
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/media-skip-forward.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/media-skip-forward.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/network-wired.svg b/icons_symlinked/PyHoca/scalable/network-wired.svg
new file mode 120000
index 0000000..c54af81
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/network-wired.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/devices/network-wired.svg
\ No newline at end of file
diff --git a/icons/PyHoca/scalable/profile_add.svg b/icons_symlinked/PyHoca/scalable/profile_add.svg
similarity index 100%
copy from icons/PyHoca/scalable/profile_add.svg
copy to icons_symlinked/PyHoca/scalable/profile_add.svg
diff --git a/icons/PyHoca/scalable/profile_delete.svg b/icons_symlinked/PyHoca/scalable/profile_delete.svg
similarity index 100%
copy from icons/PyHoca/scalable/profile_delete.svg
copy to icons_symlinked/PyHoca/scalable/profile_delete.svg
diff --git a/icons/PyHoca/scalable/profile_edit.svg b/icons_symlinked/PyHoca/scalable/profile_edit.svg
similarity index 100%
copy from icons/PyHoca/scalable/profile_edit.svg
copy to icons_symlinked/PyHoca/scalable/profile_edit.svg
diff --git a/icons/PyHoca/scalable/profile_save.svg b/icons_symlinked/PyHoca/scalable/profile_save.svg
similarity index 100%
copy from icons/PyHoca/scalable/profile_save.svg
copy to icons_symlinked/PyHoca/scalable/profile_save.svg
diff --git a/icons/PyHoca/scalable/session_warning.svg b/icons_symlinked/PyHoca/scalable/profile_warning.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_warning.svg
copy to icons_symlinked/PyHoca/scalable/profile_warning.svg
diff --git a/icons/PyHoca/scalable/pyhoca-session.svg b/icons_symlinked/PyHoca/scalable/pyhoca-session.svg
similarity index 100%
copy from icons/PyHoca/scalable/pyhoca-session.svg
copy to icons_symlinked/PyHoca/scalable/pyhoca-session.svg
diff --git a/icons/PyHoca/scalable/pyhoca-trayicon.svg b/icons_symlinked/PyHoca/scalable/pyhoca-trayicon.svg
similarity index 100%
copy from icons/PyHoca/scalable/pyhoca-trayicon.svg
copy to icons_symlinked/PyHoca/scalable/pyhoca-trayicon.svg
diff --git a/icons/PyHoca/scalable/pyhoca-winicon.svg b/icons_symlinked/PyHoca/scalable/pyhoca-winicon.svg
similarity index 100%
copy from icons/PyHoca/scalable/pyhoca-winicon.svg
copy to icons_symlinked/PyHoca/scalable/pyhoca-winicon.svg
diff --git a/icons/PyHoca/scalable/question.svg b/icons_symlinked/PyHoca/scalable/question.svg
similarity index 100%
copy from icons/PyHoca/scalable/question.svg
copy to icons_symlinked/PyHoca/scalable/question.svg
diff --git a/icons/PyHoca/scalable/session_cleanall.svg b/icons_symlinked/PyHoca/scalable/session_cleanall.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_cleanall.svg
copy to icons_symlinked/PyHoca/scalable/session_cleanall.svg
diff --git a/icons/PyHoca/scalable/session_error.svg b/icons_symlinked/PyHoca/scalable/session_error.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_error.svg
copy to icons_symlinked/PyHoca/scalable/session_error.svg
diff --git a/icons/PyHoca/scalable/session_pause.svg b/icons_symlinked/PyHoca/scalable/session_pause.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_pause.svg
copy to icons_symlinked/PyHoca/scalable/session_pause.svg
diff --git a/icons/PyHoca/scalable/session_printing.svg b/icons_symlinked/PyHoca/scalable/session_printing.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_printing.svg
copy to icons_symlinked/PyHoca/scalable/session_printing.svg
diff --git a/icons/PyHoca/scalable/session_resume.svg b/icons_symlinked/PyHoca/scalable/session_resume.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_resume.svg
copy to icons_symlinked/PyHoca/scalable/session_resume.svg
diff --git a/icons/PyHoca/scalable/session_start.svg b/icons_symlinked/PyHoca/scalable/session_start.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_start.svg
copy to icons_symlinked/PyHoca/scalable/session_start.svg
diff --git a/icons/PyHoca/scalable/session_terminate.svg b/icons_symlinked/PyHoca/scalable/session_terminate.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_terminate.svg
copy to icons_symlinked/PyHoca/scalable/session_terminate.svg
diff --git a/icons/PyHoca/scalable/session_warning.svg b/icons_symlinked/PyHoca/scalable/session_warning.svg
similarity index 100%
copy from icons/PyHoca/scalable/session_warning.svg
copy to icons_symlinked/PyHoca/scalable/session_warning.svg
diff --git a/icons_symlinked/PyHoca/scalable/system-search.svg b/icons_symlinked/PyHoca/scalable/system-search.svg
new file mode 120000
index 0000000..a903ee6
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/system-search.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/system-search.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/unlocked.svg b/icons_symlinked/PyHoca/scalable/unlocked.svg
new file mode 120000
index 0000000..b1c07f3
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/unlocked.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/status/unlocked.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/window-close.svg b/icons_symlinked/PyHoca/scalable/window-close.svg
new file mode 120000
index 0000000..cf5abd3
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/window-close.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/window-close.svg
\ No newline at end of file
diff --git a/icons_symlinked/PyHoca/scalable/window-new.svg b/icons_symlinked/PyHoca/scalable/window-new.svg
new file mode 120000
index 0000000..c701137
--- /dev/null
+++ b/icons_symlinked/PyHoca/scalable/window-new.svg
@@ -0,0 +1 @@
+/usr/share/icons/gnome-colors-common/scalable/actions/window-new.svg
\ No newline at end of file
diff --git a/icons/PyHoca/scalable/x2go-logo-rotated.svg b/icons_symlinked/PyHoca/scalable/x2go-logo-rotated.svg
similarity index 100%
copy from icons/PyHoca/scalable/x2go-logo-rotated.svg
copy to icons_symlinked/PyHoca/scalable/x2go-logo-rotated.svg
diff --git a/icons/PyHoca/scalable/x2go-logo-ubuntu.svg b/icons_symlinked/PyHoca/scalable/x2go-logo-ubuntu.svg
similarity index 100%
copy from icons/PyHoca/scalable/x2go-logo-ubuntu.svg
copy to icons_symlinked/PyHoca/scalable/x2go-logo-ubuntu.svg
diff --git a/icons/PyHoca/scalable/x2go-logo-white-bg.svg b/icons_symlinked/PyHoca/scalable/x2go-logo-white-bg.svg
similarity index 100%
copy from icons/PyHoca/scalable/x2go-logo-white-bg.svg
copy to icons_symlinked/PyHoca/scalable/x2go-logo-white-bg.svg
diff --git a/icons/PyHoca/scalable/x2go.svg b/icons_symlinked/PyHoca/scalable/x2go.svg
similarity index 100%
copy from icons/PyHoca/scalable/x2go.svg
copy to icons_symlinked/PyHoca/scalable/x2go.svg
diff --git a/img/pyhoca-about-logo.png b/img/pyhoca-about-logo.png
index 34ee365..496c40d 100644
Binary files a/img/pyhoca-about-logo.png and b/img/pyhoca-about-logo.png differ
diff --git a/man/man1/pyhoca-gui.1 b/man/man1/pyhoca-gui.1
index edc783b..8e1f50b 100644
--- a/man/man1/pyhoca-gui.1
+++ b/man/man1/pyhoca-gui.1
@@ -5,9 +5,9 @@
 \\$2 \(la\\$1\(ra\\$3
 ..
 .if \n(.g .mso www.tmac
-.TH pyhoca-gui 1 "26 May 2011" "Version 0.1.0.x" "X2go Application"
+.TH pyhoca-gui 1 "May 2012" "Version 0.1.2.x" "X2Go Application"
 .SH NAME
-pyhoca-gui \- graphical X2go client applet written in Python
+pyhoca-gui \- graphical X2Go client applet written in Python
 .SH SYNOPSIS
 'nh
 .fi
@@ -22,175 +22,199 @@ pyhoca-gui \- graphical X2go client applet written in Python
 .ad b
 'hy
 .SH DESCRIPTION
-\fBpyhoca-gui\fR is a cross-platform (Windows, MacOS X, Linux) graphical X2go client applet that
+\fBpyhoca-gui\fR is a cross-platform (Windows, MacOS X, Linux) graphical X2Go client applet that
 docks to your desktop's system tray.
 .PP
-From your desktop's system tray you can start/resume/share pre-configured X2go sessions. You can manage the
-pre-configured session profiles in the X2go profile manager and also configure the basic setup of
+From your desktop's system tray you can start/resume/share pre-configured X2Go sessions. You can manage the
+pre-configured session profiles in the X2Go profile manager and also configure the basic setup of
 \fBpyhoca-gui\fR.
 .PP
 \fBpyhoca-gui\fR uses the same set of config files (\fBsettings\fR, \fBprinting\fR and \fBsessions\fR in ~/.x2goclient) as the original 
-X2go Client application (by Heinz-M. Graesing and Oleksandr Schneyder) does.
+X2Go Client application (by Heinz-M. Graesing and Oleksandr Schneyder) does.
 .PP
-On Windows systems \fBpyhoca-gui\fR uses the same set of Windows registry keys and values as the original X2go Client application.
+On Windows systems \fBpyhoca-gui\fR uses the same set of Windows registry keys and values as the original X2Go Client application.
 .PP
 See the included README and TODO for further information on \fBpyhoca-gui\fR.
 .SH COMMON OPTIONS
 \fBpyhoca-gui\fR accepts the following common options:
 .TP
-\*(T<\fB\-h, \-\-help\fR\*(T> 
+\*(T<\fB\-h, \-\-help\fR\*(T>
 Display a help with all available command line options and exit.
-.TP 
-\*(T<\fB\-V, \-\-version\fR\*(T> 
+.TP
+\*(T<\fB\-V, \-\-version\fR\*(T>
 Output version information and exit.
-.TP 
-\*(T<\fB\-d, \-\-quiet\fR\*(T> 
+.TP
+\*(T<\fB\-d, \-\-quiet\fR\*(T>
 No output to stdout at all! Use this option on Windows!!!
-.TP 
-\*(T<\fB\-d, \-\-debug\fR\*(T> 
+.TP
+\*(T<\fB\-d, \-\-debug\fR\*(T>
 Enable debugging output.
-.TP 
-\*(T<\fB\-\-libdebug\fR\*(T> 
-Enable debugging code of the unterlying Python X2go module.
-.TP 
-\*(T<\fB\-\-libdebug-sftpxfer\fR\*(T> 
+.TP
+\*(T<\fB\-\-libdebug\fR\*(T>
+Enable debugging code of the unterlying Python X2Go module.
+.TP
+\*(T<\fB\-\-libdebug-sftpxfer\fR\*(T>
 Enable debugging code of Python X2go's sFTP server code (very verbose, and it may even reveal promiscuous data).
 .SH GUI OPTIONS
-.TP 
-\*(T<\fB\-u, \-\-username\fR \fI<USERNAME>\fR\*(T> 
-Username for the session (default: currently logged in user).
-.TP 
+.TP
 \*(T<\fB\-P, \-\-session-profile\fR\*(T>
 The name of the session profile to be used to make the connection. You can actually pass a komma-separated list of
 session profile names to this option.
-.TP 
+.TP
+\*(T<\fB\-\-remember-username\fR\*(T>
+For profiles with interactive authentication, remember the last-used username.
+.TP
 \*(T<\fB\-\-non-interactive\fR\*(T>
 Run in non-interactive mode. This option requires the \fB\-\-session-profile\fR option. It also sets the following options to true automagically:
 
         \fB\-\-restricted-trayicon\fR
+        \fB\-\-single_session_profile\fR
         \fB\-\-start-on-connect\fR
         \fB\-\-resume-all-on-connect\fR
         \fB\-\-exit-on-disconnect\fR
         \fB\-\-disconnect-on-suspend\fR
         \fB\-\-disconnect-on-terminate\fR
-.TP 
+.TP
+\*(T<\fB\-\-auto-connect\fR\*(T>
+Connect sessions via SSH public key authentication on application startup, if possible.
+.TP
 \*(T<\fB\-\-show-profile-metatypes\fR\*(T>
 Show descriptive meta information on session profiles in menus (NOTE: this makes menus appear a bit more sluggish, use it mostly for debugging).
-.TP 
-\*(T<\fB\-\-restricted-trayicon\fR\*(T>
-Restrict functionality of \fBpyhoca-gui\fR's main session manager icon that is shown in the notification area / system tray. This 
-switch limits the icon 's functionality to a right-click menu that allows to raise the ,,About'' window and exit the application.
-.TP 
+.TP
+\*(T<\fB\-\-single-session-profile\fR\*(T>
+Disable support of handling multiple session profiles. Use together with the \fB\-\-session-profile\fR cmdline parameter.
+.TP
+\*(T<\fB\-\-tray-icon\fR \fI<your-logo>\fR\*(T>
+Define an alternative system tray icon file (PNG files only, leave out file extension here, size 22x22 on Linux, 16x16 on Windows).
+.TP
+\*(T<\fB\-\-tray-icon-connecting\fR \fI<your-logo-while-connecting>\fR\*(T>
+Define an alternative system tray icon file while connecting to a server (PNG files only, leave out file extension here, size 22x22 on Linux, 16x16 on Windows).
+.TP
 \*(T<\fB\-\-restricted-trayicon\fR\*(T>
 Restrict functionality of \fBpyhoca-gui\fR's main session manager icon that is shown in the notification area / system tray. This 
-switch limits the icon 's functionality to a right-click menu that allows to raise the ,,About'' window and exit the application.
-.TP 
-\*(T<\fB\-\-auto-connect\fR\*(T>
-Connect sessions via SSH public key authentication on application startup, if possible.
-.TP 
+switch limits the icon 's functionality to a right-click menu that allows to raise the ,,About'' window and exit the application. On
+left-click only a minimal session menu is shown.
+.TP
 \*(T<\fB\-\-start-on-connect\fR\*(T>
 Start a session directly after authentication (only if no suspended sessions are available).
-.TP 
+.TP
 \*(T<\fB\-\-exit-on-disconnect\fR\*(T>
 Exit \fBpyhoca-gui\fR cleanly once a session has been disconnected.
-.TP 
+.TP
 \*(T<\fB\-\-resume-on-connect, \-\-resume-newest-on-connect\fR\*(T>
 After authentication directly auto-resume the newest available running/suspended session.
-.TP 
+.TP
 \*(T<\fB\-\-resume-oldest-on-connect\fR\*(T>
 After authentication directly auto-resume the oldest available running/suspended session.
-.TP 
+.TP
 \*(T<\fB\-\-resume-all-on-connect\fR\*(T>
 After authentication directly auto-resume all available running/suspended session.
-.TP 
+.TP
 \*(T<\fB\-\-disconnect-on-suspend\fR\*(T>
 Disconnect from a server if a session on that server has been suspended.
-.TP 
+.TP
 \*(T<\fB\-\-disconnect-on-terminate\fR\*(T>
 Disconnect from a server if a session on that server has been terminated.
-.TP 
+.TP
+\*(T<\fB\-\-splash-image\fR \fI<your-splash-image>\fR\*(T>
+Define an alternative splash image that gets shown on application startup (PNG files only, full path or filename as found in <share>/img).
+.TP
+\*(T<\fB\-\-about-image\fR \fI<your-about-window-image>\fR\*(T>
+Define an alternative image for the application's ,,About'' window (PNG files only, full path or filename as found in <share>/img).
+.
+For those who distribute a customized version of this application:
+As PyHoca-GUI and its backend Python X2Go are licensed under AGPL, the ,,About'' window is a good place for placing the download location
+of your modified version of the source code.
+.TP
 \*(T<\fB\-\-disable-splash\fR\*(T>
 Do not show the application's splash screen.
-.TP 
+.TP
 \*(T<\fB\-\-disable-options\fR\*(T>
 Grey-out the ,,Options'' menu item and thus disable the client configuration window.
-.TP 
+.TP
 \*(T<\fB\-\-disable-printingprefs\fR\*(T>
 Grey-out the ,,Printing Preferences'' menu item and thus disable the client's printing preferences window.
-.TP 
+.TP
 \*(T<\fB\-\-disable-profilemanager\fR\*(T>
 Grey-out the profile manager menu items and thus disable all profile management functionalities.
-.TP 
+.TP
+\*(T<\fB\-\-disable-notifications\fR\*(T>
+Disable all applet notifications.
+.TP
 \*(T<\fB\-\-display <hostname>:<screennumber>\fR\*(T>
 Set the DISPLAY environment variable to <hostname>:<screennumber>.
-.TP 
-\*(T<\fB\-\-logon\-window\-position <x-pos>x<y-pos>\fR\*(T>
+.TP
+\*(T<\fB\-\-logon\-window\-position\fR \fI<x-pos>x<y-pos>\fR\*(T>
 Give a custom position for the logon window, use negative values to position relative to right/bottom border.
+.TP
+\*(T<\fB\-\-published-applications-no-submenus\fR \fI<number>\fR\*(T>
+The number of published applications that will be rendered without submenus.
+.PP
 .SH BACKEND OPTIONS
 \fBpyhoca-gui\fR supports transparent use of different data backends. For configuration three backends are common:
 FILE, GCONF (Linux only) and WINREG (Windows only). The default backend currently is the FILE backend 
 on all platforms.
 .PP
-For client-server communication the only yet implemented backend is the STDOUT backend (as X2go server commands
+For client-server communication the only yet implemented backend is the STDOUT backend (as X2Go server commands
 print their execution results to /dev/stdout. (But other communication backends might be possible in the future...).
 .PP
 In the same way we are focusing on a successor of the current NX3 agent/proxy tool. A change in the proxy backend
 will also be implemented as a backend.
-.TP 
+.TP
 \*(T<\fB\-\-backend-controlsession <CONTROLSESSION_BACKEND>\fR\*(T>
 Force usage of a certain CONTROLSESSION_BACKEND (do not use this unless you know exactly what you are doing).
-.TP 
+.TP
 \*(T<\fB\-\-backend-terminalsession <TERMINALSESSION_BACKEND>\fR\*(T>
 Force usage of a certain TERMINALSESSION_BACKEND (do not use this unless you know exactly what you are doing).
-.TP 
+.TP
 \*(T<\fB\-\-backend-serversessioninfo <SERVERSESSIONINFO_BACKEND>\fR\*(T>
 Force usage of a certain SERVERSESSIONINFO_BACKEND (do not use this unless you know exactly what you are doing).
-.TP 
+.TP
 \*(T<\fB\-\-backend-serversessionlist <SERVERSESSIONLIST_BACKEND>\fR\*(T>
 Force usage of a certain SERVERSESSIONLIST_BACKEND (do not use this unless you know exactly what you are doing).
-.TP 
+.TP
 \*(T<\fB\-\-backend-proxy <PROXY_BACKEND>\fR\*(T>
 Force usage of a certain PROXY_BACKEND (do not use this unless you know exactly what you are doing).
-.TP 
+.TP
 \*(T<\fB\-\-backend-sessionprofiles <SESSIONPROFILES_BACKEND>\fR\*(T>
 Use given backend for accessing session profiles, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.
-.TP 
+.TP
 \*(T<\fB\-\-backend-clientsettings <CLIENTSETTINGS_BACKEND>\fR\*(T>
 Use given backend for accessing the client settings configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.
-.TP 
+.TP
 \*(T<\fB\-\-backend-clientprinting <CLIENTPRINTING_BACKEND>\fR\*(T>
 Use given backend for accessing the client printing configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.
 .SH PORTABLE OPTIONS
-.TP 
+.TP
 \*(T<\fB\-\-client-rootdir <CLIENT_ROOTDIR>\fR\*(T>
 Define an alternative location where to find plain text config files (default: <HOME>/.x2goclient).
 This option will set ,,--backend-profiles FILE'', ,,--backend-clientsettings FILE'' and ,,--backend-clientprinting FILE''
-.TP 
+.TP
 \*(T<\fB\-\-sessions-rootdir <SESSIONS_ROOTDIR>\fR\*(T>
 Define an alternative location for session runtime files (default: <HOME>/.x2go).
-.TP 
+.TP
 \*(T<\fB\-\-ssh-rootdir <SSH_ROOTDIR>\fR\*(T>
 Define an alternative location for user SSH files (default: <HOME>/.ssh).
 .SH WINDOWS OPTIONS
 There are some options that are only available on Windows:
-.TP 
+.TP
 \*(T<\fB\-\-start-xserver\fR\*(T>
 Start an  XServer (if available) before starting \fBpyhoca-gui\fR. The application will detect the best 
 suitable XServer automatically, if more than one XServer is installed on your system (currently known:
 Xming, Cygwin-X).
 .TP
 \*(T<\fB\-\-preferred-xserver <XSERVER_NAME>\fR\*(T>
-Start either of the currently supported XServers: Xming, Cygwin-X -- make sure your preferred XServer is installed 
-on your system.
-.TP 
+Start either of the currently supported XServers: Xming, Cygwin-X and VcXsrv -- make sure your preferred XServer is installed
+on your system (default and recommended is VcXsrv).
+.TP
 \*(T<\fB\-\-start-pulseaudio\fR\*(T>
-Start the PulseAudio server before starting \fBpyhoca-gui\fR. This option is needed to get X2go audio working. However, it is
+Start the PulseAudio server before starting \fBpyhoca-gui\fR. This option is needed to get X2Go audio working. However, it is
 not enabled by default.
-.TP 
+.TP
 \*(T<\fB\-\-lang [en|de|nl|es]\fR\*(T>
 Select the GUI language.
 .SH "SEE ALSO"
 \fB/usr/share/doc/pyhoca-gui\fR
 .SH AUTHOR
-This manual has been written for the X2go project by
+This manual has been written for the X2Go project by
 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>.
diff --git a/nsis_include/de.nsi b/nsis_include/de.nsi
new file mode 100644
index 0000000..cbd9cbb
--- /dev/null
+++ b/nsis_include/de.nsi
@@ -0,0 +1,15 @@
+; de.nsi
+;
+
+;--------------------------------
+
+; from "required"
+StrCpy $REQUIRED "erforderlich"
+; from "Desktop Icon"
+StrCpy $DESKTOP_LINKS "Desktopverknüpfung"
+; from "Start Menu Entries"
+StrCpy $STARTMENU_LINKS "Startmenüeinträge"
+; from "no PulseAudio"
+StrCpy $WITHOUT_PULSEAUDIO "ohne PulseAudio"
+; from "Direct Printing Support"
+StrCpy $GSPRINT "Direkte Druckunterstützung"
diff --git a/nsis_include/en.nsi b/nsis_include/en.nsi
new file mode 100644
index 0000000..d5aae76
--- /dev/null
+++ b/nsis_include/en.nsi
@@ -0,0 +1,16 @@
+
+; en.nsi
+;
+
+;--------------------------------
+
+; from "required"
+StrCpy $REQUIRED "required"
+; from "Desktop Icon"
+StrCpy $DESKTOP_LINKS "Desktop Icon"
+; from "Start Menu Entries"
+StrCpy $STARTMENU_LINKS "Start Menu Entries"
+; from "no PulseAudio"
+StrCpy $WITHOUT_PULSEAUDIO "no PulseAudio"
+; from "Direct Printing Support"
+StrCpy $GSPRINT "Direct Printing Support"
diff --git a/nsis_include/es.nsi b/nsis_include/es.nsi
new file mode 100644
index 0000000..bb44fef
--- /dev/null
+++ b/nsis_include/es.nsi
@@ -0,0 +1,15 @@
+; es.nsi
+;
+
+;--------------------------------
+
+; from "required"
+StrCpy $REQUIRED "requerido"
+; from "Desktop Icon"
+StrCpy $DESKTOP_LINKS "Acceso directo en el Escritorio"
+; from "Start Menu Entries"
+StrCpy $STARTMENU_LINKS "Acceso directo en el menú Inicio"
+; from "no PulseAudio"
+StrCpy $WITHOUT_PULSEAUDIO "sin PulseAudio"
+; from "Direct Printing Support"
+StrCpy $GSPRINT "Direct Printing Support"
\ No newline at end of file
diff --git a/nsis_include/nl.nsi b/nsis_include/nl.nsi
new file mode 100644
index 0000000..3f6b6e3
--- /dev/null
+++ b/nsis_include/nl.nsi
@@ -0,0 +1,15 @@
+; nl.nsi
+;
+
+;--------------------------------
+
+; from "required"
+StrCpy $REQUIRED "required"
+; from "Desktop Icon"
+StrCpy $DESKTOP_LINKS "Desktop Icon"
+; from "Start Menu Entries"
+StrCpy $STARTMENU_LINKS "Start Menu Entries"
+; from "no PulseAudio"
+StrCpy $WITHOUT_PULSEAUDIO "no PulseAudio"
+; from "Direct Printing Support"
+StrCpy $GSPRINT "Direct Printing Support"
diff --git a/nsis_template.py b/nsis_template.py
new file mode 100644
index 0000000..3c6ce10
--- /dev/null
+++ b/nsis_template.py
@@ -0,0 +1,222 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+NSIS_SCRIPT_TEMPLATE = """
+;{program_name}.nsi
+;
+
+!define VERSION {program_version}
+
+;--------------------------------
+
+; The name of the installer
+Name "{program_name}"
+
+; Sets the title bar text (although NSIS seems to append "Installer")
+Caption "{program_desc}"
+
+!define py2exeOutputDirectory '{output_dir}'
+
+; The file to write
+OutFile "..\\{program_name}_${{VERSION}}_win32-setup.exe"
+
+; The default installation directory
+InstallDir $PROGRAMFILES\\{program_name}
+
+; Registry key to check for directory (so if you install again, it will 
+; overwrite the old one automatically)
+InstallDirRegKey HKLM "Software\\{program_name}" "Install_Dir"
+
+; Request application privileges for Windows Vista
+RequestExecutionLevel admin
+
+;--------------------------------
+
+; Installer Language Configuration
+
+!include LogicLib.nsh
+
+var LC_MESSAGES
+
+; i18n strings
+var REQUIRED
+var DESKTOP_LINKS
+var STARTMENU_LINKS
+var WITHOUT_PULSEAUDIO
+var GSPRINT
+
+; First is default
+LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\English.nlf"
+LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Dutch.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\French.nlf"
+LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\German.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Korean.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Russian.nlf"
+LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Spanish.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Swedish.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\TradChinese.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\SimpChinese.nlf"
+;LoadLanguageFile "${{NSISDIR}}\\Contrib\\Language files\\Slovak.nlf"
+
+; License data
+; Not exactly translated, but it shows what's needed
+LicenseLangString myLicenseData ${{LANG_ENGLISH}} "LICENSE.txt"
+LicenseLangString myLicenseData ${{LANG_DUTCH}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_FRENCH}} "LICENSE.txt"
+LicenseLangString myLicenseData ${{LANG_GERMAN}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_KOREAN}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_RUSSIAN}} "LICENSE.txt"
+LicenseLangString myLicenseData ${{LANG_SPANISH}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_SWEDISH}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_TRADCHINESE}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_SIMPCHINESE}} "LICENSE.txt"
+;LicenseLangString myLicenseData ${{LANG_SLOVAK}} "LICENSE.txt"
+
+LicenseData $(myLicenseData)
+
+; Set name using the normal interface (Name command)
+LangString Name ${{LANG_ENGLISH}} "English"
+LangString Name ${{LANG_DUTCH}} "Dutch"
+;LangString Name ${{LANG_FRENCH}} "French"
+LangString Name ${{LANG_GERMAN}} "German"
+;LangString Name ${{LANG_KOREAN}} "Korean"
+;LangString Name ${{LANG_RUSSIAN}} "Russian"
+LangString Name ${{LANG_SPANISH}} "Spanish"
+;LangString Name ${{LANG_SWEDISH}} "Swedish"
+;LangString Name ${{LANG_TRADCHINESE}} "Traditional Chinese"
+;LangString Name ${{LANG_SIMPCHINESE}} "Simplified Chinese"
+;LangString Name ${{LANG_SLOVAK}} "Slovak"
+
+Function .onInit
+
+        ;Language selection dialog
+
+        Push ""
+        Push ${{LANG_ENGLISH}}
+        Push English
+        Push ${{LANG_DUTCH}}
+        Push Dutch
+;       Push ${{LANG_FRENCH}}
+;       Push French
+        Push ${{LANG_GERMAN}}
+        Push German
+;       Push ${{LANG_KOREAN}}
+;       Push Korean
+;       Push ${{LANG_RUSSIAN}}
+;       Push Russian
+        Push ${{LANG_SPANISH}}
+        Push Spanish
+;       Push ${{LANG_SWEDISH}}
+;       Push Swedish
+;       Push ${{LANG_TRADCHINESE}}
+;       Push "Traditional Chinese"
+;       Push ${{LANG_SIMPCHINESE}}
+;       Push "Simplified Chinese"
+;       Push ${{LANG_SLOVAK}}
+;       Push Slovak
+        Push A ; A means auto count languages
+               ; for the auto count to work the first empty push (Push "") must remain
+        LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
+
+        Pop $LANGUAGE
+
+        ${{Switch}} $LANGUAGE
+          ${{Case}} 1031
+            StrCpy $LC_MESSAGES "de"
+            !include "nsis_include\\de.nsi"
+            ${{Break}}
+          ${{Case}} 1033
+            StrCpy $LC_MESSAGES "en"
+            !include "nsis_include\\en.nsi"
+            ${{Break}}
+          ${{Case}} 1043
+            StrCpy $LC_MESSAGES "nl"
+            !include "nsis_include\\nl.nsi"
+            ${{Break}}
+          ${{Case}} 1034
+            StrCpy $LC_MESSAGES "es"
+            !include "nsis_include\\es.nsi"
+            ${{Break}}
+        ${{EndSwitch}}
+
+        StrCmp $LANGUAGE "cancel" 0 +2
+            Abort
+
+FunctionEnd
+
+;--------------------------------
+
+; Pages
+Page license
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+;--------------------------------
+
+; The stuff to install
+Section "{program_name} ($REQUIRED)"
+
+  SectionIn RO
+  ; Set output path to the installation directory.
+  SetOutPath "$INSTDIR"
+  File /r /x .svn /x .git "${{py2exeOutputDirectory}}\\*.*"
+
+  ; Write the installation path into the registry
+  WriteRegStr HKLM SOFTWARE\\{program_name} "Install_Dir" "$INSTDIR"
+
+  ; Write the uninstall keys for Windows
+  WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "DisplayName" "{program_name}"
+  WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "UninstallString" '"$INSTDIR\\uninstall.exe"'
+  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "NoModify" 1
+  WriteRegDWORD HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}" "NoRepair" 1
+  WriteUninstaller "uninstall.exe"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "$STARTMENU_LINKS"
+
+  CreateDirectory "$SMPROGRAMS\\{program_name}"
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\{program_name}.lnk" "$INSTDIR\\{program_name}.exe" "--quiet --start-xserver --start-pulseaudio --lang $LC_MESSAGES" "$INSTDIR\\icons\\{program_name}.ico" 0
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\{program_name} ($WITHOUT_PULSEAUDIO).lnk" "$INSTDIR\\{program_name}.exe" "--quiet --start-xserver --lang $LC_MESSAGES" "$INSTDIR\\icons\\{program_name}.ico" 0
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\{program_name} (debug).lnk" "$INSTDIR\\{program_name}.exe" "--debug --libdebug --start-xserver --start-pulseaudio --lang $LC_MESSAGES" "$INSTDIR\\icons\\{program_name}.ico" 0
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\{program_name} ($WITHOUT_PULSEAUDIO, debug).lnk" "$INSTDIR\\{program_name}.exe" "--debug --libdebug --start-xserver --lang $LC_MESSAGES" "$INSTDIR\\icons\\{program_name}.ico" 0
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\X2go Website.lnk" "http://www.x2go.org" "" "$INSTDIR\\icons\\pyhoca_x2go-logo-ubuntu.ico" 0
+  CreateShortCut "$SMPROGRAMS\\{program_name}\\Uninstall.lnk" "$INSTDIR\\uninstall.exe" "" "$INSTDIR\\uninstall.exe" 0
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "$DESKTOP_LINKS"
+
+  CreateShortCut "$DESKTOP\\{program_name}.lnk" "$INSTDIR\\{program_name}.exe" "--quiet --start-xserver --start-pulseaudio --lang $LC_MESSAGES" "$INSTDIR\\icons\\{program_name}.ico" 0
+
+SectionEnd
+
+;--------------------------------
+
+; Uninstaller
+
+Section "Uninstall"
+
+  ; Remove registry keys
+  DeleteRegKey HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{program_name}"
+  DeleteRegKey HKLM SOFTWARE\\{program_name}
+
+  ; Remove files and uninstaller
+  Delete $INSTDIR\\uninstall.exe
+
+  ; Remove shortcuts, if any
+  Delete "$SMPROGRAMS\\{program_name}\\*.*"
+  Delete "$DESKTOP\\{program_name}.lnk"
+
+  ; Remove directories used
+  RMDir "$SMPROGRAMS\\{program_name}"
+  RMDir /r /REBOOTOK $INSTDIR
+
+SectionEnd
+"""
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ad45729..391b5ad 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -10,4 +10,5 @@ pyhoca/wxgui/basepath.py
 pyhoca/wxgui/frontend.py
 pyhoca/wxgui/messages.py
 pyhoca/wxgui/printingprefs.py
+pyhoca/wxgui/sessiontitle.py
 pyhoca-gui
diff --git a/po/PyHoca-GUI.pot b/po/PyHoca-GUI.pot
new file mode 100644
index 0000000..96396f3
--- /dev/null
+++ b/po/PyHoca-GUI.pot
@@ -0,0 +1,1372 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../pyhoca/wxgui/logon.py:92
+#, python-format
+msgid "%s (via %s)"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
+msgid "Username"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
+msgid "Password"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:101
+msgid "Authenticate"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:113
+msgid "  Start SSH tunnel  "
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:121
+msgid "Session login"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:122
+msgid "SSH proxy server login"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
+msgid "Cancel"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
+#, python-format
+msgid "%s - connect failure"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
+#, python-format
+msgid "%s - connect"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:299
+msgid "Authentication has been successful."
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:330
+msgid "SSH tunnel started"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:335
+msgid "Authentication failed!"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:342
+#, python-format
+msgid "%s - SSH proxy"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:343
+msgid "Authentication to the SSH proxy server failed!"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
+#, python-format
+msgid "%s - socket error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
+#, python-format
+msgid "%s - host key error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
+msgid ""
+"The remote server's host key is invalid or has not been accepted by the user"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
+#, python-format
+msgid "%s - missing home directory"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
+msgid "The remote user's home directory does not exist."
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:388
+#, python-format
+msgid "%s - key error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
+#, python-format
+msgid "%s - auth error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:413
+msgid "An unknown error occured during authentication!"
+msgstr ""
+
+#: ../pyhoca/wxgui/taskbar.py:92
+#, python-format
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to ,,%s''"
+msgstr ""
+
+#: ../pyhoca/wxgui/taskbar.py:96
+#, python-format
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Currently connecting you to remote X2Go server ,,%s''"
+msgstr ""
+
+#: ../pyhoca/wxgui/taskbar.py:106
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to X2Go..."
+msgstr ""
+
+#: ../pyhoca/wxgui/taskbar.py:110
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Client for connecting you to a remote X2Go server"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:82
+msgid "GNOME Desktop (GNOME)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:83
+msgid "K Desktop Environment (KDE)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:84
+msgid "Lightweight X Desktop (LXDE)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:85
+msgid "Trinity X Desktop (KDE3-like)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:86
+msgid "Unity X Desktop Shell (UNITY)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:90
+msgid "XDMCP Query"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:91
+msgid "Windows Terminal Server (RDP-proxy)"
+msgstr ""
+
+#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
+msgid "Custom command"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
+msgid "Internet Browser"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
+msgid "Email Client"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
+msgid "Terminal"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:113
+msgid "Open file with system's default application"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:114
+msgid "Open application chooser dialog"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:115
+msgid "Save incoming file as ..."
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr ""
+
+#. boxes for all tabs
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:163
+msgid "Server"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:164
+msgid "Connection Link Speed"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:165
+msgid "Compression"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:166
+msgid "Display"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:167
+msgid "Keyboard"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:168
+msgid "Sound"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:169
+msgid "Printing"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:170
+msgid "Folder Exports"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:171
+msgid "File Import"
+msgstr ""
+
+#. ##
+#. ## widgets for the PROFILE tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:176
+msgid "Name"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr ""
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:203
+msgid "Type"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:205
+msgid "Application"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:211
+msgid "RDP server"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:213
+msgid "RDP options"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr ""
+
+#. ##
+#. ## widgets for the CONNECTION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
+msgid "User"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:225
+msgid "Host"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:227
+msgid "Port"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:229
+msgid "RSA/DSA private key"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:232
+msgid "Server behind SSH proxy"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:235
+msgid "Key file"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:238
+msgid "Host[:Port]"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:240
+msgid "SSH Proxy Tunnel"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:248
+msgid "Modem"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:249
+msgid "ISDN"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:250
+msgid "ADSL"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:251
+msgid "WAN"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:252
+msgid "LAN"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:254
+msgid "Method"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:256
+msgid "Image quality"
+msgstr ""
+
+#. ##
+#. ## wigdets for the SETTINGS tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:262
+msgid "Fullscreen"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:263
+msgid "Custom Size"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:268
+msgid "Set display DPI"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:273
+msgid "Keyboard model"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:279
+msgid "Enable sound support"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:280
+msgid "Pulse Audio"
+msgstr ""
+
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
+#. However, config files can contain an Arts configuration, so we will honour this
+#: ../pyhoca/wxgui/profilemanager.py:284
+msgid "Arts (not supported)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:287
+msgid "esd"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:288
+msgid "Use default sound port"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:289
+msgid "Custom sound port"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:291
+msgid "Client Side printing"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:293
+msgid "Use local folder sharing"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:294
+msgid "Path"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
+msgid "Add"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:299
+msgid "Local Path"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:300
+msgid "Connect Method"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:301
+msgid "Delete"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:303
+msgid "Convert between client and server encodings"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:304
+msgid "Client encoding"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:306
+msgid "Server encoding"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:309
+msgid "Use file MIME box for local file import"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:310
+msgid "Extensions"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:312
+msgid "Action"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:317
+msgid "Defaults"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:319
+msgid "Save"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:320
+msgid "Reset"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
+msgid "automatically"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
+msgid "manually"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:376
+msgid "PyHoca-GUI Profile Manager - new profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:378
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s (connected)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:380
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:753
+msgid "Connection"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:754
+msgid "Settings"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:755
+msgid "Sharing"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
+msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1287
+msgid "Choose an icon for this session profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1509
+msgid "All files (*.*)|*"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
+msgid "Choose a public SSH key"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1784
+msgid "Choose a folder to share within a session"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
+msgid "Profile Manager"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+msgid "Profile name is missing, profile unusable!!!"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#, python-format
+msgid "Profile name %s already exists!!!"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1923
+msgid "The SSH proxy configuration is incomplete. Try again."
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1933
+#, python-format
+msgid ""
+"Another session profile (%s) already uses [%s]:%s for binding a local SSH "
+"proxy to.\n"
+"Please change the SSH proxy settings accordingly."
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1960
+#, python-format
+msgid "%s - profile added"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1961
+msgid "A new session profile has been added."
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1965
+#, python-format
+msgid "%s - modified"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1966
+msgid "Changes to profile have been saved."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:75
+msgid "Edit Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
+msgid "Delete Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:107
+#, python-format
+msgid "About %s (%s)..."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
+msgid "Printing Preferences"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:148
+msgid "Client Options"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
+msgid "E&xit"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
+msgid "Resume Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:236
+msgid "Resume Session (not possible)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:247
+msgid "Transfer Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:249
+msgid "Transfer Session (not possible)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
+msgid "Suspend Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
+msgid "Terminate Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
+msgid "&Share custom local folder"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:344
+msgid "Share:"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:355
+msgid "Unshare:"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:365
+msgid "Unshare &all local folders"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
+msgid "Start &new Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
+msgid "Running"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:721
+msgid "Suspended"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:740
+msgid "&Clean all sessions"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:746
+msgid "Customize &profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:758
+msgid "Shared &folders"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:770
+msgid "&Disconnect from Server"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
+msgid "Add Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:911
+msgid "No session profiles defined"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Start/Resume Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Connect Server"
+msgstr ""
+
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
+#, python-format
+msgid "About %s ..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:610
+msgid "Public SSH key authentication has been successful."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:644
+msgid ""
+"The SSH proxy's host key is invalid or has not been accepted by the user"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:665
+msgid "Authentication protocol communication incomplete! Try again..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:672
+#, python-format
+msgid "%s - auth key error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:693
+msgid "An unknown error occurred during authentication!"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:961
+#, python-format
+msgid "%s - disconnect"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:977
+msgid "New Session Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1029
+#, python-format
+msgid "Really Delete Session Profile ,,%s''?"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1035
+#, python-format
+msgid "%s - profile deleted"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1035
+msgid "The session profile has been deleted."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1053
+#, python-format
+msgid "%s - share local folder with sessions of this profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1194
+#, python-format
+msgid ""
+"The authenticity of host [%s]:%s can't be established.\n"
+"%s key fingerprint is ,,%s''.\n"
+"\n"
+"Are you sure you want to continue connecting?"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1202
+#, python-format
+msgid "%s: Confirm Host Authorization"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid "%s - channel error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid ""
+"Lost connection to server %s unexpectedly! Try to re-authenticate to the "
+"server..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid "%s - session failure"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1265
+msgid "The session startup failed."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1283
+#, python-format
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1285
+#, python-format
+msgid ""
+"The command ,,%s'' is not available on X2Go server\n"
+"%s."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid ""
+"Reverse TCP port forwarding request for session %s to server port %s has "
+"been denied."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid ""
+"Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
+"X2go/SSH server. Session startup failed."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1340
+#, python-format
+msgid "%s - audio warning"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1340
+msgid ""
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
+#, python-format
+msgid "%s - audio error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid "%s - audio problem"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid ""
+"The audio connection could not be set up for this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid "%s - print error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1433
+#, python-format
+msgid ""
+"%s\n"
+"...caused on printer %s by session\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid ""
+"%s\n"
+"...caused by session\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid "%s - start"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1450
+#, python-format
+msgid ""
+"New X2Go session starting up...\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid ""
+"Another client started X2Go session\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid "%s - resume"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1480
+#, python-format
+msgid ""
+"Resuming X2Go session...\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid ""
+"Another client resumed X2Go session\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid "%s - running"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid ""
+"Found already running session\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid "%s - suspend"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid ""
+"X2Go Session has been suspended\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid "%s - terminate"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid ""
+"X2Go Session has terminated\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/messages.py:74
+#, python-format
+msgid ""
+"Are you really sure you want to\n"
+"delete the session profile ,,%s''?"
+msgstr ""
+
+#: ../pyhoca/wxgui/messages.py:75
+#, python-format
+msgid ""
+"PyHoca-GUI is already running for user ,,%s''!\n"
+"\n"
+"Only one instance of PyHoca-GUI can be started per\n"
+"user. The PyHoca-GUI icon can be found in your desktops's\n"
+"notification area/systray."
+msgstr ""
+
+#: ../pyhoca/wxgui/messages.py:108
+msgid "Yes"
+msgstr ""
+
+#: ../pyhoca/wxgui/messages.py:109
+msgid "No"
+msgstr ""
+
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
+msgid "Ok"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:66
+#, python-format
+msgid "%s - Printing Preferences"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:68
+#, python-format
+msgid "%s - Incoming Print Job from  %s (%s)"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:73
+msgid "Open this dialog window"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:74
+msgid "Open with PDF viewer"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:75
+msgid "Save to a local folder"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:76
+msgid "Print to a local printer"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:77
+msgid "Run custom print command"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:80
+msgid "<Select a print action here>"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:114
+msgid "Print action"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:116
+msgid "Default action for incoming print jobs"
+msgstr ""
+
+#. widgets for print action PDFVIEW
+#: ../pyhoca/wxgui/printingprefs.py:120
+msgid "PDF viewer command"
+msgstr ""
+
+#. widgets for print action PDFSAVE
+#: ../pyhoca/wxgui/printingprefs.py:127
+msgid "Save PDFs to folder"
+msgstr ""
+
+#. widgets for print action PRINT
+#: ../pyhoca/wxgui/printingprefs.py:134
+msgid "Use this printer"
+msgstr ""
+
+#. widgets for print action PRINTCMD
+#: ../pyhoca/wxgui/printingprefs.py:138
+msgid "Custom print command"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:143
+msgid "Apply"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:145
+msgid "Print"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:254
+msgid "- print system is not available -"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:407
+msgid "Choose PDF viewer application"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:430
+msgid "Choose PDF saving location"
+msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr ""
diff --git a/po/bg.po b/po/bg.po
index 238f894..816902f 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,5 +1,5 @@
 # PyHoca-GUI / i18n.
-# Copyright (C) 2010-2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #                         Dick Kniep <dick.kniep at lindix.nl>
 # This file is distributed under the same license as the PyHoca-GUI package.
 # Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
@@ -8,570 +8,649 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PyHoca-GUI VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
 "PO-Revision-Date: 2011-09-17 02:17+0100\n"
 "Last-Translator: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>\n"
 "Language-Team: Bulgarian <chepati at yahoo.com>\n"
+"Language: bg\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: bg\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Poedit-Language: Bulgarian\n"
 "X-Poedit-Country: Bulgaria\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: ../pyhoca/wxgui/logon.py:80
+#: ../pyhoca/wxgui/logon.py:92
 #, python-format
 msgid "%s (via %s)"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
 msgid "Username"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
 msgid "Password"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:89
+#: ../pyhoca/wxgui/logon.py:101
 msgid "Authenticate"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:101
+#: ../pyhoca/wxgui/logon.py:113
 msgid "  Start SSH tunnel  "
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:109
+#: ../pyhoca/wxgui/logon.py:121
 msgid "Session login"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:110
+#: ../pyhoca/wxgui/logon.py:122
 msgid "SSH proxy server login"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
 msgid "Cancel"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
 #, python-format
 msgid "%s - connect failure"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
 #, python-format
 msgid "%s - connect"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:284
+#: ../pyhoca/wxgui/logon.py:299
 msgid "Authentication has been successful."
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:306
+#: ../pyhoca/wxgui/logon.py:330
 msgid "SSH tunnel started"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:311
+#: ../pyhoca/wxgui/logon.py:335
 msgid "Authentication failed!"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:317
+#: ../pyhoca/wxgui/logon.py:342
 #, python-format
-msgid "%s - ssh proxy"
+msgid "%s - SSH proxy"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:318
+#: ../pyhoca/wxgui/logon.py:343
 msgid "Authentication to the SSH proxy server failed!"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
 #, python-format
-msgid "%s - connect error"
+msgid "%s - socket error"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
 #, python-format
 msgid "%s - host key error"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
 msgid ""
 "The remote server's host key is invalid or has not been accepted by the user"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
 #, python-format
 msgid "%s - missing home directory"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
 msgid "The remote user's home directory does not exist."
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:363
+#: ../pyhoca/wxgui/logon.py:388
 #, python-format
 msgid "%s - key error"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
 #, python-format
 msgid "%s - auth error"
 msgstr ""
 
-#: ../pyhoca/wxgui/logon.py:388
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr ""
+
+#: ../pyhoca/wxgui/logon.py:413
 msgid "An unknown error occured during authentication!"
 msgstr ""
 
-#: ../pyhoca/wxgui/taskbar.py:79
+#: ../pyhoca/wxgui/taskbar.py:92
 #, python-format
 msgid ""
 "PyHoca-GUI\n"
 "Connecting you to ,,%s''"
 msgstr ""
 
-#: ../pyhoca/wxgui/taskbar.py:82
+#: ../pyhoca/wxgui/taskbar.py:96
 #, python-format
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 msgstr ""
 
-#: ../pyhoca/wxgui/taskbar.py:87
+#: ../pyhoca/wxgui/taskbar.py:106
 msgid ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
+"Connecting you to X2Go..."
 msgstr ""
 
-#: ../pyhoca/wxgui/taskbar.py:90
+#: ../pyhoca/wxgui/taskbar.py:110
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:72
+#: ../pyhoca/wxgui/profilemanager.py:82
 msgid "GNOME Desktop (GNOME)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:73
+#: ../pyhoca/wxgui/profilemanager.py:83
 msgid "K Desktop Environment (KDE)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:74
+#: ../pyhoca/wxgui/profilemanager.py:84
 msgid "Lightweight X Desktop (LXDE)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:75
+#: ../pyhoca/wxgui/profilemanager.py:85
 msgid "Trinity X Desktop (KDE3-like)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:76
+#: ../pyhoca/wxgui/profilemanager.py:86
 msgid "Unity X Desktop Shell (UNITY)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:77
-msgid "XDMCP Query"
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
 msgstr ""
 
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
-msgid "Windows Terminal Server (RDP-proxy)"
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
 msgstr ""
 
-#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
+#: ../pyhoca/wxgui/profilemanager.py:89
 msgid "Single Application"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
+#: ../pyhoca/wxgui/profilemanager.py:90
+msgid "XDMCP Query"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:91
+msgid "Windows Terminal Server (RDP-proxy)"
+msgstr ""
+
+#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
 msgid "Custom command"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:85
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
 msgid "Internet Browser"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:86
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
 msgid "Email Client"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:88
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
 msgid "Terminal"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:102
+#: ../pyhoca/wxgui/profilemanager.py:113
 msgid "Open file with system's default application"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:103
+#: ../pyhoca/wxgui/profilemanager.py:114
 msgid "Open application chooser dialog"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:104
+#: ../pyhoca/wxgui/profilemanager.py:115
 msgid "Save incoming file as ..."
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
 msgstr ""
 
 #. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:137
+#: ../pyhoca/wxgui/profilemanager.py:163
 msgid "Server"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:138
+#: ../pyhoca/wxgui/profilemanager.py:164
 msgid "Connection Link Speed"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:139
+#: ../pyhoca/wxgui/profilemanager.py:165
 msgid "Compression"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:140
+#: ../pyhoca/wxgui/profilemanager.py:166
 msgid "Display"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:141
+#: ../pyhoca/wxgui/profilemanager.py:167
 msgid "Keyboard"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:142
+#: ../pyhoca/wxgui/profilemanager.py:168
 msgid "Sound"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:143
+#: ../pyhoca/wxgui/profilemanager.py:169
 msgid "Printing"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:144
+#: ../pyhoca/wxgui/profilemanager.py:170
 msgid "Folder Exports"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:145
+#: ../pyhoca/wxgui/profilemanager.py:171
 msgid "File Import"
 msgstr ""
 
 #. ##
-#. ## widgets for the SESSION tab
+#. ## widgets for the PROFILE tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
+#: ../pyhoca/wxgui/profilemanager.py:176
 msgid "Name"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:162
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr ""
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:203
 msgid "Type"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:164
+#: ../pyhoca/wxgui/profilemanager.py:205
 msgid "Application"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:169
+#: ../pyhoca/wxgui/profilemanager.py:211
 msgid "RDP server"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:171
+#: ../pyhoca/wxgui/profilemanager.py:213
 msgid "RDP options"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
 msgstr ""
 
 #. ##
 #. ## widgets for the CONNECTION tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
 msgid "User"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:181
+#: ../pyhoca/wxgui/profilemanager.py:225
 msgid "Host"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:183
+#: ../pyhoca/wxgui/profilemanager.py:227
 msgid "Port"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:185
+#: ../pyhoca/wxgui/profilemanager.py:229
 msgid "RSA/DSA private key"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:188
+#: ../pyhoca/wxgui/profilemanager.py:232
 msgid "Server behind SSH proxy"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:191
+#: ../pyhoca/wxgui/profilemanager.py:235
 msgid "Key file"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:194
+#: ../pyhoca/wxgui/profilemanager.py:238
 msgid "Host[:Port]"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:196
+#: ../pyhoca/wxgui/profilemanager.py:240
 msgid "SSH Proxy Tunnel"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:204
+#: ../pyhoca/wxgui/profilemanager.py:248
 msgid "Modem"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:205
+#: ../pyhoca/wxgui/profilemanager.py:249
 msgid "ISDN"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:206
+#: ../pyhoca/wxgui/profilemanager.py:250
 msgid "ADSL"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:207
+#: ../pyhoca/wxgui/profilemanager.py:251
 msgid "WAN"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:208
+#: ../pyhoca/wxgui/profilemanager.py:252
 msgid "LAN"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:210
+#: ../pyhoca/wxgui/profilemanager.py:254
 msgid "Method"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:212
+#: ../pyhoca/wxgui/profilemanager.py:256
 msgid "Image quality"
 msgstr ""
 
 #. ##
 #. ## wigdets for the SETTINGS tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
+#: ../pyhoca/wxgui/profilemanager.py:262
 msgid "Fullscreen"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:219
+#: ../pyhoca/wxgui/profilemanager.py:263
 msgid "Custom Size"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:224
+#: ../pyhoca/wxgui/profilemanager.py:268
 msgid "Set display DPI"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:229
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:273
 msgid "Keyboard model"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:231
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:279
 msgid "Enable sound support"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:232
+#: ../pyhoca/wxgui/profilemanager.py:280
 msgid "Pulse Audio"
 msgstr ""
 
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
 #. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
+#: ../pyhoca/wxgui/profilemanager.py:284
 msgid "Arts (not supported)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:239
+#: ../pyhoca/wxgui/profilemanager.py:287
 msgid "esd"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:240
+#: ../pyhoca/wxgui/profilemanager.py:288
 msgid "Use default sound port"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:241
+#: ../pyhoca/wxgui/profilemanager.py:289
 msgid "Custom sound port"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:243
+#: ../pyhoca/wxgui/profilemanager.py:291
 msgid "Client Side printing"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:245
+#: ../pyhoca/wxgui/profilemanager.py:293
 msgid "Use local folder sharing"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:246
+#: ../pyhoca/wxgui/profilemanager.py:294
 msgid "Path"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
 msgid "Add"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:251
+#: ../pyhoca/wxgui/profilemanager.py:299
 msgid "Local Path"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:252
+#: ../pyhoca/wxgui/profilemanager.py:300
 msgid "Connect Method"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:253
+#: ../pyhoca/wxgui/profilemanager.py:301
 msgid "Delete"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:255
+#: ../pyhoca/wxgui/profilemanager.py:303
 msgid "Convert between client and server encodings"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:256
+#: ../pyhoca/wxgui/profilemanager.py:304
 msgid "Client encoding"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:258
+#: ../pyhoca/wxgui/profilemanager.py:306
 msgid "Server encoding"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:261
+#: ../pyhoca/wxgui/profilemanager.py:309
 msgid "Use file MIME box for local file import"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:262
+#: ../pyhoca/wxgui/profilemanager.py:310
 msgid "Extensions"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:264
+#: ../pyhoca/wxgui/profilemanager.py:312
 msgid "Action"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:269
+#: ../pyhoca/wxgui/profilemanager.py:317
 msgid "Defaults"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:271
+#: ../pyhoca/wxgui/profilemanager.py:319
 msgid "Save"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:272
+#: ../pyhoca/wxgui/profilemanager.py:320
 msgid "Reset"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
 msgid "automatically"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
 msgid "manually"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:320
+#: ../pyhoca/wxgui/profilemanager.py:376
 msgid "PyHoca-GUI Profile Manager - new profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/profilemanager.py:378
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s (connected)"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:324
+#: ../pyhoca/wxgui/profilemanager.py:380
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:666
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:753
 msgid "Connection"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:667
+#: ../pyhoca/wxgui/profilemanager.py:754
 msgid "Settings"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:668
+#: ../pyhoca/wxgui/profilemanager.py:755
 msgid "Sharing"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1100
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr ""
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
 msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1103
+#: ../pyhoca/wxgui/profilemanager.py:1287
 msgid "Choose an icon for this session profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1220
+#: ../pyhoca/wxgui/profilemanager.py:1509
 msgid "All files (*.*)|*"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
 msgid "Choose a public SSH key"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1389
+#: ../pyhoca/wxgui/profilemanager.py:1784
 msgid "Choose a folder to share within a session"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
 msgid "Profile Manager"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
+#: ../pyhoca/wxgui/profilemanager.py:1912
 msgid "Profile name is missing, profile unusable!!!"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
 #, python-format
 msgid "Profile name %s already exists!!!"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1464
+#: ../pyhoca/wxgui/profilemanager.py:1923
 msgid "The SSH proxy configuration is incomplete. Try again."
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1474
+#: ../pyhoca/wxgui/profilemanager.py:1933
 #, python-format
 msgid ""
 "Another session profile (%s) already uses [%s]:%s for binding a local SSH "
@@ -579,197 +658,356 @@ msgid ""
 "Please change the SSH proxy settings accordingly."
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1494
+#: ../pyhoca/wxgui/profilemanager.py:1960
 #, python-format
 msgid "%s - profile added"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1495
+#: ../pyhoca/wxgui/profilemanager.py:1961
 msgid "A new session profile has been added."
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1499
+#: ../pyhoca/wxgui/profilemanager.py:1965
 #, python-format
 msgid "%s - modified"
 msgstr ""
 
-#: ../pyhoca/wxgui/profilemanager.py:1500
+#: ../pyhoca/wxgui/profilemanager.py:1966
 msgid "Changes to profile have been saved."
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:55
+#: ../pyhoca/wxgui/menus_taskbar.py:75
 msgid "Edit Profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:57
-msgid "Delete Profile"
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
 msgstr ""
 
 #: ../pyhoca/wxgui/menus_taskbar.py:79
+msgid "Delete Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:107
 #, python-format
 msgid "About %s (%s)..."
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:102
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
 msgid "Printing Preferences"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:108
+#: ../pyhoca/wxgui/menus_taskbar.py:148
 msgid "Client Options"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
 msgid "E&xit"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:159
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
 msgid "Resume Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:161
+#: ../pyhoca/wxgui/menus_taskbar.py:236
 msgid "Resume Session (not possible)"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:169
+#: ../pyhoca/wxgui/menus_taskbar.py:247
 msgid "Transfer Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:171
+#: ../pyhoca/wxgui/menus_taskbar.py:249
 msgid "Transfer Session (not possible)"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:174
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
 msgid "Suspend Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:176
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
 msgid "Terminate Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:206
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
 msgid "&Share custom local folder"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:229
+#: ../pyhoca/wxgui/menus_taskbar.py:344
 msgid "Share:"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:240
+#: ../pyhoca/wxgui/menus_taskbar.py:355
 msgid "Unshare:"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:250
+#: ../pyhoca/wxgui/menus_taskbar.py:365
 msgid "Unshare &all local folders"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:290
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
 msgid "Start &new Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:306
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
 msgid "Running"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:308
+#: ../pyhoca/wxgui/menus_taskbar.py:721
 msgid "Suspended"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:320
+#: ../pyhoca/wxgui/menus_taskbar.py:740
 msgid "&Clean all sessions"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:322
+#: ../pyhoca/wxgui/menus_taskbar.py:746
 msgid "Customize &profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:325
+#: ../pyhoca/wxgui/menus_taskbar.py:758
 msgid "Shared &folders"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:333
+#: ../pyhoca/wxgui/menus_taskbar.py:770
 msgid "&Disconnect from Server"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:359
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr ""
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
 msgid "Add Profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:428
+#: ../pyhoca/wxgui/menus_taskbar.py:911
 msgid "No session profiles defined"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Start/Resume Session"
 msgstr ""
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Connect Server"
 msgstr ""
 
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
 #, python-format
 msgid "About %s ..."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:610
 msgid "Public SSH key authentication has been successful."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/frontend.py:644
 msgid ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:665
 msgid "Authentication protocol communication incomplete! Try again..."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:431
+#: ../pyhoca/wxgui/frontend.py:672
 #, python-format
 msgid "%s - auth key error"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:452
+#: ../pyhoca/wxgui/frontend.py:693
 msgid "An unknown error occurred during authentication!"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:573
+#: ../pyhoca/wxgui/frontend.py:961
 #, python-format
 msgid "%s - disconnect"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:589
+#: ../pyhoca/wxgui/frontend.py:977
 msgid "New Session Profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:616
+#: ../pyhoca/wxgui/frontend.py:1029
 #, python-format
 msgid "Really Delete Session Profile ,,%s''?"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 #, python-format
 msgid "%s - profile deleted"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 msgid "The session profile has been deleted."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:1053
 #, python-format
 msgid "%s - share local folder with sessions of this profile"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:715
+#: ../pyhoca/wxgui/frontend.py:1194
 #, python-format
 msgid ""
 "The authenticity of host [%s]:%s can't be established.\n"
@@ -778,105 +1016,148 @@ msgid ""
 "Are you sure you want to continue connecting?"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:723
+#: ../pyhoca/wxgui/frontend.py:1202
 #, python-format
 msgid "%s: Confirm Host Authorization"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid "%s - channel error"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
 "server..."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid "%s - session failure"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:752
+#: ../pyhoca/wxgui/frontend.py:1265
 msgid "The session startup failed."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:759
+#: ../pyhoca/wxgui/frontend.py:1283
 #, python-format
-msgid "The command ,,%s'' is not available on X2go server."
+msgid "The command ,,%s'' is not available on X2Go server."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:761
+#: ../pyhoca/wxgui/frontend.py:1285
 #, python-format
 msgid ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:767
+#: ../pyhoca/wxgui/frontend.py:1302
 #, python-format
 msgid ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
 "been denied."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
 "X2go/SSH server. Session startup failed."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 #, python-format
 msgid "%s - audio warning"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
 #, python-format
 msgid "%s - audio error"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid "%s - audio problem"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid ""
 "The audio connection could not be set up for this session.\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid "%s - print error"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:808
+#: ../pyhoca/wxgui/frontend.py:1433
 #, python-format
 msgid ""
 "%s\n"
@@ -884,7 +1165,7 @@ msgid ""
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid ""
 "%s\n"
@@ -892,88 +1173,88 @@ msgid ""
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid "%s - start"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:814
+#: ../pyhoca/wxgui/frontend.py:1450
 #, python-format
 msgid ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid "%s - resume"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:822
+#: ../pyhoca/wxgui/frontend.py:1480
 #, python-format
 msgid ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid "%s - running"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid ""
 "Found already running session\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid "%s - suspend"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid "%s - terminate"
 msgstr ""
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 msgstr ""
 
-#: ../pyhoca/wxgui/messages.py:53
+#: ../pyhoca/wxgui/messages.py:74
 #, python-format
 msgid ""
 "Are you really sure you want to\n"
 "delete the session profile ,,%s''?"
 msgstr ""
 
-#: ../pyhoca/wxgui/messages.py:54
+#: ../pyhoca/wxgui/messages.py:75
 #, python-format
 msgid ""
 "PyHoca-GUI is already running for user ,,%s''!\n"
@@ -983,96 +1264,113 @@ msgid ""
 "notification area/systray."
 msgstr ""
 
-#: ../pyhoca/wxgui/messages.py:87
+#: ../pyhoca/wxgui/messages.py:108
 msgid "Yes"
 msgstr ""
 
-#: ../pyhoca/wxgui/messages.py:88
+#: ../pyhoca/wxgui/messages.py:109
 msgid "No"
 msgstr ""
 
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
 msgid "Ok"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:57
+#: ../pyhoca/wxgui/printingprefs.py:66
 #, python-format
 msgid "%s - Printing Preferences"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:59
+#: ../pyhoca/wxgui/printingprefs.py:68
 #, python-format
 msgid "%s - Incoming Print Job from  %s (%s)"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:64
+#: ../pyhoca/wxgui/printingprefs.py:73
 msgid "Open this dialog window"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:65
+#: ../pyhoca/wxgui/printingprefs.py:74
 msgid "Open with PDF viewer"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:66
+#: ../pyhoca/wxgui/printingprefs.py:75
 msgid "Save to a local folder"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:67
+#: ../pyhoca/wxgui/printingprefs.py:76
 msgid "Print to a local printer"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:68
+#: ../pyhoca/wxgui/printingprefs.py:77
 msgid "Run custom print command"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:71
+#: ../pyhoca/wxgui/printingprefs.py:80
 msgid "<Select a print action here>"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:105
+#: ../pyhoca/wxgui/printingprefs.py:114
 msgid "Print action"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:107
+#: ../pyhoca/wxgui/printingprefs.py:116
 msgid "Default action for incoming print jobs"
 msgstr ""
 
 #. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
+#: ../pyhoca/wxgui/printingprefs.py:120
 msgid "PDF viewer command"
 msgstr ""
 
 #. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
+#: ../pyhoca/wxgui/printingprefs.py:127
 msgid "Save PDFs to folder"
 msgstr ""
 
 #. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
+#: ../pyhoca/wxgui/printingprefs.py:134
 msgid "Use this printer"
 msgstr ""
 
 #. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
+#: ../pyhoca/wxgui/printingprefs.py:138
 msgid "Custom print command"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:134
+#: ../pyhoca/wxgui/printingprefs.py:143
 msgid "Apply"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:136
+#: ../pyhoca/wxgui/printingprefs.py:145
 msgid "Print"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:227
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr ""
+
+#: ../pyhoca/wxgui/printingprefs.py:254
 msgid "- print system is not available -"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:334
+#: ../pyhoca/wxgui/printingprefs.py:407
 msgid "Choose PDF viewer application"
 msgstr ""
 
-#: ../pyhoca/wxgui/printingprefs.py:350
+#: ../pyhoca/wxgui/printingprefs.py:430
 msgid "Choose PDF saving location"
 msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr ""
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr ""
diff --git a/po/de.po b/po/de.po
index b8902c0..5338d8a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,5 +1,5 @@
 # PyHoca-GUI / i18n.
-# Copyright (C) 2010-2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #                         Dick Kniep <dick.kniep at lindix.nl>
 # This file is distributed under the same license as the PyHoca-GUI package.
 # Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
@@ -8,134 +8,142 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PyHoca-GUI VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
-"PO-Revision-Date: 2011-09-25 02:37+0100\n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-05-31 22:04+0100\n"
 "Last-Translator: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>\n"
 "Language-Team: de <mike.gabriel at das-netzwerkteam.de>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: German\n"
 "X-Poedit-Country: GERMANY\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: ../pyhoca/wxgui/logon.py:80
+#: ../pyhoca/wxgui/logon.py:92
 #, python-format
 msgid "%s (via %s)"
 msgstr "%s (via %s)"
 
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
 msgid "Username"
 msgstr "Benutzername"
 
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
 msgid "Password"
 msgstr "Kennwort"
 
-#: ../pyhoca/wxgui/logon.py:89
+#: ../pyhoca/wxgui/logon.py:101
 msgid "Authenticate"
 msgstr "Anmelden"
 
-#: ../pyhoca/wxgui/logon.py:101
+#: ../pyhoca/wxgui/logon.py:113
 msgid "  Start SSH tunnel  "
 msgstr "SSH Tunnel aufbauen"
 
-#: ../pyhoca/wxgui/logon.py:109
+#: ../pyhoca/wxgui/logon.py:121
 msgid "Session login"
 msgstr "Sitzungslogin"
 
-#: ../pyhoca/wxgui/logon.py:110
+#: ../pyhoca/wxgui/logon.py:122
 msgid "SSH proxy server login"
 msgstr "Anmeldung an SSH Proxy"
 
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
 #, python-format
 msgid "%s - connect failure"
 msgstr "%s - Verbindung fehlgeschlagen"
 
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
-msgstr "Benutzer darf keine X2go Sitzungen starten!"
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr "Benutzer darf keine X2Go Sitzungen starten!"
 
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
 #, python-format
 msgid "%s - connect"
 msgstr "%s - verbinden"
 
-#: ../pyhoca/wxgui/logon.py:284
+#: ../pyhoca/wxgui/logon.py:299
 msgid "Authentication has been successful."
 msgstr "Anmeldung war erfolgreich."
 
-#: ../pyhoca/wxgui/logon.py:306
+#: ../pyhoca/wxgui/logon.py:330
 msgid "SSH tunnel started"
 msgstr "SSH Tunnel gestartet"
 
-#: ../pyhoca/wxgui/logon.py:311
+#: ../pyhoca/wxgui/logon.py:335
 msgid "Authentication failed!"
 msgstr "Anmeldung fehlgeschlagen!"
 
-#: ../pyhoca/wxgui/logon.py:317
+#: ../pyhoca/wxgui/logon.py:342
 #, python-format
-msgid "%s - ssh proxy"
+msgid "%s - SSH proxy"
 msgstr "%s - SSH Proxy"
 
-#: ../pyhoca/wxgui/logon.py:318
+#: ../pyhoca/wxgui/logon.py:343
 msgid "Authentication to the SSH proxy server failed!"
 msgstr "Anmeldung am SSH Proxy Server ist fehlgeschlagen"
 
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
 #, python-format
-msgid "%s - connect error"
-msgstr "%s - Verbindungsfehler"
+msgid "%s - socket error"
+msgstr "%s - Socket-Fehler"
 
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
 #, python-format
 msgid "%s - host key error"
 msgstr "%s - ungültiger Server-Schlüssel"
 
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
 msgid ""
 "The remote server's host key is invalid or has not been accepted by the user"
 msgstr ""
-"Der Host-Schlüssel des X2go Servers ist ungültig oder wurde vom Benutzer "
+"Der Host-Schlüssel des X2Go Servers ist ungültig oder wurde vom Benutzer "
 "nicht akzeptiert"
 
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
 #, python-format
 msgid "%s - missing home directory"
 msgstr "%s - Benutzerverzeichnis nicht vorhanden"
 
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
 msgid "The remote user's home directory does not exist."
 msgstr ""
 "Das serverseitige Benutzerverzeichnis (HOME-Verzeichnis) existiert nicht."
 
-#: ../pyhoca/wxgui/logon.py:363
+#: ../pyhoca/wxgui/logon.py:388
 #, python-format
 msgid "%s - key error"
 msgstr "%s - ungültiger Schlüssel"
 
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
 #, python-format
 msgid "%s - auth error"
 msgstr "%s - Anmeldefehler"
 
-#: ../pyhoca/wxgui/logon.py:388
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - SSH-Fehler"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - unbekannter Fehler"
+
+#: ../pyhoca/wxgui/logon.py:413
 msgid "An unknown error occured during authentication!"
 msgstr "Ein unbekannter Fehler ist während der Serveranmeldung aufgetreten!"
 
-#: ../pyhoca/wxgui/taskbar.py:79
+#: ../pyhoca/wxgui/taskbar.py:92
 #, python-format
 msgid ""
 "PyHoca-GUI\n"
@@ -144,443 +152,520 @@ msgstr ""
 "PyHoca-GUI\n"
 "Verbinde mit ,,%s''"
 
-#: ../pyhoca/wxgui/taskbar.py:82
+#: ../pyhoca/wxgui/taskbar.py:96
 #, python-format
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Verbindungsaufbau zu X2go Server ,,%s'' läuft"
+"Verbindungsaufbau zu X2Go Server ,,%s'' läuft"
 
-#: ../pyhoca/wxgui/taskbar.py:87
+#: ../pyhoca/wxgui/taskbar.py:106
 msgid ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
-msgstr "Verbinden mit X2go Server..."
+"Connecting you to X2Go..."
+msgstr "Verbinden mit X2Go Server..."
 
-#: ../pyhoca/wxgui/taskbar.py:90
+#: ../pyhoca/wxgui/taskbar.py:110
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Verbindungen zu entferntem X2go Server aufbauen"
+"Verbindungen zu entferntem X2Go Server aufbauen"
 
-#: ../pyhoca/wxgui/profilemanager.py:72
+#: ../pyhoca/wxgui/profilemanager.py:82
 msgid "GNOME Desktop (GNOME)"
 msgstr "GNOME Desktop (GNOME)"
 
-#: ../pyhoca/wxgui/profilemanager.py:73
+#: ../pyhoca/wxgui/profilemanager.py:83
 msgid "K Desktop Environment (KDE)"
 msgstr "K Desktop Environment (KDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:74
+#: ../pyhoca/wxgui/profilemanager.py:84
 msgid "Lightweight X Desktop (LXDE)"
 msgstr "Lightweight X Desktop (LXDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:75
+#: ../pyhoca/wxgui/profilemanager.py:85
 msgid "Trinity X Desktop (KDE3-like)"
 msgstr "Trinity X Desktop (ähnlich KDE3)"
 
-#: ../pyhoca/wxgui/profilemanager.py:76
+#: ../pyhoca/wxgui/profilemanager.py:86
 msgid "Unity X Desktop Shell (UNITY)"
 msgstr "Unity X Desktop Umgebung (UNITY)"
 
-#: ../pyhoca/wxgui/profilemanager.py:77
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 Desktop (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Server-publizierte Anwendungen"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Einzelne Anwendung"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
 msgid "XDMCP Query"
 msgstr "XDMCP-Serveranfrage (Query)"
 
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
+#: ../pyhoca/wxgui/profilemanager.py:91
 msgid "Windows Terminal Server (RDP-proxy)"
 msgstr "Windows Terminalserver (RDP-proxy)"
 
 #. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
-msgid "Single Application"
-msgstr "Einzelne Anwendung"
-
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
 msgid "Custom command"
 msgstr "Benutzerdef. Kommando"
 
-#: ../pyhoca/wxgui/profilemanager.py:85
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
 msgid "Internet Browser"
 msgstr "Internetbrowser"
 
-#: ../pyhoca/wxgui/profilemanager.py:86
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
 msgid "Email Client"
 msgstr "E-Mail Programm"
 
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
-msgstr "Openoffice.org"
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Büroprogramm (Office)"
 
-#: ../pyhoca/wxgui/profilemanager.py:88
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
 msgid "Terminal"
 msgstr "Terminalkonsole"
 
-#: ../pyhoca/wxgui/profilemanager.py:102
+#: ../pyhoca/wxgui/profilemanager.py:113
 msgid "Open file with system's default application"
 msgstr "Mit Standardanwendung des Systems öffnen"
 
-#: ../pyhoca/wxgui/profilemanager.py:103
+#: ../pyhoca/wxgui/profilemanager.py:114
 msgid "Open application chooser dialog"
 msgstr "Auswahldialog öffnen, um Anwendung auszuwählen"
 
-#: ../pyhoca/wxgui/profilemanager.py:104
+#: ../pyhoca/wxgui/profilemanager.py:115
 msgid "Save incoming file as ..."
 msgstr "Eingehende Datei speichern unter ..."
 
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
-msgstr "neues Sitzungsprofil"
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "Einstellungen übernommen von"
 
 #. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
-msgstr "Profil"
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Sitzungstitel"
 
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
-msgstr "Sitzung"
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Sitzungsfenster"
 
-#: ../pyhoca/wxgui/profilemanager.py:137
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Sitzungsstart"
+
+#: ../pyhoca/wxgui/profilemanager.py:163
 msgid "Server"
 msgstr "Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:138
+#: ../pyhoca/wxgui/profilemanager.py:164
 msgid "Connection Link Speed"
 msgstr "Verbindungsgeschwindigkeit"
 
-#: ../pyhoca/wxgui/profilemanager.py:139
+#: ../pyhoca/wxgui/profilemanager.py:165
 msgid "Compression"
 msgstr "Komprimierung"
 
-#: ../pyhoca/wxgui/profilemanager.py:140
+#: ../pyhoca/wxgui/profilemanager.py:166
 msgid "Display"
 msgstr "Anzeige"
 
-#: ../pyhoca/wxgui/profilemanager.py:141
+#: ../pyhoca/wxgui/profilemanager.py:167
 msgid "Keyboard"
 msgstr "Tastatur"
 
-#: ../pyhoca/wxgui/profilemanager.py:142
+#: ../pyhoca/wxgui/profilemanager.py:168
 msgid "Sound"
 msgstr "Audio"
 
-#: ../pyhoca/wxgui/profilemanager.py:143
+#: ../pyhoca/wxgui/profilemanager.py:169
 msgid "Printing"
 msgstr "Drucken"
 
-#: ../pyhoca/wxgui/profilemanager.py:144
+#: ../pyhoca/wxgui/profilemanager.py:170
 msgid "Folder Exports"
 msgstr "Ordnerfreigabe"
 
-#: ../pyhoca/wxgui/profilemanager.py:145
+#: ../pyhoca/wxgui/profilemanager.py:171
 msgid "File Import"
 msgstr "Dateiimport"
 
 #. ##
-#. ## widgets for the SESSION tab
+#. ## widgets for the PROFILE tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
+#: ../pyhoca/wxgui/profilemanager.py:176
 msgid "Name"
 msgstr "Name"
 
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
-msgstr "Symbol"
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Sitzungsfenstertitel setzen"
 
-#: ../pyhoca/wxgui/profilemanager.py:162
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Standardtitel für Sitzungsfenster"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Sitzungstitel anpassen"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Fenstersymbol"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Sitzung nach Anmeldung automatisch starten"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "Automatisch anmelden nach %s Programmstart"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
 msgid "Type"
 msgstr "Typ"
 
-#: ../pyhoca/wxgui/profilemanager.py:164
+#: ../pyhoca/wxgui/profilemanager.py:205
 msgid "Application"
 msgstr "Anwendung"
 
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
-msgstr "RDP Einstellungen"
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "XDMCP Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:169
+#: ../pyhoca/wxgui/profilemanager.py:211
 msgid "RDP server"
 msgstr "RDP Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:171
+#: ../pyhoca/wxgui/profilemanager.py:213
 msgid "RDP options"
 msgstr "RDP Optionen"
 
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
-msgstr "XDMCP Server"
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr ""
+"Serverseitige Anwendung(en) in lokalen Desktop integrieren (sog. rootless "
+"Modus)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Menü mit Server-publizierten Anwendungen"
 
 #. ##
 #. ## widgets for the CONNECTION tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
 msgid "User"
 msgstr "Benutzer"
 
-#: ../pyhoca/wxgui/profilemanager.py:181
+#: ../pyhoca/wxgui/profilemanager.py:225
 msgid "Host"
 msgstr "Hostname"
 
-#: ../pyhoca/wxgui/profilemanager.py:183
+#: ../pyhoca/wxgui/profilemanager.py:227
 msgid "Port"
 msgstr "Port"
 
-#: ../pyhoca/wxgui/profilemanager.py:185
+#: ../pyhoca/wxgui/profilemanager.py:229
 msgid "RSA/DSA private key"
 msgstr "Privater RSA/DSA Schlüssel"
 
-#: ../pyhoca/wxgui/profilemanager.py:188
+#: ../pyhoca/wxgui/profilemanager.py:232
 msgid "Server behind SSH proxy"
 msgstr "Server hinter SSH-Proxy"
 
-#: ../pyhoca/wxgui/profilemanager.py:191
+#: ../pyhoca/wxgui/profilemanager.py:235
 msgid "Key file"
 msgstr "Schlüssel"
 
-#: ../pyhoca/wxgui/profilemanager.py:194
+#: ../pyhoca/wxgui/profilemanager.py:238
 msgid "Host[:Port]"
 msgstr "Hostname[:Port]"
 
-#: ../pyhoca/wxgui/profilemanager.py:196
+#: ../pyhoca/wxgui/profilemanager.py:240
 msgid "SSH Proxy Tunnel"
 msgstr "SSH-Proxytunnel"
 
-#: ../pyhoca/wxgui/profilemanager.py:204
+#: ../pyhoca/wxgui/profilemanager.py:248
 msgid "Modem"
 msgstr "Modem"
 
-#: ../pyhoca/wxgui/profilemanager.py:205
+#: ../pyhoca/wxgui/profilemanager.py:249
 msgid "ISDN"
 msgstr "ISDN"
 
-#: ../pyhoca/wxgui/profilemanager.py:206
+#: ../pyhoca/wxgui/profilemanager.py:250
 msgid "ADSL"
 msgstr "ADSL"
 
-#: ../pyhoca/wxgui/profilemanager.py:207
+#: ../pyhoca/wxgui/profilemanager.py:251
 msgid "WAN"
 msgstr "WAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:208
+#: ../pyhoca/wxgui/profilemanager.py:252
 msgid "LAN"
 msgstr "LAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:210
+#: ../pyhoca/wxgui/profilemanager.py:254
 msgid "Method"
 msgstr "Methode"
 
-#: ../pyhoca/wxgui/profilemanager.py:212
+#: ../pyhoca/wxgui/profilemanager.py:256
 msgid "Image quality"
 msgstr "Bildqualität"
 
 #. ##
 #. ## wigdets for the SETTINGS tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
+#: ../pyhoca/wxgui/profilemanager.py:262
 msgid "Fullscreen"
 msgstr "Vollbild"
 
-#: ../pyhoca/wxgui/profilemanager.py:219
+#: ../pyhoca/wxgui/profilemanager.py:263
 msgid "Custom Size"
 msgstr "Benutzerdefinierte Größe"
 
-#: ../pyhoca/wxgui/profilemanager.py:224
+#: ../pyhoca/wxgui/profilemanager.py:268
 msgid "Set display DPI"
 msgstr "DPI-Wert für Anzeige setzen"
 
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
-msgstr "Aktuelle Tastatureinstellungen beibehalten"
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr ""
+"Keine Einstellungen (zum Konfigurieren der Tastatur müssen Server seitige "
+"Tools verwendet werden)"
+
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+"Tastaturkonfiguration dieses Computers automatisch erkennen und in der "
+"Sitzung verwenden"
 
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
-msgstr "Tastaturlayout"
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Tastatureinstellungen der Sitzung wie folgt anpassen"
 
-#: ../pyhoca/wxgui/profilemanager.py:229
+#: ../pyhoca/wxgui/profilemanager.py:273
 msgid "Keyboard model"
 msgstr "Tastaturmodell"
 
-#: ../pyhoca/wxgui/profilemanager.py:231
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Layout"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Layoutvariante"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
 msgid "Enable sound support"
 msgstr "Audiounterstützung aktivieren"
 
-#: ../pyhoca/wxgui/profilemanager.py:232
+#: ../pyhoca/wxgui/profilemanager.py:280
 msgid "Pulse Audio"
 msgstr "Pulse Audio"
 
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
 #. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
+#: ../pyhoca/wxgui/profilemanager.py:284
 msgid "Arts (not supported)"
 msgstr "Arts (nicht unterstützt)"
 
-#: ../pyhoca/wxgui/profilemanager.py:239
+#: ../pyhoca/wxgui/profilemanager.py:287
 msgid "esd"
 msgstr "esd"
 
-#: ../pyhoca/wxgui/profilemanager.py:240
+#: ../pyhoca/wxgui/profilemanager.py:288
 msgid "Use default sound port"
 msgstr "Standard Audio-Port verwenden"
 
-#: ../pyhoca/wxgui/profilemanager.py:241
+#: ../pyhoca/wxgui/profilemanager.py:289
 msgid "Custom sound port"
 msgstr "Benutzerdefinierter Audio-Port"
 
-#: ../pyhoca/wxgui/profilemanager.py:243
+#: ../pyhoca/wxgui/profilemanager.py:291
 msgid "Client Side printing"
 msgstr "Unterstützung für lokale Druckeranbindung"
 
-#: ../pyhoca/wxgui/profilemanager.py:245
+#: ../pyhoca/wxgui/profilemanager.py:293
 msgid "Use local folder sharing"
 msgstr "Lokale Ordnerfreigabe verwenden"
 
-#: ../pyhoca/wxgui/profilemanager.py:246
+#: ../pyhoca/wxgui/profilemanager.py:294
 msgid "Path"
 msgstr "Pfad"
 
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: ../pyhoca/wxgui/profilemanager.py:251
+#: ../pyhoca/wxgui/profilemanager.py:299
 msgid "Local Path"
 msgstr "Lokaler Pfad"
 
-#: ../pyhoca/wxgui/profilemanager.py:252
+#: ../pyhoca/wxgui/profilemanager.py:300
 msgid "Connect Method"
 msgstr "Verbindungsart"
 
-#: ../pyhoca/wxgui/profilemanager.py:253
+#: ../pyhoca/wxgui/profilemanager.py:301
 msgid "Delete"
 msgstr "Entfernen"
 
-#: ../pyhoca/wxgui/profilemanager.py:255
+#: ../pyhoca/wxgui/profilemanager.py:303
 msgid "Convert between client and server encodings"
 msgstr "Zeichenkodierung zwischen Server und Client übersetzen"
 
-#: ../pyhoca/wxgui/profilemanager.py:256
+#: ../pyhoca/wxgui/profilemanager.py:304
 msgid "Client encoding"
 msgstr "Zeichenkodierung Client"
 
-#: ../pyhoca/wxgui/profilemanager.py:258
+#: ../pyhoca/wxgui/profilemanager.py:306
 msgid "Server encoding"
 msgstr "Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:261
+#: ../pyhoca/wxgui/profilemanager.py:309
 msgid "Use file MIME box for local file import"
 msgstr "MIME-Box für lokalen Dateiimport verwenden"
 
-#: ../pyhoca/wxgui/profilemanager.py:262
+#: ../pyhoca/wxgui/profilemanager.py:310
 msgid "Extensions"
 msgstr "Erweiterungen"
 
-#: ../pyhoca/wxgui/profilemanager.py:264
+#: ../pyhoca/wxgui/profilemanager.py:312
 msgid "Action"
 msgstr "Aktion"
 
-#: ../pyhoca/wxgui/profilemanager.py:269
+#: ../pyhoca/wxgui/profilemanager.py:317
 msgid "Defaults"
 msgstr "Standardwerte"
 
-#: ../pyhoca/wxgui/profilemanager.py:271
+#: ../pyhoca/wxgui/profilemanager.py:319
 msgid "Save"
 msgstr "Speichern"
 
-#: ../pyhoca/wxgui/profilemanager.py:272
+#: ../pyhoca/wxgui/profilemanager.py:320
 msgid "Reset"
 msgstr "Zurücksetzen"
 
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
 msgid "automatically"
 msgstr "automatisch"
 
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
 msgid "manually"
 msgstr "manuell"
 
-#: ../pyhoca/wxgui/profilemanager.py:320
+#: ../pyhoca/wxgui/profilemanager.py:376
 msgid "PyHoca-GUI Profile Manager - new profile"
 msgstr "PyHoca-GUI Profilmanager - neues Sitzungsprofil"
 
-#: ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/profilemanager.py:378
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s (connected)"
 msgstr "PyHoca-GUI Profilmanager - %s (verbunden)"
 
-#: ../pyhoca/wxgui/profilemanager.py:324
+#: ../pyhoca/wxgui/profilemanager.py:380
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s"
 msgstr "PyHoca-GUI Profilmanager - %s"
 
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
-msgstr "Sitzungsprofil"
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Profil"
 
-#: ../pyhoca/wxgui/profilemanager.py:666
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Sitzung"
+
+#: ../pyhoca/wxgui/profilemanager.py:753
 msgid "Connection"
 msgstr "Verbindung"
 
-#: ../pyhoca/wxgui/profilemanager.py:667
+#: ../pyhoca/wxgui/profilemanager.py:754
 msgid "Settings"
 msgstr "Einstellungen"
 
-#: ../pyhoca/wxgui/profilemanager.py:668
+#: ../pyhoca/wxgui/profilemanager.py:755
 msgid "Sharing"
 msgstr "Ordnerfreigabe"
 
-#: ../pyhoca/wxgui/profilemanager.py:1100
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "pc105/de"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "de"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "nodeadkeys"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
 msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
 msgstr "Icon Dateien (*.png)|*.png|Alle Dateien (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1103
+#: ../pyhoca/wxgui/profilemanager.py:1287
 msgid "Choose an icon for this session profile"
 msgstr "Sitzungs-Icon für dieses Sitzungsprofil auswählen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1220
+#: ../pyhoca/wxgui/profilemanager.py:1509
 msgid "All files (*.*)|*"
 msgstr "Alle Dateien (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
 msgid "Choose a public SSH key"
 msgstr "Öffentlichen SSH-Schlüssel auswählen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1389
+#: ../pyhoca/wxgui/profilemanager.py:1784
 msgid "Choose a folder to share within a session"
 msgstr "Ordner zur Freigabe für Sitzungen auswählen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
 msgid "Profile Manager"
 msgstr "Profilmanager"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
+#: ../pyhoca/wxgui/profilemanager.py:1912
 msgid "Profile name is missing, profile unusable!!!"
 msgstr "Der Profilname fehlt, Profil so nicht verwendbar!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
 #, python-format
 msgid "Profile name %s already exists!!!"
 msgstr "Ein Sitzungsprofil mit dem Namen %s existiert bereits!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1464
+#: ../pyhoca/wxgui/profilemanager.py:1923
 msgid "The SSH proxy configuration is incomplete. Try again."
 msgstr ""
 "Die SSH Proxy Konfiguration ist unvollständig. Bitte nochmal versuchen."
 
-#: ../pyhoca/wxgui/profilemanager.py:1474
+#: ../pyhoca/wxgui/profilemanager.py:1933
 #, python-format
 msgid ""
 "Another session profile (%s) already uses [%s]:%s for binding a local SSH "
@@ -591,201 +676,360 @@ msgstr ""
 "einen lokalen SSH Proxy Port daran zu binden. Bitte die SSH Proxy "
 "Einstellungen entsprechend ändern."
 
-#: ../pyhoca/wxgui/profilemanager.py:1494
+#: ../pyhoca/wxgui/profilemanager.py:1960
 #, python-format
 msgid "%s - profile added"
 msgstr "%s - Profil hinzugefügt"
 
-#: ../pyhoca/wxgui/profilemanager.py:1495
+#: ../pyhoca/wxgui/profilemanager.py:1961
 msgid "A new session profile has been added."
 msgstr "Ein neues Sitzungsprofil wurde hinzugefügt."
 
-#: ../pyhoca/wxgui/profilemanager.py:1499
+#: ../pyhoca/wxgui/profilemanager.py:1965
 #, python-format
 msgid "%s - modified"
 msgstr "%s - modifiziert"
 
-#: ../pyhoca/wxgui/profilemanager.py:1500
+#: ../pyhoca/wxgui/profilemanager.py:1966
 msgid "Changes to profile have been saved."
 msgstr "Änderungen am Profil wurden übernommen."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:55
+#: ../pyhoca/wxgui/menus_taskbar.py:75
 msgid "Edit Profile"
 msgstr "Sitzungsprofil bearbeiten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:57
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Als Vorlage für neues Profil verwenden"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
 msgid "Delete Profile"
 msgstr "Sitzungsprofil löschen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:79
+#: ../pyhoca/wxgui/menus_taskbar.py:107
 #, python-format
 msgid "About %s (%s)..."
 msgstr "Über %s (%s) ..."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:102
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "Sitzungsprofil verwalten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
 msgid "Printing Preferences"
 msgstr "Druckeinstellungen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:108
+#: ../pyhoca/wxgui/menus_taskbar.py:148
 msgid "Client Options"
 msgstr "Optionen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
 msgid "E&xit"
 msgstr "&Beenden"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:159
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Fenstertitel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
 msgid "Resume Session"
 msgstr "Sitzung fortsetzen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:161
+#: ../pyhoca/wxgui/menus_taskbar.py:236
 msgid "Resume Session (not possible)"
 msgstr "Sitzung fortsetzen (nicht möglich)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:169
+#: ../pyhoca/wxgui/menus_taskbar.py:247
 msgid "Transfer Session"
 msgstr "Sitzung übernehmen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:171
+#: ../pyhoca/wxgui/menus_taskbar.py:249
 msgid "Transfer Session (not possible)"
 msgstr "Sitzung übernehmen (nicht möglich)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:174
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Sitzung anhalten (und Verbindung trenen / Anwendung beenden)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Sitzungen anhalten (und Verbindung trennen)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
 msgid "Suspend Session"
 msgstr "Sitzung anhalten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:176
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Sitzung beenden (und Verbindung trennen / Anwendung beenden)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Sitzung beenden (und Verbindung trennen)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
 msgid "Terminate Session"
 msgstr "Sitzung beenden"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:206
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Menübaum aktualisieren"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Sitzungsfenster umbenennen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Sitzungsfenster anzeigen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
 msgid "&Share custom local folder"
 msgstr "Lokalen Ordner für &Freigabe wählen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:229
+#: ../pyhoca/wxgui/menus_taskbar.py:344
 msgid "Share:"
 msgstr "Freigeben:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:240
+#: ../pyhoca/wxgui/menus_taskbar.py:355
 msgid "Unshare:"
 msgstr "Aushängen:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:250
+#: ../pyhoca/wxgui/menus_taskbar.py:365
 msgid "Unshare &all local folders"
 msgstr "Alle aushängen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:290
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Multimedia"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Entwicklung"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Bildung"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Spiele"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Grafik"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Büroanwendungen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "System"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Werkzeuge"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Weitere Anwendungen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Mit %s verbinden"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Verbindung wird aufgebaut..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "&Neue Desktopsitzung starten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Hole Anwendungsmenü..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Hole Anwendungsmenü"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
 msgid "Start &new Session"
 msgstr "&Neue Sitzung starten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:306
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Einzelne Anwendung starten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Anwendungsmenü verwalten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
 msgid "Running"
 msgstr "aktiv"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:308
+#: ../pyhoca/wxgui/menus_taskbar.py:721
 msgid "Suspended"
 msgstr "angehalten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:320
+#: ../pyhoca/wxgui/menus_taskbar.py:740
 msgid "&Clean all sessions"
 msgstr "Alle Sitzungen beenden"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:322
+#: ../pyhoca/wxgui/menus_taskbar.py:746
 msgid "Customize &profile"
 msgstr "Sitzungsprofil anpassen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:325
+#: ../pyhoca/wxgui/menus_taskbar.py:758
 msgid "Shared &folders"
 msgstr "Freigegebene Ordner"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:333
+#: ../pyhoca/wxgui/menus_taskbar.py:770
 msgid "&Disconnect from Server"
 msgstr "Von Server trennen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:359
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Sitzung anhalten und Anwendung beenden"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "Verbindung Trennen und Anwendung schließen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
 msgid "Add Profile"
 msgstr "Sitzungsprofil hinzufügen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:428
+#: ../pyhoca/wxgui/menus_taskbar.py:911
 msgid "No session profiles defined"
 msgstr "keine Sitzungsprofile definiert"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Start/Resume Session"
 msgstr "Sitzung starten/fortsetzen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Connect Server"
 msgstr "Serververbindung aufbauen"
 
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
 #, python-format
 msgid "About %s ..."
 msgstr "Über %s ..."
 
-#: ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Sitzungen werden angehalten und Programm beendet..."
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Trenne %s und schließe Anwendung..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Programm wird beendet..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - Serverwarnung"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "Der X2Go-Server publiziert kein Anwendungsmenü."
+
+#: ../pyhoca/wxgui/frontend.py:610
 msgid "Public SSH key authentication has been successful."
 msgstr "Authentifizierung mit öffentlichem SSH Schlüssel war erfolgreich."
 
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/frontend.py:644
 msgid ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 msgstr ""
 "Der Host-Schlüssel des SSH Proxy-Servers ist ungültig oder wurde vom "
 "Benutzer nicht akzeptiert"
 
-#: ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - EOF-Fehler"
+
+#: ../pyhoca/wxgui/frontend.py:665
 msgid "Authentication protocol communication incomplete! Try again..."
 msgstr ""
 "Kommunikation während Authentifizierungsprotokoll unvollständig! Nochmal "
 "versuchen..."
 
-#: ../pyhoca/wxgui/frontend.py:431
+#: ../pyhoca/wxgui/frontend.py:672
 #, python-format
 msgid "%s - auth key error"
 msgstr "%s - ungültiger Benutzerschlüssel"
 
-#: ../pyhoca/wxgui/frontend.py:452
+#: ../pyhoca/wxgui/frontend.py:693
 msgid "An unknown error occurred during authentication!"
 msgstr "Ein unbekannter Fehler ist während der Serveranmeldung aufgetreten!"
 
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
-msgstr "Beende X2go Sitzungen..."
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Unbekanntes Sitzungsprofil, vor Benutzung bitte einrichten..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - Sitzungsfunktion eingeschränkt"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Das Ausführen des Befehls ,,%s'' ist fehlgeschlagen."
 
-#: ../pyhoca/wxgui/frontend.py:573
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Beende X2Go Sitzungen..."
+
+#: ../pyhoca/wxgui/frontend.py:961
 #, python-format
 msgid "%s - disconnect"
 msgstr "%s - trennen"
 
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
-msgstr "X2go Profil ist nun nicht mehr verbunden."
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "X2Go Profil ist nun nicht mehr verbunden."
 
-#: ../pyhoca/wxgui/frontend.py:589
+#: ../pyhoca/wxgui/frontend.py:977
 msgid "New Session Profile"
 msgstr "Neues Sitzungsprofil"
 
-#: ../pyhoca/wxgui/frontend.py:616
+#: ../pyhoca/wxgui/frontend.py:1029
 #, python-format
 msgid "Really Delete Session Profile ,,%s''?"
 msgstr "Das Sitzungsprofil ,,%s'' wirklich löschen?"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 #, python-format
 msgid "%s - profile deleted"
 msgstr "%s - Profil gelöscht"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 msgid "The session profile has been deleted."
 msgstr "Das Sitzungsprofil wurde gelöscht."
 
-#: ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:1053
 #, python-format
 msgid "%s - share local folder with sessions of this profile"
 msgstr "%s - lokalen Ordner für dieses Sitzungsprofile freigeben"
 
-#: ../pyhoca/wxgui/frontend.py:715
+#: ../pyhoca/wxgui/frontend.py:1194
 #, python-format
 msgid ""
 "The authenticity of host [%s]:%s can't be established.\n"
@@ -798,17 +1042,17 @@ msgstr ""
 "\n"
 "Sind Sie sicher, dass sie fortfahren möchten? "
 
-#: ../pyhoca/wxgui/frontend.py:723
+#: ../pyhoca/wxgui/frontend.py:1202
 #, python-format
 msgid "%s: Confirm Host Authorization"
 msgstr "%s: Echtheit des Servers bestätigen"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid "%s - channel error"
 msgstr "%s - Verbindungsfehler"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
@@ -817,45 +1061,40 @@ msgstr ""
 "Die Verbindung zum Server %s wurde unerwartet unterbrochen! Bitte versuchen "
 "Sie, sich neu am Server anzumelden..."
 
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid "%s - session failure"
 msgstr "%s - Verbindung fehlgeschlagen"
 
-#: ../pyhoca/wxgui/frontend.py:752
+#: ../pyhoca/wxgui/frontend.py:1265
 msgid "The session startup failed."
 msgstr "Der Start der Sitzung ist fehlgeschlagen."
 
-#: ../pyhoca/wxgui/frontend.py:759
+#: ../pyhoca/wxgui/frontend.py:1283
 #, python-format
-msgid "The command ,,%s'' is not available on X2go server."
-msgstr "Der Befehl ,,%s'' ist auf dem X2go Server nicht  verfügbar."
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "Der Befehl ,,%s'' ist auf dem X2Go Server nicht  verfügbar."
 
-#: ../pyhoca/wxgui/frontend.py:761
+#: ../pyhoca/wxgui/frontend.py:1285
 #, python-format
 msgid ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 msgstr ""
-"Der Befehl ,,%s'' ist auf dem X2go Server nicht  verfügbar\n"
+"Der Befehl ,,%s'' ist auf dem X2Go Server nicht  verfügbar\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr "%s - Sitzungsfunktion eingeschränkt"
-
-#: ../pyhoca/wxgui/frontend.py:767
+#: ../pyhoca/wxgui/frontend.py:1302
 #, python-format
 msgid ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
 "been denied."
 msgstr ""
 "Eine Reverse TCP Port Weiterleitungsanfrage für Sitzung %s an Serverport %s "
-"wurde vom X2go Server abgelehnt."
+"wurde vom X2Go Server abgelehnt."
 
-#: ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
@@ -864,37 +1103,37 @@ msgstr ""
 "SSH Forwarding Tunnel zu [%s]:%s wurde für Sitzung %s vom X2go/SSH Server "
 "verweigert. Die Sitzung konnte nicht gestartet werden."
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 #, python-format
 msgid "%s - audio warning"
 msgstr "%s - Warnung Audiosystem"
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 msgstr ""
-"Das X2go PulseAudio System ist innerhalb von Remote Desktop Sitzungen nicht "
+"Das X2Go PulseAudio System ist innerhalb von Remote Desktop Sitzungen nicht "
 "verfügbar."
 
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
 #, python-format
 msgid "%s - audio error"
 msgstr "%s - Audiofehler"
 
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
-msgstr "Das X2go PulseAudio System konnte nicht gestartet werden."
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "Das X2Go PulseAudio System konnte nicht gestartet werden."
 
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
-msgstr "Das X2go PulseAudio System ist soeben abgestürzt."
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "Das X2Go PulseAudio System ist soeben abgestürzt."
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid "%s - audio problem"
 msgstr "%s - Audioproblem"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid ""
 "The audio connection could not be set up for this session.\n"
@@ -903,12 +1142,71 @@ msgstr ""
 "Die Audio-Verbindung für diese Sitzung konnte nicht aufgebaut werden.\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr "%s - Client-seitiges Drucken nicht verfügbar"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+"In dieser Sitzung können Client-seitige Drucker nicht verwendet werden. Der "
+"Server verweigert die Verbindung.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s - MIME box nicht verfügbar"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+"Der Server unterstützt die X2Go MIME box nicht.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - keine Freigabe Client-seitiger Ordner"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"Client-seitige Ordner können in dieser Sitzung nicht freigegeben werden. Der "
+"Server verweigert die Verbindung.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - keine Client-seitigen Ordner- und Druckerfreigaben möglich"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"Client-seitige Ordner und Drucker können für diese Sitzung nicht freigegeben "
+"werden.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid "%s - print error"
 msgstr "%s - Druckfehler"
 
-#: ../pyhoca/wxgui/frontend.py:808
+#: ../pyhoca/wxgui/frontend.py:1433
 #, python-format
 msgid ""
 "%s\n"
@@ -919,7 +1217,7 @@ msgstr ""
 "...verursacht an Drucker durch Sitzung\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid ""
 "%s\n"
@@ -930,58 +1228,58 @@ msgstr ""
 "...verursacht von Sitzung\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid "%s - start"
 msgstr "%s - starten"
 
-#: ../pyhoca/wxgui/frontend.py:814
+#: ../pyhoca/wxgui/frontend.py:1450
 #, python-format
 msgid ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 msgstr ""
-"Neue X2go Sitzung wird gestartet...\n"
+"Neue X2Go Sitzung wird gestartet...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 msgstr ""
-"Ein anderes X2go Programm hat diese Sitzung gestartet\n"
+"Ein anderes X2Go Programm hat diese Sitzung gestartet\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid "%s - resume"
 msgstr "%s - fortsetzen"
 
-#: ../pyhoca/wxgui/frontend.py:822
+#: ../pyhoca/wxgui/frontend.py:1480
 #, python-format
 msgid ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 msgstr ""
-"X2go Sitzung wird fortgesetzt...\n"
+"X2Go Sitzung wird fortgesetzt...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 msgstr ""
-"Eine andere X2go Anwendung hat die Sitzung fortgesetzt\n"
+"Eine andere X2Go Anwendung hat die Sitzung fortgesetzt\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid "%s - running"
 msgstr "%s - aktiv"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid ""
 "Found already running session\n"
@@ -990,35 +1288,35 @@ msgstr ""
 "Bereits aktive Sitzung gefunden\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid "%s - suspend"
 msgstr "%s - anhalten"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 msgstr ""
-"X2go Sitzung wurde angehalten\n"
+"X2Go Sitzung wurde angehalten\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid "%s - terminate"
 msgstr "%s - beenden"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 msgstr ""
-"X2go Sitzung wurde beendet\n"
+"X2Go Sitzung wurde beendet\n"
 "%s"
 
-#: ../pyhoca/wxgui/messages.py:53
+#: ../pyhoca/wxgui/messages.py:74
 #, python-format
 msgid ""
 "Are you really sure you want to\n"
@@ -1028,7 +1326,7 @@ msgstr ""
 "das Sitzungsprofil ,,%s''\n"
 "wirklich löschen möchten?"
 
-#: ../pyhoca/wxgui/messages.py:54
+#: ../pyhoca/wxgui/messages.py:75
 #, python-format
 msgid ""
 "PyHoca-GUI is already running for user ,,%s''!\n"
@@ -1043,100 +1341,179 @@ msgstr ""
 "gestartet werden. Das PyHoca-GUI Icon befindet sich auf\n"
 "Ihrem Desktop in der Benachrichtigungsleiste."
 
-#: ../pyhoca/wxgui/messages.py:87
+#: ../pyhoca/wxgui/messages.py:108
 msgid "Yes"
 msgstr "Ja"
 
-#: ../pyhoca/wxgui/messages.py:88
+#: ../pyhoca/wxgui/messages.py:109
 msgid "No"
 msgstr "Nein"
 
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
 msgid "Ok"
 msgstr "OK"
 
-#: ../pyhoca/wxgui/printingprefs.py:57
+#: ../pyhoca/wxgui/printingprefs.py:66
 #, python-format
 msgid "%s - Printing Preferences"
 msgstr "%s - Druckeinstellungen"
 
-#: ../pyhoca/wxgui/printingprefs.py:59
+#: ../pyhoca/wxgui/printingprefs.py:68
 #, python-format
 msgid "%s - Incoming Print Job from  %s (%s)"
 msgstr "%s - Eingehender Druckauftrag von  %s (%s)"
 
-#: ../pyhoca/wxgui/printingprefs.py:64
+#: ../pyhoca/wxgui/printingprefs.py:73
 msgid "Open this dialog window"
 msgstr "Dieses Auswahlfenster öffnen"
 
-#: ../pyhoca/wxgui/printingprefs.py:65
+#: ../pyhoca/wxgui/printingprefs.py:74
 msgid "Open with PDF viewer"
 msgstr "MIt PDF-Betrachter öffnen"
 
-#: ../pyhoca/wxgui/printingprefs.py:66
+#: ../pyhoca/wxgui/printingprefs.py:75
 msgid "Save to a local folder"
 msgstr "In lokalem Ordner speichern"
 
-#: ../pyhoca/wxgui/printingprefs.py:67
+#: ../pyhoca/wxgui/printingprefs.py:76
 msgid "Print to a local printer"
 msgstr "Auf lokalem Drucker drucken"
 
-#: ../pyhoca/wxgui/printingprefs.py:68
+#: ../pyhoca/wxgui/printingprefs.py:77
 msgid "Run custom print command"
 msgstr "Benutzerdefiniertes Druckkommando ausführen"
 
-#: ../pyhoca/wxgui/printingprefs.py:71
+#: ../pyhoca/wxgui/printingprefs.py:80
 msgid "<Select a print action here>"
 msgstr "<Bearbeitungsmodus für Druckauftrag hier wählen>"
 
-#: ../pyhoca/wxgui/printingprefs.py:105
+#: ../pyhoca/wxgui/printingprefs.py:114
 msgid "Print action"
 msgstr "Aktion für aktuellen Druckauftrag"
 
-#: ../pyhoca/wxgui/printingprefs.py:107
+#: ../pyhoca/wxgui/printingprefs.py:116
 msgid "Default action for incoming print jobs"
 msgstr "Aktion für eingehende Druckaufträge"
 
 #. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
+#: ../pyhoca/wxgui/printingprefs.py:120
 msgid "PDF viewer command"
 msgstr "Anwendung für PDF-Anzeige"
 
 #. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
+#: ../pyhoca/wxgui/printingprefs.py:127
 msgid "Save PDFs to folder"
 msgstr "PDF in Ordner speichern"
 
 #. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
+#: ../pyhoca/wxgui/printingprefs.py:134
 msgid "Use this printer"
 msgstr "Hier drucken"
 
 #. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
+#: ../pyhoca/wxgui/printingprefs.py:138
 msgid "Custom print command"
 msgstr "Benutzerdef. Druckkommando"
 
-#: ../pyhoca/wxgui/printingprefs.py:134
+#: ../pyhoca/wxgui/printingprefs.py:143
 msgid "Apply"
 msgstr "Anwenden"
 
-#: ../pyhoca/wxgui/printingprefs.py:136
+#: ../pyhoca/wxgui/printingprefs.py:145
 msgid "Print"
 msgstr "Drucken"
 
-#: ../pyhoca/wxgui/printingprefs.py:227
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- es sind keine Drucker installiert -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
 msgid "- print system is not available -"
 msgstr "- das Drucksystem ist nicht bereit -"
 
-#: ../pyhoca/wxgui/printingprefs.py:334
+#: ../pyhoca/wxgui/printingprefs.py:407
 msgid "Choose PDF viewer application"
 msgstr "Applikation für PDF-Anzeige auswählen"
 
-#: ../pyhoca/wxgui/printingprefs.py:350
+#: ../pyhoca/wxgui/printingprefs.py:430
 msgid "Choose PDF saving location"
 msgstr "Speicherort für eingehende Druckaufträge (PDFs) auswählen"
 
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Sitzungstitel - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Sitzungsfenster umbenennen in"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "Ok"
+
+#~ msgid "us"
+#~ msgstr "de"
+
+#~ msgid "pc105/us"
+#~ msgstr "pc105/de"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Tastaturlayout"
+
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - DNS-Fehler"
+
+#~ msgid "still loading"
+#~ msgstr "wird geladen"
+
+#~ msgid ""
+#~ "On slow connections, the loading of the application menu can take a "
+#~ "couple of seconds."
+#~ msgstr ""
+#~ "Bei einer langsamen Verbindung, kann die Ladezeit des Anwendungsmenüs "
+#~ "einige Zeit dauern."
+
+#~ msgid "Disconnect and E&xit"
+#~ msgstr "Verbindung trennen und &beenden"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - Verbindungsfehler"
+
+#~ msgid "new session profile"
+#~ msgstr "neues Sitzungsprofil"
+
+#~ msgid "Exiting..."
+#~ msgstr "Programm wird beendet..."
+
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Unbekanntes Sitzungsprofil"
+
+#~ msgid "Network"
+#~ msgstr "Netzwerk"
+
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Hole Anwendungsmenü..."
+
+#~ msgid "RDP settings"
+#~ msgstr "RDP Einstellungen"
+
+#~ msgid "Session Profile"
+#~ msgstr "Sitzungsprofil"
+
+#~ msgid ""
+#~ "Set session window title (leave field below empty for default title from "
+#~ "server)"
+#~ msgstr ""
+#~ "Titel für Sitzungsfenster setzen (das folgende Feld freilassen für einen "
+#~ "Server-seitigen Titel)"
+
+#~ msgid "Bring to Foreground"
+#~ msgstr "In den Vordergrund"
+
+#~ msgid "Icon"
+#~ msgstr "Symbol"
+
 #~ msgid "All session profiles are connected"
 #~ msgstr "Alle Sitzungsprofile sind bereits verbunden"
 
diff --git a/po/en.po b/po/en.po
index 06867bb..581ab45 100644
--- a/po/en.po
+++ b/po/en.po
@@ -1,5 +1,5 @@
 # PyHoca-GUI / i18n.
-# Copyright (C) 2010-2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #                         Dick Kniep <dick.kniep at lindix.nl>
 # This file is distributed under the same license as the PyHoca-GUI package.
 # Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
@@ -8,132 +8,140 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PyHoca-GUI VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
-"PO-Revision-Date: 2011-09-25 02:36+0100\n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-05-31 21:44+0100\n"
 "Last-Translator: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>\n"
 "Language-Team: en <mike.gabriel at das-netzwerkteam.de>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: English\n"
 "X-Poedit-Country: UNITED STATES\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: ../pyhoca/wxgui/logon.py:80
+#: ../pyhoca/wxgui/logon.py:92
 #, python-format
 msgid "%s (via %s)"
 msgstr "%s (via %s)"
 
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
 msgid "Username"
 msgstr "Username"
 
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
 msgid "Password"
 msgstr "Password"
 
-#: ../pyhoca/wxgui/logon.py:89
+#: ../pyhoca/wxgui/logon.py:101
 msgid "Authenticate"
 msgstr "Authenticate"
 
-#: ../pyhoca/wxgui/logon.py:101
+#: ../pyhoca/wxgui/logon.py:113
 msgid "  Start SSH tunnel  "
 msgstr "  Start SSH tunnel  "
 
-#: ../pyhoca/wxgui/logon.py:109
+#: ../pyhoca/wxgui/logon.py:121
 msgid "Session login"
 msgstr "Session login"
 
-#: ../pyhoca/wxgui/logon.py:110
+#: ../pyhoca/wxgui/logon.py:122
 msgid "SSH proxy server login"
 msgstr "SSH proxy server login"
 
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
 msgid "Cancel"
 msgstr "Cancel"
 
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
 #, python-format
 msgid "%s - connect failure"
 msgstr "%s - connect failure"
 
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
-msgstr "User is not allowed to start X2go sessions!"
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr "User is not allowed to start X2Go sessions!"
 
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
 #, python-format
 msgid "%s - connect"
 msgstr "%s - connect"
 
-#: ../pyhoca/wxgui/logon.py:284
+#: ../pyhoca/wxgui/logon.py:299
 msgid "Authentication has been successful."
 msgstr "Authentication has been successful."
 
-#: ../pyhoca/wxgui/logon.py:306
+#: ../pyhoca/wxgui/logon.py:330
 msgid "SSH tunnel started"
 msgstr "SSH tunnel started"
 
-#: ../pyhoca/wxgui/logon.py:311
+#: ../pyhoca/wxgui/logon.py:335
 msgid "Authentication failed!"
 msgstr "Authentication failed!"
 
-#: ../pyhoca/wxgui/logon.py:317
+#: ../pyhoca/wxgui/logon.py:342
 #, python-format
-msgid "%s - ssh proxy"
-msgstr "%s - ssh proxy"
+msgid "%s - SSH proxy"
+msgstr "%s - SSH proxy"
 
-#: ../pyhoca/wxgui/logon.py:318
+#: ../pyhoca/wxgui/logon.py:343
 msgid "Authentication to the SSH proxy server failed!"
 msgstr "Authentication to the SSH proxy server failed!"
 
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
 #, python-format
-msgid "%s - connect error"
-msgstr "%s - connect error"
+msgid "%s - socket error"
+msgstr "%s - socket error"
 
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
 #, python-format
 msgid "%s - host key error"
 msgstr "%s - host key error"
 
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
 msgid ""
 "The remote server's host key is invalid or has not been accepted by the user"
 msgstr ""
 "The remote server's host key is invalid or has not been accepted by the user"
 
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
 #, python-format
 msgid "%s - missing home directory"
 msgstr "%s - missing home directory"
 
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
 msgid "The remote user's home directory does not exist."
 msgstr "The remote user's home directory does not exist."
 
-#: ../pyhoca/wxgui/logon.py:363
+#: ../pyhoca/wxgui/logon.py:388
 #, python-format
 msgid "%s - key error"
 msgstr "%s - key error"
 
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
 #, python-format
 msgid "%s - auth error"
 msgstr "%s - auth error"
 
-#: ../pyhoca/wxgui/logon.py:388
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - SSH error"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - unknown error"
+
+#: ../pyhoca/wxgui/logon.py:413
 msgid "An unknown error occured during authentication!"
 msgstr "An unknown error occured during authentication!"
 
-#: ../pyhoca/wxgui/taskbar.py:79
+#: ../pyhoca/wxgui/taskbar.py:92
 #, python-format
 msgid ""
 "PyHoca-GUI\n"
@@ -142,444 +150,517 @@ msgstr ""
 "PyHoca-GUI\n"
 "Connecting you to ,,%s''"
 
-#: ../pyhoca/wxgui/taskbar.py:82
+#: ../pyhoca/wxgui/taskbar.py:96
 #, python-format
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 
-#: ../pyhoca/wxgui/taskbar.py:87
+#: ../pyhoca/wxgui/taskbar.py:106
 msgid ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
+"Connecting you to X2Go..."
 msgstr ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
+"Connecting you to X2Go..."
 
-#: ../pyhoca/wxgui/taskbar.py:90
+#: ../pyhoca/wxgui/taskbar.py:110
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 
-#: ../pyhoca/wxgui/profilemanager.py:72
+#: ../pyhoca/wxgui/profilemanager.py:82
 msgid "GNOME Desktop (GNOME)"
 msgstr "GNOME Desktop (GNOME)"
 
-#: ../pyhoca/wxgui/profilemanager.py:73
+#: ../pyhoca/wxgui/profilemanager.py:83
 msgid "K Desktop Environment (KDE)"
 msgstr "K Desktop Environment (KDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:74
+#: ../pyhoca/wxgui/profilemanager.py:84
 msgid "Lightweight X Desktop (LXDE)"
 msgstr "Lightweight X Desktop (LXDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:75
+#: ../pyhoca/wxgui/profilemanager.py:85
 msgid "Trinity X Desktop (KDE3-like)"
 msgstr "Trinity X Desktop (KDE3-like)"
 
-#: ../pyhoca/wxgui/profilemanager.py:76
+#: ../pyhoca/wxgui/profilemanager.py:86
 msgid "Unity X Desktop Shell (UNITY)"
 msgstr "Unity X Desktop Shell (UNITY)"
 
-#: ../pyhoca/wxgui/profilemanager.py:77
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 Desktop (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Published Applications"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Single Application"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
 msgid "XDMCP Query"
 msgstr "XDMCP Query"
 
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
+#: ../pyhoca/wxgui/profilemanager.py:91
 msgid "Windows Terminal Server (RDP-proxy)"
 msgstr "Windows Terminal Server (RDP-proxy)"
 
 #. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
-msgid "Single Application"
-msgstr "Single Application"
-
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
 msgid "Custom command"
 msgstr "Custom command"
 
-#: ../pyhoca/wxgui/profilemanager.py:85
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
 msgid "Internet Browser"
 msgstr "Internet Browser"
 
-#: ../pyhoca/wxgui/profilemanager.py:86
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
 msgid "Email Client"
 msgstr "Email Client"
 
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
-msgstr "Openoffice.org"
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Office"
 
-#: ../pyhoca/wxgui/profilemanager.py:88
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
 msgid "Terminal"
 msgstr "Terminal"
 
-#: ../pyhoca/wxgui/profilemanager.py:102
+#: ../pyhoca/wxgui/profilemanager.py:113
 msgid "Open file with system's default application"
 msgstr "Open file with system's default application"
 
-#: ../pyhoca/wxgui/profilemanager.py:103
+#: ../pyhoca/wxgui/profilemanager.py:114
 msgid "Open application chooser dialog"
 msgstr "Open application chooser dialog"
 
-#: ../pyhoca/wxgui/profilemanager.py:104
+#: ../pyhoca/wxgui/profilemanager.py:115
 msgid "Save incoming file as ..."
 msgstr "Save incoming file as ..."
 
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
-msgstr "new session profile"
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "settings derived from "
 
 #. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
-msgstr "Profile"
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Session Title"
 
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
-msgstr "Session"
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Session Window"
 
-#: ../pyhoca/wxgui/profilemanager.py:137
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Session Startup"
+
+#: ../pyhoca/wxgui/profilemanager.py:163
 msgid "Server"
 msgstr "Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:138
+#: ../pyhoca/wxgui/profilemanager.py:164
 msgid "Connection Link Speed"
 msgstr "Connection Link Speed"
 
-#: ../pyhoca/wxgui/profilemanager.py:139
+#: ../pyhoca/wxgui/profilemanager.py:165
 msgid "Compression"
 msgstr "Compression"
 
-#: ../pyhoca/wxgui/profilemanager.py:140
+#: ../pyhoca/wxgui/profilemanager.py:166
 msgid "Display"
 msgstr "Display"
 
-#: ../pyhoca/wxgui/profilemanager.py:141
+#: ../pyhoca/wxgui/profilemanager.py:167
 msgid "Keyboard"
 msgstr "Keyboard"
 
-#: ../pyhoca/wxgui/profilemanager.py:142
+#: ../pyhoca/wxgui/profilemanager.py:168
 msgid "Sound"
 msgstr "Sound"
 
-#: ../pyhoca/wxgui/profilemanager.py:143
+#: ../pyhoca/wxgui/profilemanager.py:169
 msgid "Printing"
 msgstr "Printing"
 
-#: ../pyhoca/wxgui/profilemanager.py:144
+#: ../pyhoca/wxgui/profilemanager.py:170
 msgid "Folder Exports"
 msgstr "Folder Exports"
 
-#: ../pyhoca/wxgui/profilemanager.py:145
+#: ../pyhoca/wxgui/profilemanager.py:171
 msgid "File Import"
 msgstr "File Import"
 
 #. ##
-#. ## widgets for the SESSION tab
+#. ## widgets for the PROFILE tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
+#: ../pyhoca/wxgui/profilemanager.py:176
 msgid "Name"
 msgstr "Name"
 
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
-msgstr "Icon"
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Set session window title"
 
-#: ../pyhoca/wxgui/profilemanager.py:162
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Use a default session window title"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Custom session window title"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Window Icon"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Start session automatically after login"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "Login automatically after %s has started"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
 msgid "Type"
 msgstr "Type"
 
-#: ../pyhoca/wxgui/profilemanager.py:164
+#: ../pyhoca/wxgui/profilemanager.py:205
 msgid "Application"
 msgstr "Application"
 
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
-msgstr "RDP settings"
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "XDMCP server"
 
-#: ../pyhoca/wxgui/profilemanager.py:169
+#: ../pyhoca/wxgui/profilemanager.py:211
 msgid "RDP server"
 msgstr "RDP server"
 
-#: ../pyhoca/wxgui/profilemanager.py:171
+#: ../pyhoca/wxgui/profilemanager.py:213
 msgid "RDP options"
 msgstr "RDP options"
 
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
-msgstr "XDMCP server"
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr "ntegrate remote application(s) into local desktop (rootless mode)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Menu of published applications"
 
 #. ##
 #. ## widgets for the CONNECTION tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
 msgid "User"
 msgstr "User"
 
-#: ../pyhoca/wxgui/profilemanager.py:181
+#: ../pyhoca/wxgui/profilemanager.py:225
 msgid "Host"
 msgstr "Host"
 
-#: ../pyhoca/wxgui/profilemanager.py:183
+#: ../pyhoca/wxgui/profilemanager.py:227
 msgid "Port"
 msgstr "Port"
 
-#: ../pyhoca/wxgui/profilemanager.py:185
+#: ../pyhoca/wxgui/profilemanager.py:229
 msgid "RSA/DSA private key"
 msgstr "RSA/DSA private key"
 
-#: ../pyhoca/wxgui/profilemanager.py:188
+#: ../pyhoca/wxgui/profilemanager.py:232
 msgid "Server behind SSH proxy"
 msgstr "Server behind SSH proxy"
 
-#: ../pyhoca/wxgui/profilemanager.py:191
+#: ../pyhoca/wxgui/profilemanager.py:235
 msgid "Key file"
 msgstr "Key file"
 
-#: ../pyhoca/wxgui/profilemanager.py:194
+#: ../pyhoca/wxgui/profilemanager.py:238
 msgid "Host[:Port]"
 msgstr "Host[:Port]"
 
-#: ../pyhoca/wxgui/profilemanager.py:196
+#: ../pyhoca/wxgui/profilemanager.py:240
 msgid "SSH Proxy Tunnel"
 msgstr "SSH Proxy Tunnel"
 
-#: ../pyhoca/wxgui/profilemanager.py:204
+#: ../pyhoca/wxgui/profilemanager.py:248
 msgid "Modem"
 msgstr "Modem"
 
-#: ../pyhoca/wxgui/profilemanager.py:205
+#: ../pyhoca/wxgui/profilemanager.py:249
 msgid "ISDN"
 msgstr "ISDN"
 
-#: ../pyhoca/wxgui/profilemanager.py:206
+#: ../pyhoca/wxgui/profilemanager.py:250
 msgid "ADSL"
 msgstr "ADSL"
 
-#: ../pyhoca/wxgui/profilemanager.py:207
+#: ../pyhoca/wxgui/profilemanager.py:251
 msgid "WAN"
 msgstr "WAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:208
+#: ../pyhoca/wxgui/profilemanager.py:252
 msgid "LAN"
 msgstr "LAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:210
+#: ../pyhoca/wxgui/profilemanager.py:254
 msgid "Method"
 msgstr "Method"
 
-#: ../pyhoca/wxgui/profilemanager.py:212
+#: ../pyhoca/wxgui/profilemanager.py:256
 msgid "Image quality"
 msgstr "Image quality"
 
 #. ##
 #. ## wigdets for the SETTINGS tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
+#: ../pyhoca/wxgui/profilemanager.py:262
 msgid "Fullscreen"
 msgstr "Fullscreen"
 
-#: ../pyhoca/wxgui/profilemanager.py:219
+#: ../pyhoca/wxgui/profilemanager.py:263
 msgid "Custom Size"
 msgstr "Custom Size"
 
-#: ../pyhoca/wxgui/profilemanager.py:224
+#: ../pyhoca/wxgui/profilemanager.py:268
 msgid "Set display DPI"
 msgstr "Set display DPI"
 
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
-msgstr "Keep current keyboard settings"
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr "Do not set (use server-side tools to configure the keyboard)"
 
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
-msgstr "Keyboard layout"
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
 
-#: ../pyhoca/wxgui/profilemanager.py:229
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Use custom keyboard settings as provided below"
+
+#: ../pyhoca/wxgui/profilemanager.py:273
 msgid "Keyboard model"
 msgstr "Keyboard model"
 
-#: ../pyhoca/wxgui/profilemanager.py:231
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Layout"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Layout variant"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
 msgid "Enable sound support"
 msgstr "Enable sound support"
 
-#: ../pyhoca/wxgui/profilemanager.py:232
+#: ../pyhoca/wxgui/profilemanager.py:280
 msgid "Pulse Audio"
 msgstr "Pulse Audio"
 
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
 #. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
+#: ../pyhoca/wxgui/profilemanager.py:284
 msgid "Arts (not supported)"
 msgstr "Arts (not supported)"
 
-#: ../pyhoca/wxgui/profilemanager.py:239
+#: ../pyhoca/wxgui/profilemanager.py:287
 msgid "esd"
 msgstr "esd"
 
-#: ../pyhoca/wxgui/profilemanager.py:240
+#: ../pyhoca/wxgui/profilemanager.py:288
 msgid "Use default sound port"
 msgstr "Use default sound port"
 
-#: ../pyhoca/wxgui/profilemanager.py:241
+#: ../pyhoca/wxgui/profilemanager.py:289
 msgid "Custom sound port"
 msgstr "Custom sound port"
 
-#: ../pyhoca/wxgui/profilemanager.py:243
+#: ../pyhoca/wxgui/profilemanager.py:291
 msgid "Client Side printing"
 msgstr "Client Side printing"
 
-#: ../pyhoca/wxgui/profilemanager.py:245
+#: ../pyhoca/wxgui/profilemanager.py:293
 msgid "Use local folder sharing"
 msgstr "Use local folder sharing"
 
-#: ../pyhoca/wxgui/profilemanager.py:246
+#: ../pyhoca/wxgui/profilemanager.py:294
 msgid "Path"
 msgstr "Path"
 
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
 msgid "Add"
 msgstr "Add"
 
-#: ../pyhoca/wxgui/profilemanager.py:251
+#: ../pyhoca/wxgui/profilemanager.py:299
 msgid "Local Path"
 msgstr "Local Path"
 
-#: ../pyhoca/wxgui/profilemanager.py:252
+#: ../pyhoca/wxgui/profilemanager.py:300
 msgid "Connect Method"
 msgstr "Connect Method"
 
-#: ../pyhoca/wxgui/profilemanager.py:253
+#: ../pyhoca/wxgui/profilemanager.py:301
 msgid "Delete"
 msgstr "Delete"
 
-#: ../pyhoca/wxgui/profilemanager.py:255
+#: ../pyhoca/wxgui/profilemanager.py:303
 msgid "Convert between client and server encodings"
 msgstr "Convert between client and server encodings"
 
-#: ../pyhoca/wxgui/profilemanager.py:256
+#: ../pyhoca/wxgui/profilemanager.py:304
 msgid "Client encoding"
 msgstr "Client encoding"
 
-#: ../pyhoca/wxgui/profilemanager.py:258
+#: ../pyhoca/wxgui/profilemanager.py:306
 msgid "Server encoding"
 msgstr "Server encoding"
 
-#: ../pyhoca/wxgui/profilemanager.py:261
+#: ../pyhoca/wxgui/profilemanager.py:309
 msgid "Use file MIME box for local file import"
 msgstr "Use file MIME box for local file import"
 
-#: ../pyhoca/wxgui/profilemanager.py:262
+#: ../pyhoca/wxgui/profilemanager.py:310
 msgid "Extensions"
 msgstr "Extensions"
 
-#: ../pyhoca/wxgui/profilemanager.py:264
+#: ../pyhoca/wxgui/profilemanager.py:312
 msgid "Action"
 msgstr "Action"
 
-#: ../pyhoca/wxgui/profilemanager.py:269
+#: ../pyhoca/wxgui/profilemanager.py:317
 msgid "Defaults"
 msgstr "Defaults"
 
-#: ../pyhoca/wxgui/profilemanager.py:271
+#: ../pyhoca/wxgui/profilemanager.py:319
 msgid "Save"
 msgstr "Save"
 
-#: ../pyhoca/wxgui/profilemanager.py:272
+#: ../pyhoca/wxgui/profilemanager.py:320
 msgid "Reset"
 msgstr "Reset"
 
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
 msgid "automatically"
 msgstr "automatically"
 
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
 msgid "manually"
 msgstr "manually"
 
-#: ../pyhoca/wxgui/profilemanager.py:320
+#: ../pyhoca/wxgui/profilemanager.py:376
 msgid "PyHoca-GUI Profile Manager - new profile"
 msgstr "PyHoca-GUI Profile Manager - new profile"
 
-#: ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/profilemanager.py:378
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s (connected)"
 msgstr "PyHoca-GUI Profile Manager - %s (connected)"
 
-#: ../pyhoca/wxgui/profilemanager.py:324
+#: ../pyhoca/wxgui/profilemanager.py:380
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s"
 msgstr "PyHoca-GUI Profile Manager - %s"
 
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
-msgstr "Session Profile"
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Profile"
 
-#: ../pyhoca/wxgui/profilemanager.py:666
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Session"
+
+#: ../pyhoca/wxgui/profilemanager.py:753
 msgid "Connection"
 msgstr "Connection"
 
-#: ../pyhoca/wxgui/profilemanager.py:667
+#: ../pyhoca/wxgui/profilemanager.py:754
 msgid "Settings"
 msgstr "Settings"
 
-#: ../pyhoca/wxgui/profilemanager.py:668
+#: ../pyhoca/wxgui/profilemanager.py:755
 msgid "Sharing"
 msgstr "Sharing"
 
-#: ../pyhoca/wxgui/profilemanager.py:1100
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "pc105/us"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "us"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "basic"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
 msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
 msgstr "Icon Files (*.png)|*.png|All files (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1103
+#: ../pyhoca/wxgui/profilemanager.py:1287
 msgid "Choose an icon for this session profile"
 msgstr "Choose an icon for this session profile"
 
-#: ../pyhoca/wxgui/profilemanager.py:1220
+#: ../pyhoca/wxgui/profilemanager.py:1509
 msgid "All files (*.*)|*"
 msgstr "All files (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
 msgid "Choose a public SSH key"
 msgstr "Choose a public SSH key"
 
-#: ../pyhoca/wxgui/profilemanager.py:1389
+#: ../pyhoca/wxgui/profilemanager.py:1784
 msgid "Choose a folder to share within a session"
 msgstr "Choose a folder to share within a session"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
 msgid "Profile Manager"
 msgstr "Profile Manager"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
+#: ../pyhoca/wxgui/profilemanager.py:1912
 msgid "Profile name is missing, profile unusable!!!"
 msgstr "Profile name is missing, profile unusable!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
 #, python-format
 msgid "Profile name %s already exists!!!"
 msgstr "Profile name %s already exists!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1464
+#: ../pyhoca/wxgui/profilemanager.py:1923
 msgid "The SSH proxy configuration is incomplete. Try again."
 msgstr "The SSH proxy configuration is incomplete. Try again."
 
-#: ../pyhoca/wxgui/profilemanager.py:1474
+#: ../pyhoca/wxgui/profilemanager.py:1933
 #, python-format
 msgid ""
 "Another session profile (%s) already uses [%s]:%s for binding a local SSH "
@@ -590,198 +671,357 @@ msgstr ""
 "proxy to.\n"
 "Please change the SSH proxy settings accordingly."
 
-#: ../pyhoca/wxgui/profilemanager.py:1494
+#: ../pyhoca/wxgui/profilemanager.py:1960
 #, python-format
 msgid "%s - profile added"
 msgstr "%s - profile added"
 
-#: ../pyhoca/wxgui/profilemanager.py:1495
+#: ../pyhoca/wxgui/profilemanager.py:1961
 msgid "A new session profile has been added."
 msgstr "A new session profile has been added."
 
-#: ../pyhoca/wxgui/profilemanager.py:1499
+#: ../pyhoca/wxgui/profilemanager.py:1965
 #, python-format
 msgid "%s - modified"
 msgstr "%s - modified"
 
-#: ../pyhoca/wxgui/profilemanager.py:1500
+#: ../pyhoca/wxgui/profilemanager.py:1966
 msgid "Changes to profile have been saved."
 msgstr "Changes to profile have been saved."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:55
+#: ../pyhoca/wxgui/menus_taskbar.py:75
 msgid "Edit Profile"
 msgstr "Edit Profile"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:57
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Use as Template for New Profile"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
 msgid "Delete Profile"
 msgstr "Delete Profile"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:79
+#: ../pyhoca/wxgui/menus_taskbar.py:107
 #, python-format
 msgid "About %s (%s)..."
 msgstr "About %s (%s) ..."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:102
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "Manage Session Profile"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
 msgid "Printing Preferences"
 msgstr "Printing Preferences"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:108
+#: ../pyhoca/wxgui/menus_taskbar.py:148
 msgid "Client Options"
 msgstr "Client Options"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
 msgid "E&xit"
 msgstr "E&xit"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:159
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Window title"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
 msgid "Resume Session"
 msgstr "Resume Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:161
+#: ../pyhoca/wxgui/menus_taskbar.py:236
 msgid "Resume Session (not possible)"
 msgstr "Resume Session (not possible)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:169
+#: ../pyhoca/wxgui/menus_taskbar.py:247
 msgid "Transfer Session"
 msgstr "Transfer Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:171
+#: ../pyhoca/wxgui/menus_taskbar.py:249
 msgid "Transfer Session (not possible)"
 msgstr "Transfer Session (not possible)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:174
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Suspend Session (and disconnect/exit)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Suspend Session (and disconnect)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
 msgid "Suspend Session"
 msgstr "Suspend Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:176
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Terminate Session (and disconnect/exit)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Terminate Session (and disconnect)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
 msgid "Terminate Session"
 msgstr "Terminate Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:206
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Refresh menu tree"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Rename Session Window"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Show Session Window"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
 msgid "&Share custom local folder"
 msgstr "&Share custom local folder"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:229
+#: ../pyhoca/wxgui/menus_taskbar.py:344
 msgid "Share:"
 msgstr "Share:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:240
+#: ../pyhoca/wxgui/menus_taskbar.py:355
 msgid "Unshare:"
 msgstr "Unshare:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:250
+#: ../pyhoca/wxgui/menus_taskbar.py:365
 msgid "Unshare &all local folders"
 msgstr "Unshare &all local folders"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:290
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Multimedia"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Development"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Education"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Games"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Graphics"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Office Applications"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "System"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Utilities"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Other Applications"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Connect %s"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Currently connecting..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "Start &new Desktop Session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Retrieving Application Menu..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Retrieve Application Menu"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
 msgid "Start &new Session"
 msgstr "Start &new Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:306
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Launch Single Application"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Manage Application Menu"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
 msgid "Running"
 msgstr "Running"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:308
+#: ../pyhoca/wxgui/menus_taskbar.py:721
 msgid "Suspended"
 msgstr "Suspended"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:320
+#: ../pyhoca/wxgui/menus_taskbar.py:740
 msgid "&Clean all sessions"
 msgstr "&Clean all sessions"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:322
+#: ../pyhoca/wxgui/menus_taskbar.py:746
 msgid "Customize &profile"
 msgstr "Customize &profile"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:325
+#: ../pyhoca/wxgui/menus_taskbar.py:758
 msgid "Shared &folders"
 msgstr "Shared &folders"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:333
+#: ../pyhoca/wxgui/menus_taskbar.py:770
 msgid "&Disconnect from Server"
 msgstr "&Disconnect from Server"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:359
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Suspend Session and E&xit application"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "Disconnect and E&xit application"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
 msgid "Add Profile"
 msgstr "Add Profile"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:428
+#: ../pyhoca/wxgui/menus_taskbar.py:911
 msgid "No session profiles defined"
 msgstr "No session profiles defined"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Start/Resume Session"
 msgstr "Start/Resume Session"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Connect Server"
 msgstr "Connect Server"
 
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
 #, python-format
 msgid "About %s ..."
 msgstr "About %s ..."
 
-#: ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Suspending sessions and exiting application..."
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Disconnecting %s and exiting application..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Exiting Application..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - server warning"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "The X2Go Server does not publish an application menu."
+
+#: ../pyhoca/wxgui/frontend.py:610
 msgid "Public SSH key authentication has been successful."
 msgstr "Public SSH key authentication has been successful."
 
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/frontend.py:644
 msgid ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 msgstr ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 
-#: ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - EOF error"
+
+#: ../pyhoca/wxgui/frontend.py:665
 msgid "Authentication protocol communication incomplete! Try again..."
 msgstr "Authentication protocol communication incomplete! Try again..."
 
-#: ../pyhoca/wxgui/frontend.py:431
+#: ../pyhoca/wxgui/frontend.py:672
 #, python-format
 msgid "%s - auth key error"
 msgstr "%s - auth key error"
 
-#: ../pyhoca/wxgui/frontend.py:452
+#: ../pyhoca/wxgui/frontend.py:693
 msgid "An unknown error occurred during authentication!"
 msgstr "An unknown error occurred during authentication!"
 
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
-msgstr "Cleaning X2go sessions..."
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Unknown session profile, configure before using it..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - session warning"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Execution of command ,,%s'' failed."
 
-#: ../pyhoca/wxgui/frontend.py:573
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Cleaning X2Go sessions..."
+
+#: ../pyhoca/wxgui/frontend.py:961
 #, python-format
 msgid "%s - disconnect"
 msgstr "%s - disconnect"
 
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
-msgstr "X2go Profile is now disconnected."
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "X2Go Profile is now disconnected."
 
-#: ../pyhoca/wxgui/frontend.py:589
+#: ../pyhoca/wxgui/frontend.py:977
 msgid "New Session Profile"
 msgstr "New Session Profile"
 
-#: ../pyhoca/wxgui/frontend.py:616
+#: ../pyhoca/wxgui/frontend.py:1029
 #, python-format
 msgid "Really Delete Session Profile ,,%s''?"
 msgstr "Really Delete Session Profile ,,%s''?"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 #, python-format
 msgid "%s - profile deleted"
 msgstr "%s - profile deleted"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 msgid "The session profile has been deleted."
 msgstr "The session profile has been deleted."
 
-#: ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:1053
 #, python-format
 msgid "%s - share local folder with sessions of this profile"
 msgstr "%s - share local folder with sessions of this profile"
 
-#: ../pyhoca/wxgui/frontend.py:715
+#: ../pyhoca/wxgui/frontend.py:1194
 #, python-format
 msgid ""
 "The authenticity of host [%s]:%s can't be established.\n"
@@ -794,17 +1034,17 @@ msgstr ""
 "\n"
 "Are you sure you want to continue connecting?"
 
-#: ../pyhoca/wxgui/frontend.py:723
+#: ../pyhoca/wxgui/frontend.py:1202
 #, python-format
 msgid "%s: Confirm Host Authorization"
 msgstr "%s: Confirm Host Authorization"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid "%s - channel error"
 msgstr "%s - channel error"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
@@ -813,36 +1053,31 @@ msgstr ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
 "server..."
 
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid "%s - session failure"
 msgstr "%s - session failure"
 
-#: ../pyhoca/wxgui/frontend.py:752
+#: ../pyhoca/wxgui/frontend.py:1265
 msgid "The session startup failed."
 msgstr "The session startup failed."
 
-#: ../pyhoca/wxgui/frontend.py:759
+#: ../pyhoca/wxgui/frontend.py:1283
 #, python-format
-msgid "The command ,,%s'' is not available on X2go server."
-msgstr "The command ,,%s'' is not available on X2go server."
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "The command ,,%s'' is not available on X2Go server."
 
-#: ../pyhoca/wxgui/frontend.py:761
+#: ../pyhoca/wxgui/frontend.py:1285
 #, python-format
 msgid ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 msgstr ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr "%s - session warning"
-
-#: ../pyhoca/wxgui/frontend.py:767
+#: ../pyhoca/wxgui/frontend.py:1302
 #, python-format
 msgid ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
@@ -851,7 +1086,7 @@ msgstr ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
 "been denied."
 
-#: ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
@@ -860,36 +1095,36 @@ msgstr ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
 "X2go/SSH server. Session startup failed."
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 #, python-format
 msgid "%s - audio warning"
 msgstr "%s - audio warning"
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 msgstr ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
 #, python-format
 msgid "%s - audio error"
 msgstr "%s - audio error"
 
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
-msgstr "The X2go PulseAudio system could not be started."
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "The X2Go PulseAudio system could not be started."
 
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
-msgstr "The X2go PulseAudio system has died unexpectedly."
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "The X2Go PulseAudio system has died unexpectedly."
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid "%s - audio problem"
 msgstr "%s - audio problem"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid ""
 "The audio connection could not be set up for this session.\n"
@@ -898,12 +1133,68 @@ msgstr ""
 "The audio connection could not be set up for this session.\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr "%s - client-side printing not available"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s - MIME box not available"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - client-side folders not sharable"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - client resources not sharable"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid "%s - print error"
 msgstr "%s - print error"
 
-#: ../pyhoca/wxgui/frontend.py:808
+#: ../pyhoca/wxgui/frontend.py:1433
 #, python-format
 msgid ""
 "%s\n"
@@ -914,7 +1205,7 @@ msgstr ""
 "...caused on printer %s by session\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid ""
 "%s\n"
@@ -925,58 +1216,58 @@ msgstr ""
 "...caused by session\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid "%s - start"
 msgstr "%s - start"
 
-#: ../pyhoca/wxgui/frontend.py:814
+#: ../pyhoca/wxgui/frontend.py:1450
 #, python-format
 msgid ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 msgstr ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 msgstr ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid "%s - resume"
 msgstr "%s - resume"
 
-#: ../pyhoca/wxgui/frontend.py:822
+#: ../pyhoca/wxgui/frontend.py:1480
 #, python-format
 msgid ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 msgstr ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 msgstr ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid "%s - running"
 msgstr "%s - running"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid ""
 "Found already running session\n"
@@ -985,35 +1276,35 @@ msgstr ""
 "Found already running session\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid "%s - suspend"
 msgstr "%s - suspend"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 msgstr ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid "%s - terminate"
 msgstr "%s - terminate"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 msgstr ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 
-#: ../pyhoca/wxgui/messages.py:53
+#: ../pyhoca/wxgui/messages.py:74
 #, python-format
 msgid ""
 "Are you really sure you want to\n"
@@ -1022,7 +1313,7 @@ msgstr ""
 "Are you really sure you want to\n"
 "delete the session profile ,,%s''?"
 
-#: ../pyhoca/wxgui/messages.py:54
+#: ../pyhoca/wxgui/messages.py:75
 #, python-format
 msgid ""
 "PyHoca-GUI is already running for user ,,%s''!\n"
@@ -1037,100 +1328,179 @@ msgstr ""
 "user. The PyHoca-GUI icon can be found in your desktops's\n"
 "notification area/systray."
 
-#: ../pyhoca/wxgui/messages.py:87
+#: ../pyhoca/wxgui/messages.py:108
 msgid "Yes"
 msgstr "Yes"
 
-#: ../pyhoca/wxgui/messages.py:88
+#: ../pyhoca/wxgui/messages.py:109
 msgid "No"
 msgstr "No"
 
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
 msgid "Ok"
 msgstr "Ok"
 
-#: ../pyhoca/wxgui/printingprefs.py:57
+#: ../pyhoca/wxgui/printingprefs.py:66
 #, python-format
 msgid "%s - Printing Preferences"
 msgstr "%s - Printing Preferences"
 
-#: ../pyhoca/wxgui/printingprefs.py:59
+#: ../pyhoca/wxgui/printingprefs.py:68
 #, python-format
 msgid "%s - Incoming Print Job from  %s (%s)"
 msgstr "%s - Incoming Print Job from  %s (%s)"
 
-#: ../pyhoca/wxgui/printingprefs.py:64
+#: ../pyhoca/wxgui/printingprefs.py:73
 msgid "Open this dialog window"
 msgstr "Open this dialog window"
 
-#: ../pyhoca/wxgui/printingprefs.py:65
+#: ../pyhoca/wxgui/printingprefs.py:74
 msgid "Open with PDF viewer"
 msgstr "Open with PDF viewer"
 
-#: ../pyhoca/wxgui/printingprefs.py:66
+#: ../pyhoca/wxgui/printingprefs.py:75
 msgid "Save to a local folder"
 msgstr "Save to a local folder"
 
-#: ../pyhoca/wxgui/printingprefs.py:67
+#: ../pyhoca/wxgui/printingprefs.py:76
 msgid "Print to a local printer"
 msgstr "Print to a local printer"
 
-#: ../pyhoca/wxgui/printingprefs.py:68
+#: ../pyhoca/wxgui/printingprefs.py:77
 msgid "Run custom print command"
 msgstr "Run custom print command"
 
-#: ../pyhoca/wxgui/printingprefs.py:71
+#: ../pyhoca/wxgui/printingprefs.py:80
 msgid "<Select a print action here>"
 msgstr "<Select a print action here>"
 
-#: ../pyhoca/wxgui/printingprefs.py:105
+#: ../pyhoca/wxgui/printingprefs.py:114
 msgid "Print action"
 msgstr "Print action"
 
-#: ../pyhoca/wxgui/printingprefs.py:107
+#: ../pyhoca/wxgui/printingprefs.py:116
 msgid "Default action for incoming print jobs"
 msgstr "Default action for incoming print jobs"
 
 #. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
+#: ../pyhoca/wxgui/printingprefs.py:120
 msgid "PDF viewer command"
 msgstr "PDF viewer command"
 
 #. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
+#: ../pyhoca/wxgui/printingprefs.py:127
 msgid "Save PDFs to folder"
 msgstr "Save PDFs to folder"
 
 #. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
+#: ../pyhoca/wxgui/printingprefs.py:134
 msgid "Use this printer"
 msgstr "Use this printer"
 
 #. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
+#: ../pyhoca/wxgui/printingprefs.py:138
 msgid "Custom print command"
 msgstr "Custom print command"
 
-#: ../pyhoca/wxgui/printingprefs.py:134
+#: ../pyhoca/wxgui/printingprefs.py:143
 msgid "Apply"
 msgstr "Apply"
 
-#: ../pyhoca/wxgui/printingprefs.py:136
+#: ../pyhoca/wxgui/printingprefs.py:145
 msgid "Print"
 msgstr "Print"
 
-#: ../pyhoca/wxgui/printingprefs.py:227
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- no printers installed -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
 msgid "- print system is not available -"
 msgstr "- print system is not available -"
 
-#: ../pyhoca/wxgui/printingprefs.py:334
+#: ../pyhoca/wxgui/printingprefs.py:407
 msgid "Choose PDF viewer application"
 msgstr "Choose PDF viewer application"
 
-#: ../pyhoca/wxgui/printingprefs.py:350
+#: ../pyhoca/wxgui/printingprefs.py:430
 msgid "Choose PDF saving location"
 msgstr "Choose PDF saving location"
 
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Session Title - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Change session title to"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "OK"
+
+#~ msgid "us"
+#~ msgstr "us"
+
+#~ msgid "pc105/us"
+#~ msgstr "pc105/us"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Keyboard layout"
+
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - DNS error"
+
+#~ msgid "still loading"
+#~ msgstr "still loading"
+
+#~ msgid ""
+#~ "On slow connections, the loading of the application menu can take a "
+#~ "couple of seconds."
+#~ msgstr ""
+#~ "On slow connections, the loading of the application menu can take a "
+#~ "couple of seconds."
+
+#~ msgid "Disconnect and E&xit"
+#~ msgstr "Disconnect and E&xit"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - connect error"
+
+#~ msgid "new session profile"
+#~ msgstr "new session profile"
+
+#~ msgid "Exiting..."
+#~ msgstr "Exiting..."
+
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Unknown Session Profile"
+
+#~ msgid "Network"
+#~ msgstr "Network"
+
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Retrieving Application menu..."
+
+#~ msgid "RDP settings"
+#~ msgstr "RDP settings"
+
+#~ msgid "Session Profile"
+#~ msgstr "Session Profile"
+
+#~ msgid ""
+#~ "Set session window title (leave field below empty for default title from "
+#~ "server)"
+#~ msgstr ""
+#~ "Set session window title (leave field below empty for default title from "
+#~ "server)"
+
+#~ msgid "Bring to Foreground"
+#~ msgstr "Bring to Foreground"
+
+#~ msgid "Icon"
+#~ msgstr "Icon"
+
 #~ msgid "All session profiles are connected"
 #~ msgstr "All session profiles are connected"
 
diff --git a/po/es.po b/po/es.po
index 15cf473..b7ee7cd 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,592 +1,677 @@
 # PyHoca-GUI / i18n.
-# Copyright (C) 2010-2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #                         Dick Kniep <dick.kniep at lindix.nl>
 # This file is distributed under the same license as the PyHoca-GUI package.
 #
 # Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
 # Ricardo Diaz Marti­n, 2011.
+# Ricardo Díaz Martín <oceanosoftlapalma at gmail.com>, 2012.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: PyHoca-GUI VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
-"PO-Revision-Date: 2011-09-26 17:36+0200\n"
-"Last-Translator: Ricardo Di­az Marti­n\n"
-"Language-Team: Spanish <x2go-dev at lists.berlios.de>\n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-06-01 09:28+0200\n"
+"Last-Translator: Ricardo Díaz Martín <oceanosoftlapalma at gmail.com>\n"
+"Language-Team: Español; Castellano <>\n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
+"Content-Transfer-Encoding: 8bits\n"
 "X-Poedit-Language: Spanish\n"
 "X-Poedit-Country: SPAIN\n"
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Generator: Lokalize 1.2\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: ../pyhoca/wxgui/logon.py:80
+#: ../pyhoca/wxgui/logon.py:92
 #, python-format
 msgid "%s (via %s)"
 msgstr "%s (vía %s)"
 
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
 msgid "Username"
 msgstr "Nombre de usuario"
 
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
 msgid "Password"
 msgstr "Contraseña"
 
-#: ../pyhoca/wxgui/logon.py:89
+#: ../pyhoca/wxgui/logon.py:101
 msgid "Authenticate"
 msgstr "Autenticar"
 
-#: ../pyhoca/wxgui/logon.py:101
+#: ../pyhoca/wxgui/logon.py:113
 msgid "  Start SSH tunnel  "
 msgstr "  Iniciar tunel SSH   "
 
-#: ../pyhoca/wxgui/logon.py:109
+#: ../pyhoca/wxgui/logon.py:121
 msgid "Session login"
 msgstr "Inicio de sesión"
 
-#: ../pyhoca/wxgui/logon.py:110
+#: ../pyhoca/wxgui/logon.py:122
 msgid "SSH proxy server login"
 msgstr "Inicio de sesión en el servidor proxy SSH"
 
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
 #, python-format
 msgid "%s - connect failure"
 msgstr "%s - fallo en la conexión"
 
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
 msgstr "¡El usuario no tiene permisos para iniciar sesiones X2go!"
 
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
 #, python-format
 msgid "%s - connect"
 msgstr "%s - conectado"
 
-#: ../pyhoca/wxgui/logon.py:284
+#: ../pyhoca/wxgui/logon.py:299
 msgid "Authentication has been successful."
 msgstr "Inicio de sesión correcto."
 
-#: ../pyhoca/wxgui/logon.py:306
+#: ../pyhoca/wxgui/logon.py:330
 msgid "SSH tunnel started"
 msgstr "Iniciado tunel SSH"
 
-#: ../pyhoca/wxgui/logon.py:311
+#: ../pyhoca/wxgui/logon.py:335
 msgid "Authentication failed!"
-msgstr "Error en el nombre de usuario o contraseña!"
+msgstr "¡Error en el nombre de usuario o contraseña!"
 
-#: ../pyhoca/wxgui/logon.py:317
+#: ../pyhoca/wxgui/logon.py:342
 #, python-format
-msgid "%s - ssh proxy"
-msgstr "%s - proxy ssh"
+msgid "%s - SSH proxy"
+msgstr "%s - proxy SSH"
 
-#: ../pyhoca/wxgui/logon.py:318
+#: ../pyhoca/wxgui/logon.py:343
 msgid "Authentication to the SSH proxy server failed!"
 msgstr "¡Nombre de usuario o contraseña erróneo en el servidor proxy SSH!"
 
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
 #, python-format
-msgid "%s - connect error"
-msgstr "%s - error en la conexión"
+msgid "%s - socket error"
+msgstr "%s - error de socket"
 
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
 #, python-format
 msgid "%s - host key error"
 msgstr "%s - error en la clave del equipo"
 
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
 msgid ""
 "The remote server's host key is invalid or has not been accepted by the user"
 msgstr ""
 "La clave del servidor remoto no es válida o no ha sido aceptada por el "
 "usuario"
 
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
 #, python-format
 msgid "%s - missing home directory"
 msgstr "%s - carpeta home desconocida"
 
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
 msgid "The remote user's home directory does not exist."
 msgstr "La carpeta home del usuario no existe en el servidor"
 
-#: ../pyhoca/wxgui/logon.py:363
+#: ../pyhoca/wxgui/logon.py:388
 #, python-format
 msgid "%s - key error"
 msgstr "%s - error en la clave"
 
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
 #, python-format
 msgid "%s - auth error"
 msgstr "%s - error en la autenticación"
 
-#: ../pyhoca/wxgui/logon.py:388
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - error de SSH"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - error desconocido"
+
+#: ../pyhoca/wxgui/logon.py:413
 msgid "An unknown error occured during authentication!"
 msgstr ""
 "¡Error desconocido al tratar de validar el nombre de usuario y la contraseña!"
 
-#: ../pyhoca/wxgui/taskbar.py:79
+#: ../pyhoca/wxgui/taskbar.py:92
 #, python-format
 msgid ""
 "PyHoca-GUI\n"
 "Connecting you to ,,%s''"
 msgstr ""
 "PyHoca-GUI\n"
-"Conectándote a ,,%s''"
+"Conectando a \"%s\""
 
-#: ../pyhoca/wxgui/taskbar.py:82
+#: ../pyhoca/wxgui/taskbar.py:96
 #, python-format
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Conectándote a tu servidor X2go \"%s''"
+"Conectando con tu servidor remoto X2Go \"%s\""
 
-#: ../pyhoca/wxgui/taskbar.py:87
+#: ../pyhoca/wxgui/taskbar.py:106
 msgid ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
+"Connecting you to X2Go..."
 msgstr ""
 "PyHoca-GUI\n"
-"Conectándote a X2go..."
+"Conectando a X2Go..."
 
-#: ../pyhoca/wxgui/taskbar.py:90
+#: ../pyhoca/wxgui/taskbar.py:110
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
 "Cliente para conexiones remotas a servidores X2go"
 
-#: ../pyhoca/wxgui/profilemanager.py:72
+#: ../pyhoca/wxgui/profilemanager.py:82
 msgid "GNOME Desktop (GNOME)"
 msgstr "GNOME Desktop (GNOME)"
 
-#: ../pyhoca/wxgui/profilemanager.py:73
+#: ../pyhoca/wxgui/profilemanager.py:83
 msgid "K Desktop Environment (KDE)"
 msgstr "K Desktop Environment (KDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:74
+#: ../pyhoca/wxgui/profilemanager.py:84
 msgid "Lightweight X Desktop (LXDE)"
 msgstr "Lightweight X Desktop (LXDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:75
+#: ../pyhoca/wxgui/profilemanager.py:85
 msgid "Trinity X Desktop (KDE3-like)"
 msgstr "Trinity X Desktop (similar a KDE3)"
 
-#: ../pyhoca/wxgui/profilemanager.py:76
+#: ../pyhoca/wxgui/profilemanager.py:86
 msgid "Unity X Desktop Shell (UNITY)"
 msgstr "Unity X Desktop Shell (UNITY)"
 
-#: ../pyhoca/wxgui/profilemanager.py:77
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 Desktop (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Aplicaciones publicadas"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Aplicación"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
 msgid "XDMCP Query"
 msgstr "XDMCP Query"
 
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
+#: ../pyhoca/wxgui/profilemanager.py:91
 msgid "Windows Terminal Server (RDP-proxy)"
 msgstr "Windows Terminal Server (RDP-proxy)"
 
 #. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
-msgid "Single Application"
-msgstr "Aplicación"
-
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
 msgid "Custom command"
 msgstr "Comando personalizado"
 
-#: ../pyhoca/wxgui/profilemanager.py:85
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
 msgid "Internet Browser"
 msgstr "Navegador web"
 
-#: ../pyhoca/wxgui/profilemanager.py:86
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
 msgid "Email Client"
 msgstr "Cliente de Correo"
 
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
-msgstr "Openoffice.org"
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Office"
 
-#: ../pyhoca/wxgui/profilemanager.py:88
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
 msgid "Terminal"
 msgstr "Terminal"
 
-#: ../pyhoca/wxgui/profilemanager.py:102
+#: ../pyhoca/wxgui/profilemanager.py:113
 msgid "Open file with system's default application"
 msgstr "Abrir archivo con la aplicación por defecto"
 
-#: ../pyhoca/wxgui/profilemanager.py:103
+#: ../pyhoca/wxgui/profilemanager.py:114
 msgid "Open application chooser dialog"
 msgstr "Abrir selector de aplicaciones"
 
-#: ../pyhoca/wxgui/profilemanager.py:104
+#: ../pyhoca/wxgui/profilemanager.py:115
 msgid "Save incoming file as ..."
 msgstr "Guardar archivo recibido como ..."
 
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
-msgstr "Nuevo Perfil de Sesión"
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "configuraciones recuperadas de "
 
 #. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
-msgstr "Perfil "
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Título de la Sesión"
 
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
-msgstr "Sesión"
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Ventana de Sesión"
 
-#: ../pyhoca/wxgui/profilemanager.py:137
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Inicio de Sesión"
+
+#: ../pyhoca/wxgui/profilemanager.py:163
 msgid "Server"
 msgstr "Servidor"
 
-#: ../pyhoca/wxgui/profilemanager.py:138
+#: ../pyhoca/wxgui/profilemanager.py:164
 msgid "Connection Link Speed"
 msgstr "Velocidad de conexión"
 
-#: ../pyhoca/wxgui/profilemanager.py:139
+#: ../pyhoca/wxgui/profilemanager.py:165
 msgid "Compression"
 msgstr "Compresión"
 
-#: ../pyhoca/wxgui/profilemanager.py:140
+#: ../pyhoca/wxgui/profilemanager.py:166
 msgid "Display"
 msgstr "Pantalla"
 
-#: ../pyhoca/wxgui/profilemanager.py:141
+#: ../pyhoca/wxgui/profilemanager.py:167
 msgid "Keyboard"
 msgstr "Teclado"
 
-#: ../pyhoca/wxgui/profilemanager.py:142
+#: ../pyhoca/wxgui/profilemanager.py:168
 msgid "Sound"
 msgstr "Sonido"
 
-#: ../pyhoca/wxgui/profilemanager.py:143
+#: ../pyhoca/wxgui/profilemanager.py:169
 msgid "Printing"
 msgstr "Impresora"
 
-#: ../pyhoca/wxgui/profilemanager.py:144
+#: ../pyhoca/wxgui/profilemanager.py:170
 msgid "Folder Exports"
 msgstr "Carpeta de Exportaciones"
 
-#: ../pyhoca/wxgui/profilemanager.py:145
+#: ../pyhoca/wxgui/profilemanager.py:171
 msgid "File Import"
 msgstr "Importar Archivo"
 
 #. ##
-#. ## widgets for the SESSION tab
+#. ## widgets for the PROFILE tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
+#: ../pyhoca/wxgui/profilemanager.py:176
 msgid "Name"
 msgstr "Nombre"
 
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
-msgstr "Icono"
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Establecer título de la sesión"
 
-#: ../pyhoca/wxgui/profilemanager.py:162
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Usar título de sesión por defecto"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Título de sesión personalizado"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Icono de la ventana"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Iniciar sesión automáticamente tras el login"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "El inicio de sesión automático ha comenzado tras %s"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
 msgid "Type"
 msgstr "Tipo"
 
-#: ../pyhoca/wxgui/profilemanager.py:164
+#: ../pyhoca/wxgui/profilemanager.py:205
 msgid "Application"
 msgstr "Aplicación"
 
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
-msgstr "Parámetros RDP"
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "Servidor XDMCP"
 
-#: ../pyhoca/wxgui/profilemanager.py:169
+#: ../pyhoca/wxgui/profilemanager.py:211
 msgid "RDP server"
 msgstr "Servidor RDP"
 
-#: ../pyhoca/wxgui/profilemanager.py:171
+#: ../pyhoca/wxgui/profilemanager.py:213
 msgid "RDP options"
 msgstr "Opciones RDP"
 
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
-msgstr "Servidor XDMCP"
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr "Integrar aplicaciones en el escritorio local (modo rootless)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Menú de aplicaciones publicadas"
 
 #. ##
 #. ## widgets for the CONNECTION tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
 msgid "User"
 msgstr "Usuario"
 
-#: ../pyhoca/wxgui/profilemanager.py:181
+#: ../pyhoca/wxgui/profilemanager.py:225
 msgid "Host"
 msgstr "Host"
 
-#: ../pyhoca/wxgui/profilemanager.py:183
+#: ../pyhoca/wxgui/profilemanager.py:227
 msgid "Port"
 msgstr "Puerto"
 
-#: ../pyhoca/wxgui/profilemanager.py:185
+#: ../pyhoca/wxgui/profilemanager.py:229
 msgid "RSA/DSA private key"
 msgstr "Clave privada RSA/DSA"
 
-#: ../pyhoca/wxgui/profilemanager.py:188
+#: ../pyhoca/wxgui/profilemanager.py:232
 msgid "Server behind SSH proxy"
 msgstr "Servidor detrás del proxy SSH"
 
-#: ../pyhoca/wxgui/profilemanager.py:191
+#: ../pyhoca/wxgui/profilemanager.py:235
 msgid "Key file"
 msgstr "Clave"
 
-#: ../pyhoca/wxgui/profilemanager.py:194
+#: ../pyhoca/wxgui/profilemanager.py:238
 msgid "Host[:Port]"
 msgstr "Host[:Puerto]"
 
-#: ../pyhoca/wxgui/profilemanager.py:196
+#: ../pyhoca/wxgui/profilemanager.py:240
 msgid "SSH Proxy Tunnel"
 msgstr "Tunel Proxy SSH"
 
-#: ../pyhoca/wxgui/profilemanager.py:204
+#: ../pyhoca/wxgui/profilemanager.py:248
 msgid "Modem"
 msgstr "Módem"
 
-#: ../pyhoca/wxgui/profilemanager.py:205
+#: ../pyhoca/wxgui/profilemanager.py:249
 msgid "ISDN"
 msgstr "ISDN"
 
-#: ../pyhoca/wxgui/profilemanager.py:206
+#: ../pyhoca/wxgui/profilemanager.py:250
 msgid "ADSL"
 msgstr "ADSL"
 
-#: ../pyhoca/wxgui/profilemanager.py:207
+#: ../pyhoca/wxgui/profilemanager.py:251
 msgid "WAN"
 msgstr "WAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:208
+#: ../pyhoca/wxgui/profilemanager.py:252
 msgid "LAN"
 msgstr "LAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:210
+#: ../pyhoca/wxgui/profilemanager.py:254
 msgid "Method"
 msgstr "Método"
 
-#: ../pyhoca/wxgui/profilemanager.py:212
+#: ../pyhoca/wxgui/profilemanager.py:256
 msgid "Image quality"
 msgstr "Calidad de imagen"
 
 #. ##
 #. ## wigdets for the SETTINGS tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
+#: ../pyhoca/wxgui/profilemanager.py:262
 msgid "Fullscreen"
 msgstr "Pantalla Completa"
 
-#: ../pyhoca/wxgui/profilemanager.py:219
+#: ../pyhoca/wxgui/profilemanager.py:263
 msgid "Custom Size"
 msgstr "Tamaño Personalizado"
 
-#: ../pyhoca/wxgui/profilemanager.py:224
+#: ../pyhoca/wxgui/profilemanager.py:268
 msgid "Set display DPI"
 msgstr "Establecer DPI"
 
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
-msgstr "Mantener configuración actual del teclado"
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr ""
+"No establecido (usar las herramientas del lado del servidor para configurar "
+"el teclado)"
 
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
-msgstr "Máscara de teclado"
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+"Detectar automáticamente y usar la configuración de teclado del lado del "
+"cliente en la sesión remota"
 
-#: ../pyhoca/wxgui/profilemanager.py:229
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Ussar configuración de teclado personalizada"
+
+#: ../pyhoca/wxgui/profilemanager.py:273
 msgid "Keyboard model"
 msgstr "Modelo de teclado"
 
-#: ../pyhoca/wxgui/profilemanager.py:231
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Capa"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Variante de la capa"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
 msgid "Enable sound support"
 msgstr "Activar soporte de sonido"
 
-#: ../pyhoca/wxgui/profilemanager.py:232
+#: ../pyhoca/wxgui/profilemanager.py:280
 msgid "Pulse Audio"
 msgstr "Pulse Audio"
 
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
 #. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
+#: ../pyhoca/wxgui/profilemanager.py:284
 msgid "Arts (not supported)"
 msgstr "Arts (sin soporte)"
 
-#: ../pyhoca/wxgui/profilemanager.py:239
+#: ../pyhoca/wxgui/profilemanager.py:287
 msgid "esd"
 msgstr "esd"
 
-#: ../pyhoca/wxgui/profilemanager.py:240
+#: ../pyhoca/wxgui/profilemanager.py:288
 msgid "Use default sound port"
 msgstr "Usar puerto de sonido por defecto"
 
-#: ../pyhoca/wxgui/profilemanager.py:241
+#: ../pyhoca/wxgui/profilemanager.py:289
 msgid "Custom sound port"
 msgstr "Puerto de sonido personalizado"
 
-#: ../pyhoca/wxgui/profilemanager.py:243
+#: ../pyhoca/wxgui/profilemanager.py:291
 msgid "Client Side printing"
 msgstr "Impresión local"
 
-#: ../pyhoca/wxgui/profilemanager.py:245
+#: ../pyhoca/wxgui/profilemanager.py:293
 msgid "Use local folder sharing"
 msgstr "Compartir carpetas locales"
 
-#: ../pyhoca/wxgui/profilemanager.py:246
+#: ../pyhoca/wxgui/profilemanager.py:294
 msgid "Path"
 msgstr "Ruta"
 
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
 msgid "Add"
 msgstr "Añadir"
 
-#: ../pyhoca/wxgui/profilemanager.py:251
+#: ../pyhoca/wxgui/profilemanager.py:299
 msgid "Local Path"
 msgstr "Ruta Local"
 
-#: ../pyhoca/wxgui/profilemanager.py:252
+#: ../pyhoca/wxgui/profilemanager.py:300
 msgid "Connect Method"
 msgstr "Método de Conexión"
 
-#: ../pyhoca/wxgui/profilemanager.py:253
+#: ../pyhoca/wxgui/profilemanager.py:301
 msgid "Delete"
 msgstr "Eliminar"
 
-#: ../pyhoca/wxgui/profilemanager.py:255
+#: ../pyhoca/wxgui/profilemanager.py:303
 msgid "Convert between client and server encodings"
 msgstr "Convertir codificaciones entre cliente y servidor"
 
-#: ../pyhoca/wxgui/profilemanager.py:256
+#: ../pyhoca/wxgui/profilemanager.py:304
 msgid "Client encoding"
 msgstr "Codificación del cliente"
 
-#: ../pyhoca/wxgui/profilemanager.py:258
+#: ../pyhoca/wxgui/profilemanager.py:306
 msgid "Server encoding"
 msgstr "Codificación del Servidor"
 
-#: ../pyhoca/wxgui/profilemanager.py:261
+#: ../pyhoca/wxgui/profilemanager.py:309
 msgid "Use file MIME box for local file import"
 msgstr "Usar tipo de archivo MIME para la importación local"
 
-#: ../pyhoca/wxgui/profilemanager.py:262
+#: ../pyhoca/wxgui/profilemanager.py:310
 msgid "Extensions"
 msgstr "Extensiones"
 
-#: ../pyhoca/wxgui/profilemanager.py:264
+#: ../pyhoca/wxgui/profilemanager.py:312
 msgid "Action"
 msgstr "Acción"
 
-#: ../pyhoca/wxgui/profilemanager.py:269
+#: ../pyhoca/wxgui/profilemanager.py:317
 msgid "Defaults"
 msgstr "Valores por defecto"
 
-#: ../pyhoca/wxgui/profilemanager.py:271
+#: ../pyhoca/wxgui/profilemanager.py:319
 msgid "Save"
 msgstr "Guardar"
 
-#: ../pyhoca/wxgui/profilemanager.py:272
+#: ../pyhoca/wxgui/profilemanager.py:320
 msgid "Reset"
 msgstr "Reiniciar"
 
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
 msgid "automatically"
 msgstr "automáticamente"
 
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
 msgid "manually"
 msgstr "manualmente"
 
-#: ../pyhoca/wxgui/profilemanager.py:320
+#: ../pyhoca/wxgui/profilemanager.py:376
 msgid "PyHoca-GUI Profile Manager - new profile"
 msgstr "PyHoca-GUI Gestor de Perfiles - nuevo perfil"
 
-#: ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/profilemanager.py:378
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s (connected)"
 msgstr "PyHoca-GUI Gestor de Perfiles - %s (conectado)"
 
-#: ../pyhoca/wxgui/profilemanager.py:324
+#: ../pyhoca/wxgui/profilemanager.py:380
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s"
 msgstr "PyHoca-GUI Gestor de Perfiles - %s"
 
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
-msgstr "Perfil de Sesión"
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Perfil"
 
-#: ../pyhoca/wxgui/profilemanager.py:666
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Sesión"
+
+#: ../pyhoca/wxgui/profilemanager.py:753
 msgid "Connection"
 msgstr "Conexión"
 
-#: ../pyhoca/wxgui/profilemanager.py:667
+#: ../pyhoca/wxgui/profilemanager.py:754
 msgid "Settings"
 msgstr "Opciones"
 
-#: ../pyhoca/wxgui/profilemanager.py:668
+#: ../pyhoca/wxgui/profilemanager.py:755
 msgid "Sharing"
 msgstr "Compartir"
 
-#: ../pyhoca/wxgui/profilemanager.py:1100
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "<xkbtype>"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "<xkblayout>"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "<xkbvariant>"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
 msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
 msgstr "Iconos (*.png)|*.png|Todos (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1103
+#: ../pyhoca/wxgui/profilemanager.py:1287
 msgid "Choose an icon for this session profile"
 msgstr "Elige un icono para este perfil de sesión"
 
-#: ../pyhoca/wxgui/profilemanager.py:1220
+#: ../pyhoca/wxgui/profilemanager.py:1509
 msgid "All files (*.*)|*"
 msgstr "Todos (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
 msgid "Choose a public SSH key"
 msgstr "Elige una clave pública SSH"
 
-#: ../pyhoca/wxgui/profilemanager.py:1389
+#: ../pyhoca/wxgui/profilemanager.py:1784
 msgid "Choose a folder to share within a session"
 msgstr "Elige la carpeta que quieres compartir en la conexión"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
 msgid "Profile Manager"
 msgstr "Gestor de Perfiles"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
+#: ../pyhoca/wxgui/profilemanager.py:1912
 msgid "Profile name is missing, profile unusable!!!"
 msgstr "¡¡¡Nombre de pefil no encontrado o no válido!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
 #, python-format
 msgid "Profile name %s already exists!!!"
 msgstr "El perfil de usuario %s ya existe!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1464
+#: ../pyhoca/wxgui/profilemanager.py:1923
 msgid "The SSH proxy configuration is incomplete. Try again."
 msgstr ""
 "El protocolo de autenticación de comunicaciones está incompleto. Inténtalo "
 "otra vez."
 
-#: ../pyhoca/wxgui/profilemanager.py:1474
+#: ../pyhoca/wxgui/profilemanager.py:1933
 #, python-format
 msgid ""
 "Another session profile (%s) already uses [%s]:%s for binding a local SSH "
@@ -597,201 +682,360 @@ msgstr ""
 "al proxy SSH local.\n"
 "Por favor, cambia los parámetros del proxy SSH en base a esta información."
 
-#: ../pyhoca/wxgui/profilemanager.py:1494
+#: ../pyhoca/wxgui/profilemanager.py:1960
 #, python-format
 msgid "%s - profile added"
 msgstr "%s - perfil añadido"
 
-#: ../pyhoca/wxgui/profilemanager.py:1495
+#: ../pyhoca/wxgui/profilemanager.py:1961
 msgid "A new session profile has been added."
 msgstr "Se ha añadido un nuevo perfil de sesión."
 
-#: ../pyhoca/wxgui/profilemanager.py:1499
+#: ../pyhoca/wxgui/profilemanager.py:1965
 #, python-format
 msgid "%s - modified"
 msgstr "%s - modificado"
 
-#: ../pyhoca/wxgui/profilemanager.py:1500
+#: ../pyhoca/wxgui/profilemanager.py:1966
 msgid "Changes to profile have been saved."
 msgstr "Se han guardado los cambios en el perfil."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:55
+#: ../pyhoca/wxgui/menus_taskbar.py:75
 msgid "Edit Profile"
 msgstr "Editar Perfil"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:57
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Usar como Plantilla para Nuevos Perfiles"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
 msgid "Delete Profile"
 msgstr "Borrar Perfil"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:79
+#: ../pyhoca/wxgui/menus_taskbar.py:107
 #, python-format
 msgid "About %s (%s)..."
 msgstr "Acerca de %s (%s) ..."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:102
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "Gestionar Perfil de Sesión"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
 msgid "Printing Preferences"
 msgstr "Preferencias de impresión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:108
+#: ../pyhoca/wxgui/menus_taskbar.py:148
 msgid "Client Options"
 msgstr "Opciones del Cliente"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
 msgid "E&xit"
 msgstr "S&alir"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:159
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Título de la ventana"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
 msgid "Resume Session"
 msgstr "Retomar Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:161
+#: ../pyhoca/wxgui/menus_taskbar.py:236
 msgid "Resume Session (not possible)"
 msgstr "Retomar Sesión (no disponible)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:169
+#: ../pyhoca/wxgui/menus_taskbar.py:247
 msgid "Transfer Session"
 msgstr "Transferir Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:171
+#: ../pyhoca/wxgui/menus_taskbar.py:249
 msgid "Transfer Session (not possible)"
 msgstr "Transferir Sesión (no disponible)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:174
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Suspender Sesión (y desconectar/salir)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Suspender Sesión (y desconectar)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
 msgid "Suspend Session"
 msgstr "Suspender Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:176
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Finalizar Sesión (y desconectar/salir)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Finalizar Sesión (y desconectar)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
 msgid "Terminate Session"
 msgstr "Finalizar Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:206
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Actualizar árbol de menús"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Renombrar la Ventana de la Sesión"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Mostrar la Ventana de la Sesión"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
 msgid "&Share custom local folder"
 msgstr "Compartir carpeta per&sonalizada local"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:229
+#: ../pyhoca/wxgui/menus_taskbar.py:344
 msgid "Share:"
 msgstr "Compartir:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:240
+#: ../pyhoca/wxgui/menus_taskbar.py:355
 msgid "Unshare:"
 msgstr "No compartido:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:250
+#: ../pyhoca/wxgui/menus_taskbar.py:365
 msgid "Unshare &all local folders"
 msgstr "Dejar de compartir tod&as las carpetas locales"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:290
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Multimedia"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Desarrollo"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Educación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Juegos"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Gráficos"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Ofimática"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "Sistema"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Utilidades"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Otras Aplicaciones"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Conectar %s"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Conectando..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "Iniciar &nueva Sesión de Escritorio"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Recuperando Menú de Aplicación..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Recibido Menú de Aplicación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
 msgid "Start &new Session"
 msgstr "Iniciar &nueva Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:306
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Ejecutar la aplicación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Gestionar el Menú de la Aplicación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
 msgid "Running"
 msgstr "Activa"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:308
+#: ../pyhoca/wxgui/menus_taskbar.py:721
 msgid "Suspended"
 msgstr "Suspendida"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:320
+#: ../pyhoca/wxgui/menus_taskbar.py:740
 msgid "&Clean all sessions"
 msgstr "&Limpiar el registro de sesiones"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:322
+#: ../pyhoca/wxgui/menus_taskbar.py:746
 msgid "Customize &profile"
 msgstr "Configurar &perfil"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:325
+#: ../pyhoca/wxgui/menus_taskbar.py:758
 msgid "Shared &folders"
 msgstr "Compartir &carpetas"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:333
+#: ../pyhoca/wxgui/menus_taskbar.py:770
 msgid "&Disconnect from Server"
 msgstr "&Desconectar del servidor"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:359
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Suspender Sesión y Salir (e&xit) de la aplicación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "Desconectar y Salir (e&xit) de la aplicación"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
 msgid "Add Profile"
 msgstr "Añadir Perfil"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:428
+#: ../pyhoca/wxgui/menus_taskbar.py:911
 msgid "No session profiles defined"
 msgstr "No se han definido perfiles de sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Start/Resume Session"
 msgstr "Iniciar/Retomar Sesión"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Connect Server"
 msgstr "Conectar con el Servidor"
 
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
 #, python-format
 msgid "About %s ..."
 msgstr "Acerca de %s ..."
 
-#: ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Suspendiendo sesiones y saliendo de las aplicaciones..."
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Desconectando %s y saliendo de las aplicaciones..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Saliendo de la aplicación..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - advertencia del servidor"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "El servidor X2GO no publica menú de la aplicación"
+
+#: ../pyhoca/wxgui/frontend.py:610
 msgid "Public SSH key authentication has been successful."
 msgstr "Se ha iniciado sesión con éxito usando la clave pública SSH."
 
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/frontend.py:644
 msgid ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 msgstr ""
 "La clave SSH del proxy no es válida o no ha sido aceptada por el usuario"
 
-#: ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - error EOF"
+
+#: ../pyhoca/wxgui/frontend.py:665
 msgid "Authentication protocol communication incomplete! Try again..."
 msgstr ""
 "¡El protocolo de autenticación de comunicaciones está incompleto! Inténtalo "
 "otra vez..."
 
-#: ../pyhoca/wxgui/frontend.py:431
+#: ../pyhoca/wxgui/frontend.py:672
 #, python-format
 msgid "%s - auth key error"
 msgstr "%s - error en la clave de identificación"
 
-#: ../pyhoca/wxgui/frontend.py:452
+#: ../pyhoca/wxgui/frontend.py:693
 msgid "An unknown error occurred during authentication!"
 msgstr ""
 "¡Error desconocido al tratar de validar el nombre de usuario y la contraseña!"
 
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
-msgstr "Limpiando sesiones X2go..."
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Perfil de Sesión Desconocido, configúralo antes de usar..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - advertencia de la sesión"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Fallo al ejecutar el comando \"%s\"."
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Limpiando sesiones X2Go..."
 
-#: ../pyhoca/wxgui/frontend.py:573
+#: ../pyhoca/wxgui/frontend.py:961
 #, python-format
 msgid "%s - disconnect"
 msgstr "%s - desconectado"
 
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
-msgstr "Se ha desconectado el Perfil X2go."
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "Se ha desconectado el Perfil X2Go."
 
-#: ../pyhoca/wxgui/frontend.py:589
+#: ../pyhoca/wxgui/frontend.py:977
 msgid "New Session Profile"
 msgstr "Nuevo Perfil de Sesión"
 
-#: ../pyhoca/wxgui/frontend.py:616
+#: ../pyhoca/wxgui/frontend.py:1029
 #, python-format
 msgid "Really Delete Session Profile ,,%s''?"
 msgstr "Eliminar el Perfil de Sesión \"%s''?"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 #, python-format
 msgid "%s - profile deleted"
 msgstr "%s - perfil eliminado"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 msgid "The session profile has been deleted."
 msgstr "Se ha eliminado el perfil de sesión."
 
-#: ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:1053
 #, python-format
 msgid "%s - share local folder with sessions of this profile"
 msgstr "%s - compartir carpetas locales con las sesiones de este perfil"
 
-#: ../pyhoca/wxgui/frontend.py:715
+#: ../pyhoca/wxgui/frontend.py:1194
 #, python-format
 msgid ""
 "The authenticity of host [%s]:%s can't be established.\n"
@@ -800,21 +1044,21 @@ msgid ""
 "Are you sure you want to continue connecting?"
 msgstr ""
 "La autenticidad del servidor [%s]:%s no puede comprobarse.\n"
-"la huella de la clave %s es ,,%s''.\n"
+"la huella de la clave %s es \"%s\".\n"
 "\n"
 "¿Continuar con la conexión?"
 
-#: ../pyhoca/wxgui/frontend.py:723
+#: ../pyhoca/wxgui/frontend.py:1202
 #, python-format
 msgid "%s: Confirm Host Authorization"
 msgstr "%s: Se confirma la autorización del equipo"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid "%s - channel error"
 msgstr "%s - error en el canal"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
@@ -823,45 +1067,40 @@ msgstr ""
 "¡La conexión con el servidor %s ha finalizado inesperadamente! Intenta "
 "iniciar sesión nuevamente..."
 
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid "%s - session failure"
 msgstr "%s - fallo en la sesión"
 
-#: ../pyhoca/wxgui/frontend.py:752
+#: ../pyhoca/wxgui/frontend.py:1265
 msgid "The session startup failed."
 msgstr "El inicio de sesión ha fallado"
 
-#: ../pyhoca/wxgui/frontend.py:759
+#: ../pyhoca/wxgui/frontend.py:1283
 #, python-format
-msgid "The command ,,%s'' is not available on X2go server."
-msgstr "El comando \"%s'' no está presente en el servidor X2go."
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "El comando \"%s'' no está presente en el servidor X2Go."
 
-#: ../pyhoca/wxgui/frontend.py:761
+#: ../pyhoca/wxgui/frontend.py:1285
 #, python-format
 msgid ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 msgstr ""
-"El comando ,,%s'' no está presente en el servidor X2go\n"
+"El comando \"%s\" no está disponible en el servidor X2go\n"
 "%s."
 
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr "%s - advertencia durante la sesión"
-
-#: ../pyhoca/wxgui/frontend.py:767
+#: ../pyhoca/wxgui/frontend.py:1302
 #, python-format
 msgid ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
 "been denied."
 msgstr ""
 "Se ha denegado la redirección del túnel TCP inverso para la sesión %s al "
-"puerto %s del servidor X2go."
+"puerto %s del servidor X2Go."
 
-#: ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
@@ -870,37 +1109,37 @@ msgstr ""
 "La solicitud de túnel a %s:%s para la sesión %s ha sido denegada por el "
 "servidor X2go/SSH . Fallo en el inicio de sesión."
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 #, python-format
 msgid "%s - audio warning"
 msgstr "%s - advertencia en el sistema de audio"
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 msgstr ""
-"El sistema X2go PulseAudio no está disponible en las sesiones del tipo "
+"El sistema X2Go PulseAudio no está disponible en las sesiones del tipo "
 "Remote Desktop"
 
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
 #, python-format
 msgid "%s - audio error"
 msgstr "%s - error en el audio"
 
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
-msgstr "El sistema X2go PulseAudio no puede iniciarse"
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "El sistema X2Go PulseAudio no puede iniciarse"
 
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
-msgstr "El sistema X2go PulseAudio ha finalizado inesperadamente"
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "El sistema X2Go PulseAudio ha finalizado inesperadamente"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid "%s - audio problem"
 msgstr "%s - problema en el audio"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid ""
 "The audio connection could not be set up for this session.\n"
@@ -909,12 +1148,71 @@ msgstr ""
 "La conexión de audio puede que no esté configurada para esta sesión.\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr ""
+"%s - el sistema de impresión en el lado del cliente no está disponible -"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+"El servidor no permite la impresión del lado del cliente para esta sesión.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s - No está disponible el contexto MIME"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+"El servidor no soporta el contexto X2Go MIME.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - las carpetas del lado del cliente no están compartidas"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"El servidor no permite compartir carpetas del lado del cliente en esta "
+"sesión.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - el recurso del cliente no está marcado como compartido"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"La impresión y el acceso a las carpetas del lado del cliente no están "
+"permitidas en esta sesión.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid "%s - print error"
 msgstr "%s - error de impresión"
 
-#: ../pyhoca/wxgui/frontend.py:808
+#: ../pyhoca/wxgui/frontend.py:1433
 #, python-format
 msgid ""
 "%s\n"
@@ -925,7 +1223,7 @@ msgstr ""
 "...provocado en la impresora %s  por la sesión\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid ""
 "%s\n"
@@ -936,58 +1234,58 @@ msgstr ""
 "...provocado por la sesión\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid "%s - start"
 msgstr "%s - inicio"
 
-#: ../pyhoca/wxgui/frontend.py:814
+#: ../pyhoca/wxgui/frontend.py:1450
 #, python-format
 msgid ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 msgstr ""
-"Iniciando nueva sesión X2go...\n"
+"Iniciando nueva sesión X2Go...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 msgstr ""
 "Otro cliente ha iniciado sesión X2go\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid "%s - resume"
 msgstr "%s - retornar a la sesión"
 
-#: ../pyhoca/wxgui/frontend.py:822
+#: ../pyhoca/wxgui/frontend.py:1480
 #, python-format
 msgid ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 msgstr ""
-"Retornando sesión X2go...\n"
+"Retornando sesión X2Go...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 msgstr ""
 "Otro cliente retornó a la sesión X2go\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid "%s - running"
 msgstr "%s - en ejecución"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid ""
 "Found already running session\n"
@@ -996,42 +1294,42 @@ msgstr ""
 "La sesión ya está en ejecución\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid "%s - suspend"
 msgstr "%s - suspender"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 msgstr ""
 "Se ha suspendido la Sesión X2go\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid "%s - terminate"
 msgstr "%s - finalizar"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 msgstr ""
 "Se ha finalizado la sesión X2go\n"
 "%s"
 
-#: ../pyhoca/wxgui/messages.py:53
+#: ../pyhoca/wxgui/messages.py:74
 #, python-format
 msgid ""
 "Are you really sure you want to\n"
 "delete the session profile ,,%s''?"
 msgstr "¿Eliminar el perfil de sesión \"%s\"?"
 
-#: ../pyhoca/wxgui/messages.py:54
+#: ../pyhoca/wxgui/messages.py:75
 #, python-format
 msgid ""
 "PyHoca-GUI is already running for user ,,%s''!\n"
@@ -1045,100 +1343,147 @@ msgstr ""
 "Sólo se permite una instancia de PyHoca-GUI por usuario.\n"
 "El icono de PyHoca-GUI se encuentra en el area de notificación."
 
-#: ../pyhoca/wxgui/messages.py:87
+#: ../pyhoca/wxgui/messages.py:108
 msgid "Yes"
 msgstr "Sí"
 
-#: ../pyhoca/wxgui/messages.py:88
+#: ../pyhoca/wxgui/messages.py:109
 msgid "No"
 msgstr "No"
 
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
 msgid "Ok"
 msgstr "Ok"
 
-#: ../pyhoca/wxgui/printingprefs.py:57
+#: ../pyhoca/wxgui/printingprefs.py:66
 #, python-format
 msgid "%s - Printing Preferences"
 msgstr "%s - Preferencias de Impresión"
 
-#: ../pyhoca/wxgui/printingprefs.py:59
+#: ../pyhoca/wxgui/printingprefs.py:68
 #, python-format
 msgid "%s - Incoming Print Job from  %s (%s)"
 msgstr "%s - Recibiendo trabajo de impresión desde  %s (%s)"
 
-#: ../pyhoca/wxgui/printingprefs.py:64
+#: ../pyhoca/wxgui/printingprefs.py:73
 msgid "Open this dialog window"
 msgstr "Abrir esta ventana de diálogo"
 
-#: ../pyhoca/wxgui/printingprefs.py:65
+#: ../pyhoca/wxgui/printingprefs.py:74
 msgid "Open with PDF viewer"
 msgstr "Abrir con el visor PDF"
 
-#: ../pyhoca/wxgui/printingprefs.py:66
+#: ../pyhoca/wxgui/printingprefs.py:75
 msgid "Save to a local folder"
 msgstr "Guardar en carpeta local"
 
-#: ../pyhoca/wxgui/printingprefs.py:67
+#: ../pyhoca/wxgui/printingprefs.py:76
 msgid "Print to a local printer"
 msgstr "Imprimir en la impresora local"
 
-#: ../pyhoca/wxgui/printingprefs.py:68
+#: ../pyhoca/wxgui/printingprefs.py:77
 msgid "Run custom print command"
 msgstr "Ejecutar comando de impresión personalizado"
 
-#: ../pyhoca/wxgui/printingprefs.py:71
+#: ../pyhoca/wxgui/printingprefs.py:80
 msgid "<Select a print action here>"
 msgstr "<Elegir la opción de impresión aquí>"
 
-#: ../pyhoca/wxgui/printingprefs.py:105
+#: ../pyhoca/wxgui/printingprefs.py:114
 msgid "Print action"
 msgstr "Imprimir"
 
-#: ../pyhoca/wxgui/printingprefs.py:107
+#: ../pyhoca/wxgui/printingprefs.py:116
 msgid "Default action for incoming print jobs"
 msgstr "Acción por defecto para los trabajos de impresión recibidos"
 
 #. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
+#: ../pyhoca/wxgui/printingprefs.py:120
 msgid "PDF viewer command"
 msgstr "Comando para abrir el visor PDF"
 
 #. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
+#: ../pyhoca/wxgui/printingprefs.py:127
 msgid "Save PDFs to folder"
 msgstr "Guardar PDFs en una carpeta"
 
 #. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
+#: ../pyhoca/wxgui/printingprefs.py:134
 msgid "Use this printer"
 msgstr "Usar esta impresora"
 
 #. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
+#: ../pyhoca/wxgui/printingprefs.py:138
 msgid "Custom print command"
 msgstr "Comando de impresión personalizado"
 
-#: ../pyhoca/wxgui/printingprefs.py:134
+#: ../pyhoca/wxgui/printingprefs.py:143
 msgid "Apply"
 msgstr "Aplicar"
 
-#: ../pyhoca/wxgui/printingprefs.py:136
+#: ../pyhoca/wxgui/printingprefs.py:145
 msgid "Print"
 msgstr "Imprimir"
 
-#: ../pyhoca/wxgui/printingprefs.py:227
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- hay impresoras instaladas -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
 msgid "- print system is not available -"
 msgstr "- el sistema de impresión no está disponible -"
 
-#: ../pyhoca/wxgui/printingprefs.py:334
+#: ../pyhoca/wxgui/printingprefs.py:407
 msgid "Choose PDF viewer application"
 msgstr "Elegir visor PDF"
 
-#: ../pyhoca/wxgui/printingprefs.py:350
+#: ../pyhoca/wxgui/printingprefs.py:430
 msgid "Choose PDF saving location"
 msgstr "Elegir localización para los PDFs"
 
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Título de la sesión - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Cambiar título de la sesión a"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "Ok"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Máscara de teclado"
+
+#, fuzzy
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - error en la clave"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - error en la conexión"
+
+#~ msgid "new session profile"
+#~ msgstr "Nuevo Perfil de Sesión"
+
+#, fuzzy
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Nuevo Perfil de Sesión"
+
+#, fuzzy
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Aplicación"
+
+#~ msgid "RDP settings"
+#~ msgstr "Parámetros RDP"
+
+#~ msgid "Session Profile"
+#~ msgstr "Perfil de Sesión"
+
+#~ msgid "Icon"
+#~ msgstr "Icono"
+
 #, fuzzy
 #~ msgid "All session profiles are connected"
 #~ msgstr "No se han definido perfiles de sesión"
diff --git a/po/nb_NO.po b/po/nb_NO.po
new file mode 100644
index 0000000..cc75284
--- /dev/null
+++ b/po/nb_NO.po
@@ -0,0 +1,1501 @@
+# PyHoca-GUI / i18n.
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+#                         Dick Kniep <dick.kniep at lindix.nl>
+# This file is distributed under the same license as the PyHoca-GUI package.
+# Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PyHoca-GUI VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-06-03 14:30+0100\n"
+"Last-Translator: Terje Andersen <teranders at gmail.com>\n"
+"Language-Team: nb_NO <x2go-i18n at lists.berlios.de>\n"
+"Language: nb_NO\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Bokmal\n"
+"X-Poedit-Country: Norway\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../pyhoca/wxgui/logon.py:92
+#, python-format
+msgid "%s (via %s)"
+msgstr "%s (via %s)"
+
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
+msgid "Username"
+msgstr "Brukernavn"
+
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
+msgid "Password"
+msgstr "Passord"
+
+#: ../pyhoca/wxgui/logon.py:101
+msgid "Authenticate"
+msgstr "Autentiser"
+
+#: ../pyhoca/wxgui/logon.py:113
+msgid "  Start SSH tunnel  "
+msgstr "  Start SSH tunnel  "
+
+#: ../pyhoca/wxgui/logon.py:121
+msgid "Session login"
+msgstr "Sesjons innlogging"
+
+#: ../pyhoca/wxgui/logon.py:122
+msgid "SSH proxy server login"
+msgstr "logg inn via en SSH mellomtjener"
+
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
+#, python-format
+msgid "%s - connect failure"
+msgstr "%s - tilkoblingsfeil"
+
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr "Bruker kontoen har ikke tillatelse til å starte X2Go sesjoner!"
+
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
+#, python-format
+msgid "%s - connect"
+msgstr "%s - koble til"
+
+#: ../pyhoca/wxgui/logon.py:299
+msgid "Authentication has been successful."
+msgstr "Autentiseringen var vellykket."
+
+#: ../pyhoca/wxgui/logon.py:330
+msgid "SSH tunnel started"
+msgstr "SSH tunnel har startet"
+
+#: ../pyhoca/wxgui/logon.py:335
+msgid "Authentication failed!"
+msgstr "Autentiseringen feilet!"
+
+#: ../pyhoca/wxgui/logon.py:342
+#, python-format
+msgid "%s - SSH proxy"
+msgstr "%s - ssh mellomtjener"
+
+#: ../pyhoca/wxgui/logon.py:343
+msgid "Authentication to the SSH proxy server failed!"
+msgstr "Autentiseringenen til SSH mellomtjeneren feilet!"
+
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
+#, python-format
+msgid "%s - socket error"
+msgstr "%s - sokkel feil"
+
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
+#, python-format
+msgid "%s - host key error"
+msgstr "%s - verts nøkkel feil"
+
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
+msgid ""
+"The remote server's host key is invalid or has not been accepted by the user"
+msgstr ""
+"Den eksterne serverens verts nøkkel er ugyldig, eller ikke blitt akseptert "
+"av brukeren"
+
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
+#, python-format
+msgid "%s - missing home directory"
+msgstr "%s - mangler hjemmekatalog"
+
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
+msgid "The remote user's home directory does not exist."
+msgstr "Brukerens hjemmekatalog på den eksterne serveren finnes ikke."
+
+#: ../pyhoca/wxgui/logon.py:388
+#, python-format
+msgid "%s - key error"
+msgstr "%s - nøkkel feil"
+
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
+#, python-format
+msgid "%s - auth error"
+msgstr "%s - autentiseringens feil"
+
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - SSH feil"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - ukjent feil"
+
+#: ../pyhoca/wxgui/logon.py:413
+msgid "An unknown error occured during authentication!"
+msgstr "En ukjent feil oppstod under autentiseringen!"
+
+#: ../pyhoca/wxgui/taskbar.py:92
+#, python-format
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to ,,%s''"
+msgstr ""
+"PyHoca-GUI\n"
+"Kobler deg til ,,%s''"
+
+#: ../pyhoca/wxgui/taskbar.py:96
+#, python-format
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Currently connecting you to remote X2Go server ,,%s''"
+msgstr ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Holder på med å koble deg til X2Go serveren ,,%s''"
+
+#: ../pyhoca/wxgui/taskbar.py:106
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to X2Go..."
+msgstr ""
+"PyHoca-GUI\n"
+"Kobler deg til X2Go..."
+
+#: ../pyhoca/wxgui/taskbar.py:110
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Client for connecting you to a remote X2Go server"
+msgstr ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Klient for å koble deg til en ekstern X2Go server"
+
+#: ../pyhoca/wxgui/profilemanager.py:82
+msgid "GNOME Desktop (GNOME)"
+msgstr "GNOME skrivebord (GNOME)"
+
+#: ../pyhoca/wxgui/profilemanager.py:83
+msgid "K Desktop Environment (KDE)"
+msgstr "K skrivebordsmiljø (KDE)"
+
+#: ../pyhoca/wxgui/profilemanager.py:84
+msgid "Lightweight X Desktop (LXDE)"
+msgstr "Lettvekts X skrivebord (LXDE)"
+
+#: ../pyhoca/wxgui/profilemanager.py:85
+msgid "Trinity X Desktop (KDE3-like)"
+msgstr "Trinity X Skrivebord (KDE3-liknende)"
+
+#: ../pyhoca/wxgui/profilemanager.py:86
+msgid "Unity X Desktop Shell (UNITY)"
+msgstr "Unity X skrivebords skall (UNITY)"
+
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 skrivebord (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Publiserte applikasjoner"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Enkelt applikasjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
+msgid "XDMCP Query"
+msgstr "XDMCP spørring"
+
+#: ../pyhoca/wxgui/profilemanager.py:91
+msgid "Windows Terminal Server (RDP-proxy)"
+msgstr "Windows Terminal Server (RDP-proxy)"
+
+#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
+msgid "Custom command"
+msgstr "Selvvalgt kommando"
+
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
+msgid "Internet Browser"
+msgstr "Nettleser"
+
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
+msgid "Email Client"
+msgstr "Epost klient"
+
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Kontor"
+
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
+msgid "Terminal"
+msgstr "Terminal"
+
+#: ../pyhoca/wxgui/profilemanager.py:113
+msgid "Open file with system's default application"
+msgstr "Ã…pne filen med systems foretrukne applikasjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:114
+msgid "Open application chooser dialog"
+msgstr "Ã…pne applikasjonsvelger dialog"
+
+#: ../pyhoca/wxgui/profilemanager.py:115
+msgid "Save incoming file as ..."
+msgstr "Lagre innkommende fil som ..."
+
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "innstillinger arvet fra"
+
+#. boxes for all tabs
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Sesjonstittel"
+
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Sesjonsvindu"
+
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Sesjon oppstart"
+
+#: ../pyhoca/wxgui/profilemanager.py:163
+msgid "Server"
+msgstr "Server"
+
+#: ../pyhoca/wxgui/profilemanager.py:164
+msgid "Connection Link Speed"
+msgstr "Tilkoblingens forbindelseshastighet"
+
+#: ../pyhoca/wxgui/profilemanager.py:165
+msgid "Compression"
+msgstr "Kompresjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:166
+msgid "Display"
+msgstr "Skjerm"
+
+#: ../pyhoca/wxgui/profilemanager.py:167
+msgid "Keyboard"
+msgstr "Tastatur"
+
+#: ../pyhoca/wxgui/profilemanager.py:168
+msgid "Sound"
+msgstr "Lyd"
+
+#: ../pyhoca/wxgui/profilemanager.py:169
+msgid "Printing"
+msgstr "Utskrift"
+
+#: ../pyhoca/wxgui/profilemanager.py:170
+msgid "Folder Exports"
+msgstr "Mappe eksporter"
+
+#: ../pyhoca/wxgui/profilemanager.py:171
+msgid "File Import"
+msgstr "Fil import"
+
+#. ##
+#. ## widgets for the PROFILE tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:176
+msgid "Name"
+msgstr "Navn"
+
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Angi sesjons vindustittel"
+
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Benytt standard sesjons vindustittel"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Tilpasset sesjon vindustittel"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Vindusikon"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Start sesjonen automatisk etter innlogging"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "Logg inn automatisk etter at %s har startet"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
+msgid "Type"
+msgstr "Type"
+
+#: ../pyhoca/wxgui/profilemanager.py:205
+msgid "Application"
+msgstr "Applikasjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "XDMCP server"
+
+#: ../pyhoca/wxgui/profilemanager.py:211
+msgid "RDP server"
+msgstr "RDP server"
+
+#: ../pyhoca/wxgui/profilemanager.py:213
+msgid "RDP options"
+msgstr "RDP alternativer"
+
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr ""
+"Integrer eksterne applikasjon(er) inn i det lokale skrivebordet (rotløs "
+"modus)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Meny med publiserte applikasjoner"
+
+#. ##
+#. ## widgets for the CONNECTION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
+msgid "User"
+msgstr "Bruker"
+
+#: ../pyhoca/wxgui/profilemanager.py:225
+msgid "Host"
+msgstr "Vert"
+
+#: ../pyhoca/wxgui/profilemanager.py:227
+msgid "Port"
+msgstr "Port"
+
+#: ../pyhoca/wxgui/profilemanager.py:229
+msgid "RSA/DSA private key"
+msgstr "RSA/DSA privat nøkkel"
+
+#: ../pyhoca/wxgui/profilemanager.py:232
+msgid "Server behind SSH proxy"
+msgstr "Server bak SSH mellomtjeneren"
+
+#: ../pyhoca/wxgui/profilemanager.py:235
+msgid "Key file"
+msgstr "Nøkkelfil"
+
+#: ../pyhoca/wxgui/profilemanager.py:238
+msgid "Host[:Port]"
+msgstr "Vert[:Port]"
+
+#: ../pyhoca/wxgui/profilemanager.py:240
+msgid "SSH Proxy Tunnel"
+msgstr "SSH mellomtjener tunnel"
+
+#: ../pyhoca/wxgui/profilemanager.py:248
+msgid "Modem"
+msgstr "Modem"
+
+#: ../pyhoca/wxgui/profilemanager.py:249
+msgid "ISDN"
+msgstr "ISDN"
+
+#: ../pyhoca/wxgui/profilemanager.py:250
+msgid "ADSL"
+msgstr "ADSL"
+
+#: ../pyhoca/wxgui/profilemanager.py:251
+msgid "WAN"
+msgstr "WAN"
+
+#: ../pyhoca/wxgui/profilemanager.py:252
+msgid "LAN"
+msgstr "LAN"
+
+#: ../pyhoca/wxgui/profilemanager.py:254
+msgid "Method"
+msgstr "Metode"
+
+#: ../pyhoca/wxgui/profilemanager.py:256
+msgid "Image quality"
+msgstr "Bildekvalitet"
+
+#. ##
+#. ## wigdets for the SETTINGS tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:262
+msgid "Fullscreen"
+msgstr "Fullskjerm"
+
+#: ../pyhoca/wxgui/profilemanager.py:263
+msgid "Custom Size"
+msgstr "Egentilpasset størrelse"
+
+#: ../pyhoca/wxgui/profilemanager.py:268
+msgid "Set display DPI"
+msgstr "Sett skjermens DPI"
+
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr "Ikke angi (benytt server-side verktøy for å konfigurere tastaturet)"
+
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+"Automatisk oppdag og benytt klient-side konfigurasjon for tastaturet inne i "
+"sesjonen"
+
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Benytt tilpasset innstillinger for tastaturoppsett som gitt nedenfor"
+
+#: ../pyhoca/wxgui/profilemanager.py:273
+msgid "Keyboard model"
+msgstr "Tastaturmodell"
+
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Utforming"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Utformingsvariant"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
+msgid "Enable sound support"
+msgstr "Aktiver lydstøtte"
+
+#: ../pyhoca/wxgui/profilemanager.py:280
+msgid "Pulse Audio"
+msgstr "Pulse Audio"
+
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
+#. However, config files can contain an Arts configuration, so we will honour this
+#: ../pyhoca/wxgui/profilemanager.py:284
+msgid "Arts (not supported)"
+msgstr "Arts (ikke supportert)"
+
+#: ../pyhoca/wxgui/profilemanager.py:287
+msgid "esd"
+msgstr "esd"
+
+#: ../pyhoca/wxgui/profilemanager.py:288
+msgid "Use default sound port"
+msgstr "Benytt standard lydport"
+
+#: ../pyhoca/wxgui/profilemanager.py:289
+msgid "Custom sound port"
+msgstr "Selvvalgt lydport"
+
+#: ../pyhoca/wxgui/profilemanager.py:291
+msgid "Client Side printing"
+msgstr "Klientside utskrift"
+
+#: ../pyhoca/wxgui/profilemanager.py:293
+msgid "Use local folder sharing"
+msgstr "Benytt lokal mappedeling"
+
+#: ../pyhoca/wxgui/profilemanager.py:294
+msgid "Path"
+msgstr "Sti"
+
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
+msgid "Add"
+msgstr "Legg til"
+
+#: ../pyhoca/wxgui/profilemanager.py:299
+msgid "Local Path"
+msgstr "Lokal sti"
+
+#: ../pyhoca/wxgui/profilemanager.py:300
+msgid "Connect Method"
+msgstr "Tilkoblingsmetode"
+
+#: ../pyhoca/wxgui/profilemanager.py:301
+msgid "Delete"
+msgstr "Slett"
+
+#: ../pyhoca/wxgui/profilemanager.py:303
+msgid "Convert between client and server encodings"
+msgstr "Konverter tegnkodingen mellom klient og server"
+
+#: ../pyhoca/wxgui/profilemanager.py:304
+msgid "Client encoding"
+msgstr "Klientens tegnkode"
+
+#: ../pyhoca/wxgui/profilemanager.py:306
+msgid "Server encoding"
+msgstr "Serverens tegnkode"
+
+#: ../pyhoca/wxgui/profilemanager.py:309
+msgid "Use file MIME box for local file import"
+msgstr "Benytt filens MIME boks for lokal fil import"
+
+#: ../pyhoca/wxgui/profilemanager.py:310
+msgid "Extensions"
+msgstr "Utvidelser"
+
+#: ../pyhoca/wxgui/profilemanager.py:312
+msgid "Action"
+msgstr "Handling"
+
+#: ../pyhoca/wxgui/profilemanager.py:317
+msgid "Defaults"
+msgstr "Standard"
+
+#: ../pyhoca/wxgui/profilemanager.py:319
+msgid "Save"
+msgstr "Lagre"
+
+#: ../pyhoca/wxgui/profilemanager.py:320
+msgid "Reset"
+msgstr "Resett"
+
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
+msgid "automatically"
+msgstr "automatisk"
+
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
+msgid "manually"
+msgstr "manuelt"
+
+#: ../pyhoca/wxgui/profilemanager.py:376
+msgid "PyHoca-GUI Profile Manager - new profile"
+msgstr "PyHoca-GUI Profil håndterer - ny profil"
+
+#: ../pyhoca/wxgui/profilemanager.py:378
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s (connected)"
+msgstr "PyHoca-GUI Profil håndterer  - %s (tilkoblet)"
+
+#: ../pyhoca/wxgui/profilemanager.py:380
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s"
+msgstr "PyHoca-GUI Profil håndterer  - %s"
+
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Profil"
+
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Sesjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:753
+msgid "Connection"
+msgstr "Tilkobling"
+
+#: ../pyhoca/wxgui/profilemanager.py:754
+msgid "Settings"
+msgstr "Innstillinger"
+
+#: ../pyhoca/wxgui/profilemanager.py:755
+msgid "Sharing"
+msgstr "Deling"
+
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "<xkbtype>"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "<xkblayout>"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "<xkbvariant>"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
+msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
+msgstr "Ikonfiler(*.png)|*.png|Alle filer (*.*)|*"
+
+#: ../pyhoca/wxgui/profilemanager.py:1287
+msgid "Choose an icon for this session profile"
+msgstr "Velg et ikon for denne sesjonsprofilen"
+
+#: ../pyhoca/wxgui/profilemanager.py:1509
+msgid "All files (*.*)|*"
+msgstr "Alle filer (*.*)|*"
+
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
+msgid "Choose a public SSH key"
+msgstr "Velg en offentlig SSH nøkkel"
+
+#: ../pyhoca/wxgui/profilemanager.py:1784
+msgid "Choose a folder to share within a session"
+msgstr "Velg en mappe som skal deles i en sesjon"
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
+msgid "Profile Manager"
+msgstr "Profil håndterer"
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+msgid "Profile name is missing, profile unusable!!!"
+msgstr "Profilnavnet mangler, profilen er ubrukelig!"
+
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#, python-format
+msgid "Profile name %s already exists!!!"
+msgstr "Profilnavnet %s eksisterer allerede!"
+
+#: ../pyhoca/wxgui/profilemanager.py:1923
+msgid "The SSH proxy configuration is incomplete. Try again."
+msgstr "SSH mellomtjener konfigurasjonen er ufullstendig. Forsøk igjen."
+
+#: ../pyhoca/wxgui/profilemanager.py:1933
+#, python-format
+msgid ""
+"Another session profile (%s) already uses [%s]:%s for binding a local SSH "
+"proxy to.\n"
+"Please change the SSH proxy settings accordingly."
+msgstr ""
+"En annen sesjonsprofil (%s) benytter allerede [%s]:%s for å portbinde en "
+"lokal SSH mellomtjener.\n"
+"Vennligst endre SSH mellomtjener innstillingene tilsvarende."
+
+#: ../pyhoca/wxgui/profilemanager.py:1960
+#, python-format
+msgid "%s - profile added"
+msgstr "%s - profil lagt til"
+
+#: ../pyhoca/wxgui/profilemanager.py:1961
+msgid "A new session profile has been added."
+msgstr "En ny sesjonsprofil har blitt lagt til."
+
+#: ../pyhoca/wxgui/profilemanager.py:1965
+#, python-format
+msgid "%s - modified"
+msgstr "%s - endret"
+
+#: ../pyhoca/wxgui/profilemanager.py:1966
+msgid "Changes to profile have been saved."
+msgstr "Endringer til profilen har blitt lagret."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:75
+msgid "Edit Profile"
+msgstr "Rediger profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Benytt som mal for en ny profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
+msgid "Delete Profile"
+msgstr "Slett profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:107
+#, python-format
+msgid "About %s (%s)..."
+msgstr "Om %s (%s) ..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "HÃ¥ndter sesjonsprofil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
+msgid "Printing Preferences"
+msgstr "Utksriftsinnstillinger"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:148
+msgid "Client Options"
+msgstr "Klient alternativer"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
+msgid "E&xit"
+msgstr "&Avslutt"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Vindustittel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
+msgid "Resume Session"
+msgstr "Gjenoppta sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:236
+msgid "Resume Session (not possible)"
+msgstr "Gjenoppta sesjon (ikke mulig)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:247
+msgid "Transfer Session"
+msgstr "Overfør sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:249
+msgid "Transfer Session (not possible)"
+msgstr "Overfør sesjon (ikke mulig)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Koble fra sesjonen (og avslutte)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Koble fra sesjonen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
+msgid "Suspend Session"
+msgstr "Frakoble sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Avslutte sesjonen (og "
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Avslutte sesjon (og koble fra)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
+msgid "Terminate Session"
+msgstr "Avslutte sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Oppfrisk menytreet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Omdøp sesjonsvinduet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Vis sesjonsvindu"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
+msgid "&Share custom local folder"
+msgstr "&Del selvvalgt lokal mappe"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:344
+msgid "Share:"
+msgstr "Del:"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:355
+msgid "Unshare:"
+msgstr "Stopp deling:"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:365
+msgid "Unshare &all local folders"
+msgstr "Stopp deling på a&lle lokale mapper"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Multimedia"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Utvikling"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Opplæring"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Spill"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Grafikk"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internett"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Kontorapplikasjoner"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "System"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Verktøy"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Andre applikasjoner"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Koble til %s"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Kobler til..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "Start &ny sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Henter applikasjonsmenyen..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Hent applikasjonsmenyen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
+msgid "Start &new Session"
+msgstr "Start &ny sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Start enkelt applikasjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Administrer applkasjonsmenyen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
+msgid "Running"
+msgstr "Aktiv"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:721
+msgid "Suspended"
+msgstr "Frakoblet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:740
+msgid "&Clean all sessions"
+msgstr "&Rensk opp alle sesjoner"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:746
+msgid "Customize &profile"
+msgstr "TIlpass &profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:758
+msgid "Shared &folders"
+msgstr "Delte &mapper"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:770
+msgid "&Disconnect from Server"
+msgstr "&Koble fra serveren"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Koble fra sesjonen og &Avslutt applikasjonen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "Koble fra sesjonen og &Avslutt applikasjonen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
+msgid "Add Profile"
+msgstr "Legg til profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:911
+msgid "No session profiles defined"
+msgstr "Ingen sesjonsprofiler er definert"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Start/Resume Session"
+msgstr "Start/gjenoppta sesjon"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Connect Server"
+msgstr "Koble til server"
+
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
+#, python-format
+msgid "About %s ..."
+msgstr "Om %s ..."
+
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Koble fra sesjonene og avslutt applikasjonen..."
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Kobler fra %s og avslutter applikasjonen..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Avslutter applikasjonen..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - server advarsel"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "X2Go serveren publiserer ikke en applikasjonsmeny"
+
+#: ../pyhoca/wxgui/frontend.py:610
+msgid "Public SSH key authentication has been successful."
+msgstr "Offentlig SSH nøkkel autentisering var vellykket."
+
+#: ../pyhoca/wxgui/frontend.py:644
+msgid ""
+"The SSH proxy's host key is invalid or has not been accepted by the user"
+msgstr ""
+"SSH mellomtjenerens vertsnøkkel er ugyldig, eller har ikke blitt akseptert "
+"av brukeren"
+
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - EOF feil"
+
+#: ../pyhoca/wxgui/frontend.py:665
+msgid "Authentication protocol communication incomplete! Try again..."
+msgstr ""
+"Autentiseringens protokoll kommunikasjon er ufullstendig! Forsøk igjen."
+
+#: ../pyhoca/wxgui/frontend.py:672
+#, python-format
+msgid "%s - auth key error"
+msgstr "%s - Feil med autentiseringsnøkkel"
+
+#: ../pyhoca/wxgui/frontend.py:693
+msgid "An unknown error occurred during authentication!"
+msgstr "En ukjent feil oppstod under autentiseringen! "
+
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Ukjent sesjonsprofil, konfigurer den først..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - advarsel om sesjon"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Utførelsen av kommandoen \"%s\" feilet."
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Rensker opp i X2Go sesjoner..."
+
+#: ../pyhoca/wxgui/frontend.py:961
+#, python-format
+msgid "%s - disconnect"
+msgstr "%s - koble fra"
+
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "X2Go profilen er nå frakoblet."
+
+#: ../pyhoca/wxgui/frontend.py:977
+msgid "New Session Profile"
+msgstr "Ny sesjonsprofil"
+
+#: ../pyhoca/wxgui/frontend.py:1029
+#, python-format
+msgid "Really Delete Session Profile ,,%s''?"
+msgstr "Virkelig slette sesjonsprofilen \"%s\"?"
+
+#: ../pyhoca/wxgui/frontend.py:1035
+#, python-format
+msgid "%s - profile deleted"
+msgstr "%s - profilen er slettet"
+
+#: ../pyhoca/wxgui/frontend.py:1035
+msgid "The session profile has been deleted."
+msgstr "Sesjonsprofilen har blitt slettet."
+
+#: ../pyhoca/wxgui/frontend.py:1053
+#, python-format
+msgid "%s - share local folder with sessions of this profile"
+msgstr "%s - del lokal mappe med sesjoner av denne profilen"
+
+#: ../pyhoca/wxgui/frontend.py:1194
+#, python-format
+msgid ""
+"The authenticity of host [%s]:%s can't be established.\n"
+"%s key fingerprint is ,,%s''.\n"
+"\n"
+"Are you sure you want to continue connecting?"
+msgstr ""
+"Ektheten til [%s]:%s kan ikke bli verifisert.\n"
+"%s nøkkelens fingeravtrykkk er \"%s\".\n"
+"\n"
+"Er du sikker på at du vil fortsette tilkoblingen?"
+
+#: ../pyhoca/wxgui/frontend.py:1202
+#, python-format
+msgid "%s: Confirm Host Authorization"
+msgstr "%s: Verifiser vert autorisasjonen"
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid "%s - channel error"
+msgstr "%s - feil med kanalen"
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid ""
+"Lost connection to server %s unexpectedly! Try to re-authenticate to the "
+"server..."
+msgstr ""
+"Mistet uventet forbindelsen til server %s ! Forsøk å autentisiere deg på "
+"nytt til serveren..."
+
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid "%s - session failure"
+msgstr "%s - sesjonsfeil"
+
+#: ../pyhoca/wxgui/frontend.py:1265
+msgid "The session startup failed."
+msgstr "Oppstart av sesjonen feilet."
+
+#: ../pyhoca/wxgui/frontend.py:1283
+#, python-format
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "Kommandoen \"%s\" er ikke tilgjengelig på X2Go serveren."
+
+#: ../pyhoca/wxgui/frontend.py:1285
+#, python-format
+msgid ""
+"The command ,,%s'' is not available on X2Go server\n"
+"%s."
+msgstr ""
+"Kommandoen \"%s\" er ikke tilgjengelig på X2Go server\n"
+"%s."
+
+#: ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid ""
+"Reverse TCP port forwarding request for session %s to server port %s has "
+"been denied."
+msgstr ""
+"Revers TCP port videresendingsforespørselen for sesjon %s til server port %s "
+"har blitt avvist."
+
+#: ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid ""
+"Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
+"X2go/SSH server. Session startup failed."
+msgstr ""
+"Tunnel videresendingsforespørsel til [%s]:%s for sesjon %s ble avvist av den "
+"eksterne X2Go/SSH serveren. Oppstart av sesjonen feilet."
+
+#: ../pyhoca/wxgui/frontend.py:1340
+#, python-format
+msgid "%s - audio warning"
+msgstr "%s - advarsel om lyd"
+
+#: ../pyhoca/wxgui/frontend.py:1340
+msgid ""
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
+msgstr ""
+"X2Go PulseAudio systemet er ikke tilgjengelig inne i Terminal server "
+"sesjoner (RDP)."
+
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
+#, python-format
+msgid "%s - audio error"
+msgstr "%s - feil med lyden"
+
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "X2Go PulseAudio systemet kan ikke bli startet."
+
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "X2Go PulseAudio systemet har uventet stoppet."
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid "%s - audio problem"
+msgstr "%s - problem med lyden"
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid ""
+"The audio connection could not be set up for this session.\n"
+"%s"
+msgstr ""
+"Klarte ikke å sette opp lydforbindelsen for denne sesjonen.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr "%s - klient-side utskrift er ikke tilgjengelig"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+"Serveren nekter klient-side utskrift innenfra denne sesjonen.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s - MIME boks ikke tilgjengelig"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+"Serveren støtter ikke X2Go MIME boks.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - klient-side mapper er ikke mulig å dele"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"Serveren nekter klient-side mapperdeling med denne sesjonen.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - klient ressurser er ikke mulig å dele"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"Klient-side mapper og skrivere kan ikke bli delt med denne sesjonen.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid "%s - print error"
+msgstr "%s - feil ved utskrift"
+
+#: ../pyhoca/wxgui/frontend.py:1433
+#, python-format
+msgid ""
+"%s\n"
+"...caused on printer %s by session\n"
+"%s"
+msgstr ""
+"%s\n"
+"...oppstod på skriver %s fra sesjon\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid ""
+"%s\n"
+"...caused by session\n"
+"%s"
+msgstr ""
+"%s\n"
+"...oppstod fra sesjon\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid "%s - start"
+msgstr "%s - start"
+
+#: ../pyhoca/wxgui/frontend.py:1450
+#, python-format
+msgid ""
+"New X2Go session starting up...\n"
+"%s"
+msgstr ""
+"Ny X2Go sesjon starter opp...\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid ""
+"Another client started X2Go session\n"
+"%s"
+msgstr ""
+"En annen klient startet X2Go sesjon\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid "%s - resume"
+msgstr "%s - gjenoppta"
+
+#: ../pyhoca/wxgui/frontend.py:1480
+#, python-format
+msgid ""
+"Resuming X2Go session...\n"
+"%s"
+msgstr ""
+"Gjenopptar X2Go sesjon...\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid ""
+"Another client resumed X2Go session\n"
+"%s"
+msgstr ""
+"En annen klient gjenopptok X2Go sesjon\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid "%s - running"
+msgstr "%s - aktiv"
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid ""
+"Found already running session\n"
+"%s"
+msgstr ""
+"Fant allerede kjørende sesjon\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid "%s - suspend"
+msgstr "%s - koble fra"
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid ""
+"X2Go Session has been suspended\n"
+"%s"
+msgstr ""
+"X2Go sesjonen har blitt frakoblet\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid "%s - terminate"
+msgstr "%s - avslutt"
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid ""
+"X2Go Session has terminated\n"
+"%s"
+msgstr ""
+"X2Go sesjonen har blitt avsluttet\n"
+"%s"
+
+#: ../pyhoca/wxgui/messages.py:74
+#, python-format
+msgid ""
+"Are you really sure you want to\n"
+"delete the session profile ,,%s''?"
+msgstr ""
+"Er du helt sikker på at du ønser å\n"
+"slette valgt sesjonsprofil \"%s\"?"
+
+#: ../pyhoca/wxgui/messages.py:75
+#, python-format
+msgid ""
+"PyHoca-GUI is already running for user ,,%s''!\n"
+"\n"
+"Only one instance of PyHoca-GUI can be started per\n"
+"user. The PyHoca-GUI icon can be found in your desktops's\n"
+"notification area/systray."
+msgstr ""
+"PyHoca-GUI kjører allerede for bruker \"%s\"!\n"
+"\n"
+"Kun en instans av PyHoca-GUI kan bli startet per\n"
+"bruker. PyHoca-GUI ikonet kan bli funnet i ditt\n"
+"skrivebords systemkurv område."
+
+#: ../pyhoca/wxgui/messages.py:108
+msgid "Yes"
+msgstr "Ja"
+
+#: ../pyhoca/wxgui/messages.py:109
+msgid "No"
+msgstr "Nei"
+
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
+msgid "Ok"
+msgstr "Ok"
+
+#: ../pyhoca/wxgui/printingprefs.py:66
+#, python-format
+msgid "%s - Printing Preferences"
+msgstr "%s - Utskriftsinnstillinger"
+
+#: ../pyhoca/wxgui/printingprefs.py:68
+#, python-format
+msgid "%s - Incoming Print Job from  %s (%s)"
+msgstr "%s - Innkommende utskriftsjobb fra  %s (%s)"
+
+#: ../pyhoca/wxgui/printingprefs.py:73
+msgid "Open this dialog window"
+msgstr "Ã…pne dette dialogvinduet"
+
+#: ../pyhoca/wxgui/printingprefs.py:74
+msgid "Open with PDF viewer"
+msgstr "Ã…pne med PDF leseren"
+
+#: ../pyhoca/wxgui/printingprefs.py:75
+msgid "Save to a local folder"
+msgstr "Lagre i en lokal mappe"
+
+#: ../pyhoca/wxgui/printingprefs.py:76
+msgid "Print to a local printer"
+msgstr "Skriv ut til en lokal skriver"
+
+#: ../pyhoca/wxgui/printingprefs.py:77
+msgid "Run custom print command"
+msgstr "Kjør en selvvalgt kommando for utskrift"
+
+#: ../pyhoca/wxgui/printingprefs.py:80
+msgid "<Select a print action here>"
+msgstr "<velg en utskriftshandling her>"
+
+#: ../pyhoca/wxgui/printingprefs.py:114
+msgid "Print action"
+msgstr "Skriv ut handling"
+
+#: ../pyhoca/wxgui/printingprefs.py:116
+msgid "Default action for incoming print jobs"
+msgstr "Forvalgt handling for innkommende utskriftsjobber"
+
+#. widgets for print action PDFVIEW
+#: ../pyhoca/wxgui/printingprefs.py:120
+msgid "PDF viewer command"
+msgstr "PDF leser kommando"
+
+#. widgets for print action PDFSAVE
+#: ../pyhoca/wxgui/printingprefs.py:127
+msgid "Save PDFs to folder"
+msgstr "Lagre PDF'er i en mappe"
+
+#. widgets for print action PRINT
+#: ../pyhoca/wxgui/printingprefs.py:134
+msgid "Use this printer"
+msgstr "Benytt denne skriveren"
+
+#. widgets for print action PRINTCMD
+#: ../pyhoca/wxgui/printingprefs.py:138
+msgid "Custom print command"
+msgstr "Selvvalgt kommando for utskrift"
+
+#: ../pyhoca/wxgui/printingprefs.py:143
+msgid "Apply"
+msgstr "Påfør"
+
+#: ../pyhoca/wxgui/printingprefs.py:145
+msgid "Print"
+msgstr "Skriv ut"
+
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- ingen skrivere installert -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
+msgid "- print system is not available -"
+msgstr "- utskriftssystemet er ikke tilgjengelig -"
+
+#: ../pyhoca/wxgui/printingprefs.py:407
+msgid "Choose PDF viewer application"
+msgstr "Velg PDF leseprogram"
+
+#: ../pyhoca/wxgui/printingprefs.py:430
+msgid "Choose PDF saving location"
+msgstr "Velg plassering for PDF lagring"
+
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Sesjonstittel - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Endre sesjonstittelen til"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "OK"
+
+#~ msgid "us"
+#~ msgstr "no"
+
+#~ msgid "pc105/us"
+#~ msgstr "pc105/no"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Tastaturoppsett"
+
+#, fuzzy
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - nøkkel feil"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - tilkoblings feil"
+
+#~ msgid "new session profile"
+#~ msgstr "ny sesjonsprofil"
+
+#, fuzzy
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Ny sesjonsprofil"
+
+#, fuzzy
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Enkelt applikasjon"
+
+#~ msgid "Icon"
+#~ msgstr "Ikon"
+
+#~ msgid "RDP settings"
+#~ msgstr "RDP innstillinger"
+
+#~ msgid "All session profiles are connected"
+#~ msgstr "All session profiles are connected"
+
+#~ msgid "New Profile"
+#~ msgstr "New Profile"
+
+#~ msgid "%s - print job"
+#~ msgstr "%s - print job"
+
+#~ msgid ""
+#~ "Opening print job dialog not implemented yet!!!\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Opening print job dialog not implemented yet!!!\n"
+#~ "%s"
+
+#~ msgid "Profile icon"
+#~ msgstr "Profile icon"
+
+#~ msgid "Arts"
+#~ msgstr "Arts"
diff --git a/po/nl.po b/po/nl.po
index 95145de..076e429 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,5 +1,5 @@
 # PyHoca-GUI / i18n.
-# Copyright (C) 2010-2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #                         Dick Kniep <dick.kniep at lindix.nl>
 # This file is distributed under the same license as the PyHoca-GUI package.
 # Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
@@ -8,133 +8,141 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PyHoca-GUI VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
-"PO-Revision-Date: 2011-07-14 08:07+0100\n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-06-10 21:16+0100\n"
 "Last-Translator: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>\n"
 "Language-Team: nl <dick.kniep at lindix.nl>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: Dutch\n"
 "X-Poedit-Country: NETHERLANDS\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: ../pyhoca/wxgui/logon.py:80
+#: ../pyhoca/wxgui/logon.py:92
 #, python-format
 msgid "%s (via %s)"
 msgstr "%s (via %s)"
 
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
 msgid "Username"
 msgstr "Gebruiker"
 
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
 msgid "Password"
 msgstr "Wachtwoord"
 
-#: ../pyhoca/wxgui/logon.py:89
+#: ../pyhoca/wxgui/logon.py:101
 msgid "Authenticate"
 msgstr "Aanmelden"
 
-#: ../pyhoca/wxgui/logon.py:101
+#: ../pyhoca/wxgui/logon.py:113
 msgid "  Start SSH tunnel  "
 msgstr "  Start SSH Tunnel  "
 
-#: ../pyhoca/wxgui/logon.py:109
+#: ../pyhoca/wxgui/logon.py:121
 msgid "Session login"
 msgstr "Sessie login"
 
-#: ../pyhoca/wxgui/logon.py:110
+#: ../pyhoca/wxgui/logon.py:122
 msgid "SSH proxy server login"
 msgstr "Login via SSH Proxy"
 
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
 msgid "Cancel"
 msgstr "Afbreken"
 
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
 #, python-format
 msgid "%s - connect failure"
 msgstr "%s - verbinden mislukt"
 
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
-msgstr "Gebruiker mag geen X2go sessie starten!"
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr "Gebruiker mag geen X2Go sessie starten!"
 
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
 #, python-format
 msgid "%s - connect"
 msgstr "%s - verbinden"
 
-#: ../pyhoca/wxgui/logon.py:284
+#: ../pyhoca/wxgui/logon.py:299
 msgid "Authentication has been successful."
 msgstr "Authenticatie is gelukt."
 
-#: ../pyhoca/wxgui/logon.py:306
+#: ../pyhoca/wxgui/logon.py:330
 msgid "SSH tunnel started"
 msgstr "SSH Tunnel gestart"
 
-#: ../pyhoca/wxgui/logon.py:311
+#: ../pyhoca/wxgui/logon.py:335
 msgid "Authentication failed!"
 msgstr "Authenticatie mislukt!"
 
-#: ../pyhoca/wxgui/logon.py:317
+#: ../pyhoca/wxgui/logon.py:342
 #, python-format
-msgid "%s - ssh proxy"
+msgid "%s - SSH proxy"
 msgstr "%s - SSH Proxy"
 
-#: ../pyhoca/wxgui/logon.py:318
+#: ../pyhoca/wxgui/logon.py:343
 msgid "Authentication to the SSH proxy server failed!"
 msgstr "Authenticatie via SSH Proxy Server mislukt!"
 
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
 #, python-format
-msgid "%s - connect error"
-msgstr "%s - Verbindingsfout"
+msgid "%s - socket error"
+msgstr "%s - socket fout"
 
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
 #, python-format
 msgid "%s - host key error"
 msgstr "%s - server sleutel fout"
 
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
 msgid ""
 "The remote server's host key is invalid or has not been accepted by the user"
 msgstr ""
 "De sleutel van de server is ongeldig of is niet geaccepteerd door de "
 "gebruiker"
 
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
 #, python-format
 msgid "%s - missing home directory"
 msgstr "%s - home directory niet aanwezig"
 
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
 msgid "The remote user's home directory does not exist."
 msgstr "De home directory op afstand van de gebruiker bestaat niet"
 
-#: ../pyhoca/wxgui/logon.py:363
+#: ../pyhoca/wxgui/logon.py:388
 #, python-format
 msgid "%s - key error"
 msgstr "%s - sleutel fout"
 
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
 #, python-format
 msgid "%s - auth error"
 msgstr "%s - authenticatie fout"
 
-#: ../pyhoca/wxgui/logon.py:388
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - sleutel fout"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - onbekende fout"
+
+#: ../pyhoca/wxgui/logon.py:413
 msgid "An unknown error occured during authentication!"
 msgstr "Een onbekende fout is bij de authenticatie opgetreden"
 
-#: ../pyhoca/wxgui/taskbar.py:79
+#: ../pyhoca/wxgui/taskbar.py:92
 #, python-format
 msgid ""
 "PyHoca-GUI\n"
@@ -143,443 +151,513 @@ msgstr ""
 "PyHoca-GUI\n"
 "Verbinden met ,,%s''"
 
-#: ../pyhoca/wxgui/taskbar.py:82
+#: ../pyhoca/wxgui/taskbar.py:96
 #, python-format
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
+"Currently connecting you to remote X2Go server ,,%s''"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Verbinding met X2go server ,,%s'' wordt gemaakt"
+"Verbinding met X2Go server ,,%s'' wordt gemaakt"
 
-#: ../pyhoca/wxgui/taskbar.py:87
+#: ../pyhoca/wxgui/taskbar.py:106
 msgid ""
 "PyHoca-GUI\n"
-"Connecting you to X2go..."
-msgstr "Bezig je te verbinden met X2go ..."
+"Connecting you to X2Go..."
+msgstr "Bezig je te verbinden met X2Go ..."
 
-#: ../pyhoca/wxgui/taskbar.py:90
+#: ../pyhoca/wxgui/taskbar.py:110
 msgid ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
+"Client for connecting you to a remote X2Go server"
 msgstr ""
 "PyHoca-GUI (Python X2goClient)\n"
-"Verbinding met remote X2go server aan het opbouwen"
+"Verbinding met remote X2Go server aan het opbouwen"
 
-#: ../pyhoca/wxgui/profilemanager.py:72
+#: ../pyhoca/wxgui/profilemanager.py:82
 msgid "GNOME Desktop (GNOME)"
 msgstr "GNOME Desktop (GNOME)"
 
-#: ../pyhoca/wxgui/profilemanager.py:73
+#: ../pyhoca/wxgui/profilemanager.py:83
 msgid "K Desktop Environment (KDE)"
 msgstr "K Desktop Environment (KDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:74
+#: ../pyhoca/wxgui/profilemanager.py:84
 msgid "Lightweight X Desktop (LXDE)"
 msgstr "Lightweight X Desktop (LXDE)"
 
-#: ../pyhoca/wxgui/profilemanager.py:75
+#: ../pyhoca/wxgui/profilemanager.py:85
 msgid "Trinity X Desktop (KDE3-like)"
 msgstr "Trinity X Desktop (KDE3)"
 
-#: ../pyhoca/wxgui/profilemanager.py:76
+#: ../pyhoca/wxgui/profilemanager.py:86
 msgid "Unity X Desktop Shell (UNITY)"
 msgstr "Unity X Desktop Shell (UNITY)"
 
-#: ../pyhoca/wxgui/profilemanager.py:77
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 Desktop (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Gepubliceerde applicaties"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Enkelvoudige Applicatie"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
 msgid "XDMCP Query"
 msgstr "XDMCP Query"
 
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
+#: ../pyhoca/wxgui/profilemanager.py:91
 msgid "Windows Terminal Server (RDP-proxy)"
 msgstr "Windows Terminalserver (RDP-proxy)"
 
 #. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
-msgid "Single Application"
-msgstr "Enkelvoudige Applicatie"
-
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
 msgid "Custom command"
 msgstr "Speciaal Commando"
 
-#: ../pyhoca/wxgui/profilemanager.py:85
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
 msgid "Internet Browser"
 msgstr "Internetbrowser"
 
-#: ../pyhoca/wxgui/profilemanager.py:86
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
 msgid "Email Client"
 msgstr "E-Mail Programma"
 
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
-msgstr "Openoffice.org"
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Office"
 
-#: ../pyhoca/wxgui/profilemanager.py:88
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
 msgid "Terminal"
 msgstr "Terminal"
 
-#: ../pyhoca/wxgui/profilemanager.py:102
+#: ../pyhoca/wxgui/profilemanager.py:113
 msgid "Open file with system's default application"
 msgstr "Open bestand met het geassocieerde programma"
 
-#: ../pyhoca/wxgui/profilemanager.py:103
+#: ../pyhoca/wxgui/profilemanager.py:114
 msgid "Open application chooser dialog"
 msgstr "Open dialoog, om Applicatie te kiezen"
 
-#: ../pyhoca/wxgui/profilemanager.py:104
+#: ../pyhoca/wxgui/profilemanager.py:115
 msgid "Save incoming file as ..."
 msgstr "Opslaan bestand als ..."
 
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
-msgstr "Nieuw Profiel"
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "configuratie afgeleid van"
 
 #. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
-msgstr "Profiel"
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Sessie naam"
 
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
-msgstr "Sessie"
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Sessie Window"
+
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Sessie start"
 
-#: ../pyhoca/wxgui/profilemanager.py:137
+#: ../pyhoca/wxgui/profilemanager.py:163
 msgid "Server"
 msgstr "Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:138
+#: ../pyhoca/wxgui/profilemanager.py:164
 msgid "Connection Link Speed"
 msgstr "Verbindings snelheid"
 
-#: ../pyhoca/wxgui/profilemanager.py:139
+#: ../pyhoca/wxgui/profilemanager.py:165
 msgid "Compression"
 msgstr "Compressie"
 
-#: ../pyhoca/wxgui/profilemanager.py:140
+#: ../pyhoca/wxgui/profilemanager.py:166
 msgid "Display"
 msgstr "Display"
 
-#: ../pyhoca/wxgui/profilemanager.py:141
+#: ../pyhoca/wxgui/profilemanager.py:167
 msgid "Keyboard"
 msgstr "Toetsenbord"
 
-#: ../pyhoca/wxgui/profilemanager.py:142
+#: ../pyhoca/wxgui/profilemanager.py:168
 msgid "Sound"
 msgstr "Geluid"
 
-#: ../pyhoca/wxgui/profilemanager.py:143
+#: ../pyhoca/wxgui/profilemanager.py:169
 msgid "Printing"
 msgstr "Afdrukken"
 
-#: ../pyhoca/wxgui/profilemanager.py:144
+#: ../pyhoca/wxgui/profilemanager.py:170
 msgid "Folder Exports"
 msgstr "Map export"
 
-#: ../pyhoca/wxgui/profilemanager.py:145
+#: ../pyhoca/wxgui/profilemanager.py:171
 msgid "File Import"
 msgstr "Bestands import"
 
 #. ##
-#. ## widgets for the SESSION tab
+#. ## widgets for the PROFILE tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
+#: ../pyhoca/wxgui/profilemanager.py:176
 msgid "Name"
 msgstr "Naam"
 
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
-msgstr "Icon"
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Stel sessiescherm titel in"
 
-#: ../pyhoca/wxgui/profilemanager.py:162
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Gebruik een standaard sessienaam"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Aangepaste sessienaam"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Scherm icoon"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Start sessie automatisch na login"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "Login automatisch nadat %s is gestart"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
 msgid "Type"
 msgstr "Type"
 
-#: ../pyhoca/wxgui/profilemanager.py:164
+#: ../pyhoca/wxgui/profilemanager.py:205
 msgid "Application"
 msgstr "Applicatie"
 
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
-msgstr "RDP instellingen"
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "XDMCP Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:169
+#: ../pyhoca/wxgui/profilemanager.py:211
 msgid "RDP server"
 msgstr "RDP Server"
 
-#: ../pyhoca/wxgui/profilemanager.py:171
+#: ../pyhoca/wxgui/profilemanager.py:213
 msgid "RDP options"
 msgstr "RDP Opties"
 
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
-msgstr "XDMCP Server"
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr "Integreer remote toepassing in de lokale desktop (rootless mode)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Menu met gepubliceerde applicaties"
 
 #. ##
 #. ## widgets for the CONNECTION tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
 msgid "User"
 msgstr "Gebruiker"
 
-#: ../pyhoca/wxgui/profilemanager.py:181
+#: ../pyhoca/wxgui/profilemanager.py:225
 msgid "Host"
 msgstr "Host"
 
-#: ../pyhoca/wxgui/profilemanager.py:183
+#: ../pyhoca/wxgui/profilemanager.py:227
 msgid "Port"
 msgstr "Port"
 
-#: ../pyhoca/wxgui/profilemanager.py:185
+#: ../pyhoca/wxgui/profilemanager.py:229
 msgid "RSA/DSA private key"
 msgstr "Private RSA/DSA Key"
 
-#: ../pyhoca/wxgui/profilemanager.py:188
+#: ../pyhoca/wxgui/profilemanager.py:232
 msgid "Server behind SSH proxy"
 msgstr "Server achter SSH-Proxy"
 
-#: ../pyhoca/wxgui/profilemanager.py:191
+#: ../pyhoca/wxgui/profilemanager.py:235
 msgid "Key file"
 msgstr "Sleutel"
 
-#: ../pyhoca/wxgui/profilemanager.py:194
+#: ../pyhoca/wxgui/profilemanager.py:238
 msgid "Host[:Port]"
 msgstr "Host[:Port]"
 
-#: ../pyhoca/wxgui/profilemanager.py:196
+#: ../pyhoca/wxgui/profilemanager.py:240
 msgid "SSH Proxy Tunnel"
 msgstr "SSH Proxy Tunnel"
 
-#: ../pyhoca/wxgui/profilemanager.py:204
+#: ../pyhoca/wxgui/profilemanager.py:248
 msgid "Modem"
 msgstr "Modem"
 
-#: ../pyhoca/wxgui/profilemanager.py:205
+#: ../pyhoca/wxgui/profilemanager.py:249
 msgid "ISDN"
 msgstr "ISDN"
 
-#: ../pyhoca/wxgui/profilemanager.py:206
+#: ../pyhoca/wxgui/profilemanager.py:250
 msgid "ADSL"
 msgstr "ADSL"
 
-#: ../pyhoca/wxgui/profilemanager.py:207
+#: ../pyhoca/wxgui/profilemanager.py:251
 msgid "WAN"
 msgstr "WAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:208
+#: ../pyhoca/wxgui/profilemanager.py:252
 msgid "LAN"
 msgstr "LAN"
 
-#: ../pyhoca/wxgui/profilemanager.py:210
+#: ../pyhoca/wxgui/profilemanager.py:254
 msgid "Method"
 msgstr "Methode"
 
-#: ../pyhoca/wxgui/profilemanager.py:212
+#: ../pyhoca/wxgui/profilemanager.py:256
 msgid "Image quality"
 msgstr "Beeldkwaliteit"
 
 #. ##
 #. ## wigdets for the SETTINGS tab
 #. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
+#: ../pyhoca/wxgui/profilemanager.py:262
 msgid "Fullscreen"
 msgstr "Fullscreen"
 
-#: ../pyhoca/wxgui/profilemanager.py:219
+#: ../pyhoca/wxgui/profilemanager.py:263
 msgid "Custom Size"
 msgstr "Grootte instellen"
 
-#: ../pyhoca/wxgui/profilemanager.py:224
+#: ../pyhoca/wxgui/profilemanager.py:268
 msgid "Set display DPI"
 msgstr "DPI-waarde instellen"
 
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
-msgstr "Huidige toetsenbord-instellingen behouden"
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr "Uitzetten (gebruik server-side tools om het toetsenbord in te stellen)"
 
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
-msgstr "Toetsenbord layout"
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr "Gebruik automatisch gedetecteerd toetsenbord in de sessie"
 
-#: ../pyhoca/wxgui/profilemanager.py:229
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Gebruik de onderstaande speciale toetsenbord instellingen"
+
+#: ../pyhoca/wxgui/profilemanager.py:273
 msgid "Keyboard model"
 msgstr "Toetsenbord model"
 
-#: ../pyhoca/wxgui/profilemanager.py:231
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Layout"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Layout variant"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
 msgid "Enable sound support"
 msgstr "Geluid gebruiken"
 
-#: ../pyhoca/wxgui/profilemanager.py:232
+#: ../pyhoca/wxgui/profilemanager.py:280
 msgid "Pulse Audio"
 msgstr "Pulse Audio"
 
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
 #. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
+#: ../pyhoca/wxgui/profilemanager.py:284
 msgid "Arts (not supported)"
 msgstr "Arts (niet ondersteund)"
 
-#: ../pyhoca/wxgui/profilemanager.py:239
+#: ../pyhoca/wxgui/profilemanager.py:287
 msgid "esd"
 msgstr "esd"
 
-#: ../pyhoca/wxgui/profilemanager.py:240
+#: ../pyhoca/wxgui/profilemanager.py:288
 msgid "Use default sound port"
 msgstr "Standaard Audio-Port gebruiken"
 
-#: ../pyhoca/wxgui/profilemanager.py:241
+#: ../pyhoca/wxgui/profilemanager.py:289
 msgid "Custom sound port"
 msgstr "Speciale Audio-Port"
 
-#: ../pyhoca/wxgui/profilemanager.py:243
+#: ../pyhoca/wxgui/profilemanager.py:291
 msgid "Client Side printing"
 msgstr "Afdrukken via deze computer"
 
-#: ../pyhoca/wxgui/profilemanager.py:245
+#: ../pyhoca/wxgui/profilemanager.py:293
 msgid "Use local folder sharing"
 msgstr "Delen van lokale mappen"
 
-#: ../pyhoca/wxgui/profilemanager.py:246
+#: ../pyhoca/wxgui/profilemanager.py:294
 msgid "Path"
 msgstr "Pad"
 
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
 msgid "Add"
 msgstr "Toevoegen"
 
-#: ../pyhoca/wxgui/profilemanager.py:251
+#: ../pyhoca/wxgui/profilemanager.py:299
 msgid "Local Path"
 msgstr "Lokaal Pad"
 
-#: ../pyhoca/wxgui/profilemanager.py:252
-#, fuzzy
+#: ../pyhoca/wxgui/profilemanager.py:300
 msgid "Connect Method"
-msgstr "Verbinding"
+msgstr "Verbindingsmethode"
 
-#: ../pyhoca/wxgui/profilemanager.py:253
+#: ../pyhoca/wxgui/profilemanager.py:301
 msgid "Delete"
 msgstr "Verwijderen"
 
-#: ../pyhoca/wxgui/profilemanager.py:255
+#: ../pyhoca/wxgui/profilemanager.py:303
 msgid "Convert between client and server encodings"
 msgstr "Encoding tussen client en server vertalen"
 
-#: ../pyhoca/wxgui/profilemanager.py:256
+#: ../pyhoca/wxgui/profilemanager.py:304
 msgid "Client encoding"
 msgstr "Client encoding"
 
-#: ../pyhoca/wxgui/profilemanager.py:258
+#: ../pyhoca/wxgui/profilemanager.py:306
 msgid "Server encoding"
 msgstr "Server encoding"
 
-#: ../pyhoca/wxgui/profilemanager.py:261
+#: ../pyhoca/wxgui/profilemanager.py:309
 msgid "Use file MIME box for local file import"
 msgstr "Importeren lokale bestanden via MIME box"
 
-#: ../pyhoca/wxgui/profilemanager.py:262
+#: ../pyhoca/wxgui/profilemanager.py:310
 msgid "Extensions"
 msgstr "Uitbreidingen"
 
-#: ../pyhoca/wxgui/profilemanager.py:264
+#: ../pyhoca/wxgui/profilemanager.py:312
 msgid "Action"
 msgstr "Actie"
 
-#: ../pyhoca/wxgui/profilemanager.py:269
+#: ../pyhoca/wxgui/profilemanager.py:317
 msgid "Defaults"
 msgstr "Standaardwaarden"
 
-#: ../pyhoca/wxgui/profilemanager.py:271
+#: ../pyhoca/wxgui/profilemanager.py:319
 msgid "Save"
 msgstr "Opslaan"
 
-#: ../pyhoca/wxgui/profilemanager.py:272
+#: ../pyhoca/wxgui/profilemanager.py:320
 msgid "Reset"
 msgstr "Reset"
 
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
 msgid "automatically"
 msgstr "automatisch"
 
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
 msgid "manually"
 msgstr "handmatig"
 
-#: ../pyhoca/wxgui/profilemanager.py:320
+#: ../pyhoca/wxgui/profilemanager.py:376
 msgid "PyHoca-GUI Profile Manager - new profile"
 msgstr "PyHoca-GUI Profiel manager - nieuw profiel"
 
-#: ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/profilemanager.py:378
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s (connected)"
 msgstr "PyHoca-GUI Profiel manager - %s (verbonden)"
 
-#: ../pyhoca/wxgui/profilemanager.py:324
+#: ../pyhoca/wxgui/profilemanager.py:380
 #, python-format
 msgid "PyHoca-GUI Profile Manager - %s"
 msgstr "PyHoca-GUI Profiel manager - %s"
 
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
-msgstr "Sessie Profiel"
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Profiel"
+
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Sessie"
 
-#: ../pyhoca/wxgui/profilemanager.py:666
+#: ../pyhoca/wxgui/profilemanager.py:753
 msgid "Connection"
 msgstr "Verbinding"
 
-#: ../pyhoca/wxgui/profilemanager.py:667
+#: ../pyhoca/wxgui/profilemanager.py:754
 msgid "Settings"
 msgstr "Instellingen"
 
-#: ../pyhoca/wxgui/profilemanager.py:668
+#: ../pyhoca/wxgui/profilemanager.py:755
 msgid "Sharing"
 msgstr "Delen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1100
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "pc105/us"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "us"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "intl"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
 msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
 msgstr "Icon Bestanden (*.png)|*.png|Alle Bestanden (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1103
+#: ../pyhoca/wxgui/profilemanager.py:1287
 msgid "Choose an icon for this session profile"
 msgstr "Icon voor dit Profiel kiezen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1220
+#: ../pyhoca/wxgui/profilemanager.py:1509
 msgid "All files (*.*)|*"
 msgstr "Alle Bestanden (*.*)|*"
 
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
 msgid "Choose a public SSH key"
 msgstr "Kies een public SSH-key"
 
-#: ../pyhoca/wxgui/profilemanager.py:1389
+#: ../pyhoca/wxgui/profilemanager.py:1784
 msgid "Choose a folder to share within a session"
 msgstr "Kies een map om te delen"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
 msgid "Profile Manager"
 msgstr "Profiel manager"
 
-#: ../pyhoca/wxgui/profilemanager.py:1453
+#: ../pyhoca/wxgui/profilemanager.py:1912
 msgid "Profile name is missing, profile unusable!!!"
 msgstr "Profiel naam ontbreekt, kan niet gebruikt worden!!!"
 
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
 #, python-format
 msgid "Profile name %s already exists!!!"
 msgstr "Profiel %s bestaat al"
 
-#: ../pyhoca/wxgui/profilemanager.py:1464
+#: ../pyhoca/wxgui/profilemanager.py:1923
 msgid "The SSH proxy configuration is incomplete. Try again."
 msgstr "SSH Proxy Configuratie is niet volledig! Opnieuw proberen..."
 
-#: ../pyhoca/wxgui/profilemanager.py:1474
+#: ../pyhoca/wxgui/profilemanager.py:1933
 #, python-format
 msgid ""
 "Another session profile (%s) already uses [%s]:%s for binding a local SSH "
@@ -590,203 +668,358 @@ msgstr ""
 "SSH proxy.\n"
 "Verander de SSH proxy instelling om dit probleem te verhelpen."
 
-#: ../pyhoca/wxgui/profilemanager.py:1494
+#: ../pyhoca/wxgui/profilemanager.py:1960
 #, python-format
 msgid "%s - profile added"
 msgstr "%s - Profiel toegevoegd"
 
-#: ../pyhoca/wxgui/profilemanager.py:1495
+#: ../pyhoca/wxgui/profilemanager.py:1961
 msgid "A new session profile has been added."
 msgstr "Een nieuw Profiel is toegevoegd"
 
-#: ../pyhoca/wxgui/profilemanager.py:1499
+#: ../pyhoca/wxgui/profilemanager.py:1965
 #, python-format
 msgid "%s - modified"
 msgstr "%s - gewijzigd"
 
-#: ../pyhoca/wxgui/profilemanager.py:1500
+#: ../pyhoca/wxgui/profilemanager.py:1966
 msgid "Changes to profile have been saved."
 msgstr "Wijzigingen in het profiel zijn opgeslagen."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:55
+#: ../pyhoca/wxgui/menus_taskbar.py:75
 msgid "Edit Profile"
 msgstr "Profiel bijwerken"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:57
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Gebruik als sjabloon voor een nieuw profiel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
 msgid "Delete Profile"
 msgstr "Profiel verwijderen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:79
+#: ../pyhoca/wxgui/menus_taskbar.py:107
 #, python-format
 msgid "About %s (%s)..."
 msgstr "About %s (%s) ..."
 
-#: ../pyhoca/wxgui/menus_taskbar.py:102
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "Onderhoud sessieprofiel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
 msgid "Printing Preferences"
 msgstr "Voorkeur voor afdrukken"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:108
+#: ../pyhoca/wxgui/menus_taskbar.py:148
 msgid "Client Options"
 msgstr "Opties"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
 msgid "E&xit"
 msgstr "&Beeindigen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:159
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Scherm titel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
 msgid "Resume Session"
 msgstr "Sessie hervatten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:161
+#: ../pyhoca/wxgui/menus_taskbar.py:236
 msgid "Resume Session (not possible)"
 msgstr "Sessie hervatten (niet mogelijk)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:169
+#: ../pyhoca/wxgui/menus_taskbar.py:247
 msgid "Transfer Session"
 msgstr "Sessie overnemen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:171
+#: ../pyhoca/wxgui/menus_taskbar.py:249
 msgid "Transfer Session (not possible)"
 msgstr "Sessie overnemen (niet mogelijk)"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:174
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Suspend Sessie (en Verbinding verbreken / e&xit)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Suspend Sessie  (en Verbinding verbreken)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
 msgid "Suspend Session"
 msgstr "Suspend Sessie"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:176
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Sessie beëindigen  (en Verbinding verbreken / e&xit)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Sessie beëindigen  (en Verbinding verbreken)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
 msgid "Terminate Session"
 msgstr "Sessie beëindigen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:206
-#, fuzzy
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Ververs menu"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Hernoem sessie"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Toon sessiescherm"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
 msgid "&Share custom local folder"
 msgstr "Delen lokale &map"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:229
-#, fuzzy
+#: ../pyhoca/wxgui/menus_taskbar.py:344
 msgid "Share:"
-msgstr "Delen"
+msgstr "Delen:"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:240
+#: ../pyhoca/wxgui/menus_taskbar.py:355
 msgid "Unshare:"
 msgstr "Niet meer delen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:250
-#, fuzzy
+#: ../pyhoca/wxgui/menus_taskbar.py:365
 msgid "Unshare &all local folders"
-msgstr "Delen lokale &map"
+msgstr "Niet langer delen alle lokale &mappen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Multimedia"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Ontwikkeling"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Opleiding"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Spelletjes"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Graphics"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Kantoor applicaties"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:290
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "Systeem"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Hulpmiddelen"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Andere applicaties"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Verbind %s"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Nu aan het verbinden..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "&Nieuwe Desktop Sessie starten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Bezig met ophalen applicatiemenu..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Haal applicatiemenu op"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
 msgid "Start &new Session"
 msgstr "&Nieuwe Sessie starten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:306
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Enkelvoudige Applicatie starten"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Onderhoud applicatie menu"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
 msgid "Running"
 msgstr "Aktief"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:308
+#: ../pyhoca/wxgui/menus_taskbar.py:721
 msgid "Suspended"
 msgstr "Suspended"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:320
+#: ../pyhoca/wxgui/menus_taskbar.py:740
 msgid "&Clean all sessions"
 msgstr "Alle Sessies beëindigen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:322
+#: ../pyhoca/wxgui/menus_taskbar.py:746
 msgid "Customize &profile"
 msgstr "Sessieprofiel wijzigen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:325
-#, fuzzy
+#: ../pyhoca/wxgui/menus_taskbar.py:758
 msgid "Shared &folders"
-msgstr "Delen lokale &map"
+msgstr "Delen &mappen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:333
+#: ../pyhoca/wxgui/menus_taskbar.py:770
 msgid "&Disconnect from Server"
 msgstr "&Verbinding verbreken"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:359
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Suspend Sessie en e&xit"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "verbinding verbreken en e&xit"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
 msgid "Add Profile"
 msgstr "Profiel toevoegen"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:428
+#: ../pyhoca/wxgui/menus_taskbar.py:911
 msgid "No session profiles defined"
 msgstr "Geen Profiel gedefinieerd"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Start/Resume Session"
 msgstr "Sessie starten/hervatten"
 
-#: ../pyhoca/wxgui/menus_taskbar.py:459
+#: ../pyhoca/wxgui/menus_taskbar.py:947
 msgid "Connect Server"
 msgstr "Verbinden met Server"
 
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
 #, python-format
 msgid "About %s ..."
 msgstr "About %s ..."
 
-#: ../pyhoca/wxgui/frontend.py:370
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Bezig met suspend van sessie en afsluiten van applicatie"
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Bezig met verbreken verbinding %s en afsluiten applicatie..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Afsluiten van applicatie..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - server waarschuwing"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "De X2go server publiceert geen applicatie menu"
+
+#: ../pyhoca/wxgui/frontend.py:610
 msgid "Public SSH key authentication has been successful."
 msgstr "Public SSH-key authenticatie is gelukt."
 
-#: ../pyhoca/wxgui/frontend.py:403
+#: ../pyhoca/wxgui/frontend.py:644
 msgid ""
 "The SSH proxy's host key is invalid or has not been accepted by the user"
 msgstr ""
 "De sleutel van de SSH proxy is ongeldig of is niet geaccepteerd door de "
 "gebruiker"
 
-#: ../pyhoca/wxgui/frontend.py:424
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - EOF fout"
+
+#: ../pyhoca/wxgui/frontend.py:665
 msgid "Authentication protocol communication incomplete! Try again..."
 msgstr "Authenticatie was niet volledig! Opnieuw proberen..."
 
-#: ../pyhoca/wxgui/frontend.py:431
+#: ../pyhoca/wxgui/frontend.py:672
 #, python-format
 msgid "%s - auth key error"
 msgstr "%s - Verbindingsfout met auth. key"
 
-#: ../pyhoca/wxgui/frontend.py:452
+#: ../pyhoca/wxgui/frontend.py:693
 msgid "An unknown error occurred during authentication!"
 msgstr "Een onbekende fout is bij de authenticatie opgetreden"
 
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
-msgstr "Opschonen X2go sessies..."
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Onekend sessie profiel, stel dit in voordat je het gebruikt..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - sessie waarschuwing"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Uitvoering van commando \"%s\" faalde"
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Opschonen X2Go sessies..."
 
-#: ../pyhoca/wxgui/frontend.py:573
+#: ../pyhoca/wxgui/frontend.py:961
 #, python-format
 msgid "%s - disconnect"
 msgstr "%s - verbinding verbreken"
 
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
-msgstr "X2go Profiel is nu niet meer verbonden."
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "X2Go Profiel is nu niet meer verbonden."
 
-#: ../pyhoca/wxgui/frontend.py:589
+#: ../pyhoca/wxgui/frontend.py:977
 msgid "New Session Profile"
 msgstr "Nieuw Profiel"
 
-#: ../pyhoca/wxgui/frontend.py:616
+#: ../pyhoca/wxgui/frontend.py:1029
 #, python-format
 msgid "Really Delete Session Profile ,,%s''?"
 msgstr "Verwijder sessie profiel ,,%s''?"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 #, python-format
 msgid "%s - profile deleted"
 msgstr "%s - Profiel is verwijderd!"
 
-#: ../pyhoca/wxgui/frontend.py:622
+#: ../pyhoca/wxgui/frontend.py:1035
 msgid "The session profile has been deleted."
 msgstr "Het sessie profiel is verwijderd."
 
-#: ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:1053
 #, python-format
 msgid "%s - share local folder with sessions of this profile"
 msgstr "%s - deel lokale map met dit Profiel"
 
-#: ../pyhoca/wxgui/frontend.py:715
+#: ../pyhoca/wxgui/frontend.py:1194
 #, python-format
 msgid ""
 "The authenticity of host [%s]:%s can't be established.\n"
@@ -799,17 +1032,17 @@ msgstr ""
 "\n"
 "Weet u zeker dat u de verbinding wilt maken?"
 
-#: ../pyhoca/wxgui/frontend.py:723
+#: ../pyhoca/wxgui/frontend.py:1202
 #, python-format
 msgid "%s: Confirm Host Authorization"
 msgstr "%s: Bevestig dat de Host geautoriseerd is"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid "%s - channel error"
 msgstr "%s - Verbindingsfout (channel error)"
 
-#: ../pyhoca/wxgui/frontend.py:742
+#: ../pyhoca/wxgui/frontend.py:1247
 #, python-format
 msgid ""
 "Lost connection to server %s unexpectedly! Try to re-authenticate to the "
@@ -818,39 +1051,31 @@ msgstr ""
 "De Verbinding met de server %s werd onverwacht verbroken! Probeer om u "
 "opnieuw aan te melden..."
 
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid "%s - session failure"
 msgstr "%s - sessie fout"
 
-#: ../pyhoca/wxgui/frontend.py:752
-#, fuzzy
+#: ../pyhoca/wxgui/frontend.py:1265
 msgid "The session startup failed."
-msgstr "Nieuw Profiel"
+msgstr "Opstarten van de sessie is mislukt"
 
-#: ../pyhoca/wxgui/frontend.py:759
-#, fuzzy, python-format
-msgid "The command ,,%s'' is not available on X2go server."
-msgstr ""
-"Het commando ,,%s'' is niet beschikbaar op de X2go server\n"
-"%s"
+#: ../pyhoca/wxgui/frontend.py:1283
+#, python-format
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "Het commando ,,%s'' is niet beschikbaar op de X2Go server."
 
-#: ../pyhoca/wxgui/frontend.py:761
+#: ../pyhoca/wxgui/frontend.py:1285
 #, python-format
 msgid ""
-"The command ,,%s'' is not available on X2go server\n"
+"The command ,,%s'' is not available on X2Go server\n"
 "%s."
 msgstr ""
-"Het commando ,,%s'' is niet beschikbaar op de X2go server\n"
+"Het commando ,,%s'' is niet beschikbaar op de X2Go server\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr "%s - sessie waarschuwing"
-
-#: ../pyhoca/wxgui/frontend.py:767
+#: ../pyhoca/wxgui/frontend.py:1302
 #, python-format
 msgid ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
@@ -859,7 +1084,7 @@ msgstr ""
 "Reverse TCP port forwarding request for session %s to server port %s has "
 "been denied."
 
-#: ../pyhoca/wxgui/frontend.py:773
+#: ../pyhoca/wxgui/frontend.py:1321
 #, python-format
 msgid ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
@@ -868,36 +1093,36 @@ msgstr ""
 "Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
 "X2go/SSH server. Session startup failed."
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 #, python-format
 msgid "%s - audio warning"
 msgstr "%s - audio waarschuwing"
 
-#: ../pyhoca/wxgui/frontend.py:785
+#: ../pyhoca/wxgui/frontend.py:1340
 msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
 msgstr ""
-"Het X2go PulseAudio systeem is niet beschikbaar voor Remote Desktop sessies"
+"Het X2Go PulseAudio systeem is niet beschikbaar voor Remote Desktop sessies"
 
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
 #, python-format
 msgid "%s - audio error"
 msgstr "%s - audio fout"
 
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
-msgstr "Het X2go PulseAudio systeem kon niet gestart worden"
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "Het X2Go PulseAudio systeem kon niet gestart worden"
 
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
-msgstr "Het X2go PulseAudio systeem is gecrashed"
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "Het X2Go PulseAudio systeem is gecrashed"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid "%s - audio problem"
 msgstr "%s - audio probleem"
 
-#: ../pyhoca/wxgui/frontend.py:794
+#: ../pyhoca/wxgui/frontend.py:1366
 #, python-format
 msgid ""
 "The audio connection could not be set up for this session.\n"
@@ -906,12 +1131,64 @@ msgstr ""
 "De audio verbinding kon niet worden gemaakt voor deze sessie.\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr "%s - client-side print systeem niet beschikbaar"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr "De server staat client-side printing niet toe"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s- MIME box is niet beschikbaar"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr "De server ondersteunt geen X2Go MIME box"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - client-side mappen worden niet gedeeld"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"De server staat client-side mappen deling in deze sessie niet toe.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - client bronnen kunnen niet gedeeld worden"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"Client-side mappen en printers kunnen niet gedeeld worden in deze sessie.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid "%s - print error"
 msgstr "%s - Printfout"
 
-#: ../pyhoca/wxgui/frontend.py:808
+#: ../pyhoca/wxgui/frontend.py:1433
 #, python-format
 msgid ""
 "%s\n"
@@ -922,7 +1199,7 @@ msgstr ""
 "...veroorzaakt door printer %s in  sessie\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:810
+#: ../pyhoca/wxgui/frontend.py:1435
 #, python-format
 msgid ""
 "%s\n"
@@ -933,58 +1210,58 @@ msgstr ""
 "...veroorzaakt door sessie\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid "%s - start"
 msgstr "%s - Start"
 
-#: ../pyhoca/wxgui/frontend.py:814
+#: ../pyhoca/wxgui/frontend.py:1450
 #, python-format
 msgid ""
-"New X2go session starting up...\n"
+"New X2Go session starting up...\n"
 "%s"
 msgstr ""
-"Nieuwe X2go sessie wordt gestart...\n"
+"Nieuwe X2Go sessie wordt gestart...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:818
+#: ../pyhoca/wxgui/frontend.py:1465
 #, python-format
 msgid ""
-"Another client started X2go session\n"
+"Another client started X2Go session\n"
 "%s"
 msgstr ""
-"Een andere X2go-client heeft deze sessie gestart\n"
+"Een andere X2Go-client heeft deze sessie gestart\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid "%s - resume"
 msgstr "%s - hervatten"
 
-#: ../pyhoca/wxgui/frontend.py:822
+#: ../pyhoca/wxgui/frontend.py:1480
 #, python-format
 msgid ""
-"Resuming X2go session...\n"
+"Resuming X2Go session...\n"
 "%s"
 msgstr ""
-"X2go Sessie wordt hervat...\n"
+"X2Go Sessie wordt hervat...\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:826
+#: ../pyhoca/wxgui/frontend.py:1495
 #, python-format
 msgid ""
-"Another client resumed X2go session\n"
+"Another client resumed X2Go session\n"
 "%s"
 msgstr ""
-"Een andere X2go-client heeft de Sessie hervat\n"
+"Een andere X2Go-client heeft de Sessie hervat\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid "%s - running"
 msgstr "%s - actief"
 
-#: ../pyhoca/wxgui/frontend.py:830
+#: ../pyhoca/wxgui/frontend.py:1510
 #, python-format
 msgid ""
 "Found already running session\n"
@@ -993,35 +1270,35 @@ msgstr ""
 "Reeds actieve sessie gevonden\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid "%s - suspend"
 msgstr "%s - suspend"
 
-#: ../pyhoca/wxgui/frontend.py:834
+#: ../pyhoca/wxgui/frontend.py:1530
 #, python-format
 msgid ""
-"X2go Session has been suspended\n"
+"X2Go Session has been suspended\n"
 "%s"
 msgstr ""
-"X2go Sessie is suspended\n"
+"X2Go Sessie is suspended\n"
 "%s"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid "%s - terminate"
 msgstr "%s - beëindigen"
 
-#: ../pyhoca/wxgui/frontend.py:850
+#: ../pyhoca/wxgui/frontend.py:1557
 #, python-format
 msgid ""
-"X2go Session has terminated\n"
+"X2Go Session has terminated\n"
 "%s"
 msgstr ""
-"X2go Sessie wordt beëindigd\n"
+"X2Go Sessie wordt beëindigd\n"
 "%s"
 
-#: ../pyhoca/wxgui/messages.py:53
+#: ../pyhoca/wxgui/messages.py:74
 #, python-format
 msgid ""
 "Are you really sure you want to\n"
@@ -1030,7 +1307,7 @@ msgstr ""
 "Weet u zeker dat u het sessie\n"
 "profiel ,,%s'' wilt verwijderen??"
 
-#: ../pyhoca/wxgui/messages.py:54
+#: ../pyhoca/wxgui/messages.py:75
 #, python-format
 msgid ""
 "PyHoca-GUI is already running for user ,,%s''!\n"
@@ -1045,100 +1322,165 @@ msgstr ""
 "Het Pyhoca-GUI icoontje kan gevonden worden in de\n"
 "taakbalk van uw desktop."
 
-#: ../pyhoca/wxgui/messages.py:87
+#: ../pyhoca/wxgui/messages.py:108
 msgid "Yes"
 msgstr "Ja"
 
-#: ../pyhoca/wxgui/messages.py:88
+#: ../pyhoca/wxgui/messages.py:109
 msgid "No"
 msgstr "Nee"
 
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
 msgid "Ok"
 msgstr "Ok"
 
-#: ../pyhoca/wxgui/printingprefs.py:57
+#: ../pyhoca/wxgui/printingprefs.py:66
 #, python-format
 msgid "%s - Printing Preferences"
 msgstr "%s - Print voorkeuren"
 
-#: ../pyhoca/wxgui/printingprefs.py:59
+#: ../pyhoca/wxgui/printingprefs.py:68
 #, python-format
 msgid "%s - Incoming Print Job from  %s (%s)"
 msgstr "%s - Inkomende afdruk taak van %s (%s)"
 
-#: ../pyhoca/wxgui/printingprefs.py:64
+#: ../pyhoca/wxgui/printingprefs.py:73
 msgid "Open this dialog window"
 msgstr "Open dit dialoog venster"
 
-#: ../pyhoca/wxgui/printingprefs.py:65
+#: ../pyhoca/wxgui/printingprefs.py:74
 msgid "Open with PDF viewer"
 msgstr "Openen met PDF viewer"
 
-#: ../pyhoca/wxgui/printingprefs.py:66
+#: ../pyhoca/wxgui/printingprefs.py:75
 msgid "Save to a local folder"
 msgstr "Opslaan naar lokale map"
 
-#: ../pyhoca/wxgui/printingprefs.py:67
+#: ../pyhoca/wxgui/printingprefs.py:76
 msgid "Print to a local printer"
 msgstr "Printen naar lokale printer"
 
-#: ../pyhoca/wxgui/printingprefs.py:68
+#: ../pyhoca/wxgui/printingprefs.py:77
 msgid "Run custom print command"
 msgstr "Afdrukken met speciaal commando"
 
-#: ../pyhoca/wxgui/printingprefs.py:71
+#: ../pyhoca/wxgui/printingprefs.py:80
 msgid "<Select a print action here>"
 msgstr "<Selecteer hier een print activiteit>"
 
-#: ../pyhoca/wxgui/printingprefs.py:105
+#: ../pyhoca/wxgui/printingprefs.py:114
 msgid "Print action"
 msgstr "Afdrukken"
 
-#: ../pyhoca/wxgui/printingprefs.py:107
+#: ../pyhoca/wxgui/printingprefs.py:116
 msgid "Default action for incoming print jobs"
 msgstr "Standaard actie voor inkomende afdruk taak"
 
 #. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
+#: ../pyhoca/wxgui/printingprefs.py:120
 msgid "PDF viewer command"
 msgstr "PDF viewer command"
 
 #. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
+#: ../pyhoca/wxgui/printingprefs.py:127
 msgid "Save PDFs to folder"
 msgstr "Opslaan PDFs in map"
 
 #. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
+#: ../pyhoca/wxgui/printingprefs.py:134
 msgid "Use this printer"
 msgstr "Gebruik deze printer"
 
 #. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
+#: ../pyhoca/wxgui/printingprefs.py:138
 msgid "Custom print command"
 msgstr "Afdruk commando"
 
-#: ../pyhoca/wxgui/printingprefs.py:134
+#: ../pyhoca/wxgui/printingprefs.py:143
 msgid "Apply"
 msgstr "Toepassen"
 
-#: ../pyhoca/wxgui/printingprefs.py:136
+#: ../pyhoca/wxgui/printingprefs.py:145
 msgid "Print"
 msgstr "Afdrukken"
 
-#: ../pyhoca/wxgui/printingprefs.py:227
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- geen printers geinstalleerd -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
 msgid "- print system is not available -"
-msgstr "- print systeem niet beschikbaar"
+msgstr "- print systeem niet beschikbaar -"
 
-#: ../pyhoca/wxgui/printingprefs.py:334
+#: ../pyhoca/wxgui/printingprefs.py:407
 msgid "Choose PDF viewer application"
 msgstr "Kies PDF viewer toepassing"
 
-#: ../pyhoca/wxgui/printingprefs.py:350
+#: ../pyhoca/wxgui/printingprefs.py:430
 msgid "Choose PDF saving location"
 msgstr "Kies locatie om PDF op te slaan"
 
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Sessie naam - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Wijzig sessie naam naar"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "OK"
+
+#~ msgid "us"
+#~ msgstr "us"
+
+#~ msgid "pc105/us"
+#~ msgstr "altgr/intl"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Toetsenbord layout"
+
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - DNS fout"
+
+#~ msgid "still loading"
+#~ msgstr "nog aan het laden"
+
+#~ msgid ""
+#~ "On slow connections, the loading of the application menu can take a "
+#~ "couple of seconds."
+#~ msgstr ""
+#~ "Bij een langzame verbinding kan het laden van het menu met de applicaties "
+#~ "enige seconden duren"
+
+#~ msgid "Disconnect and E&xit"
+#~ msgstr "Verbreek verbinding en e&xit"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - Verbindingsfout"
+
+#~ msgid "new session profile"
+#~ msgstr "Nieuw Profiel"
+
+#, fuzzy
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Nieuw Profiel"
+
+#, fuzzy
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Enkelvoudige Applicatie"
+
+#~ msgid "RDP settings"
+#~ msgstr "RDP instellingen"
+
+#~ msgid "Session Profile"
+#~ msgstr "Sessie Profiel"
+
+#~ msgid "Icon"
+#~ msgstr "Icon"
+
 #~ msgid "All session profiles are connected"
 #~ msgstr "Alle profielen zijn verbonden"
 
diff --git a/po/pyhoca-gui.pot b/po/pyhoca-gui.pot
deleted file mode 100644
index 0e73a7b..0000000
--- a/po/pyhoca-gui.pot
+++ /dev/null
@@ -1,1073 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-10 20:09+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../pyhoca/wxgui/logon.py:80
-#, python-format
-msgid "%s (via %s)"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:84 ../pyhoca/wxgui/logon.py:96
-msgid "Username"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:86 ../pyhoca/wxgui/logon.py:98
-msgid "Password"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:89
-msgid "Authenticate"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:101
-msgid "  Start SSH tunnel  "
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:109
-msgid "Session login"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:110
-msgid "SSH proxy server login"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:121 ../pyhoca/wxgui/profilemanager.py:274
-#: ../pyhoca/wxgui/messages.py:111 ../pyhoca/wxgui/printingprefs.py:138
-msgid "Cancel"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:277 ../pyhoca/wxgui/logon.py:310
-#: ../pyhoca/wxgui/frontend.py:363
-#, python-format
-msgid "%s - connect failure"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:278 ../pyhoca/wxgui/frontend.py:363
-msgid "User is not allowed to start X2go sessions!"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:283 ../pyhoca/wxgui/frontend.py:370
-#, python-format
-msgid "%s - connect"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:284
-msgid "Authentication has been successful."
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:306
-msgid "SSH tunnel started"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:311
-msgid "Authentication failed!"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:317
-#, python-format
-msgid "%s - ssh proxy"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:318
-msgid "Authentication to the SSH proxy server failed!"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:333 ../pyhoca/wxgui/logon.py:340
-#: ../pyhoca/wxgui/logon.py:379 ../pyhoca/wxgui/logon.py:387
-#: ../pyhoca/wxgui/frontend.py:389 ../pyhoca/wxgui/frontend.py:410
-#: ../pyhoca/wxgui/frontend.py:417 ../pyhoca/wxgui/frontend.py:424
-#, python-format
-msgid "%s - connect error"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:347 ../pyhoca/wxgui/frontend.py:396
-#: ../pyhoca/wxgui/frontend.py:403
-#, python-format
-msgid "%s - host key error"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:348 ../pyhoca/wxgui/frontend.py:396
-msgid ""
-"The remote server's host key is invalid or has not been accepted by the user"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:355 ../pyhoca/wxgui/frontend.py:438
-#, python-format
-msgid "%s - missing home directory"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:356 ../pyhoca/wxgui/frontend.py:438
-msgid "The remote user's home directory does not exist."
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:363
-#, python-format
-msgid "%s - key error"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:371 ../pyhoca/wxgui/frontend.py:445
-#, python-format
-msgid "%s - auth error"
-msgstr ""
-
-#: ../pyhoca/wxgui/logon.py:388
-msgid "An unknown error occured during authentication!"
-msgstr ""
-
-#: ../pyhoca/wxgui/taskbar.py:79
-#, python-format
-msgid ""
-"PyHoca-GUI\n"
-"Connecting you to ,,%s''"
-msgstr ""
-
-#: ../pyhoca/wxgui/taskbar.py:82
-#, python-format
-msgid ""
-"PyHoca-GUI (Python X2goClient)\n"
-"Currently connecting you to remote X2go server ,,%s''"
-msgstr ""
-
-#: ../pyhoca/wxgui/taskbar.py:87
-msgid ""
-"PyHoca-GUI\n"
-"Connecting you to X2go..."
-msgstr ""
-
-#: ../pyhoca/wxgui/taskbar.py:90
-msgid ""
-"PyHoca-GUI (Python X2goClient)\n"
-"Client for connecting you to a remote X2go server"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:72
-msgid "GNOME Desktop (GNOME)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:73
-msgid "K Desktop Environment (KDE)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:74
-msgid "Lightweight X Desktop (LXDE)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:75
-msgid "Trinity X Desktop (KDE3-like)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:76
-msgid "Unity X Desktop Shell (UNITY)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:77
-msgid "XDMCP Query"
-msgstr ""
-
-#. 'EMBEDDED_MENU': _(u'Embedded Application Menu'),
-#: ../pyhoca/wxgui/profilemanager.py:79
-msgid "Windows Terminal Server (RDP-proxy)"
-msgstr ""
-
-#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-#: ../pyhoca/wxgui/profilemanager.py:81
-msgid "Single Application"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:82 ../pyhoca/wxgui/profilemanager.py:166
-msgid "Custom command"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:85
-msgid "Internet Browser"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:86
-msgid "Email Client"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:87
-msgid "Openoffice.org"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:88
-msgid "Terminal"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:102
-msgid "Open file with system's default application"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:103
-msgid "Open application chooser dialog"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:104
-msgid "Save incoming file as ..."
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:123
-msgid "new session profile"
-msgstr ""
-
-#. boxes for all tabs
-#: ../pyhoca/wxgui/profilemanager.py:135
-msgid "Profile "
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:136
-msgid "Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:137
-msgid "Server"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:138
-msgid "Connection Link Speed"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:139
-msgid "Compression"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:140
-msgid "Display"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:141
-msgid "Keyboard"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:142
-msgid "Sound"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:143
-msgid "Printing"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:144
-msgid "Folder Exports"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:145
-msgid "File Import"
-msgstr ""
-
-#. ##
-#. ## widgets for the SESSION tab
-#. ##
-#: ../pyhoca/wxgui/profilemanager.py:150
-msgid "Name"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:160
-msgid "Icon"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:162
-msgid "Type"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:164
-msgid "Application"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:168
-msgid "RDP settings"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:169
-msgid "RDP server"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:171
-msgid "RDP options"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:173
-msgid "XDMCP server"
-msgstr ""
-
-#. ##
-#. ## widgets for the CONNECTION tab
-#. ##
-#: ../pyhoca/wxgui/profilemanager.py:179 ../pyhoca/wxgui/profilemanager.py:189
-msgid "User"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:181
-msgid "Host"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:183
-msgid "Port"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:185
-msgid "RSA/DSA private key"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:188
-msgid "Server behind SSH proxy"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:191
-msgid "Key file"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:194
-msgid "Host[:Port]"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:196
-msgid "SSH Proxy Tunnel"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:204
-msgid "Modem"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:205
-msgid "ISDN"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:206
-msgid "ADSL"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:207
-msgid "WAN"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:208
-msgid "LAN"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:210
-msgid "Method"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:212
-msgid "Image quality"
-msgstr ""
-
-#. ##
-#. ## wigdets for the SETTINGS tab
-#. ##
-#: ../pyhoca/wxgui/profilemanager.py:218
-msgid "Fullscreen"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:219
-msgid "Custom Size"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:224
-msgid "Set display DPI"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:226
-msgid "Keep current keyboard settings"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:227
-msgid "Keyboard layout"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:229
-msgid "Keyboard model"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:231
-msgid "Enable sound support"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:232
-msgid "Pulse Audio"
-msgstr ""
-
-#. Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
-#. However, config files can contain an Arts configuration, so we will honour this
-#: ../pyhoca/wxgui/profilemanager.py:236
-msgid "Arts (not supported)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:239
-msgid "esd"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:240
-msgid "Use default sound port"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:241
-msgid "Custom sound port"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:243
-msgid "Client Side printing"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:245
-msgid "Use local folder sharing"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:246
-msgid "Path"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:249 ../pyhoca/wxgui/profilemanager.py:268
-msgid "Add"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:251
-msgid "Local Path"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:252
-msgid "Connect Method"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:253
-msgid "Delete"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:255
-msgid "Convert between client and server encodings"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:256
-msgid "Client encoding"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:258
-msgid "Server encoding"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:261
-msgid "Use file MIME box for local file import"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:262
-msgid "Extensions"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:264
-msgid "Action"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:269
-msgid "Defaults"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:271
-msgid "Save"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:272
-msgid "Reset"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:313 ../pyhoca/wxgui/profilemanager.py:924
-#: ../pyhoca/wxgui/profilemanager.py:1409
-msgid "automatically"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:315 ../pyhoca/wxgui/profilemanager.py:926
-msgid "manually"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:320
-msgid "PyHoca-GUI Profile Manager - new profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:322
-#, python-format
-msgid "PyHoca-GUI Profile Manager - %s (connected)"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:324
-#, python-format
-msgid "PyHoca-GUI Profile Manager - %s"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:665
-msgid "Session Profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:666
-msgid "Connection"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:667
-msgid "Settings"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:668
-msgid "Sharing"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1100
-msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1103
-msgid "Choose an icon for this session profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1220
-msgid "All files (*.*)|*"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1222
-#: ../pyhoca/wxgui/profilemanager.py:1237
-msgid "Choose a public SSH key"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1389
-msgid "Choose a folder to share within a session"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1453
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#: ../pyhoca/wxgui/profilemanager.py:1464
-#: ../pyhoca/wxgui/profilemanager.py:1474 ../pyhoca/wxgui/menus_taskbar.py:87
-msgid "Profile Manager"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1453
-msgid "Profile name is missing, profile unusable!!!"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1456
-#: ../pyhoca/wxgui/profilemanager.py:1459
-#, python-format
-msgid "Profile name %s already exists!!!"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1464
-msgid "The SSH proxy configuration is incomplete. Try again."
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1474
-#, python-format
-msgid ""
-"Another session profile (%s) already uses [%s]:%s for binding a local SSH "
-"proxy to.\n"
-"Please change the SSH proxy settings accordingly."
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1494
-#, python-format
-msgid "%s - profile added"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1495
-msgid "A new session profile has been added."
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1499
-#, python-format
-msgid "%s - modified"
-msgstr ""
-
-#: ../pyhoca/wxgui/profilemanager.py:1500
-msgid "Changes to profile have been saved."
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:55
-msgid "Edit Profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:57
-msgid "Delete Profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:79
-#, python-format
-msgid "About %s (%s)..."
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:102
-msgid "Printing Preferences"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:108
-msgid "Client Options"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:116 ../pyhoca/wxgui/menus_taskbar.py:486
-msgid "E&xit"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:159
-msgid "Resume Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:161
-msgid "Resume Session (not possible)"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:169
-msgid "Transfer Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:171
-msgid "Transfer Session (not possible)"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:174
-msgid "Suspend Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:176
-msgid "Terminate Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:206
-msgid "&Share custom local folder"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:229
-msgid "Share:"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:240
-msgid "Unshare:"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:250
-msgid "Unshare &all local folders"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:290
-msgid "Start &new Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:306
-msgid "Running"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:308
-msgid "Suspended"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:320
-msgid "&Clean all sessions"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:322
-msgid "Customize &profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:325
-msgid "Shared &folders"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:333
-msgid "&Disconnect from Server"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:359
-msgid "Add Profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:428
-msgid "No session profiles defined"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:459
-msgid "Start/Resume Session"
-msgstr ""
-
-#: ../pyhoca/wxgui/menus_taskbar.py:459
-msgid "Connect Server"
-msgstr ""
-
-#: ../pyhoca/wxgui/about.py:55 ../pyhoca/wxgui/about.py:57
-#, python-format
-msgid "About %s ..."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:370
-msgid "Public SSH key authentication has been successful."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:403
-msgid ""
-"The SSH proxy's host key is invalid or has not been accepted by the user"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:424
-msgid "Authentication protocol communication incomplete! Try again..."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:431
-#, python-format
-msgid "%s - auth key error"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:452
-msgid "An unknown error occurred during authentication!"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:554
-msgid "Cleaning X2go sessions..."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:573
-#, python-format
-msgid "%s - disconnect"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:573
-msgid "X2go Profile is now disconnected."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:589
-msgid "New Session Profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:616
-#, python-format
-msgid "Really Delete Session Profile ,,%s''?"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:622
-#, python-format
-msgid "%s - profile deleted"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:622
-msgid "The session profile has been deleted."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:637
-#, python-format
-msgid "%s - share local folder with sessions of this profile"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:715
-#, python-format
-msgid ""
-"The authenticity of host [%s]:%s can't be established.\n"
-"%s key fingerprint is ,,%s''.\n"
-"\n"
-"Are you sure you want to continue connecting?"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:723
-#, python-format
-msgid "%s: Confirm Host Authorization"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:742
-#, python-format
-msgid "%s - channel error"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:742
-#, python-format
-msgid ""
-"Lost connection to server %s unexpectedly! Try to re-authenticate to the "
-"server..."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:752 ../pyhoca/wxgui/frontend.py:759
-#: ../pyhoca/wxgui/frontend.py:761 ../pyhoca/wxgui/frontend.py:773
-#, python-format
-msgid "%s - session failure"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:752
-msgid "The session startup failed."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:759
-#, python-format
-msgid "The command ,,%s'' is not available on X2go server."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:761
-#, python-format
-msgid ""
-"The command ,,%s'' is not available on X2go server\n"
-"%s."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid "%s - session warning"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:767
-#, python-format
-msgid ""
-"Reverse TCP port forwarding request for session %s to server port %s has "
-"been denied."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:773
-#, python-format
-msgid ""
-"Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
-"X2go/SSH server. Session startup failed."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:785
-#, python-format
-msgid "%s - audio warning"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:785
-msgid ""
-"The X2go PulseAudio system is not available within Remote Desktop sessions."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:788 ../pyhoca/wxgui/frontend.py:791
-#, python-format
-msgid "%s - audio error"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:788
-msgid "The X2go PulseAudio system could not be started."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:791
-msgid "The X2go PulseAudio system has died unexpectedly."
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:794
-#, python-format
-msgid "%s - audio problem"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:794
-#, python-format
-msgid ""
-"The audio connection could not be set up for this session.\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:808 ../pyhoca/wxgui/frontend.py:810
-#, python-format
-msgid "%s - print error"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:808
-#, python-format
-msgid ""
-"%s\n"
-"...caused on printer %s by session\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:810
-#, python-format
-msgid ""
-"%s\n"
-"...caused by session\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:814 ../pyhoca/wxgui/frontend.py:818
-#, python-format
-msgid "%s - start"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:814
-#, python-format
-msgid ""
-"New X2go session starting up...\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:818
-#, python-format
-msgid ""
-"Another client started X2go session\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:822 ../pyhoca/wxgui/frontend.py:826
-#, python-format
-msgid "%s - resume"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:822
-#, python-format
-msgid ""
-"Resuming X2go session...\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:826
-#, python-format
-msgid ""
-"Another client resumed X2go session\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:830
-#, python-format
-msgid "%s - running"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:830
-#, python-format
-msgid ""
-"Found already running session\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:834
-#, python-format
-msgid "%s - suspend"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:834
-#, python-format
-msgid ""
-"X2go Session has been suspended\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:850
-#, python-format
-msgid "%s - terminate"
-msgstr ""
-
-#: ../pyhoca/wxgui/frontend.py:850
-#, python-format
-msgid ""
-"X2go Session has terminated\n"
-"%s"
-msgstr ""
-
-#: ../pyhoca/wxgui/messages.py:53
-#, python-format
-msgid ""
-"Are you really sure you want to\n"
-"delete the session profile ,,%s''?"
-msgstr ""
-
-#: ../pyhoca/wxgui/messages.py:54
-#, python-format
-msgid ""
-"PyHoca-GUI is already running for user ,,%s''!\n"
-"\n"
-"Only one instance of PyHoca-GUI can be started per\n"
-"user. The PyHoca-GUI icon can be found in your desktops's\n"
-"notification area/systray."
-msgstr ""
-
-#: ../pyhoca/wxgui/messages.py:87
-msgid "Yes"
-msgstr ""
-
-#: ../pyhoca/wxgui/messages.py:88
-msgid "No"
-msgstr ""
-
-#: ../pyhoca/wxgui/messages.py:105 ../pyhoca/wxgui/printingprefs.py:133
-msgid "Ok"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:57
-#, python-format
-msgid "%s - Printing Preferences"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:59
-#, python-format
-msgid "%s - Incoming Print Job from  %s (%s)"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:64
-msgid "Open this dialog window"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:65
-msgid "Open with PDF viewer"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:66
-msgid "Save to a local folder"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:67
-msgid "Print to a local printer"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:68
-msgid "Run custom print command"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:71
-msgid "<Select a print action here>"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:105
-msgid "Print action"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:107
-msgid "Default action for incoming print jobs"
-msgstr ""
-
-#. widgets for print action PDFVIEW
-#: ../pyhoca/wxgui/printingprefs.py:111
-msgid "PDF viewer command"
-msgstr ""
-
-#. widgets for print action PDFSAVE
-#: ../pyhoca/wxgui/printingprefs.py:118
-msgid "Save PDFs to folder"
-msgstr ""
-
-#. widgets for print action PRINT
-#: ../pyhoca/wxgui/printingprefs.py:125
-msgid "Use this printer"
-msgstr ""
-
-#. widgets for print action PRINTCMD
-#: ../pyhoca/wxgui/printingprefs.py:129
-msgid "Custom print command"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:134
-msgid "Apply"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:136
-msgid "Print"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:227
-msgid "- print system is not available -"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:334
-msgid "Choose PDF viewer application"
-msgstr ""
-
-#: ../pyhoca/wxgui/printingprefs.py:350
-msgid "Choose PDF saving location"
-msgstr ""
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..7abe572
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,1476 @@
+# PyHoca-GUI / i18n.
+# Copyright (C) 2010-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+#                         Dick Kniep <dick.kniep at lindix.nl>
+# This file is distributed under the same license as the PyHoca-GUI package.
+# Mike Gabriel <mike.gabriel at das-netzwerkteam.de>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PyHoca-GUI VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-06-10 21:18+0200\n"
+"PO-Revision-Date: 2012-06-01 17:59+0100\n"
+"Last-Translator: Daniel Lindgren <dali.spam at gmail.com>\n"
+"Language-Team: Swedish <x2go-i18n at lists.berlios.de>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: Swedish\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../pyhoca/wxgui/logon.py:92
+#, python-format
+msgid "%s (via %s)"
+msgstr "%s (via %s)"
+
+#: ../pyhoca/wxgui/logon.py:96 ../pyhoca/wxgui/logon.py:108
+msgid "Username"
+msgstr "Användarnamn"
+
+#: ../pyhoca/wxgui/logon.py:98 ../pyhoca/wxgui/logon.py:110
+msgid "Password"
+msgstr "Lösenord"
+
+#: ../pyhoca/wxgui/logon.py:101
+msgid "Authenticate"
+msgstr "Autentisera"
+
+#: ../pyhoca/wxgui/logon.py:113
+msgid "  Start SSH tunnel  "
+msgstr "  Starta SSH-tunnel  "
+
+#: ../pyhoca/wxgui/logon.py:121
+msgid "Session login"
+msgstr "Sessionsinloggning"
+
+#: ../pyhoca/wxgui/logon.py:122
+msgid "SSH proxy server login"
+msgstr "SSH proxyserverinloggning"
+
+#: ../pyhoca/wxgui/logon.py:133 ../pyhoca/wxgui/profilemanager.py:322
+#: ../pyhoca/wxgui/messages.py:132 ../pyhoca/wxgui/printingprefs.py:147
+#: ../pyhoca/wxgui/sessiontitle.py:85
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../pyhoca/wxgui/logon.py:292 ../pyhoca/wxgui/logon.py:334
+#: ../pyhoca/wxgui/frontend.py:603
+#, python-format
+msgid "%s - connect failure"
+msgstr "%s - anslutning misslyckades"
+
+#: ../pyhoca/wxgui/logon.py:293 ../pyhoca/wxgui/frontend.py:603
+msgid "User is not allowed to start X2Go sessions!"
+msgstr "Användaren har inte rätt att starta X2Go-sessioner!"
+
+#: ../pyhoca/wxgui/logon.py:298 ../pyhoca/wxgui/frontend.py:610
+#, python-format
+msgid "%s - connect"
+msgstr "%s - anslut"
+
+#: ../pyhoca/wxgui/logon.py:299
+msgid "Authentication has been successful."
+msgstr "Autentisering lyckades."
+
+#: ../pyhoca/wxgui/logon.py:330
+msgid "SSH tunnel started"
+msgstr "SSH-tunnel startad"
+
+#: ../pyhoca/wxgui/logon.py:335
+msgid "Authentication failed!"
+msgstr "Autentisering misslyckades!"
+
+#: ../pyhoca/wxgui/logon.py:342
+#, python-format
+msgid "%s - SSH proxy"
+msgstr "%s - SSH-proxy"
+
+#: ../pyhoca/wxgui/logon.py:343
+msgid "Authentication to the SSH proxy server failed!"
+msgstr "Autentisering till SSH-proxy misslyckades!"
+
+#: ../pyhoca/wxgui/logon.py:365 ../pyhoca/wxgui/frontend.py:658
+#, python-format
+msgid "%s - socket error"
+msgstr "%s - socketfel"
+
+#: ../pyhoca/wxgui/logon.py:372 ../pyhoca/wxgui/frontend.py:637
+#: ../pyhoca/wxgui/frontend.py:644
+#, python-format
+msgid "%s - host key error"
+msgstr "%s - fel på serverns nyckel"
+
+#: ../pyhoca/wxgui/logon.py:373 ../pyhoca/wxgui/frontend.py:637
+msgid ""
+"The remote server's host key is invalid or has not been accepted by the user"
+msgstr "Serverns nyckel är felaktig eller har inte accepterats av användaren"
+
+#: ../pyhoca/wxgui/logon.py:380 ../pyhoca/wxgui/frontend.py:679
+#, python-format
+msgid "%s - missing home directory"
+msgstr "%s - hemkatalog saknas"
+
+#: ../pyhoca/wxgui/logon.py:381 ../pyhoca/wxgui/frontend.py:679
+msgid "The remote user's home directory does not exist."
+msgstr "Fjärranvändarens hemkatalog saknas."
+
+#: ../pyhoca/wxgui/logon.py:388
+#, python-format
+msgid "%s - key error"
+msgstr "%s - nyckelfel"
+
+#: ../pyhoca/wxgui/logon.py:396 ../pyhoca/wxgui/frontend.py:686
+#, python-format
+msgid "%s - auth error"
+msgstr "%s - autentiseringsfel"
+
+#: ../pyhoca/wxgui/logon.py:404 ../pyhoca/wxgui/frontend.py:630
+#, python-format
+msgid "%s - SSH error"
+msgstr "%s - SSH-fel"
+
+#: ../pyhoca/wxgui/logon.py:412
+#, python-format
+msgid "%s - unknown error"
+msgstr "%s - okänt fel"
+
+#: ../pyhoca/wxgui/logon.py:413
+msgid "An unknown error occured during authentication!"
+msgstr "Ett okänt fel inträffade vid autentisering!"
+
+#: ../pyhoca/wxgui/taskbar.py:92
+#, python-format
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to ,,%s''"
+msgstr ""
+"PyHoca-GUI\n"
+"Ansluter till \"%s\""
+
+#: ../pyhoca/wxgui/taskbar.py:96
+#, python-format
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Currently connecting you to remote X2Go server ,,%s''"
+msgstr ""
+"PyHoca-GUI (Python X2Go-klient)\n"
+"Anslutning till \"%s\" pågår"
+
+#: ../pyhoca/wxgui/taskbar.py:106
+msgid ""
+"PyHoca-GUI\n"
+"Connecting you to X2Go..."
+msgstr ""
+"PyHoca-GUI\n"
+"Ansluter dig till X2Go..."
+
+#: ../pyhoca/wxgui/taskbar.py:110
+msgid ""
+"PyHoca-GUI (Python X2goClient)\n"
+"Client for connecting you to a remote X2Go server"
+msgstr ""
+"PyHoca-GUI (Python X2Go-klient)\n"
+"Klient för att ansluta dig till en X2Go-server"
+
+#: ../pyhoca/wxgui/profilemanager.py:82
+msgid "GNOME Desktop (GNOME)"
+msgstr "GNOME Desktop (GNOME)"
+
+#: ../pyhoca/wxgui/profilemanager.py:83
+msgid "K Desktop Environment (KDE)"
+msgstr "K Desktop Environment (KDE)"
+
+#: ../pyhoca/wxgui/profilemanager.py:84
+msgid "Lightweight X Desktop (LXDE)"
+msgstr "Lightweight X Desktop (LXDE)"
+
+#: ../pyhoca/wxgui/profilemanager.py:85
+msgid "Trinity X Desktop (KDE3-like)"
+msgstr "Trinity X Desktop (KDE3-liknande)"
+
+#: ../pyhoca/wxgui/profilemanager.py:86
+msgid "Unity X Desktop Shell (UNITY)"
+msgstr "Unity X Desktop Shell (UNITY)"
+
+#: ../pyhoca/wxgui/profilemanager.py:87
+msgid "XFCE4 Desktop (XFCE4)"
+msgstr "XFCE4 Desktop (XFCE4)"
+
+#: ../pyhoca/wxgui/profilemanager.py:88
+msgid "Published Applications"
+msgstr "Publicerade applikationer"
+
+#: ../pyhoca/wxgui/profilemanager.py:89
+msgid "Single Application"
+msgstr "Applikation"
+
+#: ../pyhoca/wxgui/profilemanager.py:90
+msgid "XDMCP Query"
+msgstr "XDMCP"
+
+#: ../pyhoca/wxgui/profilemanager.py:91
+msgid "Windows Terminal Server (RDP-proxy)"
+msgstr "Windows Terminal Server (RDP-proxy)"
+
+#. 'DirectRDP': 'Windows Terminal Server (RDP-direct)',
+#: ../pyhoca/wxgui/profilemanager.py:93 ../pyhoca/wxgui/profilemanager.py:207
+msgid "Custom command"
+msgstr "Anpassat kommando"
+
+#: ../pyhoca/wxgui/profilemanager.py:96 ../pyhoca/wxgui/menus_taskbar.py:398
+msgid "Internet Browser"
+msgstr "Webbbläsare"
+
+#: ../pyhoca/wxgui/profilemanager.py:97 ../pyhoca/wxgui/menus_taskbar.py:399
+msgid "Email Client"
+msgstr "E-postklient"
+
+#: ../pyhoca/wxgui/profilemanager.py:98 ../pyhoca/wxgui/menus_taskbar.py:400
+msgid "Office"
+msgstr "Office"
+
+#: ../pyhoca/wxgui/profilemanager.py:99 ../pyhoca/wxgui/menus_taskbar.py:401
+msgid "Terminal"
+msgstr "Terminal"
+
+#: ../pyhoca/wxgui/profilemanager.py:113
+msgid "Open file with system's default application"
+msgstr "Öppna med systemets standardapplikation"
+
+#: ../pyhoca/wxgui/profilemanager.py:114
+msgid "Open application chooser dialog"
+msgstr "Öppna applikationsväljare"
+
+#: ../pyhoca/wxgui/profilemanager.py:115
+msgid "Save incoming file as ..."
+msgstr "Spara inkommande fil som ..."
+
+#: ../pyhoca/wxgui/profilemanager.py:143
+msgid "settings derived from "
+msgstr "inställningar hämtade från"
+
+#. boxes for all tabs
+#: ../pyhoca/wxgui/profilemanager.py:160
+msgid "Session Title"
+msgstr "Sessionsnamn"
+
+#: ../pyhoca/wxgui/profilemanager.py:161
+msgid "Session Window"
+msgstr "Sessionsfönster"
+
+#: ../pyhoca/wxgui/profilemanager.py:162
+msgid "Session Startup"
+msgstr "Sessionsstart"
+
+#: ../pyhoca/wxgui/profilemanager.py:163
+msgid "Server"
+msgstr "Server"
+
+#: ../pyhoca/wxgui/profilemanager.py:164
+msgid "Connection Link Speed"
+msgstr "Anslutningshastighet"
+
+#: ../pyhoca/wxgui/profilemanager.py:165
+msgid "Compression"
+msgstr "Komprimering"
+
+#: ../pyhoca/wxgui/profilemanager.py:166
+msgid "Display"
+msgstr "Skärm"
+
+#: ../pyhoca/wxgui/profilemanager.py:167
+msgid "Keyboard"
+msgstr "Tangentbord"
+
+#: ../pyhoca/wxgui/profilemanager.py:168
+msgid "Sound"
+msgstr "Ljud"
+
+#: ../pyhoca/wxgui/profilemanager.py:169
+msgid "Printing"
+msgstr "Utskrifter"
+
+#: ../pyhoca/wxgui/profilemanager.py:170
+msgid "Folder Exports"
+msgstr "Delade mappar"
+
+#: ../pyhoca/wxgui/profilemanager.py:171
+msgid "File Import"
+msgstr "Filimport"
+
+#. ##
+#. ## widgets for the PROFILE tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:176
+msgid "Name"
+msgstr "Namn"
+
+#: ../pyhoca/wxgui/profilemanager.py:183
+msgid "Set session window title"
+msgstr "Ange fönstertitel för session"
+
+#: ../pyhoca/wxgui/profilemanager.py:184
+msgid "Use a default session window title"
+msgstr "Använd standard fönstertitel för session"
+
+#: ../pyhoca/wxgui/profilemanager.py:185
+msgid "Custom session window title"
+msgstr "Anpassad fönstertitel för session"
+
+#: ../pyhoca/wxgui/profilemanager.py:195
+msgid "Window Icon"
+msgstr "Fönsterikon"
+
+#. ##
+#. ## widgets for the SESSION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:201
+msgid "Start session automatically after login"
+msgstr "Starta session automatiskt efter inloggning"
+
+#: ../pyhoca/wxgui/profilemanager.py:202
+#, python-format
+msgid "Login automatically after %s has started"
+msgstr "Logga in automatiskt när %s har startat"
+
+#: ../pyhoca/wxgui/profilemanager.py:203
+msgid "Type"
+msgstr "Typ"
+
+#: ../pyhoca/wxgui/profilemanager.py:205
+msgid "Application"
+msgstr "Applikation"
+
+#: ../pyhoca/wxgui/profilemanager.py:209
+msgid "XDMCP server"
+msgstr "XDMCP-server"
+
+#: ../pyhoca/wxgui/profilemanager.py:211
+msgid "RDP server"
+msgstr "RDP-server"
+
+#: ../pyhoca/wxgui/profilemanager.py:213
+msgid "RDP options"
+msgstr "RDP-alternativ"
+
+#: ../pyhoca/wxgui/profilemanager.py:215
+msgid "Integrate remote application(s) into local desktop (rootless mode)"
+msgstr "Integrera fjärrapplikation i lokalt Skrivbord (rootless)"
+
+#: ../pyhoca/wxgui/profilemanager.py:216
+msgid "Menu of published applications"
+msgstr "Meny med publicerade applikationer"
+
+#. ##
+#. ## widgets for the CONNECTION tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:223 ../pyhoca/wxgui/profilemanager.py:233
+msgid "User"
+msgstr "Användare"
+
+#: ../pyhoca/wxgui/profilemanager.py:225
+msgid "Host"
+msgstr "Server"
+
+#: ../pyhoca/wxgui/profilemanager.py:227
+msgid "Port"
+msgstr "Port"
+
+#: ../pyhoca/wxgui/profilemanager.py:229
+msgid "RSA/DSA private key"
+msgstr "RSA/DSA privat nyckel"
+
+#: ../pyhoca/wxgui/profilemanager.py:232
+msgid "Server behind SSH proxy"
+msgstr "Server bakom SSH-proxy"
+
+#: ../pyhoca/wxgui/profilemanager.py:235
+msgid "Key file"
+msgstr "Nyckelfil"
+
+#: ../pyhoca/wxgui/profilemanager.py:238
+msgid "Host[:Port]"
+msgstr "Server[:Port]"
+
+#: ../pyhoca/wxgui/profilemanager.py:240
+msgid "SSH Proxy Tunnel"
+msgstr "SSH proxytunnel"
+
+#: ../pyhoca/wxgui/profilemanager.py:248
+msgid "Modem"
+msgstr "Modem"
+
+#: ../pyhoca/wxgui/profilemanager.py:249
+msgid "ISDN"
+msgstr "ISDN"
+
+#: ../pyhoca/wxgui/profilemanager.py:250
+msgid "ADSL"
+msgstr "ADSL"
+
+#: ../pyhoca/wxgui/profilemanager.py:251
+msgid "WAN"
+msgstr "WAN"
+
+#: ../pyhoca/wxgui/profilemanager.py:252
+msgid "LAN"
+msgstr "LAN"
+
+#: ../pyhoca/wxgui/profilemanager.py:254
+msgid "Method"
+msgstr "Metod"
+
+#: ../pyhoca/wxgui/profilemanager.py:256
+msgid "Image quality"
+msgstr "Bildkvalitet"
+
+#. ##
+#. ## wigdets for the SETTINGS tab
+#. ##
+#: ../pyhoca/wxgui/profilemanager.py:262
+msgid "Fullscreen"
+msgstr "Fullskärm"
+
+#: ../pyhoca/wxgui/profilemanager.py:263
+msgid "Custom Size"
+msgstr "Anpassad storlek"
+
+#: ../pyhoca/wxgui/profilemanager.py:268
+msgid "Set display DPI"
+msgstr "Ange skärmupplösning (DPI)"
+
+#: ../pyhoca/wxgui/profilemanager.py:270
+msgid "Do not set (use server-side tools to configure the keyboard)"
+msgstr ""
+"Konfigurera inte (använd verktyg på server för att konfigurera tangentbord)"
+
+#: ../pyhoca/wxgui/profilemanager.py:271
+msgid ""
+"Automatically detect and use client-side keyboard configuration inside the "
+"session"
+msgstr ""
+"Detektera automatiskt och använd klientinställningar för tangentbord i "
+"session"
+
+#: ../pyhoca/wxgui/profilemanager.py:272
+msgid "Use custom keyboard settings as provided below"
+msgstr "Använd nedan angivna tangentbordsinställningar"
+
+#: ../pyhoca/wxgui/profilemanager.py:273
+msgid "Keyboard model"
+msgstr "Tangentbordsmodell"
+
+#: ../pyhoca/wxgui/profilemanager.py:275
+msgid "Layout"
+msgstr "Tangentbordslayout"
+
+#: ../pyhoca/wxgui/profilemanager.py:277
+msgid "Layout variant"
+msgstr "Variant"
+
+#: ../pyhoca/wxgui/profilemanager.py:279
+msgid "Enable sound support"
+msgstr "Aktivera ljudstöd"
+
+#: ../pyhoca/wxgui/profilemanager.py:280
+msgid "Pulse Audio"
+msgstr "Pulse Audio"
+
+#. Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
+#. However, config files can contain an Arts configuration, so we will honour this
+#: ../pyhoca/wxgui/profilemanager.py:284
+msgid "Arts (not supported)"
+msgstr "Arts (ej supportad)"
+
+#: ../pyhoca/wxgui/profilemanager.py:287
+msgid "esd"
+msgstr "esd"
+
+#: ../pyhoca/wxgui/profilemanager.py:288
+msgid "Use default sound port"
+msgstr "Använd standardport för ljud"
+
+#: ../pyhoca/wxgui/profilemanager.py:289
+msgid "Custom sound port"
+msgstr "Anpassad ljudport"
+
+#: ../pyhoca/wxgui/profilemanager.py:291
+msgid "Client Side printing"
+msgstr "Stöd för utskrifter via klienten"
+
+#: ../pyhoca/wxgui/profilemanager.py:293
+msgid "Use local folder sharing"
+msgstr "Använd lokal mappdelning"
+
+#: ../pyhoca/wxgui/profilemanager.py:294
+msgid "Path"
+msgstr "Sökväg"
+
+#: ../pyhoca/wxgui/profilemanager.py:297 ../pyhoca/wxgui/profilemanager.py:316
+msgid "Add"
+msgstr "Lägg till"
+
+#: ../pyhoca/wxgui/profilemanager.py:299
+msgid "Local Path"
+msgstr "Lokal sökväg"
+
+#: ../pyhoca/wxgui/profilemanager.py:300
+msgid "Connect Method"
+msgstr "Anslutningsmetod"
+
+#: ../pyhoca/wxgui/profilemanager.py:301
+msgid "Delete"
+msgstr "Radera"
+
+#: ../pyhoca/wxgui/profilemanager.py:303
+msgid "Convert between client and server encodings"
+msgstr "Konvertera kodtabell mellan klient och server"
+
+#: ../pyhoca/wxgui/profilemanager.py:304
+msgid "Client encoding"
+msgstr "Kodtabell klient"
+
+#: ../pyhoca/wxgui/profilemanager.py:306
+msgid "Server encoding"
+msgstr "Kodtabell server"
+
+#: ../pyhoca/wxgui/profilemanager.py:309
+msgid "Use file MIME box for local file import"
+msgstr "Använd MIME för lokal filimport"
+
+#: ../pyhoca/wxgui/profilemanager.py:310
+msgid "Extensions"
+msgstr "Filändelser"
+
+#: ../pyhoca/wxgui/profilemanager.py:312
+msgid "Action"
+msgstr "Hantering"
+
+#: ../pyhoca/wxgui/profilemanager.py:317
+msgid "Defaults"
+msgstr "Standard"
+
+#: ../pyhoca/wxgui/profilemanager.py:319
+msgid "Save"
+msgstr "Spara"
+
+#: ../pyhoca/wxgui/profilemanager.py:320
+msgid "Reset"
+msgstr "Återställ"
+
+#: ../pyhoca/wxgui/profilemanager.py:365
+#: ../pyhoca/wxgui/profilemanager.py:1078
+#: ../pyhoca/wxgui/profilemanager.py:1832
+msgid "automatically"
+msgstr "automatisk"
+
+#: ../pyhoca/wxgui/profilemanager.py:367
+#: ../pyhoca/wxgui/profilemanager.py:1080
+msgid "manually"
+msgstr "manuellt"
+
+#: ../pyhoca/wxgui/profilemanager.py:376
+msgid "PyHoca-GUI Profile Manager - new profile"
+msgstr "PyHoca-GUI Profilhanterare - ny profil"
+
+#: ../pyhoca/wxgui/profilemanager.py:378
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s (connected)"
+msgstr " PyHoca-GUI Profilhanterare - %s (ansluten)"
+
+#: ../pyhoca/wxgui/profilemanager.py:380
+#, python-format
+msgid "PyHoca-GUI Profile Manager - %s"
+msgstr "PyHoca-GUI Profilhanterare - %s"
+
+#: ../pyhoca/wxgui/profilemanager.py:751
+msgid "Profile"
+msgstr "Profil"
+
+#: ../pyhoca/wxgui/profilemanager.py:752
+msgid "Session"
+msgstr "Session"
+
+#: ../pyhoca/wxgui/profilemanager.py:753
+msgid "Connection"
+msgstr "Anslutning"
+
+#: ../pyhoca/wxgui/profilemanager.py:754
+msgid "Settings"
+msgstr "Inställningar"
+
+#: ../pyhoca/wxgui/profilemanager.py:755
+msgid "Sharing"
+msgstr "Delning"
+
+#: ../pyhoca/wxgui/profilemanager.py:996
+msgid "<xkbtype>"
+msgstr "pc105"
+
+#: ../pyhoca/wxgui/profilemanager.py:997
+msgid "<xkblayout>"
+msgstr "se"
+
+#: ../pyhoca/wxgui/profilemanager.py:998
+msgid "<xkbvariant>"
+msgstr "se"
+
+#: ../pyhoca/wxgui/profilemanager.py:1284
+msgid "Icon Files (*.png)|*.png|All files (*.*)|*"
+msgstr "Ikonfiler (*.png)|*.png|Alla filer (*.*)|*"
+
+#: ../pyhoca/wxgui/profilemanager.py:1287
+msgid "Choose an icon for this session profile"
+msgstr "Välj en ikon för denna sessionsprofil"
+
+#: ../pyhoca/wxgui/profilemanager.py:1509
+msgid "All files (*.*)|*"
+msgstr "Alla filer (*.*)|*"
+
+#: ../pyhoca/wxgui/profilemanager.py:1511
+#: ../pyhoca/wxgui/profilemanager.py:1533
+msgid "Choose a public SSH key"
+msgstr "Välj en public SSH-nyckel"
+
+#: ../pyhoca/wxgui/profilemanager.py:1784
+msgid "Choose a folder to share within a session"
+msgstr "Välj en mapp att dela i en session"
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#: ../pyhoca/wxgui/profilemanager.py:1923
+#: ../pyhoca/wxgui/profilemanager.py:1933 ../pyhoca/wxgui/menus_taskbar.py:118
+msgid "Profile Manager"
+msgstr "Profilhanterare"
+
+#: ../pyhoca/wxgui/profilemanager.py:1912
+msgid "Profile name is missing, profile unusable!!!"
+msgstr "Profilnamn saknas, profil oanvändbar!"
+
+#: ../pyhoca/wxgui/profilemanager.py:1915
+#: ../pyhoca/wxgui/profilemanager.py:1918
+#, python-format
+msgid "Profile name %s already exists!!!"
+msgstr "Profilen %s finns redan!"
+
+#: ../pyhoca/wxgui/profilemanager.py:1923
+msgid "The SSH proxy configuration is incomplete. Try again."
+msgstr "Konfigurationen av SSH-proxy är inte komplett. Försök igen."
+
+#: ../pyhoca/wxgui/profilemanager.py:1933
+#, python-format
+msgid ""
+"Another session profile (%s) already uses [%s]:%s for binding a local SSH "
+"proxy to.\n"
+"Please change the SSH proxy settings accordingly."
+msgstr ""
+"En annan session (%s) använder redan [%s]:%s för att ansluta till lokal SSH-"
+"proxy.\n"
+"Ändra konfiguration för SSH-proxy ."
+
+#: ../pyhoca/wxgui/profilemanager.py:1960
+#, python-format
+msgid "%s - profile added"
+msgstr "%s - profil tillagd"
+
+#: ../pyhoca/wxgui/profilemanager.py:1961
+msgid "A new session profile has been added."
+msgstr "En ny sessionsprofil har lagts till."
+
+#: ../pyhoca/wxgui/profilemanager.py:1965
+#, python-format
+msgid "%s - modified"
+msgstr "%s - ändrad"
+
+#: ../pyhoca/wxgui/profilemanager.py:1966
+msgid "Changes to profile have been saved."
+msgstr "Ändringar av profil har sparats."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:75
+msgid "Edit Profile"
+msgstr "Redigera profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:78
+msgid "Use as Template for New Profile"
+msgstr "Använd som mall för ny profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:79
+msgid "Delete Profile"
+msgstr "Radera profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:107
+#, python-format
+msgid "About %s (%s)..."
+msgstr "Om %s (%s)..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:133
+msgid "Manage Session Profile"
+msgstr "Hantera sessionsprofil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:142
+msgid "Printing Preferences"
+msgstr "Utskriftspreferenser"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:148
+msgid "Client Options"
+msgstr "Klientalternativ"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:156 ../pyhoca/wxgui/menus_taskbar.py:785
+#: ../pyhoca/wxgui/menus_taskbar.py:977
+msgid "E&xit"
+msgstr "&Avsluta"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:228
+msgid "Window title"
+msgstr "Fönstertitel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:234 ../pyhoca/wxgui/menus_taskbar.py:613
+msgid "Resume Session"
+msgstr "Ã…teranslut session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:236
+msgid "Resume Session (not possible)"
+msgstr "Återanslut session (ej möjligt)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:247
+msgid "Transfer Session"
+msgstr "Flytta session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:249
+msgid "Transfer Session (not possible)"
+msgstr "Flytta session (ej möjligt)"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:253 ../pyhoca/wxgui/menus_taskbar.py:604
+msgid "Suspend Session (and disconnect/exit)"
+msgstr "Försätt session i vila och avsluta"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:255 ../pyhoca/wxgui/menus_taskbar.py:606
+msgid "Suspend Session (and disconnect)"
+msgstr "Försätt session i vila och koppla från"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:257 ../pyhoca/wxgui/menus_taskbar.py:608
+msgid "Suspend Session"
+msgstr "Försätt session i vila"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:263 ../pyhoca/wxgui/menus_taskbar.py:617
+msgid "Terminate Session (and disconnect/exit)"
+msgstr "Avsluta session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:265 ../pyhoca/wxgui/menus_taskbar.py:619
+msgid "Terminate Session (and disconnect)"
+msgstr "Koppla från session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:267 ../pyhoca/wxgui/menus_taskbar.py:621
+msgid "Terminate Session"
+msgstr "Avsluta session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:271 ../pyhoca/wxgui/menus_taskbar.py:601
+msgid "Refresh menu tree"
+msgstr "Uppdatera menyträd"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:280
+msgid "Rename Session Window"
+msgstr "Döp om sessionsfönster"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:281
+msgid "Show Session Window"
+msgstr "Visa sessionsfönster"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:321
+msgid "&Share custom local folder"
+msgstr "&Dela anpassad lokal mapp"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:344
+msgid "Share:"
+msgstr "Dela:"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:355
+msgid "Unshare:"
+msgstr "Avsluta delning:"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:365
+msgid "Unshare &all local folders"
+msgstr "Avsluta delning av lokala mappar"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:445
+msgid "Multimedia"
+msgstr "Ljud och bild"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:446
+msgid "Development"
+msgstr "Programmering"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:447
+msgid "Education"
+msgstr "Utbildning"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:448
+msgid "Games"
+msgstr "Spel"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:449
+msgid "Graphics"
+msgstr "Grafik"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:450
+msgid "Internet"
+msgstr "Internet"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:451
+msgid "Office Applications"
+msgstr "Kontor"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:452
+msgid "System"
+msgstr "System"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:453
+msgid "Utilities"
+msgstr "Verktyg"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:454
+msgid "Other Applications"
+msgstr "Övriga applikationer"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:526 ../pyhoca/wxgui/menus_taskbar.py:538
+#, python-format
+msgid "Connect %s"
+msgstr "Anslut %s"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:532
+msgid "Currently connecting..."
+msgstr "Anslutning pågår..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:546
+msgid "Start &new Desktop Session"
+msgstr "Starta &ny Skrivbordssession"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:551 ../pyhoca/wxgui/menus_taskbar.py:689
+msgid "Retrieving Application Menu..."
+msgstr "Hämtar applikationsmeny..."
+
+#: ../pyhoca/wxgui/menus_taskbar.py:555 ../pyhoca/wxgui/menus_taskbar.py:692
+msgid "Retrieve Application Menu"
+msgstr "Hämta applikationsmeny"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:558
+msgid "Start &new Session"
+msgstr "Starta &ny session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:638
+msgid "Launch Single Application"
+msgstr "Starta applikation"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:676
+msgid "Manage Application Menu"
+msgstr "Hantera applikationsmeny"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:719
+msgid "Running"
+msgstr "Aktiv"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:721
+msgid "Suspended"
+msgstr "Vilande"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:740
+msgid "&Clean all sessions"
+msgstr "&Rensa alla sessioner"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:746
+msgid "Customize &profile"
+msgstr "Anpassa &profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:758
+msgid "Shared &folders"
+msgstr "Delade &mappar"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:770
+msgid "&Disconnect from Server"
+msgstr "&Koppla från server"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:777
+msgid "Suspend Session and E&xit application"
+msgstr "Försätt session i vila och avsluta"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:781
+msgid "Disconnect and E&xit application"
+msgstr "Kopplar från och &avsluta"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:835
+msgid "Add Profile"
+msgstr "Lägg till profil"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:911
+msgid "No session profiles defined"
+msgstr "Inga sessionsprofiler har definierats"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Start/Resume Session"
+msgstr "Starta/Ã¥teranslut session"
+
+#: ../pyhoca/wxgui/menus_taskbar.py:947
+msgid "Connect Server"
+msgstr "Anslut till server"
+
+#: ../pyhoca/wxgui/about.py:78 ../pyhoca/wxgui/about.py:80
+#, python-format
+msgid "About %s ..."
+msgstr "Om %s ..."
+
+#: ../pyhoca/wxgui/frontend.py:462
+msgid "Suspending sessions and exiting application..."
+msgstr "Försätter session i vila och avslutar..."
+
+#: ../pyhoca/wxgui/frontend.py:465
+#, python-format
+msgid "Disconnecting %s and exiting application..."
+msgstr "Kopplar från %s och avslutar applikation..."
+
+#: ../pyhoca/wxgui/frontend.py:467
+msgid "Exiting application..."
+msgstr "Avslutar applikation..."
+
+#: ../pyhoca/wxgui/frontend.py:560
+#, python-format
+msgid "%s - server warning"
+msgstr "%s - servervarning"
+
+#: ../pyhoca/wxgui/frontend.py:560
+msgid "The X2Go Server does not publish an application menu."
+msgstr "X2Go-servern publicerar inte en applikationsmeny."
+
+#: ../pyhoca/wxgui/frontend.py:610
+msgid "Public SSH key authentication has been successful."
+msgstr "Autentisering med publik SSH-nyckel lyckades."
+
+#: ../pyhoca/wxgui/frontend.py:644
+msgid ""
+"The SSH proxy's host key is invalid or has not been accepted by the user"
+msgstr ""
+"SSH-proxyns nyckel är felaktig eller har inte accepterats av användaren"
+
+#: ../pyhoca/wxgui/frontend.py:665
+#, python-format
+msgid "%s - EOF error"
+msgstr "%s - EOF fel"
+
+#: ../pyhoca/wxgui/frontend.py:665
+msgid "Authentication protocol communication incomplete! Try again..."
+msgstr "Autentisering slutfördes ej! Prova igen..."
+
+#: ../pyhoca/wxgui/frontend.py:672
+#, python-format
+msgid "%s - auth key error"
+msgstr "%s - autentiseringsnyckel fel"
+
+#: ../pyhoca/wxgui/frontend.py:693
+msgid "An unknown error occurred during authentication!"
+msgstr "Ett okänt fel inträffade vid autentisering!"
+
+#: ../pyhoca/wxgui/frontend.py:726
+msgid "Unknown session profile, configure before using it..."
+msgstr "Okänd sessionsprofil, konfigurera före användning..."
+
+#: ../pyhoca/wxgui/frontend.py:784 ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid "%s - session warning"
+msgstr "%s - sessionsvarning"
+
+#: ../pyhoca/wxgui/frontend.py:784
+#, python-format
+msgid "Execution of command ,,%s'' failed."
+msgstr "Exekvering av kommando \"%s\" misslyckades."
+
+#: ../pyhoca/wxgui/frontend.py:926
+msgid "Cleaning X2Go sessions..."
+msgstr "Rensar X2Go-sessioner..."
+
+#: ../pyhoca/wxgui/frontend.py:961
+#, python-format
+msgid "%s - disconnect"
+msgstr "%s - koppla från"
+
+#: ../pyhoca/wxgui/frontend.py:961
+msgid "X2Go Profile is now disconnected."
+msgstr "X2Go-profil är nu frånkopplad"
+
+#: ../pyhoca/wxgui/frontend.py:977
+msgid "New Session Profile"
+msgstr "Ny sessionsprofil"
+
+#: ../pyhoca/wxgui/frontend.py:1029
+#, python-format
+msgid "Really Delete Session Profile ,,%s''?"
+msgstr "Är du säker på att du vill radera profil ,,%s''?"
+
+#: ../pyhoca/wxgui/frontend.py:1035
+#, python-format
+msgid "%s - profile deleted"
+msgstr "%s - profil raderad"
+
+#: ../pyhoca/wxgui/frontend.py:1035
+msgid "The session profile has been deleted."
+msgstr "Profilen har raderats."
+
+#: ../pyhoca/wxgui/frontend.py:1053
+#, python-format
+msgid "%s - share local folder with sessions of this profile"
+msgstr "%s - dela lokal mapp med sessioner som använder denna profil"
+
+#: ../pyhoca/wxgui/frontend.py:1194
+#, python-format
+msgid ""
+"The authenticity of host [%s]:%s can't be established.\n"
+"%s key fingerprint is ,,%s''.\n"
+"\n"
+"Are you sure you want to continue connecting?"
+msgstr ""
+"Okänd server [%s]:%s.\n"
+"Fingeravtryck för %s är ,,%s''.\n"
+"\n"
+"Litar du på denna nyckel?"
+
+#: ../pyhoca/wxgui/frontend.py:1202
+#, python-format
+msgid "%s: Confirm Host Authorization"
+msgstr "%s: Bekräfta tillägg av server"
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid "%s - channel error"
+msgstr "%s - kanalfel"
+
+#: ../pyhoca/wxgui/frontend.py:1247
+#, python-format
+msgid ""
+"Lost connection to server %s unexpectedly! Try to re-authenticate to the "
+"server..."
+msgstr ""
+"Anslutning till %s avslutades oväntat! Försök återansluta till server..."
+
+#: ../pyhoca/wxgui/frontend.py:1265 ../pyhoca/wxgui/frontend.py:1283
+#: ../pyhoca/wxgui/frontend.py:1285 ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid "%s - session failure"
+msgstr "%s - session misslyckades"
+
+#: ../pyhoca/wxgui/frontend.py:1265
+msgid "The session startup failed."
+msgstr "Sessionsstart misslyckades."
+
+#: ../pyhoca/wxgui/frontend.py:1283
+#, python-format
+msgid "The command ,,%s'' is not available on X2Go server."
+msgstr "Kommandot ,,%s'' finns inte på X2Go-server."
+
+#: ../pyhoca/wxgui/frontend.py:1285
+#, python-format
+msgid ""
+"The command ,,%s'' is not available on X2Go server\n"
+"%s."
+msgstr ""
+"Kommandot ,,%s'' finns inte på X2Go-server\n"
+"%s."
+
+#: ../pyhoca/wxgui/frontend.py:1302
+#, python-format
+msgid ""
+"Reverse TCP port forwarding request for session %s to server port %s has "
+"been denied."
+msgstr ""
+"Omvänd TCP port forwarding för session %s till serverport %s har nekats."
+
+#: ../pyhoca/wxgui/frontend.py:1321
+#, python-format
+msgid ""
+"Forwarding tunnel request to [%s]:%s for session %s was denied by remote "
+"X2go/SSH server. Session startup failed."
+msgstr ""
+"Begäran om tunnel till [%s]:%s för session %s nekades av X2Go/SSH-server. "
+"Sessionsstart misslyckades."
+
+#: ../pyhoca/wxgui/frontend.py:1340
+#, python-format
+msgid "%s - audio warning"
+msgstr "%s - ljudvarning"
+
+#: ../pyhoca/wxgui/frontend.py:1340
+msgid ""
+"The X2Go PulseAudio system is not available within Remote Desktop sessions."
+msgstr "X2Go PulseAudio är inte tillgängligt i Remote Desktop-sessioner."
+
+#: ../pyhoca/wxgui/frontend.py:1347 ../pyhoca/wxgui/frontend.py:1354
+#, python-format
+msgid "%s - audio error"
+msgstr "%s - ljudfel"
+
+#: ../pyhoca/wxgui/frontend.py:1347
+msgid "The X2Go PulseAudio system could not be started."
+msgstr "X2Go PulseAudio kunde ej startas."
+
+#: ../pyhoca/wxgui/frontend.py:1354
+msgid "The X2Go PulseAudio system has died unexpectedly."
+msgstr "X2Go PulseAudio avslutades oväntat."
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid "%s - audio problem"
+msgstr "%s - ljudproblem"
+
+#: ../pyhoca/wxgui/frontend.py:1366
+#, python-format
+msgid ""
+"The audio connection could not be set up for this session.\n"
+"%s"
+msgstr ""
+"Anslutning för ljud kunde ej genomföras för denna session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid "%s - client-side printing not available"
+msgstr "%s - klientdelade utskrifter ej tillgängliga"
+
+#: ../pyhoca/wxgui/frontend.py:1378
+#, python-format
+msgid ""
+"The server denies client-side printing from within this session.\n"
+"%s"
+msgstr ""
+"Servern tillåter ej utskrifter via klient från denna session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid "%s - MIME box not available"
+msgstr "%s - MIME ej tillgängligt"
+
+#: ../pyhoca/wxgui/frontend.py:1390
+#, python-format
+msgid ""
+"The server does not support the X2Go MIME box.\n"
+"%s"
+msgstr ""
+"Servern stöder ej X2Go MIME.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid "%s - client-side folders not sharable"
+msgstr "%s - klientmappar ej delningsbara"
+
+#: ../pyhoca/wxgui/frontend.py:1402
+#, python-format
+msgid ""
+"The server denies client-side folder sharing with this session.\n"
+"%s"
+msgstr ""
+"Servern tillåter ej klientdelade mappar i denna session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid "%s - client resources not sharable"
+msgstr "%s - klientresurser ej delningsbara"
+
+#: ../pyhoca/wxgui/frontend.py:1414
+#, python-format
+msgid ""
+"Client-side folders and printers cannot be shared with this session.\n"
+"%s"
+msgstr ""
+"Klientdelade mappar och utskrifter kan ej delas med denna session.\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1433 ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid "%s - print error"
+msgstr "%s - utskriftsfel"
+
+#: ../pyhoca/wxgui/frontend.py:1433
+#, python-format
+msgid ""
+"%s\n"
+"...caused on printer %s by session\n"
+"%s"
+msgstr ""
+"%s\n"
+"... orsakat på skrivare %s av session\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1435
+#, python-format
+msgid ""
+"%s\n"
+"...caused by session\n"
+"%s"
+msgstr ""
+"%s\n"
+"...orsakat av session\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1450 ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid "%s - start"
+msgstr "%s - startar"
+
+#: ../pyhoca/wxgui/frontend.py:1450
+#, python-format
+msgid ""
+"New X2Go session starting up...\n"
+"%s"
+msgstr ""
+"Ny X2Go-session startar ...\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1465
+#, python-format
+msgid ""
+"Another client started X2Go session\n"
+"%s"
+msgstr ""
+"En annan klient startade X2Go-session\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1480 ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid "%s - resume"
+msgstr "%s - återanslut"
+
+#: ../pyhoca/wxgui/frontend.py:1480
+#, python-format
+msgid ""
+"Resuming X2Go session...\n"
+"%s"
+msgstr ""
+"Ã…teransluter X2Go-session...\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1495
+#, python-format
+msgid ""
+"Another client resumed X2Go session\n"
+"%s"
+msgstr ""
+"En annan klient återanslöt X2Go-session\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid "%s - running"
+msgstr "%s - aktiv"
+
+#: ../pyhoca/wxgui/frontend.py:1510
+#, python-format
+msgid ""
+"Found already running session\n"
+"%s"
+msgstr ""
+"Hittade aktiv session\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid "%s - suspend"
+msgstr "%s - vila"
+
+#: ../pyhoca/wxgui/frontend.py:1530
+#, python-format
+msgid ""
+"X2Go Session has been suspended\n"
+"%s"
+msgstr ""
+"X2Go-session har försatts i vila\n"
+"%s"
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid "%s - terminate"
+msgstr "%s - avsluta"
+
+#: ../pyhoca/wxgui/frontend.py:1557
+#, python-format
+msgid ""
+"X2Go Session has terminated\n"
+"%s"
+msgstr ""
+"X2Go-session har avslutats\n"
+"%s"
+
+#: ../pyhoca/wxgui/messages.py:74
+#, python-format
+msgid ""
+"Are you really sure you want to\n"
+"delete the session profile ,,%s''?"
+msgstr ""
+"Är du säker på att du vill\n"
+"radera sessionsprofilen ,,%s''?"
+
+#: ../pyhoca/wxgui/messages.py:75
+#, python-format
+msgid ""
+"PyHoca-GUI is already running for user ,,%s''!\n"
+"\n"
+"Only one instance of PyHoca-GUI can be started per\n"
+"user. The PyHoca-GUI icon can be found in your desktops's\n"
+"notification area/systray."
+msgstr ""
+"PyHoca-GUI körs redan av användare ,,%s''!\n"
+"\n"
+"Bara en instans av PyHoca-GUI kan startas per\n"
+"användare. PyHoca-GUI-ikonen finns i systemfältet."
+
+#: ../pyhoca/wxgui/messages.py:108
+msgid "Yes"
+msgstr "Ja"
+
+#: ../pyhoca/wxgui/messages.py:109
+msgid "No"
+msgstr "Nej"
+
+#: ../pyhoca/wxgui/messages.py:126 ../pyhoca/wxgui/printingprefs.py:142
+msgid "Ok"
+msgstr "OK"
+
+#: ../pyhoca/wxgui/printingprefs.py:66
+#, python-format
+msgid "%s - Printing Preferences"
+msgstr "%s - Utskriftspreferenser"
+
+#: ../pyhoca/wxgui/printingprefs.py:68
+#, python-format
+msgid "%s - Incoming Print Job from  %s (%s)"
+msgstr "%s - Inkommande utskriftsjobb från %s (%s)"
+
+#: ../pyhoca/wxgui/printingprefs.py:73
+msgid "Open this dialog window"
+msgstr "Öppna denna dialog"
+
+#: ../pyhoca/wxgui/printingprefs.py:74
+msgid "Open with PDF viewer"
+msgstr "Öppna med PDF-visare"
+
+#: ../pyhoca/wxgui/printingprefs.py:75
+msgid "Save to a local folder"
+msgstr "Spara till lokal mapp"
+
+#: ../pyhoca/wxgui/printingprefs.py:76
+msgid "Print to a local printer"
+msgstr "Utskrift till lokal skrivare"
+
+#: ../pyhoca/wxgui/printingprefs.py:77
+msgid "Run custom print command"
+msgstr "Kör anpassat utskriftskommando"
+
+#: ../pyhoca/wxgui/printingprefs.py:80
+msgid "<Select a print action here>"
+msgstr "<Välj utskriftshantering här>"
+
+#: ../pyhoca/wxgui/printingprefs.py:114
+msgid "Print action"
+msgstr "Utskriftshantering"
+
+#: ../pyhoca/wxgui/printingprefs.py:116
+msgid "Default action for incoming print jobs"
+msgstr "Standardhantering av inkommande utskriftsjobb"
+
+#. widgets for print action PDFVIEW
+#: ../pyhoca/wxgui/printingprefs.py:120
+msgid "PDF viewer command"
+msgstr "Kommando för PDF-visare"
+
+#. widgets for print action PDFSAVE
+#: ../pyhoca/wxgui/printingprefs.py:127
+msgid "Save PDFs to folder"
+msgstr "Spara PDF:er till mapp"
+
+#. widgets for print action PRINT
+#: ../pyhoca/wxgui/printingprefs.py:134
+msgid "Use this printer"
+msgstr "Använd denna skrivare"
+
+#. widgets for print action PRINTCMD
+#: ../pyhoca/wxgui/printingprefs.py:138
+msgid "Custom print command"
+msgstr "Anpassat utskriftskommando"
+
+#: ../pyhoca/wxgui/printingprefs.py:143
+msgid "Apply"
+msgstr "Verkställ"
+
+#: ../pyhoca/wxgui/printingprefs.py:145
+msgid "Print"
+msgstr "Skriv ut"
+
+#: ../pyhoca/wxgui/printingprefs.py:249
+msgid "- no printers installed -"
+msgstr "- utskrifter ej tillgängliga -"
+
+#: ../pyhoca/wxgui/printingprefs.py:254
+msgid "- print system is not available -"
+msgstr "- utskriftssystem ej tillgängligt -"
+
+#: ../pyhoca/wxgui/printingprefs.py:407
+msgid "Choose PDF viewer application"
+msgstr "Välj PDF-visare"
+
+#: ../pyhoca/wxgui/printingprefs.py:430
+msgid "Choose PDF saving location"
+msgstr "Välj mapp att spara PDF:er i"
+
+#: ../pyhoca/wxgui/sessiontitle.py:79
+#, python-format
+msgid "Session Title - %s"
+msgstr "Sessionstitel - %s"
+
+#: ../pyhoca/wxgui/sessiontitle.py:81
+msgid "Change session title to"
+msgstr "Ändra sessionstitel till"
+
+#: ../pyhoca/wxgui/sessiontitle.py:83
+msgid "OK"
+msgstr "OK"
+
+#~ msgid "us"
+#~ msgstr "se"
+
+#~ msgid "pc105/us"
+#~ msgstr "pc105/se"
+
+#~ msgid "Keyboard layout"
+#~ msgstr "Tangentbordslayout"
+
+#, fuzzy
+#~ msgid "%s - DNS error"
+#~ msgstr "%s - nyckelfel"
+
+#~ msgid "still loading"
+#~ msgstr "laddar fortfarande"
+
+#~ msgid ""
+#~ "On slow connections, the loading of the application menu can take a "
+#~ "couple of seconds."
+#~ msgstr ""
+#~ "Vid långsam uppkoppling så kan laddning av programmeny ta några sekunder."
+
+#~ msgid "Disconnect and E&xit"
+#~ msgstr "Koppla ifrån och avsluta"
+
+#~ msgid "%s - connect error"
+#~ msgstr "%s - anslutning misslyckades"
+
+#~ msgid "new session profile"
+#~ msgstr "ny sessionsprofil"
+
+#, fuzzy
+#~ msgid "Unknown Session Profile"
+#~ msgstr "Ny sessionsprofil"
+
+#, fuzzy
+#~ msgid "Retrieving Application menu..."
+#~ msgstr "Applikation"
diff --git a/pyhoca-gui b/pyhoca-gui
index 2052b38..1c387d4 100755
--- a/pyhoca-gui
+++ b/pyhoca-gui
@@ -1,26 +1,65 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 modules ={}
 
+import sys
+import os
+PROG_NAME = os.path.basename(sys.argv[0]).replace('.exe', '')
+PROG_PID  = os.getpid()
+
+if hasattr(sys, 'frozen') and sys.frozen in ("windows_exe", "console_exe"):
+    class Win32_Logging(object):
+
+        softspace = 0
+        _fname = os.path.join(os.environ['AppData'], PROG_NAME, '%s.log' % PROG_NAME)
+        _file = None
+
+        def __init__(self, filemode='a'):
+            self._filemode = filemode
+            if os.path.isfile(self._fname) and self._filemode == "w+":
+                os.remove(self._fname)
+
+        def write(self, text, **kwargs):
+            if self._file is None:
+                try:
+                    try:
+                        os.mkdir(os.path.dirname(self._fname))
+                    except:
+                        pass
+                    self._file = open(self._fname, self._filemode)
+                except:
+                    pass
+            else:
+                self._file.write(text)
+                self._file.flush()
+
+        def flush(self):
+            if self._file is not None:
+                self._file.flush()
+
+    sys.stdout = Win32_Logging(filemode='w+')
+    sys.stderr = Win32_Logging(filemode='a')
+    del Win32_Logging
+
 import gevent
 import gevent.monkey
 gevent.monkey.patch_all()
@@ -38,41 +77,32 @@ except: pass
 
 import argparse
 import os
-import sys
 import exceptions
 import locale
 import gettext
 import wx
 
-PROG_NAME = os.path.basename(sys.argv[0])
-PROG_PID  = os.getpid()
-
 from x2go import X2GOCLIENT_OS as _X2GOCLIENT_OS
 
 if _X2GOCLIENT_OS in ('Linux', 'Mac'):
     import setproctitle
     setproctitle.setproctitle(PROG_NAME)
 
-app = sys.argv[0]
-if app.startswith('./') or os.path.dirname(PROG_NAME).endswith('trunk'):
-    sys.path.insert(0, os.path.join(os.path.dirname(PROG_NAME)))
+if sys.argv[0].startswith('./') or sys.argv[0].startswith('python'):
+    sys.path.insert(0, os.getcwd())
     os.environ['PYHOCAGUI_DEVELOPMENT'] = '1'
-    print '### PyHoca-GUI running in development mode ###'
-else:
-    if _X2GOCLIENT_OS == 'Windows':
-        sys.stdout = open(os.path.join(os.environ['TEMP'], '%s_stdout.log' % PROG_NAME), 'w')
-        sys.stderr = open(os.path.join(os.environ['TEMP'], '%s_stderr.log' % PROG_NAME), 'w')
+    print '### %s running in development mode ###' % PROG_NAME
 
 from pyhoca.wxgui.basepath import locale_basepath
 
-# Python X2go modules
+# Python X2Go modules
 from x2go import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER
 if _X2GOCLIENT_OS == 'Windows':
     from x2go import X2goClientXConfig as _X2goClientXConfig
 from x2go import X2goLogger as _X2goLogger
 from x2go import x2go_cleanup as _x2go_cleanup
 
-# X2go backends
+# X2Go backends
 from x2go.defaults import BACKENDS_CONTROLSESSION, BACKEND_CONTROLSESSION_DEFAULT
 from x2go.defaults import BACKENDS_TERMINALSESSION, BACKEND_TERMINALSESSION_DEFAULT
 from x2go.defaults import BACKENDS_SERVERSESSIONINFO, BACKEND_SERVERSESSIONINFO_DEFAULT
@@ -96,10 +126,10 @@ __version__ = _version
 # version information
 VERSION=_version
 VERSION_TEXT="""
-%s[%s] - an X2go GUI client written in Python
+%s[%s] - an X2Go GUI client written in Python
 ----------------------------------------------------------------------
 developed by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-sponsored by Dick Kniep <dick.kniep at lindix.nl> (2010-2011)
+sponsored by Dick Kniep <dick.kniep at lindix.nl> (2010-2012)
 
 VERSION: %s
 
@@ -107,7 +137,7 @@ VERSION: %s
 
 def check_running():
     if _X2GOCLIENT_OS  in ('Linux', 'Mac'):
-        p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)
+        p = subprocess.Popen(['ps', '-U', _CURRENT_LOCAL_USER, '-u', _CURRENT_LOCAL_USER], stdout=subprocess.PIPE)
         psA_out = p.communicate()
         return psA_out[0].count(PROG_NAME) > 1
     elif _X2GOCLIENT_OS == 'Windows':
@@ -141,7 +171,6 @@ if _X2GOCLIENT_OS == 'Windows':
     _known_xservers = _x.known_xservers
     _installed_xservers = _x.installed_xservers
 
-
 if _X2GOCLIENT_OS == 'Windows':
     _config_backends = ('FILE', 'WINREG')
 elif _X2GOCLIENT_OS == 'Linux':
@@ -163,17 +192,20 @@ for _printing_backend_default in _config_backends:
 debug_options =  [
                    {'args':['-d','--debug'], 'default': False, 'action': 'store_true', 'help': 'enable application debugging code', },
                    {'args':['--quiet'], 'default': False, 'action': 'store_true', 'help': 'disable any kind of log output', },
-                   {'args':['--libdebug'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code of the underlying Python X2go module', },
+                   {'args':['--libdebug'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code of the underlying Python X2Go module', },
                    {'args':['--libdebug-sftpxfer'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code of Python X2go\'s sFTP server code (very verbose, and even promiscuous)', },
                    {'args':['-V', '--version'], 'default': False, 'action': 'store_true', 'help': 'print version number and exit', },
                  ]
 x2go_gui_options = [
-                   {'args':['-u','--username'], 'default': None, 'metavar': '<username>', 'help': 'username for the session (default: current user)', },
                    {'args':['-P','--session-profile'], 'default': None, 'metavar': '<profile-name>', 'help': 'directly connect to a session profile', },
-                   {'args':['--non-interactive'], 'default': False, 'action': 'store_true', 'help': 'run the session manager in non-interactive mode, this option sets the following options to true: --restricted-trayicon, --start-on-connect, --resume-all-on-connect, --exit-on-disconnect, --disconnect-on-suspend and --disconnect-on-terminate', },
+                   {'args':['--remember-username'], 'default': False, 'action': 'store_true', 'help': 'for profiles with interactive authentication, remember the last-used username', },
+                   {'args':['--non-interactive'], 'default': False, 'action': 'store_true', 'help': 'run the session manager in non-interactive mode, this option sets the following options to true: --restricted-trayicon, --single_session_profile, --start-on-connect, --resume-all-on-connect, --exit-on-disconnect, --disconnect-on-suspend and --disconnect-on-terminate', },
                    {'args':['--auto-connect'], 'default': False, 'action': 'store_true', 'help': 'connect sessions via SSH pubkey authentication if possible', },
                    {'args':['--show-profile-metatypes'], 'default': False, 'action': 'store_true', 'help': 'show descriptive meta information on session profiles in menus (NOTE: this makes menus appear a bit more sluggish, use it mostly for debugging)', },
-                   {'args':['--restricted-trayicon'], 'default': False, 'action': 'store_true', 'help': 'restricts session manager\'s main icon functionality to information window and application exit', },
+                   {'args':['--single-session-profile'], 'default': False, 'action': 'store_true', 'help': 'disable support of handling multiple session profiles', },
+                   {'args':['--tray-icon'], 'default': None, 'metavar': '<your-logo>', 'help': 'define an alternative system tray icon file (PNG files only, leave out file extension here, size 22x22 on Linux, 16x16 on Windows)', },
+                   {'args':['--tray-icon-connecting'], 'default': None, 'metavar': '<your-logo-while-connecting>', 'help': 'define an alternative system tray icon file while connecting to a server (PNG files only, leave out file extension here, size 22x22 on Linux, 16x16 on Windows)', },
+                   {'args':['--restricted-trayicon'], 'default': False, 'action': 'store_true', 'help': 'restricts session manager\'s main icon functionality to information window and application exit; on left-click only a minimal session menu is shown', },
                    {'args':['--start-on-connect'], 'default': False, 'action': 'store_true', 'help': 'start a session directly after authentication if no session is currently running/suspended', },
                    {'args':['--exit-on-disconnect'], 'default': False, 'action': 'store_true', 'help': 'exit the session manager after a server connection has died', },
                    {'args':['--resume-newest-on-connect', '--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': 'on connect auto-resume the newest suspended session', },
@@ -181,12 +213,16 @@ x2go_gui_options = [
                    {'args':['--resume-all-on-connect'], 'default': False, 'action': 'store_true', 'help': 'auto-resume all suspended sessions on connect', },
                    {'args':['--disconnect-on-suspend'], 'default': False, 'action': 'store_true', 'help': 'disconnect a server if a session has been suspended', },
                    {'args':['--disconnect-on-terminate'], 'default': False, 'action': 'store_true', 'help': 'disconnect a server if a session has been terminated', },
+                   {'args':['--splash-image'], 'default': None, 'metavar': '<your-splash-image>', 'help': 'define an alternative splash image that gets shown on application startup (PNG files only, full path or filename as found in <share>/img)', },
+                   {'args':['--about-image'], 'default': None, 'metavar': '<your-about-window-image>', 'help': 'define an alternative image for the application\'s ,,About\'\' window (PNG files only, full path or filename as found in <share>/img)', },
                    {'args':['--disable-splash'], 'default': False, 'action': 'store_true', 'help': 'disable the applications splash screen', },
                    {'args':['--disable-options'], 'default': False, 'action': 'store_true', 'help': 'disable the client options configuration window', },
                    {'args':['--disable-printingprefs'], 'default': False, 'action': 'store_true', 'help': 'disable the client\'s printing preferences window', },
                    {'args':['--disable-profilemanager'], 'default': False, 'action': 'store_true', 'help': 'disable the session profile manager window', },
+                   {'args':['--disable-notifications'], 'default': False, 'action': 'store_true', 'help': 'disable all applet notifications', },
                    {'args':['--display'], 'default': None, 'metavar': '<hostname>:<screennumber>', 'help': 'set the DISPLAY environment variable to <hostname>:<screennumber>', },
                    {'args':['--logon-window-position'], 'default': None, 'metavar': '<x-pos>x<y-pos>', 'help': 'give a custom position for the logon window, use negative values to position relative to right/bottom border', },
+                   {'args':['--published-applications-no-submenus'], 'default': 10, 'metavar': '<number>', 'help': 'the number of published applications that will be rendered without submenus', },
                  ]
 if _X2GOCLIENT_OS == 'Windows':
     x2go_gui_options.append(
@@ -223,13 +259,13 @@ def parseargs():
     global DEBUG
     global print_action_args
 
-    p = argparse.ArgumentParser(description='Graphical X2go client implemented in (wx)Python.',\
+    p = argparse.ArgumentParser(description='Graphical X2Go client implemented in (wx)Python.',\
                                 formatter_class=argparse.RawDescriptionHelpFormatter, \
                                 add_help=True, argument_default=None)
     p_debugopts = p.add_argument_group('Debug options')
-    p_guiopts = p.add_argument_group('PyHoca-GUI options')
+    p_guiopts = p.add_argument_group('%s options' % PROG_NAME)
     p_portableopts = p.add_argument_group('Portable application support')
-    p_backendopts = p.add_argument_group('Python X2go backend options (for experts only)')
+    p_backendopts = p.add_argument_group('Python X2Go backend options (for experts only)')
 
     if _X2GOCLIENT_OS == 'Windows':
         p_contribopts = p.add_argument_group('XServer options (MS Windows only)')
@@ -247,7 +283,7 @@ def parseargs():
 
     a = p.parse_args()
 
-    logger = _X2goLogger(tag='PyHoca-GUI')
+    logger = _X2goLogger(tag=PROG_NAME)
     liblogger = _X2goLogger()
 
     if a.debug:
@@ -266,18 +302,20 @@ def parseargs():
     if a.version:
         version()
 
-    if a.username is None:
-        a.username = _CURRENT_LOCAL_USER
+    if a.single_session_profile and a.session_profile is None:
+        runtime_error('The --single-session-profile option requires naming of a specific session profile!', parser=p)
 
     if a.non_interactive:
         if a.session_profile is None:
             runtime_error('In non-interactive mode you have to use the --session-profile option (or -P) to specify a certain session profile name!', parser=p)
         a.restricted_trayicon = True
+        a.auto_connect = True
         a.start_on_connect = True
         a.resume_all_on_connect = True
         a.exit_on_disconnect = True
         a.disconnect_on_suspend = True
         a.disconnect_on_terminate = True
+        a.single_session_profile = True
 
     if a.non_interactive and (a.resume_newest_on_connect or a.resume_oldest_on_connect):
         # allow override...
@@ -289,7 +327,7 @@ def parseargs():
         a.start_xserver = a.preferred_xserver
 
     if _X2GOCLIENT_OS == 'Windows' and a.start_xserver and a.display:
-        runtime_error('You can tell PyHoca-GUI to handle XServer startup and then specify a DISPLAY environment variable!', parser=p)
+        runtime_error('You can tell %s to handle XServer startup and then specify a DISPLAY environment variable!' % PROG_NAME, parser=p)
 
     if a.display:
         os.environ.update({'DISPLAY': a.display})
@@ -308,26 +346,29 @@ def main():
     args, logger, liblogger = parseargs()
     if _X2GOCLIENT_OS == 'Windows':
         if args.lang:
-            lang = gettext.translation('pyhoca-gui', localedir=locale_basepath, languages=[args.lang], )
+            lang = gettext.translation('PyHoca-GUI', localedir=locale_basepath, languages=[args.lang], )
         else:
-            lang = gettext.translation('pyhoca-gui', localedir=locale_basepath, languages=['en'], )
+            lang = gettext.translation('PyHoca-GUI', localedir=locale_basepath, languages=['en'], )
         lang.install(unicode=True)
     else:
-        gettext.install('pyhoca-gui', localedir=locale_basepath, unicode=True)
+        gettext.install('PyHoca-GUI', localedir=locale_basepath, unicode=True)
 
     if check_running(): 
         sys.stderr.write("\n###############################\n### %s: already running for user %s\n###############################\n" % (PROG_NAME, _CURRENT_LOCAL_USER))
-        m = messages.PyHoca_MessageWindow_Ok(wx.App(), shortmsg='ALREADY_RUNNING', title=u'PyHoca-GUI (%s)...' % VERSION, icon='pyhoca-trayicon')
+        m = messages.PyHoca_MessageWindow_Ok(wx.App(), shortmsg='ALREADY_RUNNING', title=u'%s (%s)...' % (PROG_NAME, VERSION), icon='pyhoca-trayicon')
         m.ShowModal()
         version()
 
     try:
-        thisPyHocaGUI = PyHocaGUI(args, logger, liblogger, version=VERSION)
+        thisPyHocaGUI = PyHocaGUI(args, logger, liblogger, appname=PROG_NAME, version=VERSION)
         thisPyHocaGUI.MainLoop()
     except KeyboardInterrupt:
+        thisPyHocaGUI.WakeUpIdle()
         thisPyHocaGUI.ExitMainLoop()
     except SystemExit:
+        thisPyHocaGUI.WakeUpIdle()
         thisPyHocaGUI.ExitMainLoop()
 
 if __name__ == '__main__':
     main()
+
diff --git a/pyhoca/__init__.py b/pyhoca/__init__.py
index 92271f4..b25f36b 100644
--- a/pyhoca/__init__.py
+++ b/pyhoca/__init__.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/pyhoca/wxgui/__init__.py b/pyhoca/wxgui/__init__.py
index ef20ec4..cfd9f2a 100644
--- a/pyhoca/wxgui/__init__.py
+++ b/pyhoca/wxgui/__init__.py
@@ -1,23 +1,23 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-__VERSION__ = '0.1.0.10'
+__VERSION__ = '0.2.0.0'
 
 from frontend import *
diff --git a/pyhoca/wxgui/about.py b/pyhoca/wxgui/about.py
index 855d1a4..07ea039 100644
--- a/pyhoca/wxgui/about.py
+++ b/pyhoca/wxgui/about.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -43,42 +43,83 @@ import basepath
 
 class PyHocaGUI_AboutFrame(wx.Frame):
     """\
-    STILL UNDOCUMENTED
+    wxWidget displaying an ,,About'' window for this application.
 
     """
-    def __init__(self, _PyHocaGUI, caller=None): 
-
+    def __init__(self, _PyHocaGUI, caller=None, about_image=None, icon_name='pyhoca-winicon.png'):
+        """\
+        About window (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param about_image: full image path for background image of About window
+        @type about_image: C{str}
+        @param icon_name: icon name for window icon
+        @type icon_name: C{str}
+
+        """
         self._PyHocaGUI = _PyHocaGUI
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
 
+        fallback_about_image = 'pyhoca-about-logo.png'
+
+        if about_image is None:
+            about_image = fallback_about_image
+
+        if os.path.basename(about_image) == about_image:
+            about_image = os.path.join(basepath.images_basepath, about_image)
+
+        if not (os.path.isfile(about_image) or os.path.islink(about_image)):
+            about_image = os.path.join(basepath.images_basepath, fallback_about_image)
+
         if x2go.X2GOCLIENT_OS == 'Windows':
-            wx.Frame.__init__(self, None, -1, _('About %s ...') % 'PyHoca-GUI', size=(403,319))
+            wx.Frame.__init__(self, None, -1, _(u'About %s ...') % self._PyHocaGUI.appname, size=(403,319))
         else:
-            wx.Frame.__init__(self, None, -1, _('About %s ...') % 'PyHoca-GUI', size=(400,298))
+            wx.Frame.__init__(self, None, -1, _(u'About %s ...') % self._PyHocaGUI.appname, size=(400,298))
         self.Bind(wx.EVT_CLOSE, self.OnHide)
 
-        panel = wx.Panel(self, -1, pos=(0,3))
-        panel.SetBackgroundColour("White")
+        panel = wx.Panel(self, -1, pos=(0,0), size=(0,0), )
         panel.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
         panel.SetFocus()
 
-        _logo_bitmap = wx.StaticBitmap(self, wx.ID_ANY, wx.Bitmap(os.path.join(basepath.images_basepath, 'pyhoca-about-logo.png')), (0, 0))
+        about_wximage = wx.Image(about_image, wx.BITMAP_TYPE_PNG, )
+        about_wximage.Rescale(400, int(float(400)/about_wximage.Width*about_wximage.Height))
+        about_wxbitmap = about_wximage.ConvertToBitmap()
+
+        _logo_bitmap = wx.StaticBitmap(self, wx.ID_ANY, about_wxbitmap, (0, 0))
         self.bitmap = _logo_bitmap
 
-        if x2go.X2GOCLIENT_OS == 'Windows':
-            _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/16x16/pyhoca-winicon.png')))
-        elif x2go.X2GOCLIENT_OS == 'Mac':
-            _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/128x128/pyhoca-winicon.png')))
-        else:
-            _icon = wx.Bitmap(os.path.join(basepath.icons_basepath, os.path.normpath('PyHoca/22x22/pyhoca-winicon.png')))
-        self.icon = self.SetIcon(wx.IconFromBitmap(_icon))
+        if "wxMSW" in wx.PlatformInfo:
+            icon_size = '16x16'
+        elif "wxGTK" in wx.PlatformInfo:
+            icon_size = '22x22'
+        elif "wxMAC" in wx.PlatformInfo:
+            icon_size = '128x128'
+
+        icon_file = os.path.normpath('%s/PyHoca/%s/%s.png' % (basepath.icons_basepath, icon_size, icon_name))
+        if not (os.path.isfile(str(icon_file)) or os.path.islink(str(icon_file))):
+            icon_file = os.path.normpath('%s/PyHoca/%s/%s.png' % (basepath.icons_basepath, icon_size, 'pyhoca-winicon'))
+
+        img = wx.Image(icon_file)
+        icon = wx.IconFromBitmap(img.ConvertToBitmap())
+        self.icon = self.SetIcon(icon)
 
         self.CenterOnScreen()
 
     def OnHide(self, evt):
+        """\
+        Hide the About window (never close it as it is the main window of the application.
+
+        """
         self.Show(False)
 
     def OnKeyDown(self, evt):
+        """\
+        Handle keyboard requests, so that pressing ESC can hide the About window.
+
+        """
         keycode = evt.GetKeyCode()
         if keycode == wx.WXK_ESCAPE:
             self.Show(False)
diff --git a/pyhoca/wxgui/basepath.py b/pyhoca/wxgui/basepath.py
index 56fd4e2..118c70b 100644
--- a/pyhoca/wxgui/basepath.py
+++ b/pyhoca/wxgui/basepath.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -30,7 +30,7 @@ if os.environ.has_key('PYHOCAGUI_DEVELOPMENT') and os.environ['PYHOCAGUI_DEVELOP
     else:
         _locale_location = os.path.join(_base_location, 'build', 'mo')
         _nxproxy_location = os.path.join(_base_location, '..', 'pyhoca-contrib', 'mswin', 'nxproxy-mswin', 'nxproxy.exe')
-        _pulseaudio_location = os.path.join(_base_location, '..', 'pyhoca-contrib', 'mswin', 'pulseaudio-mswin', 'pulseaudio-0.9.6', 'pulseaudio.exe')
+        _pulseaudio_location = os.path.join(_base_location, '..', 'pyhoca-contrib', 'mswin', 'pulseaudio-mswin', 'pulseaudio-1.1', 'pulseaudio.exe')
 else:
     if _X2GOCLIENT_OS == 'Windows':
         _base_location = os.path.abspath(os.path.curdir)
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index 74f5939..77e9d75 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -35,6 +35,7 @@ try:
 except: pass
 
 import os
+import re
 
 # Python X2go
 import x2go
@@ -50,6 +51,7 @@ import platform
 import types
 import copy
 import threading
+import locale
 
 # PyHoca-GUI modules
 import about
@@ -62,25 +64,96 @@ import notify
 import basepath
 import messages
 import splash
+import sessiontitle
 
 wx.SetDefaultPyEncoding("utf-8")
 wx.InitAllImageHandlers()
 
+def SetExitHandler(func):
+    """\
+    An exit handler function for MS Windows / Unix. Currently unused.
+
+    @param func: function that shall get registered with win32api as exit handler.
+    @type func: C{func}
+
+    """
+    if os.name == 'nt' :
+        try :
+            import win32api
+            result = win32api.SetConsoleCtrlHandler( func, True )
+            if result == 0:
+                print '\nCould not SetConsoleCtrlHandler (error %r)\n' % win32api
+            else :
+                print '\nSetConsoleCtrlHandler SUCCESS\n'
+
+        except ImportError :
+            version = '.'.join( map( str, sys.version_info[ :2] ) )
+            raise Exception( 'PyWin32 (win32api) is not installed.' )
+
+    else :
+        import signal
+        signal.signal( signal.SIGTERM, func )
+        signal.signal( signal.SIGINT, func )
+
+
 class PyHocaGUI(wx.App, x2go.X2goClient):
+    """\
+    The main application instance.
+
+    L{PyHocaGUI} provides a system tray icon (like the GNOME network manager applet) that
+    provides a multi-session / multi-connection X2Go client.
+
+    L{PyHocaGUI} has been developed with the focus of easy customization by SaaS providers.
+    Product branding is a wanted feature. The customizable elements are:
+
+      - application name
+      - system tray icon (idle icon, while-connecting icon)
+      - splash screen
+      - window that shows the ,,About'' dialog
+
+    With L{PyHocaGUI} you can also restrict several functionalities: For example, it is possible
+    to disable the multi-session support completely and use L{PyHocaGUI} only or one
+    session in published applications mode. This turns L{PyHocaGUI} into a pseudo-startmenu that
+    blends in X2Go server-side application into one's desktop shell.
 
+    L{PyHocaGUI}'s main challenge is to combine two different event handlers:
+    wxPython and gevent.
+
+    """
     def __init__(self, args, logger, liblogger, 
                  appname='PyHoca-GUI', 
                  vendorname='Open Source Software Foundation',
                  version=None,):
         """\
-        STILL UNDOCUMENTED
+        Initialize the application (constructor).
+
+        The main control data structure if the C{args} object that gets passed on to L{PyHocaGUI}'s constructor.
+
+        @param args: a class with properties representing the command-line options that are available to L{PyHocaGUI} instances.
+        @type args: C{argparse.ArgumentParser} (or similar)
+        @param logger: you can pass an L{X2goLogger} object to the
+            L{PyHocaCLI} constructor for logging application events
+        @type logger: Python X2Go C{X2goLogger} instance
+        @param liblogger: you can pass an L{X2goLogger} object to the
+            L{PyHocaCLI} constructor for logging application events, this object is forwarded to the C{X2goClient} class in Python X2Go 
+        @type liblogger: Python X2Go C{X2goLogger} instance
+        @param appname: name of the application instance
+        @type appname: C{str}
+        @param vendorname: name of the company distributing this application
+        @type vendorname: C{str}
+        @param version: version of the application
+        @type version: C{str}
 
         """
+        if appname == 'pyhoca-gui':
+            # capitalize the application's name
+            appname = 'PyHoca-GUI'
         self.appname = appname
         self.vendorname = vendorname
         self.version = version
 
         self.args = args
+
         if logger is None:
             self._pyhoca_logger = x2go.X2goLogger(tag=self.appname)
         else:
@@ -92,9 +165,19 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         else:
             self._pyhoca_liblogger = copy.deepcopy(liblogger)
 
+        if x2go.defaults.X2GOCLIENT_OS == 'Windows':
+            if self.args.lang is not None:
+                self.lang = self.args.lang
+            else:
+                self.lang = 'en'
+        else:
+            self.lang = locale.getdefaultlocale()[0]
+        self._pyhoca_logger('%s\'s user interface language is: %s.' % (self.appname, self.lang), loglevel=x2go.loglevel_DEBUG)
+
         _x2goclient_kwargs = {
             'use_listsessions_cache': True,
             'auto_update_listsessions_cache': True,
+            'auto_update_listmounts_cache': True,
             'auto_update_sessionregistry': True,
             'auto_register_sessions': True,
             'logger': self._pyhoca_liblogger,
@@ -140,19 +223,22 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self.logon_window_position_x = self.logon_window_position_y = None
 
         x2go.X2goClient.__init__(self, **_x2goclient_kwargs)
-        # We register one session per available session profile.
-        # These registered sessions will be used to access the profile's 
-        # ,,control'' sessions at first. Later, any session can be used
-        # to access the profile's control session.
-        self.register_all_session_profiles(return_objects=True)
 
-        wx.App.__init__(self)
-        self.Bind(wx.EVT_IDLE, self.OnIdle)
+        wx.App.__init__(self, redirect=False, clearSigInt=False)
+
+        #SetExitHandler(self._exit_handler)
 
+        if not self.args.disable_splash:
+            splash.PyHocaGUI_SplashScreen(splash_image=self.args.splash_image)
+
+        self.Bind(wx.EVT_IDLE, self.OnIdle)
 
     def OnInit(self):
         """\
-        STILL UNDOCUMENTED
+        Gets called once the application (wx.App) gets initialized.
+
+        @return: always C{True}
+        @rtype: C{bool}
 
         """
         wx.BeginBusyCursor()
@@ -161,15 +247,18 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.SetVendorName(self.vendorname)
         self.startGUI()
 
-        if not self.args.disable_splash:
-            splash.PyHocaGUI_SplashScreen()
-
-        wx.EndBusyCursor()
+        try: wx.EndBusyCursor()
+        except: pass
         return True
 
     def OnIdle(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Integration of gevent/libevent and wxPython.
+
+        Whenever wxPython seems to be idle, inject a gevent.sleep().
+
+        @return: always C{True}
+        @rtype: C{bool}
 
         """
         try:
@@ -187,10 +276,11 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
     def startGUI(self):
         """\
-        STILL UNDOCUMENTED
+        Startup method for L{PyHocaGUI}.
 
         """
         # cmd line options
+        self.auto_connect = self.args.auto_connect
         self.start_on_connect = self.args.start_on_connect
         self.resume_newest_on_connect = self.args.resume_newest_on_connect
         self.resume_oldest_on_connect = self.args.resume_oldest_on_connect
@@ -200,18 +290,23 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.disconnect_on_terminate = self.args.disconnect_on_terminate
         self.show_profile_metatypes = self.args.show_profile_metatypes
         self.restricted_trayicon = self.args.restricted_trayicon
+        self.tray_icon = self.args.tray_icon
+        self.tray_icon_connecting = self.args.tray_icon_connecting
+        self.disable_notifications = self.args.disable_notifications
+        self.remember_username = self.args.remember_username
 
         self._pyhoca_logger('PyHoca GUI is starting up', loglevel=x2go.log.loglevel_INFO, )
         self._pyhoca_logger('registering PyHocaGUI control sessions', loglevel=x2go.log.loglevel_INFO, )
 
-        self.about = about.PyHocaGUI_AboutFrame(self)
+        if self.args.tray_icon:
+            self.about = about.PyHocaGUI_AboutFrame(self, about_image=self.args.about_image, icon_name=self.args.tray_icon)
+        else:
+            self.about = about.PyHocaGUI_AboutFrame(self, about_image=self.args.about_image)
         self.about.Show(False)
 
         self.taskbar = taskbar.PyHocaGUI_TaskBarIcon(self.about)
         self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, lambda _Show: self.about.Show(True))
-
-        if not self.restricted_trayicon:
-            self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.taskbar.CreateSessionManagerPopupMenu)
+        self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.taskbar.CreateSessionManagerPopupMenu)
 
         if x2go.X2GOCLIENT_OS in ('Linux', 'Mac'):
             self.notifier = notify.libnotify_NotifierPopup(self)
@@ -223,8 +318,11 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self._hide_notifications_map = {}
         self._eventid_profilenames_map = {}
         self._eventid_sessionnames_map = {}
+        self._eventid_applications_map = {}
         self._eventid_shared_folders_map = {}
         self._eventid_unshared_folders_map = {}
+        self._eventid_pubapp_execmap = {}
+        self._temp_launching_pubapp_profiles = []
         self._temp_disabled_profile_names = []
         self._temp_disabled_session_names = {}
 
@@ -240,119 +338,261 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self._pyhoca_logger('the current release of %s does not support client configuration' % self.appname, loglevel=x2go.log.loglevel_WARN)
             self.options_disabled = True
 
-        if self.args.auto_connect:
-            gevent.spawn(self._auto_connect)
-
         if self.args.session_profile:
             for profile_name in self.args.session_profile.split(','):
-                if not self._X2goClient__client_registered_sessions_of_profile_name(profile_name):
-                    continue
-                _dummy_id = wx.NewId()
-                self._eventid_profilenames_map[_dummy_id] = profile_name
-                evt = wx.CommandEvent()
-                evt.SetId(_dummy_id)
                 self.start_on_connect = True
                 self.resume_newest_on_connect = True
+                if not self.args.single_session_profile:
+                    self.auto_connect = True
                 self._pyhoca_logger('opening default session profile %s' % profile_name, loglevel=x2go.log.loglevel_NOTICE)
-                self.OnSessionAuthenticate(evt)
+                self._X2goClient__register_session(profile_name=profile_name, auto_connect=self.auto_connect)
+
+        if self.auto_connect:
+            gevent.spawn(self._auto_connect)
 
     def _auto_connect(self):
+        """\
+        Register all available session profiles on application start.
+
+        The auto-registration of all session profiles will trigger the auto-connect feature
+        implemented in C{X2goClient} of Python X2Go.
 
+        """
         # wait for splash to appear
         if not self.args.disable_splash:
             gevent.sleep(1)
-        for session_uuid in self._X2goClient__client_registered_sessions(return_objects=False):
-            if self._X2goClient__session_can_auto_connect(session_uuid):
-                self._pyhoca_logger('auto-connecting to %s session profile' % self.get_session_profile_name(session_uuid), loglevel=x2go.log.loglevel_NOTICE)
+        if not self.args.session_profile:
+            self._X2goClient__register_all_session_profiles()
 
-                # create a dummy event and call OnAuthenticate
-                _dummy_id = wx.NewId()
-                self._eventid_profilenames_map[_dummy_id] = self.get_session_profile_name(session_uuid)
-                evt = wx.CommandEvent()
-                evt.SetId(_dummy_id)
-                self.OnSessionAuthenticate(evt)
+    def session_auto_connect(self, session_uuid, **kwargs):
+        """\
+        Override C{X2goClient.session_auto_connect()} to always divert authentication to L{OnSessionAuthenticate}.
+
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
+        # override X2goClient method
+        if self.auto_connect and self.get_session(session_uuid).get_session_profile_option('auto_connect'):
+            self.HOOK_profile_auto_connect(self.get_session_profile_name(session_uuid))
+
+    def HOOK_profile_auto_connect(self, profile_name, **kwargs):
+        """\
+        Override C{X2goClient.HOOK_profile_auto_connect()} to always divert authentication to L{OnSessionAuthenticate}.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+
+        """
+        session_uuids = self.client_registered_sessions_of_profile_name(profile_name=profile_name)
+        if session_uuids:
+            session_uuid = session_uuids[0]
+
+            _dummy_id = wx.NewId()
+            self._eventid_profilenames_map[_dummy_id] = profile_name
+            evt = wx.CommandEvent()
+            evt.SetId(_dummy_id)
+
+            self.OnSessionAuthenticate(evt, session_uuid=session_uuid)
+
+    def session_auto_start_or_resume(self, session_uuid, newest=True, oldest=False, all_suspended=False, **kwargs):
+        """\
+        Override C{X2goClient.session_auto_start_or_resume()} to differentiate between the application options
+        C{resume_newest_on_connect}, C{resume_oldest_on_connect} and C{resume_all_on_connect}.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+
+        """
+        if not self.get_session(session_uuid).published_applications:
+            if self.resume_newest_on_connect:
+                self._X2goClient__session_auto_start_or_resume(session_uuid, newest=True, start=self.start_on_connect, **kwargs)
+            elif self.resume_oldest_on_connect:
+                self._X2goClient__session_auto_start_or_resume(session_uuid, newest=False, oldest=True, start=self.start_on_connect, **kwargs)
+            elif self.resume_all_on_connect:
+                self._X2goClient__session_auto_start_or_resume(session_uuid, newest=False, all_suspended=True, start=self.start_on_connect, **kwargs)
+
+    def _exit_handler(self, *args):
+        """\
+        L{PyHocaGUI}'s exit handler method.
+
+        Currently unused.
+
+        """
+        self.WakeUpIdle()
+        self.ExitMainLoop()
 
     # wx.App's OnExit method
     def OnExit(self):
         """\
-        STILL UNDOCUMENTED
+        Cleanly exit the application.
+
+          - suspend all sessions
+          - disconnect all connected session profiles
+          - close all associated windows
 
         """
         # close open password dialogs (or other remaining windows)
         for _win in self._sub_windows:
             _win.Close()
-            _win.Destroy()
-        for session_obj in self._X2goClient__client_running_sessions(return_objects=True):
-            session_obj.suspend()
+        for session_obj in [ _s for _s in self._X2goClient__client_running_sessions(return_objects=True) if _s.is_associated() ]:
+            profile_name = session_obj.get_profile_name()
+            if not self._hide_notifications_map.has_key(profile_name):
+                self._hide_notifications_map[profile_name] = []
+            self._hide_notifications_map[profile_name].append(session_obj.get_session_name())
+            try: session_obj.suspend()
+            except: pass
         x2go.x2go_cleanup()
         self.about.Close()
-        self.about.Destroy()
         self.taskbar.Close()
-        self.Destroy()
 
     # the taskbar's OnExit method...
     def OnTaskbarExit(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to exit the application via the system tray icon in the taskbar.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self._pyhoca_logger('exit application', loglevel=x2go.log.loglevel_INFO, )
-        self.Exit()
-
-    def _start_on_connect(self, evt, session_uuid):
-        if not self._X2goClient__list_sessions(session_uuid):
-            self._eventid_profilenames_map[evt.GetId()] = self._X2goClient__get_session_profile_name(session_uuid)
-            self.OnSessionStart(evt)
-
-    def _resume_newest_on_connect(self, evt, session_uuid):
-        session_infos = self._X2goClient__list_sessions(session_uuid)
-        if session_infos: 
-            newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[-1]
-            self._resume_on_connect(evt, session_uuid, newest_session_name)
-            return True
-        return False
-
-    def _resume_oldest_on_connect(self, evt, session_uuid):
-        session_infos = self._X2goClient__list_sessions(session_uuid)
-        if session_infos:
-            newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[0]
-            self._resume_on_connect(evt, session_uuid, newest_session_name)
-            return True
-        return False
-
-    def _resume_all_on_connect(self, evt, session_uuid):
-        session_infos = self._X2goClient__list_sessions(session_uuid)
-        if session_infos:
-            for session_name in session_infos.keys():
-                self._resume_on_connect(evt, session_uuid, session_name)
-            return True
-        return False
-
-    def _resume_on_connect(self, evt, session_uuid, session_name):
-        self._eventid_sessionnames_map[evt.GetId()] = session_name
-        self._eventid_profilenames_map[evt.GetId()] = self._X2goClient__get_session_profile_name(session_uuid)
-        self.OnSessionResume(evt)
+        if self.args.single_session_profile:
+            if not x2go.defaults.X2GOCLIENT_OS == 'Windows':
+                if self.client_running_sessions_of_profile_name(self.args.session_profile):
+                    self.notifier.send(self.appname, _(u'Suspending sessions and exiting application...'), icon='application-exit', timeout=10000)
+                else:
+                    if self.is_profile_connected(profile_name=self.args.session_profile):
+                        self.notifier.send(self.appname, _(u'Disconnecting %s and exiting application...') % str(self.args.session_profile), icon='application-exit', timeout=10000)
+                    else:
+                        self.notifier.send(self.appname, _(u'Exiting application...'), icon='application-exit', timeout=10000)
+            self._eventid_profilenames_map[evt.GetId()] = self.args.session_profile
+        self.WakeUpIdle()
+        self.ExitMainLoop()
+
+    def _init_pubapp_session(self, session_uuid=None, profile_name=None):
+        """\
+        Initialize a single session in published applications mode for a given profile.
+
+        NOTE: L{PyHocaGUI} by design only supports _one_ published applications session per connected profile.
+
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+
+        """
+        if profile_name is None and session_uuid:
+            profile_name = self._X2goClient__get_session_profile_name(session_uuid)
+
+        if not self._X2goClient__client_connected_sessions_of_profile_name(profile_name):
+            return None
+
+        if session_uuid is None and profile_name:
+            session_uuid = self._X2goClient__client_connected_sessions_of_profile_name(profile_name, return_objects=False)[0]
+
+        connected_session = self._X2goClient__get_session(session_uuid)
+        if connected_session.has_server_feature('X2GO_PUBLISHED_APPLICATIONS') and self.get_profile_config(profile_name)['published']:
+
+            if len(self.client_pubapp_sessions_of_profile_name(profile_name=profile_name)):
+                return False
+
+            if profile_name not in self._temp_launching_pubapp_profiles:
+                self._temp_launching_pubapp_profiles.append(profile_name)
+
+            pubapp_session_started = False
+            pubapp_session_resumed = False
+
+            ### PyHoca-GUI does not support more than one session in published applications mode...
+
+            # suspend any running session that is in published applications mode (unless we are already associated with it)
+            session_list = self._X2goClient__list_sessions(session_uuid=session_uuid, profile_name=profile_name)
+            if session_list:
+                pubapp_sessions_running = [ _sn for _sn in session_list.keys() if session_list[_sn].is_running() and session_list[_sn].is_published_applications_provider() ]
+                for session_name in pubapp_sessions_running:
+
+                    self.suspend_session(session_uuid=connected_session(), session_name=session_name)
+
+                # resume first available session in published applications mode... (from PyHoca-GUI's perspective there should only
+                # be one)
+                if pubapp_sessions_running:
+                    gevent.sleep(1)
+            session_list = self._X2goClient__list_sessions(session_uuid=session_uuid, profile_name=profile_name, refresh_cache=True)
+
+            if session_list:
+                pubapp_sessions_suspended = [ _sn for _sn in session_list.keys() if session_list[_sn].is_suspended() and session_list[_sn].is_published_applications_provider() ]
+
+                for session_name in pubapp_sessions_suspended:
+
+                    if not pubapp_session_resumed:
+                        # resume one single session in published applications mode immediately, if available
+                        pubapp_session = self._X2goClient__register_session(profile_name=profile_name,
+                                                                            published_applications=True,
+                                                                            cmd='PUBLISHED',
+                                                                            session_type='published',
+                                                                            session_name=session_name,
+                                                                            published_applications_no_submenus=self.args.published_applications_no_submenus,
+                                                                            return_object=True
+                                                                           )
+                        pubapp_session_resumed = pubapp_session.resume()
+                    elif session_list[session_name].is_published_applications_provider() and pubapp_session_resumed:
+
+                        # if there are more then one published applications mode sessions (in suspended state), terminate them now...
+
+                        connected_session.terminate(session_name=session_name)
+
+            if not pubapp_session_resumed:
+
+                pubapp_session = self._X2goClient__register_session(profile_name=profile_name,
+                                                                    published_applications=True,
+                                                                    cmd='PUBLISHED',
+                                                                    session_type='published',
+                                                                    published_applications_no_submenus=self.args.published_applications_no_submenus,
+                                                                    return_object=True
+                                                                   )
+                pubapp_session_started = pubapp_session.start()
+
+            if profile_name in self._temp_launching_pubapp_profiles:
+                self._temp_launching_pubapp_profiles.remove(profile_name)
+
+            return pubapp_session_started | pubapp_session_resumed
+
+        elif not connected_session.has_server_feature('X2GO_PUBLISHED_APPLICATIONS') and self.get_profile_config(profile_name)['published']:
+            self.notifier.send(_(u'%s - server warning') % profile_name, _(u'The X2Go Server does not publish an application menu.'), icon='session_warning', timeout=10000)
+
+        return None
 
     def _post_authenticate(self, evt, session_uuid):
+        """\
+        Tasks that have to be done directly after authentication of a session profile.
+
+        @param evt: event
+        @type evt: C{obj}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
 
+        """
         try:
-            _resumed = False
-            _dummy = self.list_sessions(session_uuid, refresh_cache=True)
-            if self.resume_newest_on_connect:
-                _resumed = self._resume_newest_on_connect(evt, session_uuid)
-            elif self.resume_oldest_on_connect:
-                _resumed = self._resume_oldest_on_connect(evt, session_uuid)
-            elif self.resume_all_on_connect:
-                _resumed = self._resume_all_on_connect(evt, session_uuid)
-            if not _resumed and self.start_on_connect:
-                self._start_on_connect(evt, session_uuid)
+
+            profile_name = self.get_session(session_uuid).get_profile_name()
+            self._hide_notifications_map[profile_name] = []
+            gevent.spawn(self._init_pubapp_session, session_uuid)
+
         except x2go.X2goSessionRegistryException:
             # there might have been a disconnect event inbetween...
             pass
 
     def _do_authenticate(self, evt, session_uuid):
+        """\
+        Perform authentication for a given session.
+
+        @param evt: event
+        @type evt: C{obj}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
         connect_failed = False
-        profile_name = self.current_profile_name
+        profile_name = self.get_session(session_uuid).get_profile_name()
         try:
             _can_session_auto_connect = self._X2goClient__session_can_auto_connect(session_uuid)
             _can_sshproxy_auto_connect = self._X2goClient__session_can_sshproxy_auto_connect(session_uuid)
@@ -360,7 +600,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             if _can_session_auto_connect:
                 self._X2goClient__connect_session(session_uuid)
                 if not self._X2goClient__server_valid_x2gouser(session_uuid):
-                    self.notifier.send(_(u'%s - connect failure') % profile_name, _(u'User is not allowed to start X2go sessions!'), icon='session_warning', timeout=10000)
+                    self.notifier.send(_(u'%s - connect failure') % profile_name, _(u'User is not allowed to start X2Go sessions!'), icon='session_warning', timeout=10000)
                     self.OnServerDisconnect(evt)
                     try:
                         self._temp_disabled_profile_names.remove(profile_name)
@@ -368,7 +608,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
                         pass
                 else:
                     self.notifier.send(_(u'%s - connect') % profile_name, _(u'Public SSH key authentication has been successful.'), icon='auth_success', timeout=4000)
-                    _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
+                    _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True, update_sessionregistry=True)
                     self._post_authenticate(evt, session_uuid)
                     try:
                         self._temp_disabled_profile_names.remove(profile_name)
@@ -377,6 +617,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             else:
                 _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self, sshproxy_auth=(not _can_sshproxy_auto_connect) and _session_uses_sshproxy)
                 self._logon_windows[profile_name] = _logon_window
+
         except x2go.AuthenticationException:
             self._pyhoca_logger('public SSH key authentication to server failed, trying next auth-mechanism', loglevel=x2go.log.loglevel_INFO, )
             _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self, )
@@ -386,7 +627,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self, sshproxy_auth=True )
             self._logon_windows[profile_name] = _logon_window
         except x2go.SSHException, e:
-            self.notifier.send(_(u'%s - connect error') % profile_name, u'%s!' % str(e), icon='auth_error', timeout=4000)
+            self.notifier.send(_(u'%s - SSH error') % profile_name, u'%s!' % str(e), icon='auth_error', timeout=4000)
             try:
                 self._temp_disabled_profile_names.remove(profile_name)
             except ValueError:
@@ -406,22 +647,22 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             except ValueError:
                 pass
             connect_failed = True
-        except gevent.dns.DNSError, e:
-            self.notifier.send(_(u'%s - connect error') % profile_name, e.strerror, icon='auth_error', timeout=4000)
-            try:
-                self._temp_disabled_profile_names.remove(profile_name)
-            except ValueError:
-                pass
-            connect_failed = True
+        #except gevent.dns.DNSError, e:
+        #    self.notifier.send(_(u'%s - DNS error') % profile_name, e.strerror, icon='auth_error', timeout=4000)
+        #    try:
+        #        self._temp_disabled_profile_names.remove(profile_name)
+        #    except ValueError:
+        #        pass
+        #    connect_failed = True
         except gevent.socket.error, e:
-            self.notifier.send(_(u'%s - connect error') % profile_name, e.strerror, icon='auth_error', timeout=4000)
+            self.notifier.send(_(u'%s - socket error') % profile_name, e.strerror, icon='auth_error', timeout=4000)
             try:
                 self._temp_disabled_profile_names.remove(profile_name)
             except ValueError:
                 pass
             connect_failed = True
         except EOFError, e:
-            self.notifier.send(_(u'%s - connect error') % profile_name, _(u'Authentication protocol communication incomplete! Try again...'), icon='auth_error', timeout=4000)
+            self.notifier.send(_(u'%s - EOF error') % profile_name, _(u'Authentication protocol communication incomplete! Try again...'), icon='auth_error', timeout=4000)
             try:
                 self._temp_disabled_profile_names.remove(profile_name)
             except ValueError:
@@ -435,7 +676,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
                 pass
             connect_failed = True
         except x2go.X2goRemoteHomeException, e:
-            self._PyHocaGUI.notifier.send(_(u'%s - missing home directory') % self.current_profile_name, _("The remote user's home directory does not exist."), icon='auth_error', timeout=4000)
+            self._PyHocaGUI.notifier.send(_(u'%s - missing home directory') % profile_name, _("The remote user's home directory does not exist."), icon='auth_error', timeout=4000)
             try:
                 self._temp_disabled_profile_names.remove(profile_name)
             except ValueError:
@@ -449,7 +690,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
                 pass
             connect_failed = True
         except:
-            self.notifier.send('%s - connect error' % profile_name, _(u'An unknown error occurred during authentication!'), icon='auth_error', timeout=4000)
+            self.notifier.send('%s - unknown error' % profile_name, _(u'An unknown error occurred during authentication!'), icon='auth_error', timeout=4000)
             try:
                 self._temp_disabled_profile_names.remove(profile_name)
             except ValueError:
@@ -458,56 +699,178 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             if os.environ.has_key('PYHOCAGUI_DEVELOPMENT') and os.environ['PYHOCAGUI_DEVELOPMENT'] == '1': 
                 raise
 
-
         if connect_failed and self.exit_on_disconnect:
             self.WakeUpIdle()
             self.ExitMainLoop()
 
         self.taskbar.SetIconIdle()
 
-    def OnSessionAuthenticate(self, evt):
+    def OnSessionAuthenticate(self, evt, session_uuid=None):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests connecting to a session profile.
+
+        @param evt: event
+        @type evt: C{obj}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        self.taskbar.SetIconConnecting(self.current_profile_name)
-        session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name)
-        self._temp_disabled_profile_names.append(self.current_profile_name)
-        gevent.spawn(self._do_authenticate, evt, session_uuid)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        self.taskbar.SetIconConnecting(profile_name)
+        if session_uuid is None:
+            session_uuid = self._X2goClient__register_session(profile_name=profile_name)
+        if session_uuid:
+            self._temp_disabled_profile_names.append(profile_name)
+            gevent.spawn(self._do_authenticate, evt, session_uuid)
+        elif self.args.session_profile:
+            self.notifier.send(profile_name, _(u'Unknown session profile, configure before using it...'), icon='profile_warning', timeout=10000)
+            if not self.is_session_profile(profile_name):
+                profilemanager.PyHocaGUI_ProfileManager(self, 'ADD_EXPLICITLY', profile_name=profile_name)
 
     def OnSessionStart(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to start a new X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        _query_session = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
-        session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        _query_session = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
+        session_uuid = self._X2goClient__register_session(profile_name=profile_name, published_applications=False)
+        if self._X2goClient__server_is_alive(session_uuid):
+            gevent.spawn(self._X2goClient__start_session, session_uuid)
+            _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
+
+    def OnPubAppSessionStart(self, evt):
+        """\
+        Gets called if the user requests to start a new X2Go session in published applications mode.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        gevent.spawn(self._init_pubapp_session, profile_name=profile_name)
+
+    def OnPubAppRefreshMenu(self, evt):
+        """\
+        Gets called if the user requests a reload of the published applications menu tree from the X2Go server.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        gevent.spawn(self.profile_get_published_applications, profile_name=profile_name, refresh=True, max_no_submenus=self.args.published_applications_no_submenus)
+
+    def OnPubAppExecution(self, evt):
+        """\
+        Gets called for sessions in published applications mode if the user requests the startup of a published application.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        _session_name = self._eventid_sessionnames_map[evt.GetId()]
+        try:
+            _exec = self._eventid_pubapp_execmap[profile_name][evt.GetId()]
+            _s = self.get_session_of_session_name(_session_name, return_object=True)
+            if _s is not None and _s.is_alive():
+                try:
+                    _s._X2goSession__exec_published_application(exec_name=_exec, timeout=40)
+                except x2go.x2go_exceptions.X2goControlSessionException, e:
+                    self.notifier.send(_(u'%s - session warning') % profile_name, _(u'Execution of command ,,%s\'\' failed.') % _exec, icon='session_warning', timeout=10000)
+        except KeyError:
+            pass
+
+    def OnApplicationStart(self, evt):
+        """\
+        Gets called if the user requests the start up of a single application session.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        _application = self._eventid_applications_map[evt.GetId()]
+        _query_session = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
+        session_uuid = self._X2goClient__register_session(profile_name=profile_name, cmd=_application, session_type="application")
         if self._X2goClient__server_is_alive(session_uuid):
             gevent.spawn(self._X2goClient__start_session, session_uuid)
             _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
 
     def _disable_session_name(self, profile_name, session_name):
+        """\
+        Mark a session name for a given session profile as disabled.
+        Disabled sessions are greyed out in the application's menu tree.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
         if profile_name not in self._temp_disabled_session_names.keys():
             self._temp_disabled_session_names[profile_name] = []
         self._temp_disabled_session_names[profile_name].append(session_name)
 
     def _enable_session_name(self, profile_name, session_name):
+        """\
+        Mark a session name for a given session profile as enabled.
+        Disabled sessions are greyed out in the application's menu tree.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
         try:
             self._temp_disabled_session_names[profile_name].remove(session_name)
         except (KeyError, ValueError):
             pass
 
+    def is_session_name_enabled(self, profile_name, session_name):
+        """\
+        Test if the GUI elements for a given session name and profile name are enabled.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
+        return not self.is_session_name_disabled(profile_name, session_name)
+
+    def is_session_name_disabled(self, profile_name, session_name):
+        """\
+        Test if the GUI elements for a given session name and profile name are disabled.
+
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_uuid: session UUID
+        @type session_uuid: C{str}
+
+        """
+        try:
+            return session_name in self._temp_disabled_session_names[profile_name]
+        except KeyError:
+            return False
+
     def OnSessionResume(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to resume an available X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
-        self._disable_session_name(self.current_profile_name, session_name)
+        self._disable_session_name(profile_name, session_name)
         if self._X2goClient__server_is_alive(session_uuid):
             gevent.spawn(self._X2goClient__resume_session, session_name=session_name)
             _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
@@ -515,168 +878,261 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
     def OnSessionSuspend(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to suspend an associated or available X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
-        self._disable_session_name(self.current_profile_name, session_name)
+        self._disable_session_name(profile_name, session_name)
         gevent.spawn(self._X2goClient__suspend_session, session_uuid, session_name=session_name)
         self._eventid_sessionnames_map = {}
-        if self.disconnect_on_suspend:
+        if self.disconnect_on_suspend and self.get_session(session_uuid).has_terminal_session():
             self.OnServerDisconnect(evt)
 
     def OnSessionTerminate(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to terminate an associated or available X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
-        self._disable_session_name(self.current_profile_name, session_name)
+        self._disable_session_name(profile_name, session_name)
         gevent.spawn(self._X2goClient__terminate_session, session_uuid, session_name=session_name)
         self._eventid_sessionnames_map = {}
-        if self.disconnect_on_terminate:
+        if self.disconnect_on_terminate and self.get_session(session_uuid).has_terminal_session():
             self.OnServerDisconnect(evt)
 
     def OnCleanSessions(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to terminate all available X2Go session for the selected session profile.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
-        session_names = self._X2goClient__server_running_sessions(session_uuid) + self._X2goClient__server_suspended_sessions(session_uuid)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)[0]
+        session_list = self._X2goClient__list_sessions(session_uuid)
         if self._X2goClient__server_is_alive(session_uuid):
-            if session_names:
-                _notify_text = _(u'Cleaning X2go sessions...')
-                self._hide_notifications_map[self.current_profile_name] = []
+            if session_list:
+                _notify_text = _(u'Cleaning X2Go sessions...')
+                if not self._hide_notifications_map.has_key(profile_name):
+                    self._hide_notifications_map[profile_name] = []
+                session_names = session_list.keys()
+                session_names = [ _sn for _sn in session_names if not session_list[_sn].is_published_applications_provider() ]
                 for session_name in session_names:
                     _notify_text += '\n%s' % session_name
-                    self._hide_notifications_map[self.current_profile_name].append(session_name)
-                    self._disable_session_name(self.current_profile_name, session_name)
-                self.notifier.send(self.current_profile_name, _notify_text, icon='session_cleanall', timeout=10000)
-            gevent.spawn(self._X2goClient__clean_sessions, session_uuid)
+                    self._hide_notifications_map[profile_name].append(session_name)
+                    self._disable_session_name(profile_name, session_name)
+                self.notifier.send(profile_name, _notify_text, icon='session_cleanall', timeout=10000)
+            gevent.spawn(self._X2goClient__clean_sessions, session_uuid, published_applications=False)
 
     def OnServerDisconnect(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user disconnects from a selected session profile (i.e. X2Go server).
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
-        # disconnect all profile sessions
-        if self._X2goClient__server_is_alive(session_uuid):
-            self._X2goClient__disconnect_profile(self.current_profile_name)
-            self.notifier.send(_(u'%s - disconnect') % self.current_profile_name, _(u'X2go Profile is now disconnected.'), icon='auth_disconnect', timeout=4000)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_uuids = self._X2goClient__client_registered_sessions_of_profile_name(profile_name)
+        if session_uuids:
+
+            # disconnect all sessions of profile
+            if self._X2goClient__server_is_alive(session_uuids[0]) and not self.args.single_session_profile:
+                self._hide_notifications_map[profile_name] = self._X2goClient__client_running_sessions_of_profile_name(profile_name, return_session_names=True)
+
+        gevent.spawn(self._X2goClient__disconnect_profile, profile_name)
+
         if self.exit_on_disconnect:
-            self._pyhoca_logger('Exiting %s because %s got disconnected.' % (self.appname, self.current_profile_name), loglevel=x2go.loglevel_NOTICE)
+            self._pyhoca_logger('Exiting %s because %s got disconnected.' % (self.appname, profile_name), loglevel=x2go.loglevel_NOTICE)
             self.WakeUpIdle()
             self.ExitMainLoop()
+        else:
+            self.notifier.send(_(u'%s - disconnect') % profile_name, _(u'X2Go Profile is now disconnected.'), icon='auth_disconnect', timeout=4000)
+
         try:
-            del self._temp_disabled_session_names[self.current_profile_name]
+            del self._temp_disabled_session_names[profile_name]
         except KeyError:
             pass
 
     def OnProfileAdd(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to add a new session profile.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self._pyhoca_logger('adding new X2go session profile', loglevel=x2go.log.loglevel_INFO, )
+        self._pyhoca_logger('adding new X2Go session profile', loglevel=x2go.log.loglevel_INFO, )
         profilemanager.PyHocaGUI_ProfileManager(self, 'ADD', profile_name=_(u'New Session Profile'))
 
     def OnProfileEdit(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to edit an existing session profile.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        self._pyhoca_logger('editing session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, )
-        profilemanager.PyHocaGUI_ProfileManager(self, 'EDIT', profile_name=self.current_profile_name)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        self._pyhoca_logger('editing session profile %s' % profile_name, loglevel=x2go.log.loglevel_INFO, )
+        if self.args.single_session_profile:
+            _edit_action = "EDIT_EXPLICITLY"
+        else:
+            _edit_action = "EDIT"
+        profilemanager.PyHocaGUI_ProfileManager(self, _edit_action, profile_name=profile_name)
+
+    def OnProfileCopy(self, evt):
+        """\
+        Gets called if the user chooses to add a new session profile by using an existing session profile as template.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        self._pyhoca_logger('using session profile %s as template for new profile' % profile_name, loglevel=x2go.log.loglevel_INFO, )
+        profilemanager.PyHocaGUI_ProfileManager(self, 'COPY', profile_name=profile_name)
 
     def OnProfileEditWhileConnected(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to edit an existing session profile while the session profile is connected.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        self._pyhoca_logger('editing session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, )
-        profilemanager.PyHocaGUI_ProfileManager(self, 'EDIT_CONNECTED', profile_name=self.current_profile_name)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        self._pyhoca_logger('editing session profile %s' % profile_name, loglevel=x2go.log.loglevel_INFO, )
+        profilemanager.PyHocaGUI_ProfileManager(self, 'EDIT_CONNECTED', profile_name=profile_name)
 
     def OnProfileDelete(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to delete an existing session profile.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
 
-        m = messages.PyHoca_MessageWindow_NoYes(self, shortmsg='REALLY_DELETE_PROFILE', title=_(u'Really Delete Session Profile ,,%s\'\'?') % self.current_profile_name, icon='question', profile_name=self.current_profile_name)
+        m = messages.PyHoca_MessageWindow_NoYes(self, shortmsg='REALLY_DELETE_PROFILE', title=_(u'Really Delete Session Profile ,,%s\'\'?') % profile_name, icon='question', profile_name=profile_name)
         m.ShowModal()
         if m.Yes():
-            self._pyhoca_logger('deleting session profile %s' % self.current_profile_name, loglevel=x2go.log.loglevel_INFO, )
+            self._pyhoca_logger('deleting session profile %s' % profile_name, loglevel=x2go.log.loglevel_INFO, )
             try:
-                self.session_profiles.delete_profile(self.current_profile_name)
-                self.notifier.send(title=_(u'%s - profile deleted') % self.current_profile_name, text=_(u'The session profile has been deleted.'), icon='profile_delete')
+                self.session_profiles.delete_profile(profile_name)
+                self.notifier.send(title=_(u'%s - profile deleted') % profile_name, text=_(u'The session profile has been deleted.'), icon='profile_delete')
             except:
                 pass
 
     def OnShareCustomLocalFolder(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to share a non-configured local folder with the running X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
         self._pyhoca_logger('Evoking file dialog for ,,Share Local Folder\'\' menu item action', loglevel=x2go.log.loglevel_NOTICE, )
         shared_folder = os.path.expanduser('~')
         if not os.path.exists(shared_folder):
             shared_folder = os.getcwd()
         dlg = wx.DirDialog(
-            self.about, message=_(u"%s - share local folder with sessions of this profile") % self.current_profile_name, style=1, defaultPath=shared_folder)
+            self.about, message=_(u"%s - share local folder with sessions of this profile") % profile_name, style=1, defaultPath=shared_folder)
         # Show the dialog and retrieve the user response. If it is the OK response,
         # process the data.
         if dlg.ShowModal() == wx.ID_OK:
             # This returns a Python list of files that were selected.
-            self._X2goClient__share_local_folder_with_session(profile_name=self.current_profile_name, folder_name=str(dlg.GetPath()))
+            self._X2goClient__share_local_folder_with_session(profile_name=profile_name, folder_name=str(dlg.GetPath()))
 
     def OnUnshareAllLocalFolders(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to unshare all shared local folders from the running X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
-        self._X2goClient__unshare_all_local_folders_from_profile(profile_name=self.current_profile_name)
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        self._X2goClient__unshare_all_local_folders_from_profile(profile_name=profile_name)
 
     def OnShareLocalFolder(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to share a previously configured local folder with the running X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
         _share_folder = self._eventid_unshared_folders_map[evt.GetId()]
-        self._X2goClient__share_local_folder(profile_name=self.current_profile_name, local_path=_share_folder)
+        self._X2goClient__share_local_folder(profile_name=profile_name, local_path=_share_folder)
 
     def OnUnshareLocalFolder(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user chooses to unshare a previously shared local folder from the running X2Go session.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
-        self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
         _unshare_folder = self._eventid_shared_folders_map[evt.GetId()]
-        self._X2goClient__unshare_local_folder_from_profile(profile_name=self.current_profile_name, local_path=_unshare_folder)
+        self._X2goClient__unshare_local_folder_from_profile(profile_name=profile_name, local_path=_unshare_folder)
 
     def OnListSessions(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Not implemented, yet.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self._pyhoca_logger('The ,,List Sessions\'\' information window is not implemented yet', loglevel=x2go.log.loglevel_WARN, )
 
+    def OnSessionRename(self, evt):
+        """\
+        Gets called if the user requests to rename the title of a session window.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_name = self._eventid_sessionnames_map[evt.GetId()]
+        sessiontitle.PyHocaGUI_DialogBoxSessionTitle(self, profile_name, session_name)
+
+    def OnSessionFocus(self, evt):
+        """\
+        Gets called if the user requests to raise a session window and bring it to focus.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        profile_name = self._eventid_profilenames_map[evt.GetId()]
+        session_name = self._eventid_sessionnames_map[evt.GetId()]
+        _s = self._X2goClient__get_session_of_session_name(session_name, return_object=True)
+        _s.raise_session_window()
+
     def OnAbout(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to see the application's ,,About'' window.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self._pyhoca_logger('Showing the ,,About...\'\' window', loglevel=x2go.log.loglevel_INFO, )
@@ -684,14 +1140,20 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
     def OnOptions(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Not implemented, yet.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self._pyhoca_logger('The ,,Options\'\' configuration window is not implemented yet', loglevel=x2go.log.loglevel_WARN, )
 
     def OnPrintingPreferences(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Gets called if the user requests to view/modify the application's ,,Printing Preferences'' (window).
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self._pyhoca_logger('opening the printing preferences window', loglevel=x2go.log.loglevel_INFO, )
@@ -699,17 +1161,34 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
     def OnClose(self, evt):
         """\
-        STILL UNDOCUMENTED
+        Introduce the clean closure of the application.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         self.OnExit(evt)
 
     ##
-    ## Python X2go (X2goClient) interactive HOOK's...
+    ## Python X2Go (X2goClient) interactive HOOK's...
     ##
-    def HOOK_check_host_dialog(self, profile_name='UNKNOWN', host='UNKNOWN', port=22, fingerprint='no fingerprint', fingerprint_type='RSA', ):
+    def HOOK_check_host_dialog(self, profile_name='UNKNOWN', host='UNKNOWN', port=22, fingerprint='no fingerprint', fingerprint_type='RSA', **kwargs):
         """\
-        STILL UNDOCUMENTED
+        Provide a GUI-based host key check for unknown remote X2Go(=SSH) servers.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param host: SSH server name to validate
+        @type host: C{str}
+        @param port: SSH server port to validate
+        @type port: C{int}
+        @param fingerprint: the server's fingerprint
+        @type fingerprint: C{str}
+        @param fingerprint_type: finger print type (like RSA, DSA, ...)
+        @type fingerprint_type: C{str}
+
+        @return: if host validity is verified, this hook method should return C{True}
+        @rtype: C{bool}
 
         """
         _message = _(u'The authenticity of host [%s]:%s can\'t be established.\n%s key fingerprint is ,,%s\'\'.\n\nAre you sure you want to continue connecting?') % (host, port, fingerprint_type, fingerprint)
@@ -733,12 +1212,38 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         m.Destroy()
         return retval
 
+    # this hook gets called from Python X2Go classes if a print job is coming in and the print action is ,,DIALOG''...
+    def HOOK_open_print_dialog(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Open an interactive print preferences dialog for an incoming print job.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
+        _print_action = None
+        _pp_dialog = printingprefs.PyHocaGUI_PrintingPreferences(self, mode='print', profile_name=profile_name, session_name=session_name)
+        while _pp_dialog in self._sub_windows:
+            _print_action = _pp_dialog.get_print_action()
+            gevent.sleep(.2)
+
+        return _print_action
+
     ##
-    ## Python X2go (X2goClient) notification HOOK's...
+    ## Python X2Go (X2goClient) notification HOOK's...
     ##
 
-    # this hook gets called from Python X2go classes if profile_name's control session has died...
-    def HOOK_on_control_session_death(self, profile_name):
+    # this hook gets called from Python X2Go classes if profile_name's control session has died...
+    def HOOK_on_control_session_death(self, profile_name='UNKNOWN', **kwargs):
+        """\
+        Notify about connection failures.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+
+        """
         self.notifier.send(_(u'%s - channel error') % profile_name, _(u'Lost connection to server %s unexpectedly! Try to re-authenticate to the server...') % profile_name, icon='session_warning', timeout=10000)
         try:
             del self._temp_disabled_session_names[profile_name]
@@ -748,29 +1253,75 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self.WakeUpIdle()
             self.ExitMainLoop()
 
-    def HOOK_session_startup_failed(self, profile_name='UNKNOWN'):
+
+    def HOOK_session_startup_failed(self, profile_name='UNKNOWN', **kwargs):
+        """\
+        Notify about session startup failures.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+
+        """
         self.notifier.send(_(u'%s - session failure') % profile_name, _('The session startup failed.'), icon='session_error', timeout=10000)
         if self.exit_on_disconnect:
             self.WakeUpIdle()
             self.ExitMainLoop()
 
-    def HOOK_no_such_command(self, cmd, profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_no_such_command(self, cmd, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about commands that are not available on the remote server.
+
+        @param cmd: the command that failed
+        @type cmd: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         if session_name == 'UNKNOWN':
-            self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2go server.') % cmd, icon='session_error', timeout=10000)
+            self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2Go server.') % cmd, icon='session_error', timeout=10000)
         else:
-            self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2go server\n%s.') % (cmd, session_name), icon='session_error', timeout=10000)
+            self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2Go server\n%s.') % (cmd, session_name), icon='session_error', timeout=10000)
         if self.exit_on_disconnect:
             self.WakeUpIdle()
             self.ExitMainLoop()
 
-    def HOOK_rforward_request_denied(self, profile_name='UNKNOWN', session_name='UNKNOWN', server_port=0):
+    def HOOK_rforward_request_denied(self, profile_name='UNKNOWN', session_name='UNKNOWN', server_port=0, **kwargs):
+        """\
+        Notify about reverse port forwarding requests that get denied.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+        @param server_port: remote server port (starting point of reverse forwarding tunnel)
+        @type server_port: C{str}
+
+        """
         self.notifier.send(_(u'%s - session warning') % profile_name, _(u'Reverse TCP port forwarding request for session %s to server port %s has been denied.') % (session_name, server_port), icon='session_warning', timeout=10000)
         if self.exit_on_disconnect:
             self.WakeUpIdle()
             self.ExitMainLoop()
 
-    def HOOK_forwarding_tunnel_setup_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', chain_host='UNKNOWN', chain_port=0):
+    def HOOK_forwarding_tunnel_setup_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', chain_host='UNKNOWN', chain_port=0, **kwargs):
+        """\
+        Notify about port forwarding tunnel setup failures.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+        @param chain_host: hostname of chain host (forwarding tunnel end point)
+        @type chain_host: C{str}
+        @param chain_port: port of chain host (forwarding tunnel end point)
+        @type chain_port: C{str}
+
+        """
         self.notifier.send(_(u'%s - session failure') % profile_name, _(u'Forwarding tunnel request to [%s]:%s for session %s was denied by remote X2go/SSH server. Session startup failed.') % (chain_host, chain_port, session_name), icon='session_error', timeout=10000)
+        if not self._hide_notifications_map.has_key(profile_name):
+            self._hide_notifications_map[profile_name] = []
+        self._hide_notifications_map[profile_name].append(session_name)
         try:
             self._temp_disabled_session_names[profile_name].remove(session_name)
         except KeyError:
@@ -781,65 +1332,221 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self.WakeUpIdle()
             self.ExitMainLoop()
 
-    def HOOK_pulseaudio_not_supported_in_RDPsession(self):
-        self.notifier.send(_(u'%s - audio warning') % self.appname, _(u'The X2go PulseAudio system is not available within Remote Desktop sessions.'), icon='audio_error', timeout=10000)
+    def HOOK_pulseaudio_not_supported_in_RDPsession(self, **kwargs):
+        """\
+        Notify that pulseaudio is not available in RDP sessions.
+
+        """
+        self.notifier.send(_(u'%s - audio warning') % self.appname, _(u'The X2Go PulseAudio system is not available within Remote Desktop sessions.'), icon='audio_error', timeout=10000)
+
+    def HOOK_pulseaudio_server_startup_failed(self, **kwargs):
+        """\
+        Notify about pulseaudio daemon startup failures.
+
+        """
+        self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2Go PulseAudio system could not be started.'), icon='audio_error', timeout=10000)
+
+    def HOOK_pulseaudio_server_died(self, **kwargs):
+        """\
+        Notify about sudden pulseaudio crashes.
 
-    def HOOK_pulseaudio_server_startup_failed(self):
-        self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2go PulseAudio system could not be started.'), icon='audio_error', timeout=10000)
+        """
+        self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2Go PulseAudio system has died unexpectedly.'), icon='audio_error', timeout=10000)
 
-    def HOOK_pulseaudio_server_died(self):
-        self.notifier.send(_(u'%s - audio error') % self.appname, _(u'The X2go PulseAudio system has died unexpectedly.'), icon='audio_error', timeout=10000)
+    def HOOK_on_sound_tunnel_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about failures while setting up the audio tunnel for a session.
 
-    def HOOK_on_sound_tunnel_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN'):
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self.notifier.send(_(u'%s - audio problem') % profile_name, _(u'The audio connection could not be set up for this session.\n%s') % session_name, icon='session_warning', timeout=5000)
 
-    # this hook gets called from Python X2go classes if a print job is coming in and the print action is ,,DIALOG''...
-    def HOOK_open_print_dialog(self, profile_name='UNKNOWN', session_name='UNKNOWN'):
-        _print_action = None
-        _pp_dialog = printingprefs.PyHocaGUI_PrintingPreferences(self, mode='print', profile_name=profile_name, session_name=session_name)
-        while _pp_dialog in self._sub_windows:
-            _print_action = _pp_dialog.get_print_action()
-            gevent.sleep(.2)
+    def HOOK_printing_not_available(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify that client-side printing is not available for a session.
 
-        return _print_action
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
+        self.notifier.send(_(u'%s - client-side printing not available') % profile_name, _(u'The server denies client-side printing from within this session.\n%s') % session_name, icon='session_warning', timeout=5000)
+
+    def HOOK_mimebox_not_available(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify that the MIME box feature is not available for a session.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
+        self.notifier.send(_(u'%s - MIME box not available') % profile_name, _(u'The server does not support the X2Go MIME box.\n%s') % session_name, icon='session_warning', timeout=5000)
+
+    def HOOK_foldersharing_not_available(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify that client-side folder sharing is not available for a session.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
+        self.notifier.send(_(u'%s - client-side folders not sharable') % profile_name, _(u'The server denies client-side folder sharing with this session.\n%s') % session_name, icon='session_warning', timeout=5000)
+
+    def HOOK_sshfs_not_available(self, profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify that SSHFS support is not available on a connected X2Go server.
+
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
+        self.notifier.send(_(u'%s - client resources not sharable') % profile_name, _(u'Client-side folders and printers cannot be shared with this session.\n%s') % session_name, icon='session_warning', timeout=5000)
 
-    def HOOK_printaction_error(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN', err_msg='GENERIC_ERROR', printer=None):
+    def HOOK_printaction_error(self, filename, profile_name='UNKNOWN', session_name='UNKNOWN', err_msg='GENERIC_ERROR', printer=None, **kwargs):
+        """\
+        Notify about a problem while processing a pring job.
+
+        @param filename: file name of the print job that failed
+        @type filename: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+        @param err_msg: if available, an appropriate error message
+        @type err_msg: C{str}
+        @param printer: if available, the printer name the print job failed on
+        @type printer: C{str}
+
+        """
         if printer:
             self.notifier.send(_(u'%s - print error') % profile_name, _(u'%s\n...caused on printer %s by session\n%s')  % (err_msg, printer, session_name), icon='session_error', timeout=5000)
         else:
             self.notifier.send(_(u'%s - print error') % profile_name, _(u'%s\n...caused by session\n%s')  % (err_msg, session_name), icon='session_error', timeout=5000)
 
-    def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has been started by this instance of L{PyHocaGUI}.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
-        self.notifier.send(_(u'%s - start') % profile_name, _(u'New X2go session starting up...\n%s') % session_name, icon='session_start', timeout=5000)
+        self.notifier.send(_(u'%s - start') % profile_name, _(u'New X2Go session starting up...\n%s') % session_name, icon='session_start', timeout=5000)
+
+    def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has been started by another X2Go client application.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
 
-    def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        """
         self._enable_session_name(profile_name, session_name)
-        self.notifier.send(_(u'%s - start') % profile_name, _(u'Another client started X2go session\n%s') % session_name, icon='session_start', timeout=5000)
+        self.notifier.send(_(u'%s - start') % profile_name, _(u'Another client started X2Go session\n%s') % session_name, icon='session_start', timeout=5000)
+
+    def HOOK_on_session_has_resumed_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has been resumed by this instance of L{PyHocaGUI}.
 
-    def HOOK_on_session_has_resumed_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
-        self.notifier.send(_(u'%s - resume') % profile_name, _(u'Resuming X2go session...\n%s') % session_name, icon='session_resume', timeout=5000)
+        self.notifier.send(_(u'%s - resume') % profile_name, _(u'Resuming X2Go session...\n%s') % session_name, icon='session_resume', timeout=5000)
 
-    def HOOK_on_session_has_resumed_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_on_session_has_resumed_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has been resumed by another X2Go client application.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
-        self.notifier.send(_(u'%s - resume') % profile_name, _(u'Another client resumed X2go session\n%s') % session_name, icon='session_resume', timeout=5000)
+        self.notifier.send(_(u'%s - resume') % profile_name, _(u'Another client resumed X2Go session\n%s') % session_name, icon='session_resume', timeout=5000)
 
-    def HOOK_on_found_session_running_after_connect(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_on_found_session_running_after_connect(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about already running sessions that have been directly after the client-server connection had been established..
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
         gevent.spawn_later(5, self.notifier.send, _(u'%s - running') % profile_name, _(u'Found already running session\n%s') %  session_name, icon='session_resume', timeout=5000)
 
-    def HOOK_on_session_has_been_suspended(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_on_session_has_been_suspended(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has been suspended.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
-        self.notifier.send(_(u'%s - suspend') % profile_name, _(u'X2go Session has been suspended\n%s') % session_name, icon='session_suspend', timeout=5000)
-        if self.disconnect_on_suspend:
+        if self._hide_notifications_map.has_key(profile_name) and session_name in self._hide_notifications_map[profile_name]:
+            self._hide_notifications_map[profile_name].remove(session_name)
+            if not self._hide_notifications_map[profile_name]:
+                del self._hide_notifications_map[profile_name]
+        else:
+            self.notifier.send(_(u'%s - suspend') % profile_name, _(u'X2Go Session has been suspended\n%s') % session_name, icon='session_suspend', timeout=5000)
+        if self.disconnect_on_suspend and session_name in self.client_associated_sessions(return_session_names=True):
             _dummy_id = wx.NewId()
             self._eventid_profilenames_map[_dummy_id] = profile_name
             evt = wx.IdleEvent()
             evt.SetId(_dummy_id)
-            self.OnServerDisconnect(dummy_evt)
+            self.OnServerDisconnect(evt)
 
-    def HOOK_on_session_has_terminated(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+    def HOOK_on_session_has_terminated(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN', **kwargs):
+        """\
+        Notify about a session that has (been) terminated.
+
+        @param session_uuid: unique session identifier of the calling session
+        @type session_uuid: C{str}
+        @param profile_name: profile name of session that called this hook method
+        @type profile_name: C{str}
+        @param session_name: X2Go session name
+        @type session_name: C{str}
+
+        """
         self._enable_session_name(profile_name, session_name)
         # avoid notification if X2goClient.clean_sessions has been used to terminate sessions
         if self._hide_notifications_map.has_key(profile_name) and session_name in self._hide_notifications_map[profile_name]:
@@ -847,10 +1554,11 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             if not self._hide_notifications_map[profile_name]:
                 del self._hide_notifications_map[profile_name]
         else:
-            self.notifier.send(_(u'%s - terminate') % profile_name, _(u'X2go Session has terminated\n%s') % session_name, icon='session_terminate', timeout=5000)
-        if self.disconnect_on_terminate:
+            self.notifier.send(_(u'%s - terminate') % profile_name, _(u'X2Go Session has terminated\n%s') % session_name, icon='session_terminate', timeout=5000)
+        if self.disconnect_on_terminate and session_name in self.client_associated_sessions(return_session_names=True):
             _dummy_id = wx.NewId()
             self._eventid_profilenames_map[_dummy_id] = profile_name
             evt = wx.IdleEvent()
             evt.SetId(_dummy_id)
             self.OnServerDisconnect(evt)
+
diff --git a/pyhoca/wxgui/logon.py b/pyhoca/wxgui/logon.py
index 74af118..764f1b7 100644
--- a/pyhoca/wxgui/logon.py
+++ b/pyhoca/wxgui/logon.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -57,11 +57,23 @@ else:
 
 class PyHocaGUI_DialogBoxPassword(wx.Dialog):
     """\
-    STILL UNDOCUMENTED
+    Logon window for L{PyHocaGUI}.
 
     """
     def __init__(self, _PyHocaGUI, profile_name, caller=None, sshproxy_auth=False): 
+        """\
+        Logon window (constructor)
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param profile_name: name of session profile that defines the server we authenticate against
+        @type profile_name: C{str}
+        @param caller: unused
+        @type caller: C{None}
+        @param sshproxy_auth: use (dual) SSH proxy authentication
+        @type sshproxy_auth: C{bool}
 
+        """
         self._PyHocaGUI = _PyHocaGUI
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
         self._pyhoca_logger('password dialog box started', loglevel=x2go.loglevel_INFO, )
@@ -208,7 +220,7 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
             else:
                 move_y = self._PyHocaGUI.logon_window_position_y
 
-        elif (x2go.X2GOCLIENT_OS == 'Linux') and (WINDOW_MANAGER in ('gnome', 'awesome',)):
+        elif (x2go.X2GOCLIENT_OS == 'Linux') and (WINDOW_MANAGER in ('gnome', 'awesome', 'ubuntu', )):
 
             # automatically place logon Window for GNOME, awesome
             move_x = maxX - (self.GetSize().GetWidth() + 20)
@@ -225,7 +237,10 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
 
     def OnLogin(self, evt):
         """\
-        STILL UNDOCUMENTED
+        If the user clicks ,,Ok'' in the logon window.
+
+        @param evt: event
+        @type evt: C{obj}
 
         """
         username = self.userTxt.GetValue()
@@ -275,7 +290,7 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
             if not self._PyHocaGUI._X2goClient__server_valid_x2gouser(session_uuid):
                 self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, 
                                                  title=_(u'%s - connect failure') % self.current_profile_name, 
-                                                 text=_(u'User is not allowed to start X2go sessions!'),
+                                                 text=_(u'User is not allowed to start X2Go sessions!'),
                                                  icon='auth_error')
                 self._PyHocaGUI.OnServerDisconnect(evt)
             else:
@@ -283,10 +298,19 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
                                                  title=_(u'%s - connect') % self.current_profile_name,
                                                  text=_(u'Authentication has been successful.'),
                                                  icon='auth_success')
+                if self._PyHocaGUI.remember_username:
+                    _sp = self._PyHocaGUI.session_profiles
+                    if username:
+                        _sp.update_value(_sp.to_profile_id(self.current_profile_name), 'user', username)
+                    if sshproxy_user:
+                        _sp.update_value(_sp.to_profile_id(self.current_profile_name), 'sshproxyuser', sshproxy_user)
+                    _sp.write_user_config = True
+                    _sp.write()
 
         except x2go.AuthenticationException:
             if self.sshproxy_auth and (not self.sshproxy_started):
-                wx.EndBusyCursor()
+                try: wx.EndBusyCursor()
+                except: pass
                 self.sshproxy_started = True
                 self.headerLbl.Enable(True)
                 self.userLbl.Enable(True)
@@ -313,8 +337,9 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
                 connect_failed = True
 
         except x2go.X2goSSHProxyAuthenticationException:
-            wx.EndBusyCursor()
-            self._PyHocaGUI.notifier.send(title=_(u'%s - ssh proxy') % self.current_profile_name, 
+            try: wx.EndBusyCursor()
+            except: pass
+            self._PyHocaGUI.notifier.send(title=_(u'%s - SSH proxy') % self.current_profile_name, 
                                           text=_(u'Authentication to the SSH proxy server failed!'),
                                           icon='auth_failed')
             if self.sshproxy_auth:
@@ -328,16 +353,16 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
             self.cancelBtn.Enable(True)
             return
 
-        except gevent.dns.DNSError, e:
-            self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, 
-                                             title=_(u'%s - connect error') % self.current_profile_name, 
-                                             text=e.strerror + '!',
-                                             icon='auth_error')
-            connect_failed = True
+        #except gevent.dns.DNSError, e:
+        #    self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, 
+        #                                     title=_(u'%s - DNS error') % self.current_profile_name, 
+        #                                     text=e.strerror + '!',
+        #                                     icon='auth_error')
+        #    connect_failed = True
 
         except gevent.socket.error, e:
             self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, 
-                                             title=_(u'%s - connect error') % self.current_profile_name, 
+                                             title=_(u'%s - socket error') % self.current_profile_name, 
                                              text=e.strerror + '!',
                                              icon='auth_error')
             connect_failed = True
@@ -376,7 +401,7 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
 
         except x2go.SSHException, e:
             self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name,
-                                             title=_(u'%s - connect error') % self.current_profile_name,
+                                             title=_(u'%s - SSH error') % self.current_profile_name,
                                              text='%s!' % str(e),
                                              icon='auth_error',
                                              timeout=4000)
@@ -384,7 +409,7 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
 
         except:
             self._PyHocaGUI.notifier.prepare('AUTH_%s' % self.current_profile_name, 
-                                             title=_(u'%s - connect error') % self.current_profile_name, 
+                                             title=_(u'%s - unknown error') % self.current_profile_name, 
                                              text=_(u'An unknown error occured during authentication!'),
                                              icon='auth_error')
             connect_failed = True
@@ -402,7 +427,7 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
             self._PyHocaGUI.ExitMainLoop()
 
         if self._PyHocaGUI._X2goClient__is_session_connected(session_uuid):
-            gevent.spawn(self._PyHocaGUI._post_authenticate, evt, session_uuid)
+            self._PyHocaGUI._post_authenticate(evt, session_uuid)
         self.sshproxy_started = False
         del self._PyHocaGUI._logon_windows[self.current_profile_name]
 
@@ -410,10 +435,21 @@ class PyHocaGUI_DialogBoxPassword(wx.Dialog):
         self.Destroy()
 
     def OnCancel(self, evt):
+        """
+        If the user clicks ,,Cancel'' in the logon window.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         self.Close()
         self.Destroy()
 
     def Destroy(self):
+        """
+        Tidy up some stuff in the main application instance when the logon window gets destroyed.
+
+        """
         try:
             self._PyHocaGUI._sub_windows.remove(self)
         except ValueError:
diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py
index c817c7d..304e807 100644
--- a/pyhoca/wxgui/menus_taskbar.py
+++ b/pyhoca/wxgui/menus_taskbar.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -28,16 +28,34 @@ try:
     wxversion.select('2.8')
 except: pass
 
+import os.path
 import wx
+import re
+import copy
+import StringIO
+import base64
+
+import x2go.defaults
+import x2go.x2go_exceptions
+
+import basepath
+_icons_location = basepath.icons_basepath
 
 class PyHocaGUI_Menu_TaskbarManageProfile(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Individual profile management submenu: copy, use as template or delete session profile.
 
     """
     def __init__(self, _PyHocaGUI, caller=None, profile_name=None):
         """\
-        STILL UNDOCUMENTED
+        Individual profile management submenu (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param profile_name: session profile name this submenu is for
+        @type profile_name: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -46,28 +64,38 @@ class PyHocaGUI_Menu_TaskbarManageProfile(wx.Menu):
         wx.Menu.__init__(self)
 
         ID_EDITPROFILE = wx.NewId()
+        ID_COPYPROFILE = wx.NewId()
         ID_DELETEPROFILE = wx.NewId()
 
         # preparing profile_name information for the main PyHocaGUI instance
         self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILE] = \
+            self._PyHocaGUI._eventid_profilenames_map[ID_COPYPROFILE] = \
             self._PyHocaGUI._eventid_profilenames_map[ID_DELETEPROFILE] = profile_name
 
         self.Append(text=_(u"Edit Profile"), id=ID_EDITPROFILE)
-        self.AppendSeparator()
-        self.Append(text=_(u"Delete Profile"), id=ID_DELETEPROFILE)
+        if not self._PyHocaGUI.args.single_session_profile:
+            self.AppendSeparator()
+            self.Append(text=_(u"Use as Template for New Profile"), id=ID_COPYPROFILE)
+            self.Append(text=_(u"Delete Profile"), id=ID_DELETEPROFILE)
 
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEdit, id=ID_EDITPROFILE)
+        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileCopy, id=ID_COPYPROFILE)
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileDelete, id=ID_DELETEPROFILE)
 
 
 class PyHocaGUI_Menu_TaskbarOptionsManager(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Right-click menu of the L{PyHocaGUI} systray icon.
 
     """
     def __init__(self, _PyHocaGUI, caller=None):
         """\
-        STILL UNDOCUMENTED
+        Client and profile management menu of L{PyHocaGUI} (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -80,21 +108,33 @@ class PyHocaGUI_Menu_TaskbarOptionsManager(wx.Menu):
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnAbout, id=ID_ABOUT)
 
         if not self._PyHocaGUI.restricted_trayicon:
+
             self.AppendSeparator()
 
-            ID_PROFILEMANAGER = wx.NewId()
-            _maintain_profiles_item = self.AppendMenu(id=ID_PROFILEMANAGER, 
-                                                      text=_(u"Profile Manager"), 
-                                                      submenu=PyHocaGUI_Menu_TaskbarProfileNames(self._PyHocaGUI,
-                                                                                                 caller=self,
-                                                                                                 filter_profiles=[],
-                                                                                                 disabled_profiles=self._PyHocaGUI.client_connected_profiles(return_profile_names=True),
-                                                                                                 submenu=PyHocaGUI_Menu_TaskbarManageProfile,
-                                                                                                 group_menus=False,
-                                                                                                )
-                                                     )
-            if self._PyHocaGUI.profilemanager_disabled:
-                _maintain_profiles_item.Enable(False)
+            if not self._PyHocaGUI.args.single_session_profile:
+
+                ID_PROFILEMANAGER = wx.NewId()
+                _maintain_profiles_item = self.AppendMenu(id=ID_PROFILEMANAGER, 
+                                                          text=_(u"Profile Manager"), 
+                                                          submenu=PyHocaGUI_Menu_TaskbarProfileNames(self._PyHocaGUI,
+                                                                                                     caller=self,
+                                                                                                     filter_profiles=[],
+                                                                                                     disabled_profiles=self._PyHocaGUI.client_connected_profiles(return_profile_names=True),
+                                                                                                     submenu=PyHocaGUI_Menu_TaskbarManageProfile,
+                                                                                                     group_menus=True,
+                                                                                                    )
+                                                         )
+                if self._PyHocaGUI.profilemanager_disabled:
+                    _maintain_profiles_item.Enable(False)
+
+            else:
+                ID_SINGLEPROFILEMANAGER = wx.NewId()
+                _maintain_profile_item = self.AppendMenu(id=ID_SINGLEPROFILEMANAGER,
+                                                         text=_(u'Manage Session Profile'),
+                                                         submenu=PyHocaGUI_Menu_TaskbarManageProfile(self._PyHocaGUI, caller=self, profile_name=self._PyHocaGUI.args.session_profile),
+                                                        )
+                if self._PyHocaGUI.args.session_profile in self._PyHocaGUI.client_connected_profiles(return_profile_names=True):
+                    _maintain_profile_item.Enable(False)
 
             self.AppendSeparator()
 
@@ -110,7 +150,7 @@ class PyHocaGUI_Menu_TaskbarOptionsManager(wx.Menu):
             if self._PyHocaGUI.options_disabled:
                 _options_item.Enable(False)
 
-            self.AppendSeparator()
+        self.AppendSeparator()
 
         ID_EXIT = wx.NewId()
         self.Append(id=ID_EXIT, text=_("E&xit"))
@@ -119,12 +159,25 @@ class PyHocaGUI_Menu_TaskbarOptionsManager(wx.Menu):
 
 class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Session action submenu for individual sessions: start, resume, suspend, terminate etc. sessions.
 
     """
-    def __init__(self, _PyHocaGUI, caller=None, profile_name=None, session_name=None, status=None):
+    def __init__(self, _PyHocaGUI, caller=None, profile_name=None, session_name=None, session_info=None, status=None):
         """\
-        STILL UNDOCUMENTED
+        Session action submenu (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param profile_name: session profile name this submenu is for
+        @type profile_name: C{str}
+        @param session_name: X2Go session name this submenu is for
+        @type session_name: C{str}
+        @param session_info: session info object (C{X2goServerSessionInfo*} from Python X2Go)
+        @type session_info: C{obj}
+        @param status: status of this session (R for running, S for suspended)
+        @type status: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -132,36 +185,61 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu):
 
         wx.Menu.__init__(self)
 
+        ID_RAISESESSION = wx.NewId()
+        ID_RENAMESESSION = wx.NewId()
         ID_TRANSFERSESSION = wx.NewId()
         ID_TRANSFERSESSION_DISABLED = wx.NewId()
         ID_RESUMESESSION = wx.NewId()
         ID_RESUMESESSION_DISABLED = wx.NewId()
+        ID_REFRESHMENU = wx.NewId()
         ID_SUSPENDSESSION = wx.NewId()
         ID_TERMINATESESSION = wx.NewId()
 
         # preparing profile_name information for the main PyHocaGUI instance
-        self._PyHocaGUI._eventid_profilenames_map[ID_TRANSFERSESSION] = \
+        self._PyHocaGUI._eventid_profilenames_map[ID_RAISESESSION] = \
+            self._PyHocaGUI._eventid_profilenames_map[ID_RENAMESESSION] = \
+            self._PyHocaGUI._eventid_profilenames_map[ID_TRANSFERSESSION] = \
             self._PyHocaGUI._eventid_profilenames_map[ID_RESUMESESSION] = \
+            self._PyHocaGUI._eventid_profilenames_map[ID_REFRESHMENU] = \
             self._PyHocaGUI._eventid_profilenames_map[ID_SUSPENDSESSION] = \
             self._PyHocaGUI._eventid_profilenames_map[ID_TERMINATESESSION] = profile_name
 
         # preparing session_name information for the main PyHocaGUI instance
-        self._PyHocaGUI._eventid_sessionnames_map[ID_TRANSFERSESSION] = \
+        self._PyHocaGUI._eventid_sessionnames_map[ID_RAISESESSION] = \
+            self._PyHocaGUI._eventid_sessionnames_map[ID_RENAMESESSION] = \
+            self._PyHocaGUI._eventid_sessionnames_map[ID_TRANSFERSESSION] = \
             self._PyHocaGUI._eventid_sessionnames_map[ID_RESUMESESSION] = \
+            self._PyHocaGUI._eventid_sessionnames_map[ID_REFRESHMENU] = \
             self._PyHocaGUI._eventid_sessionnames_map[ID_SUSPENDSESSION] = \
             self._PyHocaGUI._eventid_sessionnames_map[ID_TERMINATESESSION] = session_name
 
         _s = self._PyHocaGUI.get_session_of_session_name(session_name, return_object=True)
+        _session_status = status
+        if session_info is not None:
+            _session_status = session_info.get_status()
+        elif _s.get_session_info() is not None:
+            _session_status = _s.get_session_info().get_status()
+
+        if _s is not None and \
+           _s.get_session_type() in ('D', 'S') and \
+           _session_status == 'R' and \
+           not _s.is_published_applications_provider():
+
+            _title = self.Append(text=_("Window title") + ": " + _s.get_session_title(), id=wx.NewId())
+            self.AppendSeparator()
 
-        if status == 'S':
+        if _session_status == 'S':
 
             if _s is not None and _s.is_color_depth_ok():
-                self.Append(text=_("Resume Session"), id=ID_RESUMESESSION)
+                _rs = self.Append(text=_("Resume Session"), id=ID_RESUMESESSION)
             else:
                 _rs = self.Append(text=_(u"Resume Session (not possible)"), id=ID_RESUMESESSION_DISABLED)
                 _rs.Enable(False)
 
-        elif status == 'R':
+            if session_info is not None and session_info.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name)['published']:
+                _rs.Enable(False)
+
+        elif _session_status == 'R':
 
             if not session_name in self._PyHocaGUI.client_associated_sessions_of_profile_name(profile_name, return_session_names=True):
 
@@ -171,24 +249,61 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu):
                     _ts = self.Append(text=_(u"Transfer Session (not possible)"), id=ID_TRANSFERSESSION_DISABLED)
                     _ts.Enable(False)
 
-            self.Append(text=_(u"Suspend Session"), id=ID_SUSPENDSESSION)
+            if self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session(): 
+                _ss = self.Append(text=_(u"Suspend Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+            elif self._PyHocaGUI.disconnect_on_suspend and _s.has_terminal_session():
+                _ss = self.Append(text=_(u"Suspend Session (and disconnect)"), id=ID_SUSPENDSESSION)
+            else:
+                _ss = self.Append(text=_(u"Suspend Session"), id=ID_SUSPENDSESSION)
+
+            if _s.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name)['published']:
+                _ss.Enable(False)
 
-        self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION)
+        if self._PyHocaGUI.disconnect_on_terminate and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session():
+            self.Append(text=_(u"Terminate Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+        elif self._PyHocaGUI.disconnect_on_terminate and _s.has_terminal_session():
+            self.Append(text=_(u"Terminate Session (and disconnect)"), id=ID_TERMINATESESSION)
+        else:
+            self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION)
+
+        if _s is not None and _s.is_published_applications_provider() and self._PyHocaGUI.get_profile_config(profile_name)['published']:
+            self.AppendSeparator()
+            _rmi = self.Append(text=_(u"Refresh menu tree"), id=ID_REFRESHMENU)
 
+        if _s is not None and \
+           _s.get_session_type() in ('D', 'S') and \
+           not _s.is_published_applications_provider() and \
+           _session_status == 'R' and \
+           _s in self._PyHocaGUI.client_associated_sessions_of_profile_name(profile_name, return_objects=True):
+
+            self.AppendSeparator()
+            self.Append(text=_("Rename Session Window"), id=ID_RENAMESESSION)
+            self.Append(text=_("Show Session Window"), id=ID_RAISESESSION)
+
+        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionFocus, id=ID_RAISESESSION)
+        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionRename, id=ID_RENAMESESSION)
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionResume, id=ID_RESUMESESSION)
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionResume, id=ID_TRANSFERSESSION)
+        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnPubAppRefreshMenu, id=ID_REFRESHMENU)
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionSuspend, id=ID_SUSPENDSESSION)
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionTerminate, id=ID_TERMINATESESSION)
 
 
 class PyHocaGUI_Menu_TaskbarProfileSharedFolders(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Submenu that manages folder sharing per connected session profile.
 
     """
     def __init__(self, _PyHocaGUI, caller=None, profile_name=None):
         """\
-        STILL UNDOCUMENTED
+        Folder sharing submenu (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param profile_name: session profile name this submenu is for
+        @type profile_name: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -215,11 +330,11 @@ class PyHocaGUI_Menu_TaskbarProfileSharedFolders(wx.Menu):
         _exported_folders_list = _exported_folders.split(';')
 
         _sharable_folders = []
-        _shared_folders = self._PyHocaGUI._X2goClient__profile_get_shared_folders(profile_name=profile_name) or []
+        _shared_folders = self._PyHocaGUI._X2goClient__profile_get_shared_folders(profile_name=profile_name, check_list_mounts=True) or []
 
         for _folder in _exported_folders_list:
             if ':' not in _folder: _folder = '%s:1' % _folder
-            _folder_path = _folder.split(':')[0]
+            _folder_path = ':'.join(_folder.split(':')[:-1])
             _sharable_folders.append(_folder_path)
 
         self._PyHocaGUI._eventid_unshared_folders_map={}
@@ -255,14 +370,140 @@ class PyHocaGUI_Menu_TaskbarProfileSharedFolders(wx.Menu):
         self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnUnshareAllLocalFolders, id=ID_UNSHAREALLLOCALFOLDERS)
 
 
+class PyHocaGUI_Menu_LaunchSingleApplication(wx.Menu):
+    """\
+    Submenu that triggers single application launches.
+
+    """
+    def __init__(self, _PyHocaGUI, caller=None, profile_name=None):
+        """\
+        Single application launching submenu (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param profile_name: session profile name this submenu is for
+        @type profile_name: C{str}
+
+        """
+        self._PyHocaGUI = _PyHocaGUI
+        self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
+
+        wx.Menu.__init__(self)
+
+        current_profile_config = self._PyHocaGUI.get_profile_config(profile_name)
+
+        _available_applications = {
+            'WWWBROWSER': _(u'Internet Browser'),
+            'MAILCLIENT': _(u'Email Client'),
+            'OFFICE': _(u'Office'), 
+            'TERMINAL': _(u'Terminal'), 
+            }
+
+        for application in current_profile_config['applications']:
+
+            _app_id = wx.NewId()
+            self._PyHocaGUI._eventid_profilenames_map[_app_id] = profile_name
+            self._PyHocaGUI._eventid_applications_map[_app_id] = application
+            self.Append(id=_app_id, text=_available_applications[application])
+            self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnApplicationStart, id=_app_id)
+
+
+def _generate_Menu_PublishedApplications(_PyHocaGUI, caller=None, profile_name=None, session_name=None):
+    """\
+    Generate wxPython based menu tree for X2Go published applications.
+
+    @param _PyHocaGUI: main application instance
+    @type _PyHocaGUI: C{obj}
+    @param caller: unused
+    @type caller: C{None}
+    @param profile_name: session profile name this submenu is for
+    @type profile_name: C{str}
+    @param session_name: X2Go session name this submenu is for
+    @type session_name: C{str}
+
+    @return: dictionary based menu tree containing wx.Menu objects for menu rendering.
+    @rtype: C{dict}
+
+    """
+    _lang = _PyHocaGUI.lang
+    _pubapp_session = _PyHocaGUI.get_session_of_session_name(session_name, return_object=True)
+    try:
+        menu_map = _pubapp_session.get_published_applications(lang=_lang, max_no_submenus=_PyHocaGUI.args.published_applications_no_submenus)
+    except AttributeError:
+        menu_map = None
+    if not menu_map or not menu_map.has_key(_lang):
+        menu_map = { _lang: {} }
+
+    if x2go.defaults.X2GOCLIENT_OS == 'Windows':
+        _icon_size = "16x16"
+    else:
+        _icon_size = "22x22"
+
+    _category_name_translator = {
+        'Multimedia': (_(u'Multimedia'), os.path.normpath('%s/PyHoca/%s/applications-multimedia.png' % (_icons_location, _icon_size), ), ),
+        'Development': (_(u'Development'), os.path.normpath('%s/PyHoca/%s/applications-development.png' % (_icons_location, _icon_size), ), ),
+        'Education': (_(u'Education'), os.path.normpath('%s/PyHoca/%s/applications-education.png' % (_icons_location, _icon_size), ), ),
+        'Games': (_(u'Games'), os.path.normpath('%s/PyHoca/%s/applications-games.png' % (_icons_location, _icon_size), ), ),
+        'Graphics': (_(u'Graphics'), os.path.normpath('%s/PyHoca/%s/applications-graphics.png' % (_icons_location, _icon_size), ), ),
+        'Internet': (_(u'Internet'), os.path.normpath('%s/PyHoca/%s/applications-internet.png' % (_icons_location, _icon_size), ), ),
+        'Office': (_(u'Office Applications'), os.path.normpath('%s/PyHoca/%s/applications-office.png' % (_icons_location, _icon_size), ), ),
+        'System': (_(u'System'), os.path.normpath('%s/PyHoca/%s/applications-system.png' % (_icons_location, _icon_size), ), ),
+        'Utilities': (_(u'Utilities'), os.path.normpath('%s/PyHoca/%s/applications-utilities.png' % (_icons_location, _icon_size), ), ),
+        'Other Applications': (_(u'Other Applications'), os.path.normpath('%s/PyHoca/%s/applications-other.png' % (_icons_location, _icon_size), ), ),
+        'TOP': ('TOP', os.path.normpath('%s/PyHoca/%s/x2go-logo-grey.png' % (_icons_location, _icon_size), ), ),
+    }
+
+    _PyHocaGUI._eventid_pubapp_execmap[profile_name] = {}
+
+    _wx_menu_map = {}
+    if menu_map[_lang].keys():
+        for cat in menu_map[_lang].keys():
+
+            _wx_menu_map[_category_name_translator[cat][0]] = (wx.Menu(), _category_name_translator[cat][1])
+
+            for _item in menu_map[_lang][cat]:
+
+                _pubapp_id = wx.NewId()
+                _PyHocaGUI._eventid_profilenames_map[_pubapp_id] = profile_name
+                _PyHocaGUI._eventid_sessionnames_map[_pubapp_id] = session_name
+                _PyHocaGUI._eventid_pubapp_execmap[profile_name][_pubapp_id] = _item['exec']
+
+                _menu_item = wx.MenuItem(_wx_menu_map[_category_name_translator[cat][0]][0], id=_pubapp_id, text=_item['name'], help=_item['comment'])
+                if not _item['icon']:
+                    _menu_item.SetBitmap(wx.Bitmap(os.path.normpath('%s/PyHoca/%s/x2go-logo-grey.png' % (_icons_location, _icon_size))))
+                else:
+                    _menu_entry_icon_decoded = base64.b64decode(_item['icon'])
+                    if not re.match('^<\?(xml|XML).*version=.*encoding=.*standalone=.*\?>.*', _menu_entry_icon_decoded.split('\n')[0]):
+                        _icon_image = wx.ImageFromStream(StringIO.StringIO(_menu_entry_icon_decoded))
+                        if x2go.defaults.X2GOCLIENT_OS == 'Windows':
+                            _icon_bitmap = wx.BitmapFromImage(_icon_image.Scale(16,16))
+                        else:
+                            _icon_bitmap = wx.BitmapFromImage(_icon_image.Scale(22,22))
+                        _menu_item.SetBitmap(_icon_bitmap)
+
+                _wx_menu_map[_category_name_translator[cat][0]][0].AppendItem(_menu_item)
+                _PyHocaGUI.Bind(wx.EVT_MENU, _PyHocaGUI.OnPubAppExecution, id=_pubapp_id)
+
+    return _wx_menu_map
+
+
 class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Submenu for a connected session profile.
 
     """
     def __init__(self, _PyHocaGUI, caller=None, profile_name=None):
         """\
-        STILL UNDOCUMENTED
+        Session profile submenu (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param profile_name: session profile name this submenu is for
+        @type profile_name: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -270,83 +511,318 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
 
         wx.Menu.__init__(self)
 
+        ID_CONNECT=wx.NewId()
+        ID_PUBAPPSESSIONSTART=wx.NewId()
         ID_SESSIONSTART=wx.NewId()
+        ID_LAUNCHAPPLICATION = wx.NewId()
         ID_CLEANSESSIONS = wx.NewId()
         ID_EDITPROFILEWHILECONNECTED = wx.NewId()
         ID_SHARELOCALFOLDER = wx.NewId()
         ID_UNSHAREFOLDERS = wx.NewId()
-        ID_DISCONNECT = wx.NewId()
 
-        current_profile_config = self._PyHocaGUI.get_profile_config(profile_name)
+        _foldersharing_disabled = False
 
-        # preparing profile_name information for the main PyHocaGUI instance
-        self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = \
-            self._PyHocaGUI._eventid_profilenames_map[ID_CLEANSESSIONS] = \
-            self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILEWHILECONNECTED] = \
-            self._PyHocaGUI._eventid_profilenames_map[ID_SHARELOCALFOLDER] = \
-            self._PyHocaGUI._eventid_profilenames_map[ID_UNSHAREFOLDERS] = \
-            self._PyHocaGUI._eventid_profilenames_map[ID_DISCONNECT] = profile_name
+        if self._PyHocaGUI.args.single_session_profile and not self._PyHocaGUI.is_session_profile(profile_name):
+            connect = self.Append(id=ID_CONNECT, text=_(u'Connect %s') % profile_name)
+            connect.Enable(False)
+        else:
+            current_profile_config = self._PyHocaGUI.get_profile_config(profile_name)
 
-        self.Append(id=ID_SESSIONSTART, text=_(u"Start &new Session"))
-        self.AppendSeparator()
+            if profile_name in self._PyHocaGUI._temp_disabled_profile_names:
+                _connecting_info = self.Append(wx.NewId(), text=_(u'Currently connecting...'))
+                _connecting_info.Enable(False)
 
-        _query_session_uuid = self._PyHocaGUI.client_connected_sessions_of_profile_name(profile_name, return_objects=False)[0]
-        _session_list = self._PyHocaGUI.list_sessions(_query_session_uuid)
-
-        if _session_list:
-
-            # newest sessions at the top
-            _session_list_names = _session_list.keys()
-            _session_list_names.reverse()
-            for session_name in _session_list_names:
-
-                _s_id = wx.NewId()
-
-                if _session_list[session_name].status == 'R':
-                    state = _(u'Running')
-                elif _session_list[session_name].status == 'S':
-                    state = _(u'Suspended')
-                session_submenu = self.AppendMenu(id=_s_id, text=u'%s: »%s«' % (state, session_name), 
-                                                  submenu=PyHocaGUI_Menu_TaskbarSessionActions(self._PyHocaGUI, caller=self,
-                                                                                               profile_name=profile_name,
-                                                                                               session_name=session_name,
-                                                                                               status=_session_list[session_name].status,
-                                                                                              )
-                                                 )
-                if self._PyHocaGUI._temp_disabled_session_names.has_key(profile_name) and session_name in self._PyHocaGUI._temp_disabled_session_names[profile_name]:
-                    session_submenu.Enable(False)
-
-            if _session_list.keys():
-                self.Append(id=ID_CLEANSESSIONS, text=_(u"&Clean all sessions"))
-                self.AppendSeparator()
-        self.Append(id=ID_EDITPROFILEWHILECONNECTED, text=_(u"Customize &profile"))
-        if current_profile_config['useexports'] and self._PyHocaGUI._X2goClient__profile_is_folder_sharing_available(profile_name=profile_name):
+            elif self._PyHocaGUI.args.single_session_profile and \
+                 not self._PyHocaGUI.is_profile_connected(profile_name=profile_name):
+                    self._PyHocaGUI._eventid_profilenames_map[ID_CONNECT] = profile_name
+                    self.Append(id=ID_CONNECT, text=_(u'Connect %s') % profile_name)
+                    self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionAuthenticate, id=ID_CONNECT)
 
-            _shared_folders = self.AppendMenu(id=ID_SHARELOCALFOLDER, text=_(u"Shared &folders"),
-                                            submenu=PyHocaGUI_Menu_TaskbarProfileSharedFolders(self._PyHocaGUI, caller=self,
-                                                                                        profile_name=profile_name)
-                                           )
-            if not self._PyHocaGUI._X2goClient__client_associated_sessions_of_profile_name(profile_name=profile_name, return_objects=False):
-                _shared_folders.Enable(False)
+            else:
 
-        self.AppendSeparator()
-        self.Append(id=ID_DISCONNECT, text=_(u"&Disconnect from Server"))
+                self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = profile_name
+
+                if current_profile_config['command'] in x2go.defaults.X2GO_DESKTOPSESSIONS:
+                    self.Append(id=ID_SESSIONSTART, text='%s (%s)' % (_(u"Start &new Desktop Session"), current_profile_config['command']))
+                    self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART)
+                elif current_profile_config['command'] == '' and current_profile_config['published']:
+                    _pub_app_start_item = None
+                    if profile_name in self._PyHocaGUI._temp_launching_pubapp_profiles:
+                        _pub_app_start_item = self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieving Application Menu..."))
+                        _pub_app_start_item.Enable(False)
+                    elif not (self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.disconnect_on_terminate):
+                        self._PyHocaGUI._eventid_profilenames_map[ID_PUBAPPSESSIONSTART] = profile_name
+                        _pub_app_start_item = self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieve Application Menu"))
+                        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnPubAppSessionStart, id=ID_PUBAPPSESSIONSTART)
+                else:
+                    self.Append(id=ID_SESSIONSTART, text=_(u"Start &new Session"))
+                    self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART)
+
+                if current_profile_config['command'] == '' and current_profile_config['published']:
+
+                    _pubapp_sessions = [ _pas for _pas in self._PyHocaGUI.client_pubapp_sessions_of_profile_name(profile_name, return_objects=True) if _pas.is_running() ]
+                    if _pubapp_sessions:
+                        _pubapp_session = _pubapp_sessions[0]
+                        if _pub_app_start_item is not None:
+                            _pub_app_start_item.Enable(False)
+                        _foldersharing_disabled = _session_name_disabled = self._PyHocaGUI.is_session_name_disabled(profile_name, _pubapp_session.get_session_name())
+                        _category_map = _generate_Menu_PublishedApplications(self._PyHocaGUI, caller=self, profile_name=profile_name, session_name=_pubapp_session.get_session_name())
+                        _category_names = _category_map.keys()
+                        _category_names.sort()
+                        if (not self._PyHocaGUI.restricted_trayicon and not (self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.disconnect_on_terminate)) or (profile_name in self._PyHocaGUI._temp_launching_pubapp_profiles and _category_names):
+                            self.AppendSeparator()
+                        for cat_name in [ _cn for _cn in _category_names if _cn != 'TOP' ]:
+                            _submenu = self.AppendMenu(id=wx.NewId(), text=cat_name, submenu=_category_map[cat_name][0])
+                            _submenu.SetBitmap(wx.Bitmap(_category_map[cat_name][1]))
+                            if _session_name_disabled:
+                                _submenu.Enable(False)
+                        if 'TOP' in _category_names:
+                            for _menu_item in _category_map['TOP'][0].GetMenuItems():
+                                _item = self.AppendItem(item=_menu_item)
+                                if _session_name_disabled:
+                                    _item.Enable(False)
+                        if _category_names:
+                            self.AppendSeparator()
+
+                        ID_RESUMESESSION = wx.NewId()
+                        ID_REFRESHMENU = wx.NewId()
+                        ID_SUSPENDSESSION = wx.NewId()
+                        ID_TERMINATESESSION = wx.NewId()
+                        self._PyHocaGUI._eventid_profilenames_map[ID_RESUMESESSION] = \
+                            self._PyHocaGUI._eventid_profilenames_map[ID_REFRESHMENU] = \
+                            self._PyHocaGUI._eventid_profilenames_map[ID_SUSPENDSESSION] = \
+                            self._PyHocaGUI._eventid_profilenames_map[ID_TERMINATESESSION] = profile_name
+                        self._PyHocaGUI._eventid_sessionnames_map[ID_RESUMESESSION] = \
+                            self._PyHocaGUI._eventid_sessionnames_map[ID_REFRESHMENU] = \
+                            self._PyHocaGUI._eventid_sessionnames_map[ID_SUSPENDSESSION] = \
+                            self._PyHocaGUI._eventid_sessionnames_map[ID_TERMINATESESSION] = _pubapp_session.get_session_name()
+
+                        if _pubapp_session.is_running():
+                            _refresh_menu_item = self.Append(text=_(u"Refresh menu tree"), id=ID_REFRESHMENU)
+                            self.AppendSeparator()
+                            if self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.exit_on_disconnect and _pubapp_session.has_terminal_session():
+                                _suspend_item = self.Append(text=_(u"Suspend Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+                            elif self._PyHocaGUI.disconnect_on_suspend and _pubapp_session.has_terminal_session():
+                                _suspend_item = self.Append(text=_(u"Suspend Session (and disconnect)"), id=ID_SUSPENDSESSION)
+                            else:
+                                _suspend_item = self.Append(text=_(u"Suspend Session"), id=ID_SUSPENDSESSION)
+                            if _session_name_disabled:
+                                _refresh_menu_item.Enable(False)
+                                _suspend_item.Enable(False)
+                        elif _pubapp_session.is_suspended():
+                            _resume_item = self.Append(text=_(u"Resume Session"), id=ID_RESUMESESSION)
+                            if _session_name_disabled:
+                                _resume_item.Enable(False)
+                        if self._PyHocaGUI.disconnect_on_terminate and self._PyHocaGUI.exit_on_disconnect and _pubapp_session.has_terminal_session():
+                            _terminate_item = self.Append(text=_(u"Terminate Session (and disconnect/exit)"), id=ID_TERMINATESESSION)
+                        elif self._PyHocaGUI.disconnect_on_terminate and _pubapp_session.has_terminal_session():
+                            _terminate_item = self.Append(text=_(u"Terminate Session (and disconnect)"), id=ID_TERMINATESESSION)
+                        else:
+                            _terminate_item = self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION)
+                        if _session_name_disabled:
+                            _terminate_item.Enable(False)
+
+                        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionResume, id=ID_RESUMESESSION)
+                        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnPubAppRefreshMenu, id=ID_REFRESHMENU)
+                        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionSuspend, id=ID_SUSPENDSESSION)
+                        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionTerminate, id=ID_TERMINATESESSION)
+
+                else:
+
+                    # preparing profile_name information for the main PyHocaGUI instance
+                    self._PyHocaGUI._eventid_profilenames_map[ID_LAUNCHAPPLICATION] = \
+                        self._PyHocaGUI._eventid_profilenames_map[ID_CLEANSESSIONS] = profile_name
+
+                    if current_profile_config['applications'] and current_profile_config['command'] in x2go.defaults.X2GO_DESKTOPSESSIONS and not current_profile_config['published']:
+                        self.AppendSeparator()
+                        self.AppendMenu(id=ID_LAUNCHAPPLICATION, text=_(u"Launch Single Application"),
+                                        submenu=PyHocaGUI_Menu_LaunchSingleApplication(self._PyHocaGUI, caller=self, profile_name=profile_name)
+                                       )
+
+                    if current_profile_config['published']:
+
+                        if not self._PyHocaGUI.restricted_trayicon:
+                            self.AppendSeparator()
+
+                        _pubapp_session = None
+                        _pubapp_sessions = [ _pas for _pas in self._PyHocaGUI.client_pubapp_sessions_of_profile_name(profile_name, return_objects=True) if _pas.is_running() ]
+                        if _pubapp_sessions:
+                            _pubapp_session = _pubapp_sessions[0]
+                        if _pubapp_session and _pubapp_session.is_running():
+                            _session_name_disabled = self._PyHocaGUI.is_session_name_disabled(profile_name, _pubapp_session.get_session_name())
+                            _category_map = _generate_Menu_PublishedApplications(self._PyHocaGUI, caller=self, profile_name=profile_name, session_name=_pubapp_session.get_session_name())
+                            _category_names = _category_map.keys()
+                            _category_names.sort()
+                            for cat_name in [ _cn for _cn in _category_names if _cn != 'TOP' ]:
+                                _submenu = self.AppendMenu(id=wx.NewId(), text=cat_name, submenu=_category_map[cat_name][0])
+                                _submenu.SetBitmap(wx.Bitmap(_category_map[cat_name][1]))
+                                if _session_name_disabled:
+                                    _submenu.Enable(False)
+                            if 'TOP' in _category_names:
+                                for _menu_item in _category_map['TOP'][0].GetMenuItems():
+                                    _item = self.AppendItem(item=_menu_item)
+                                    if _session_name_disabled:
+                                        _item.Enable(False)
+
+                            self.AppendSeparator()
+
+                            _marker = ''
+                            _status = None
+                            if _pubapp_session.is_master_session(): _marker = '(*)'
+                            if _pubapp_session.is_running(): _status = 'R'
+                            elif _pubapp_session.is_suspended(): _status = 'S'
+
+                            if _status:
+                                _submenu = self.AppendMenu(id=wx.NewId(), text=_(u'Manage Application Menu')+' %s' % _marker,
+                                                           submenu=PyHocaGUI_Menu_TaskbarSessionActions(self._PyHocaGUI, caller=self,
+                                                                                                        profile_name=profile_name,
+                                                                                                        session_name=_pubapp_session.get_session_name(),
+                                                                                                        status=_status,
+                                                                                                       )
+                                                      )
+                                if _session_name_disabled:
+                                    _submenu.Enable(False)
+
+                        else:
+                            self._PyHocaGUI._eventid_profilenames_map[ID_PUBAPPSESSIONSTART] = profile_name
+                            if profile_name in self._PyHocaGUI._temp_launching_pubapp_profiles:
+                                _ram = self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieving Application Menu..."))
+                                _ram.Enable(False)
+                            else:
+                                self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieve Application Menu"))
+                            self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnPubAppSessionStart, id=ID_PUBAPPSESSIONSTART)
+
+                    _query_session_uuid = self._PyHocaGUI.client_connected_sessions_of_profile_name(profile_name, return_objects=False)[0]
+                    _session_list = self._PyHocaGUI.list_sessions(_query_session_uuid)
+
+                    _session_list_names = []
+                    if _session_list:
+
+                        # newest sessions at the top
+                        if current_profile_config['published']:
+                            _session_list_names = [ _s_name for _s_name in _session_list.keys() if not _session_list[_s_name].is_published_applications_provider() ]
+                        else:
+                            _session_list_names = _session_list.keys()
+                        _session_list_names.reverse()
+
+                    if _session_list_names:
+
+                        self.AppendSeparator()
+
+                        for session_name in _session_list_names:
+
+                            session = self._PyHocaGUI.get_session_of_session_name(session_name, return_object=True)
+
+                            _s_id = wx.NewId()
+
+                            if _session_list[session_name].get_status() == 'R':
+                                state = _(u'Running')
+                            elif _session_list[session_name].get_status() == 'S':
+                                state = _(u'Suspended')
+                            _marker = ''
+                            if session and session.is_master_session():
+                                _marker = '(*)'
+                            if session:
+                                session_submenu = self.AppendMenu(id=_s_id, text=u'%s: »%s« %s' % (state, session_name, _marker),
+                                                                  submenu=PyHocaGUI_Menu_TaskbarSessionActions(self._PyHocaGUI, caller=self,
+                                                                                                               profile_name=profile_name,
+                                                                                                               session_name=session_name,
+                                                                                                               session_info=_session_list[session_name],
+                                                                                                              )
+                                                                 )
+                                if self._PyHocaGUI._temp_disabled_session_names.has_key(profile_name) and session_name in self._PyHocaGUI._temp_disabled_session_names[profile_name]:
+                                    session_submenu.Enable(False)
+
+                        # redefine list of session names to decide if the clean all session menu item is not be shown
+                        _session_list_names = [ _s_name for _s_name in _session_list.keys() if not _session_list[_s_name].is_published_applications_provider() ]
+
+                        if _session_list_names:
+                            self.Append(id=ID_CLEANSESSIONS, text=_(u"&Clean all sessions"))
+                            self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnCleanSessions, id=ID_CLEANSESSIONS)
+
+                if not self._PyHocaGUI.restricted_trayicon:
+
+                    self.AppendSeparator()
+                    self.Append(id=ID_EDITPROFILEWHILECONNECTED, text=_(u"Customize &profile"))
+                    self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEditWhileConnected, id=ID_EDITPROFILEWHILECONNECTED)
+
+                self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILEWHILECONNECTED] = \
+                    self._PyHocaGUI._eventid_profilenames_map[ID_SHARELOCALFOLDER] = \
+                    self._PyHocaGUI._eventid_profilenames_map[ID_UNSHAREFOLDERS] = profile_name
+
+                if current_profile_config['useexports'] and self._PyHocaGUI._X2goClient__profile_is_folder_sharing_available(profile_name=profile_name):
+
+                    if self._PyHocaGUI.restricted_trayicon:
+                        self.AppendSeparator()
+
+                    _shared_folders = self.AppendMenu(id=ID_SHARELOCALFOLDER, text=_(u"Shared &folders"),
+                                                      submenu=PyHocaGUI_Menu_TaskbarProfileSharedFolders(self._PyHocaGUI, caller=self,
+                                                      profile_name=profile_name)
+                                                     )
+                    if not self._PyHocaGUI.get_master_session(profile_name=profile_name) or _foldersharing_disabled:
+                        _shared_folders.Enable(False)
 
-        self._PyHocaGUI.current_profile_name = profile_name
-        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART)
-        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnCleanSessions, id=ID_CLEANSESSIONS)
-        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEditWhileConnected, id=ID_EDITPROFILEWHILECONNECTED)
-        self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnServerDisconnect, id=ID_DISCONNECT)
+
+        if profile_name in self._PyHocaGUI.client_connected_profiles(return_profile_names=True) and not self._PyHocaGUI.exit_on_disconnect:
+            self.AppendSeparator()
+            ID_DISCONNECT = wx.NewId()
+            self._PyHocaGUI._eventid_profilenames_map[ID_DISCONNECT] = profile_name
+            self.Append(id=ID_DISCONNECT, text=_(u"&Disconnect from Server"))
+            self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnServerDisconnect, id=ID_DISCONNECT)
+
+        if self._PyHocaGUI.args.single_session_profile:
+            ID_EXIT = wx.NewId()
+            if self._PyHocaGUI.client_running_sessions_of_profile_name(profile_name=self._PyHocaGUI.args.session_profile) and self._PyHocaGUI.exit_on_disconnect and not self._PyHocaGUI.disconnect_on_suspend:
+                self.AppendSeparator()
+                self.Append(id=ID_EXIT, text=_(u"Suspend Session and E&xit application"))
+                self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnTaskbarExit, id=ID_EXIT)
+            elif self._PyHocaGUI.is_profile_connected(profile_name=self._PyHocaGUI.args.session_profile) and self._PyHocaGUI.exit_on_disconnect and not self._PyHocaGUI.disconnect_on_suspend:
+                self.AppendSeparator()
+                self.Append(id=ID_EXIT, text=_(u"Disconnect and E&xit application"))
+                self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnTaskbarExit, id=ID_EXIT)
+            elif not self._PyHocaGUI.exit_on_disconnect and not (self._PyHocaGUI.disconnect_on_suspend or self._PyHocaGUI.disconnect_on_terminate):
+                self.AppendSeparator()
+                self.Append(id=ID_EXIT, text=_(u"E&xit"))
+                self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnTaskbarExit, id=ID_EXIT)
 
 
 class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Render a (recursive) menu subtree that contains a cascaded menu tree of all session profile names.
+
+    If session profile names contain '/' as a separator character then those session profile names
+    will be rendered in a tree-like fashion.
 
     """
-    def __init__(self, _PyHocaGUI, caller=None, group_name='', sub_profile_items=[], filter_profiles=[], disabled_profiles=[], bind_method=None, submenu=None, group_menus=True):
+    def __init__(self, _PyHocaGUI, caller=None, 
+                 sub_profile_items=[], filter_profiles=[], disabled_profiles=[],
+                 bind_method=None,
+                 submenu=None,
+                 group_menus=True, group_name='', parent_group=''):
         """\
-        STILL UNDOCUMENTED
+        Session profile name (recursive) menu subtree
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
+        @param sub_profile_items: on recursion this argument contains those session profile names
+            that will be rendered for this session profile subtree
+        @type  sub_profile_items: C{list}
+        @param filter_profiles: allow filtering of profile names (hiding certain session profiles)
+        @type filter_profiles: C{list}
+        @param disabled_profiles: session profile names that get greyed out in the menu tree
+        @type disabled_profiles: C{list}
+        @param bind_method: if session profile names are menu items this argument names the Python method that menu items will bind to
+        @type bind_method: C{method}
+        @param submenu: if session profile names are submenus this argument names the wx.Menu class that handles the submenu rendering
+        @type submenu: C{class}
+        @param group_menus: group session profile names in submenus (i.e. switch on recursion mode)
+        @type group_menus: C{bool}
+        @param group_name: on recursion, this argument names the parent menu folder of the current submenu
+        @type group_name: C{str}
+        @param parent_group: on recursion, the parent group of C{group_name}
+        @type parent_group: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -370,6 +846,8 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
         _profile_groups = []
         if group_menus:
 
+            _parent_group = group_name
+
             # grouping of session profile menus
             for profile_name in _profile_names:
                 if len(profile_name.split('/')) >= 2:
@@ -393,9 +871,11 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
                                                                                     sub_profile_items=_sub_profile_items,
                                                                                     filter_profiles=[],
                                                                                     disabled_profiles=disabled_profiles,
+                                                                                    submenu=submenu,
                                                                                     bind_method=bind_method,
                                                                                     group_name=profile_group,
-                                                                                    group_menus=False)
+                                                                                    parent_group=_parent_group,
+                                                                                    group_menus=True)
                                         )
 
         if filter_profiles:
@@ -403,7 +883,10 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
 
         for profile_name in _profile_names:
             if group_name:
-                _real_profile_name = '%s/%s' % (group_name, profile_name)
+                if parent_group:
+                    _real_profile_name = '%s/%s/%s' % (parent_group, group_name, profile_name)
+                else:
+                    _real_profile_name = '%s/%s' % (group_name, profile_name)
                 _show_profile_name = profile_name
             else:
                 _real_profile_name = profile_name
@@ -412,7 +895,7 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
             self._PyHocaGUI._eventid_profilenames_map[_this_id] = _real_profile_name
             _menu_profile_name = self._PyHocaGUI.show_profile_metatypes and '%s (%s)' % (_show_profile_name, self._PyHocaGUI.get_profile_metatype(_real_profile_name)) or _show_profile_name
             if submenu is not None:
-                _sub = self.AppendMenu(text=_menu_profile_name, id=_this_id, submenu=submenu(self._PyHocaGUI, caller=self, profile_name=_show_profile_name))
+                _sub = self.AppendMenu(text=_menu_profile_name, id=_this_id, submenu=submenu(self._PyHocaGUI, caller=self, profile_name=_real_profile_name))
                 if disabled_profiles and _real_profile_name in disabled_profiles:
                     _sub.Enable(False)
             else:
@@ -440,12 +923,17 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
 
 class PyHocaGUI_Menu_TaskbarSessionManager(wx.Menu):
     """\
-    STILL UNDOCUMENTED
+    Right-click menu of the L{PyHocaGUI} systray icon.
 
     """
     def __init__(self, _PyHocaGUI, caller=None):
         """\
-        STILL UNDOCUMENTED
+        Session management menu of L{PyHocaGUI} (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param caller: unused
+        @type caller: C{None}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -476,9 +964,12 @@ class PyHocaGUI_Menu_TaskbarSessionManager(wx.Menu):
                 _this_id = wx.NewId()
 
                 _menu_profile_name = self._PyHocaGUI.show_profile_metatypes and '%s (%s)' % (profile_name, self._PyHocaGUI.get_profile_metatype(profile_name)) or profile_name
-                self.AppendMenu(text=_menu_profile_name, 
-                                id=_this_id, 
-                                submenu=PyHocaGUI_Menu_TaskbarSessionProfile(self._PyHocaGUI, caller=self, profile_name=profile_name))
+                try:
+                    self.AppendMenu(text=_menu_profile_name,
+                                    id=_this_id,
+                                    submenu=PyHocaGUI_Menu_TaskbarSessionProfile(self._PyHocaGUI, caller=self, profile_name=profile_name))
+                except x2go.x2go_exceptions.X2goSessionRegistryException:
+                    pass
 
         if _connected_sessions:
             self.AppendSeparator()
diff --git a/pyhoca/wxgui/messages.py b/pyhoca/wxgui/messages.py
index 9ae8031..95a0a43 100644
--- a/pyhoca/wxgui/messages.py
+++ b/pyhoca/wxgui/messages.py
@@ -4,16 +4,16 @@
 # Copyright (C) 2010 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 #
 # 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
+# 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.
 #
 # 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.
+# 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.
@@ -29,25 +29,46 @@ import gevent
 # PyHoca-GUI modules
 import basepath
 
-# X2go modules
+# X2Go modules
 from x2go.defaults import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER
 
 _icons_location = basepath.icons_basepath
 
 class PyHoca_MessageWindow(wx.Dialog):
+    """\
+    A simple message window for L{PyHocaGUI}.
 
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon=None, buttontype='ok', 
                  profile_name=None,
-                 session_name=None,
-                 username=None,
-                 hostname=None, ):
-
+                 session_name=None):
+        """\
+        L{PyHocaGUI} message window.
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param buttontype: button types can be: C{ok}, C{okcancel}, C{cancelok}, C{yesno}, and C{noyes}
+        @type buttontype: C{str}
+        @param profile_name: session profile name of the profile this message box refers to
+        @type profile_name: C{str}
+        @param session_name: X2Go session name of the session this message box refers to
+        @type session_name: C{str}
+
+        """
         self._PyHocaGUI = _PyHocaGUI
 
-        try:
-            wx.EndBusyCursor()
-        except:
-            pass
+        try: wx.EndBusyCursor()
+        except: pass
 
         self._pyhoca_messages = { 
             'REALLY_DELETE_PROFILE': _(u'Are you really sure you want to\ndelete the session profile ,,%s\'\'?') % profile_name,
@@ -138,59 +159,204 @@ class PyHoca_MessageWindow(wx.Dialog):
             pass
 
     def OnTrue(self, evt):
+        """\
+        Gets called if the user clicks on ,,Yes'' or ,,Ok''.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         self.result = True
         self.Hide()
 
     def OnFalse(self, evt):
+        """\
+        Gets called if the user clicks on ,,No'' or ,,Cancel''.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         self.result = False
         self.Hide()
 
     def Ok(self):
+        """\
+        Evaluate the result what the user chose in the message window.
+
+        @return: C{True}, if ,,Ok'' had been chosen
+        @rtype: C{bool}
+
+        """
         return self.Yes()
 
     def Cancel(self):
+        """\
+        Evaluate the result what the user chose in the message window.
+
+        @return: C{True}, if ,,Cancel'' had been chosen
+        @rtype: C{bool}
+
+        """
         return not self.No()
 
     def Yes(self):
+        """\
+        Evaluate the result what the user chose in the message window.
+
+        @return: C{True}, if ,,Yes'' had been chosen
+        @rtype: C{bool}
+
+        """
         return self.result
 
     def No(self):
+        """\
+        Evaluate the result what the user chose in the message window.
+
+        @return: C{True}, if ,,No'' had been chosen
+        @rtype: C{bool}
+
+        """
         return not self.Yes()
 
     def Hide(self):
+        """\
+        When hiding the message box, remove it from the list of open windows in the main application instance.
+
+        """
         try:
             self._PyHocaGUI._sub_windows.remove(self)
         except AttributeError:
             pass
         self.Show(False)
 
-    def Close(self):
-        wx.Dialog.Close(self)
-
-    def Destroy(self):
-        wx.Dialog.Destroy(self)
-
 
 class PyHoca_MessageWindow_Ok(PyHoca_MessageWindow):
+    """\
+    A simple ,,Ok'' message window for L{PyHocaGUI}.
+
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon='session_warning', **kwargs):
+        """\
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param kwargs: any other optional argument (will be ignored)
+        @type kwargs: C{dict}
+
+        """
         PyHoca_MessageWindow.__init__(self, _PyHocaGUI, parent=parent, title=title, shortmsg=shortmsg, custom_message=custom_message, icon=icon, buttontype='ok', **kwargs)
 
 
 class PyHoca_MessageWindow_OkCancel(PyHoca_MessageWindow):
+    """\
+    A simple ,,Ok+Cancel'' (default: Ok) message window for L{PyHocaGUI}.
+
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon='session_warning', **kwargs):
+        """\
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param kwargs: any other optional argument (will be ignored)
+        @type kwargs: C{dict}
+
+        """
         PyHoca_MessageWindow.__init__(self, _PyHocaGUI, parent=parent, title=title, shortmsg=shortmsg, custom_message=custom_message,  icon=icon, buttontype='okcancel', **kwargs)
 
 
 class PyHoca_MessageWindow_CancelOk(PyHoca_MessageWindow):
+    """\
+    A simple ,,Ok+Cancel'' (default: Cancel) message window for L{PyHocaGUI}.
+
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon='session_warning', **kwargs):
+        """\
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param kwargs: any other optional argument (will be ignored)
+        @type kwargs: C{dict}
+
+        """
         PyHoca_MessageWindow.__init__(self, _PyHocaGUI, parent=parent, title=title, shortmsg=shortmsg, custom_message=custom_message, icon=icon, buttontype='cancelok', **kwargs)
 
 
 class PyHoca_MessageWindow_YesNo(PyHoca_MessageWindow):
+    """\
+    A simple ,,Yes+No'' (default: Yes) message window for L{PyHocaGUI}.
+
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon='session_warning', **kwargs):
+        """\
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param kwargs: any other optional argument (will be ignored)
+        @type kwargs: C{dict}
+
+        """
         PyHoca_MessageWindow.__init__(self, _PyHocaGUI, parent=parent, title=title, shortmsg=shortmsg, custom_message=custom_message, icon=icon, buttontype='yesno', **kwargs)
 
 class PyHoca_MessageWindow_NoYes(PyHoca_MessageWindow):
+    """\
+    A simple ,,Yes+No'' (default: No) message window for L{PyHocaGUI}.
+
+    """
     def __init__(self, _PyHocaGUI, parent=None, title=None, shortmsg=None, custom_message=None, icon='session_warning', **kwargs):
+        """\
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param parent: the parent (calling) object
+        @type parent: C{obj}
+        @param title: window title
+        @type title: C{str}
+        @param shortmsg: a short string that refers to a pre-defined message (hard-coded in this class)
+        @type shortmsg: C{str}
+        @param custom_message: the message to be shown in this message box (alternative to C{shortmsg})
+        @type custom_message: C{str}
+        @param icon: icon name for an icon to be shown left of the text in this message box
+        @type icon: C{str}
+        @param kwargs: any other optional argument (will be ignored)
+        @type kwargs: C{dict}
+
+        """
         PyHoca_MessageWindow.__init__(self, _PyHocaGUI, parent=parent, title=title, shortmsg=shortmsg, custom_message=custom_message, icon=icon, buttontype='noyes', **kwargs)
 
diff --git a/pyhoca/wxgui/notify.py b/pyhoca/wxgui/notify.py
index af6a2d6..476842c 100644
--- a/pyhoca/wxgui/notify.py
+++ b/pyhoca/wxgui/notify.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -35,13 +35,23 @@ class NotSupportedException(exceptions.StandardError): pass
 class PyHocaNotificationException(exceptions.StandardError): pass
 
 class libnotify_NotifierPopup(object):
+    """\
+    L{PyHocaGUI} notification utilizing C{libnotify}, used on Linux/Unix OS.
 
+    """
     title = {}
     text = {}
     icon = {}
     timeout = {}
 
     def __init__(self, _PyHocaGUI):
+        """\
+        Notifier popup (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+
+        """
         self._PyHocaGUI = _PyHocaGUI
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
 
@@ -49,6 +59,24 @@ class libnotify_NotifierPopup(object):
             raise NotSupportedException
 
     def prepare(self, context, title=None, text=None, icon=None, timeout=None):
+        """\
+        Prepare a notification that gets sent to C{libnotify} later (by the L{send()} method).
+
+        Use C{context} as a unique identifier. When sending the notification later, C{context}
+        will unequivocally map to the notification content that shall get sent.
+
+        @param context: a unique identifier for this notification preparation
+        @type context: C{str}
+        @param title: notification title
+        @type title: C{str}
+        @param text: notification text
+        @type text: C{str}
+        @param icon: icon name for an icon that appears with the notification
+        @type icon: C{str}
+        @param timeout: let notification disappear after C{<timeout>} milliseconds
+        @type timeout: C{int}
+
+        """
         if title is not None:
             self.title[context] = title
         if text is not None:
@@ -59,6 +87,23 @@ class libnotify_NotifierPopup(object):
             self.timeout[context] = timeout
 
     def send(self, title=None, text=None, context=None, icon=None, timeout=8000):
+        """\
+        Send notifications directly (or use a prepared notification).
+
+        @param title: notification title
+        @type title: C{str}
+        @param text: notification text
+        @type text: C{str}
+        @param context: an identifier that refers to a prepared notification
+        @type context: C{str}
+        @param icon: icon name for an icon that appears with the notification
+        @type icon: C{str}
+        @param timeout: let notification disappear after C{<timeout>} milliseconds
+        @type timeout: C{int}
+
+        @raise PyHocaNotificationException: if notification failed
+
+        """
         if context is not None:
             try:
                 title = self.title[context]
@@ -83,41 +128,97 @@ class libnotify_NotifierPopup(object):
 
         icon = 'file://%s/PyHoca/32x32/%s.png' % (_icons_location, icon)
 
-        n = pynotify.Notification(title, text, icon)
-        n.set_urgency(pynotify.URGENCY_NORMAL)
-        n.set_timeout(timeout)
-
         self._pyhoca_logger('[%s] %s' % (title.encode(utils.get_encoding()), text.encode(utils.get_encoding())), loglevel=log.loglevel_NOTICE)
-        if not n.show():
-            raise PyHocaNotificationException('could not notify user')
 
+        if not self._PyHocaGUI.disable_notifications:
+            n = pynotify.Notification(title, text, icon)
+            n.set_urgency(pynotify.URGENCY_NORMAL)
+            n.set_timeout(timeout)
+            if not n.show():
+                raise PyHocaNotificationException('could not notify user')
 
     def Close(self):
+        """\
+        Provide a C{Close()} method which does nothing.
+
+        """
         pass
 
     def Destroy(self):
+        """\
+        Provide a C{Destroy()} method which does nothing.
+
+        """
         pass
 
 
 class notificationmessage_NotifierPopup(object):
+    """\
+    L{PyHocaGUI} notification utilizing C{wx.NotificationMessage()}, used on Windows OS.
+
+    Note: C{wx.NotificationMessage()} has only been added to wxPython in version 2.9.x.
 
+    """
     title = {}
     text = {}
     icon = {}
+    timeout = {}
 
     def __init__(self, _about):
+        """\
+        Notifier popup (constructor).
+
+        @param _about: main application window
+        @type _about: C{obj}
+
+        """
         self._PyHocaGUI = _about._PyHocaGUI
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
 
-    def prepare(self, context, title=None, text=None, icon=None):
+    def prepare(self, context, title=None, text=None, icon=None, timeout=None):
+        """\
+        Prepare a notification that gets sent to C{libnotify} later (by the L{send()} method).
+
+        Use C{context} as a unique identifier. When sending the notification later, C{context}
+        will unequivocally map to the notification content that shall get sent.
+
+        @param context: a unique identifier for this notification preparation
+        @type context: C{str}
+        @param title: notification title
+        @type title: C{str}
+        @param text: notification text
+        @type text: C{str}
+        @param icon: icon name for an icon that appears with the notification
+        @type icon: C{str}
+        @param timeout: let notification disappear after C{<timeout>} milliseconds
+        @type timeout: C{int}
+
+        """
         if title is not None:
             self.title[context] = title
         if text is not None:
             self.text[context] = text
         if icon is not None:
             self.icon[context] = icon
+        if timeout is not None:
+            self.timeout[context] = timeout
 
     def send(self, title=None, text=None, context=None, icon=None, timeout=8000):
+        """\
+        Send notifications directly (or use a prepared notification).
+
+        @param title: notification title
+        @type title: C{str}
+        @param text: notification text
+        @type text: C{str}
+        @param context: an identifier that refers to a prepared notification
+        @type context: C{str}
+        @param icon: icon name for an icon that appears with the notification
+        @type icon: C{str}
+        @param timeout: let notification disappear after C{<timeout>} milliseconds
+        @type timeout: C{int}
+
+        """
         if context is not None:
             try:
                 title = self.title[context]
@@ -134,6 +235,14 @@ class notificationmessage_NotifierPopup(object):
                 del self.icon[context]
             except KeyError:
                 pass
+            try:
+                timeout = self.timeout[context]
+                del self.timeout[context]
+            except KeyError:
+                pass
+
+        # libnotify timeouts are given in millisecs, on Windows we use seconds...
+        timeout = timeout / 1000
 
         _icon_map_wx = {
             'audio_error': wx.ICON_ERROR,
@@ -161,13 +270,14 @@ class notificationmessage_NotifierPopup(object):
            icon = wx.ICON_INFORMATION
 
         try:
-            # you will need wxPython >= 2.9 for this
-            _notification_msg = wx.NotificationMessage()
-            _notification_msg.SetTitle(title)
-            _notification_msg.SetMessage(text)
-            _notification_msg.SetParent(self._PyHocaGUI.about)
-            _notification_msg.SetFlags(icon)
-            _notification_msg.Show(timeout=1)
+            if not self._PyHocaGUI.disable_notifications:
+                # you will need wxPython >= 2.9 for this
+                _notification_msg = wx.NotificationMessage()
+                _notification_msg.SetTitle(title)
+                _notification_msg.SetMessage(text)
+                _notification_msg.SetParent(self._PyHocaGUI.about)
+                _notification_msg.SetFlags(icon)
+                _notification_msg.Show(timeout=timeout)
         except:
             # if we are running wxPython 2.8, we ignore missing 
             # wx.NotificationMessage class
@@ -183,7 +293,15 @@ class notificationmessage_NotifierPopup(object):
         except UnicodeDecodeError: self._pyhoca_logger('Unicode error occurred while rendering a log message...', loglevel=log.loglevel_WARN)
 
     def Close(self):
+        """\
+        Provide a C{Close()} method which does nothing.
+
+        """
         pass
 
     def Destroy(self):
+        """\
+        Provide a C{Destroy()} method which does nothing.
+
+        """
         pass
diff --git a/pyhoca/wxgui/printingprefs.py b/pyhoca/wxgui/printingprefs.py
index 25693a9..f18cad7 100644
--- a/pyhoca/wxgui/printingprefs.py
+++ b/pyhoca/wxgui/printingprefs.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -39,12 +39,21 @@ _icons_location = basepath.icons_basepath
 
 class PyHocaGUI_PrintingPreferences(wx.Dialog):
     """\
-    STILL UNDOCUMENTED
+    The print preferences dialog box allowing the configuration and re-configuration
+    of the processing of incoming / client-side print jobs.
 
     """
     def __init__(self, _PyHocaGUI, profile_name=None, session_name=None, mode='edit'):
         """\
-        STILL UNDOCUMENTED
+        Printing preferences dialog box (constructor).
+
+        @param _PyHocaGUI: the master/parent object of the application
+        @type _PyHocaGUI: C{obj}
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_name: the X2Go session name of the Window that we intend to modify the name of
+        @type session_name C{str}
+        @param sesion_name: is this instance launched on an incoming pring job? Or are wie in editor mode.
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -153,7 +162,10 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
 
 
     def __set_properties(self):
+        """\
+        Set field properties (before layouting).
 
+        """
         _textfield_height = self.PdfViewCmdBrowseButton.GetBestSize().GetHeight()-2
         self.PrintActionLabel.SetMinSize((-1, 16))
         self.PrintAction.SetMinSize((-1, _textfield_height+4))
@@ -165,7 +177,10 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         self.CancelButton.SetMinSize((-1, 30))
 
     def __do_layout(self):
+        """\
+        Arrange the frame's widget layout.
 
+        """
         sizer_1 = wx.BoxSizer(wx.VERTICAL)
         sizer_1_1 = wx.GridBagSizer(hgap=2, vgap=5)
         sizer_1_1.Add(self.PrintActionLabel, pos=(0,0), flag=wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.BOTTOM, border=7, )
@@ -213,16 +228,28 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         self.Show(True)
 
     def __update_fields(self):
+        """\
+        Update field from running application.
 
+        """
         print_action_name = self.client_printing.get_print_action(reload=True, reinit=True, return_name=True)
 
         self.PdfViewCmd.SetValue(self.client_printing.get_property('pdfview_cmd'))
         self.PdfSaveToFolder.SetValue(self.client_printing.get_property('save_to_folder'))
         if self._defaultPrinter != '#PRINTSYSTEM_UNAVAILABLE#':
-            try:
-                _printer_name = self._availablePrinters[self.client_printing.get_property('printer')]
-            except KeyError:
-                _printer_name = self._availablePrinters[self._defaultPrinter]
+            if self._availablePrinters:
+                try:
+                    _printer_name = self._availablePrinters[self.client_printing.get_property('printer')]
+                except KeyError:
+                    if self._defaultPrinter != None:
+                        _printer_name = self._availablePrinters[self._defaultPrinter]
+                    else:
+                        _printer_name = self._availablePrinters[self._availablePrinters.keys()[0]]
+            else:
+                _printer_name = _(u'- no printers installed -')
+                self.PrintPrinter.Clear()
+                self.PrintPrinter.Append(_(_printer_name))
+                self.PrintPrinter.Enable(False)
         else:
             _printer_name = _(u'- print system is not available -')
             self.PrintPrinter.Clear()
@@ -266,12 +293,24 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         }
 
     def get_print_action(self):
+        """\
+        Retrieve the current print action.
+
+        """
         return self.client_printing.get_print_action(reinit=True)
 
     def get_print_action_properties(self):
+        """\
+        Retrieve action properties from all users.
+
+        """
         return self._print_action_properties
 
     def _onPrintActionChange(self):
+        """\
+        Helper method for L{OnPrintActionChange}.
+
+        """
         if self._print_action == 'PDFVIEW':
             self.PdfViewSelected()
         elif self._print_action == 'PDFSAVE':
@@ -285,9 +324,20 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         self.__update_from_screen()
 
     def OnPrintActionChange(self, evt):
+        """
+        Gets called whenever a print action change has been requested.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         self._onPrintActionChange()
 
     def _disable_PrintOptions(self):
+        """\
+        Helper method for L{PdfViewSelected}, L{PdfSaveToFolderSelected}, L{PrintPrinterSelected}, and L{PrintCmdSelected}.
+
+        """
         self.PdfViewCmdLabel.Enable(False)
         self.PdfViewCmd.Enable(False)
         self.PdfViewCmdBrowseButton.Enable(False)
@@ -306,29 +356,52 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
                 self.OKButton.Enable(True)
 
     def PdfViewSelected(self):
+        """\
+        Enable/disable widgets for PDFVIEW print action.
+
+        """
         self._disable_PrintOptions()
         self.PdfViewCmdLabel.Enable(True)
         self.PdfViewCmd.Enable(True)
         self.PdfViewCmdBrowseButton.Enable(True)
 
     def PdfSaveToFolderSelected(self):
+        """\
+        Enable/disable widgets for PDFSAVE print action.
+
+        """
         self._disable_PrintOptions()
         self.PdfSaveToFolderLabel.Enable(True)
         self.PdfSaveToFolder.Enable(True)
         self.PdfSaveToFolderBrowseButton.Enable(True)
 
     def PrintPrinterSelected(self):
+        """\
+        Enable/disable widgets for PRINT print action.
+
+        """
         self._disable_PrintOptions()
         if self._defaultPrinter != '#PRINTSYSTEM_UNAVAILABLE#':
             self.PrintPrinterLabel.Enable(True)
             self.PrintPrinter.Enable(True)
 
     def PrintCmdSelected(self):
+        """\
+        Enable/disable widgets for PRINTCMD print action.
+
+        """
         self._disable_PrintOptions()
         self.PrintCmdLabel.Enable(True)
         self.PrintCmd.Enable(True)
 
     def OnPdfViewCmdBrowseButton(self, evt):
+        """\
+        Gets called if the user requests to browse for a PDF view executable.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         wildcard = "All files (*.*)|*"
         dlg = wx.FileDialog(
             self, message=_(u"Choose PDF viewer application"), defaultDir=_LOCAL_HOME,
@@ -341,6 +414,13 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
             self.PdfViewCmd.SetValue(_pdfview_cmd)
 
     def OnPdfSaveToFolderBrowseButton(self, evt):
+        """\
+        Gets called if the user requests to set the PDFSAVE folder location.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         _start_dir = self.PdfSaveToFolder.GetValue()
         if not utils.is_abs_path(_start_dir):
             if not _start_dir.startswith('~'):
@@ -362,11 +442,18 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
             self.PdfSaveToFolder.SetValue(_save_to_folder)
 
     def __validate(self):
+        """\
+        Dummy field validation method. Always returns C{True}.
 
+        """
         validateOk = True
         return validateOk
 
     def _apply_changes(self):
+        """\
+        Apply changes in the dialog to the client printing configuration.
+
+        """
         self.__update_from_screen()
         if self.__validate():
             if self.mode == 'edit': self.client_printing.write()
@@ -374,25 +461,54 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         return False
 
     def OnOKButton(self, evt):
+        """\
+        Gets called if the user presses the ,,Ok'' button.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         wx.BeginBusyCursor()
         if self._apply_changes():
-            wx.EndBusyCursor()
+            try: wx.EndBusyCursor()
+            except: pass
             self.Close()
             self.Destroy()
         else:
-            wx.EndBusyCursor()
+            try: wx.EndBusyCursor()
+            except: pass
 
     def OnApplyButton(self, evt):
+        """\
+        Gets called if the user presses the ,,Apply'' button.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         wx.BeginBusyCursor()
         self._apply_changes()
-        wx.EndBusyCursor()
+        try: wx.EndBusyCursor()
+        except: pass
 
     def OnCancel(self, evt):
+        """\
+        Gets called if the user presses the ,,Cancel'' button.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
         self.client_printing.load()
         self.Close()
         self.Destroy()
 
     def Destroy(self):
+        """\
+        Tidy up some stuff in the main application instance before allowing desctruction of the
+        printing preferences window.
+
+        """
         try:
             self._PyHocaGUI._sub_windows.remove(self)
         except ValueError:
diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py
index e482644..ea5f823 100644
--- a/pyhoca/wxgui/profilemanager.py
+++ b/pyhoca/wxgui/profilemanager.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -50,12 +50,21 @@ class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin):
 
 class PyHocaGUI_ProfileManager(wx.Dialog):
     """\
-    STILL UNDOCUMENTED
+    L{PyHocaGUI}'s profile manager window that allows to tweak all session related settings.
 
     """
     def __init__(self, _PyHocaGUI, action, profile_id=None, profile_name=None):
         """\
-        STILL UNDOCUMENTED
+        Profile manager window (constructor).
+
+        @param _PyHocaGUI: main application instance
+        @type _PyHocaGUI: C{obj}
+        @param action: profile manager action (use either of C{ADD}, C{ADD_EXPLICITLY}, C{EDIT}, C{EDIT_CONNECTED}, (C{EDIT_EXPLICITLY})
+        @type action: C{str}
+        @param profile_id: X2Go session profile ID
+        @type profile_id: C{str}
+        @param profile_name: X2Go session profile name
+        @type profile_name: C{str}
 
         """
         self._PyHocaGUI = _PyHocaGUI
@@ -75,17 +84,18 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             'LXDE': _(u'Lightweight X Desktop (LXDE)'),
             'TRINITY': _(u'Trinity X Desktop (KDE3-like)'),
             'UNITY': _(u'Unity X Desktop Shell (UNITY)'),
+            'XFCE4': _(u'XFCE4 Desktop (XFCE4)'),
+            'PUBLISHEDAPPLICATIONS': _(u'Published Applications'),
+            'APPLICATION': _(u'Single Application'),
             'XDMCP': _(u'XDMCP Query'),
-            #'EMBEDDED_MENU': _(u'Embedded Application Menu'),
             'RDP': _(u'Windows Terminal Server (RDP-proxy)'),
             #'DirectRDP': 'Windows Terminal Server (RDP-direct)',
-            'APPLICATION': _(u'Single Application'),
             'CUSTOM': _(u'Custom command'),
             }
         self.applicationChoices = {
             'WWWBROWSER': _(u'Internet Browser'),
             'MAILCLIENT': _(u'Email Client'),
-            'OFFICE': _(u'Openoffice.org'), 
+            'OFFICE': _(u'Office'), 
             'TERMINAL': _(u'Terminal'), 
             }
         self.linkChoices = {
@@ -112,29 +122,44 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.session_profiles = self._PyHocaGUI.session_profiles
         self.action = action
 
-        if self.action in ('EDIT', 'EDIT_CONNECTED'):
-            if profile_id is not None:
-                self.profile_id = profile_id
-            elif profile_name is not None:
-                self.profile_id = self.session_profiles.check_profile_id_or_name(profile_name)
-            self.profile_config = self.session_profiles.get_profile_config(self.profile_id)
+        if X2GOCLIENT_OS == 'Windows':
+            self._textfield_height = 24
+        else:
+            self._textfield_height = 30
 
-        if self.action == 'ADD':
+        if profile_id is not None:
+            self.profile_id = profile_id
+        elif profile_name is not None and self.action in ('EDIT', 'EDIT_CONNECTED', 'EDIT_EXPLICITLY', 'COPY'):
+            self.profile_id = self.session_profiles.to_profile_id(profile_name)
+        else:
+            self.profile_id = None
+
+        if self.action in ('EDIT', 'EDIT_CONNECTED', 'EDIT_EXPLICITLY') and self.profile_id:
+            self.profile_name = self.session_profiles.to_profile_name(self.profile_id)
+            self.profile_config = self.session_profiles.get_profile_config(self.profile_id)
+        elif self.action == 'COPY' and self.profile_id:
+            self.profile_name = self.session_profiles.to_profile_name(self.profile_id)
+            self.profile_config = self.session_profiles.get_profile_config(self.profile_id)
+            self.profile_name = self.profile_config['name'] = '%s %s' % (_('settings derived from '), self.profile_name)
+        elif self.action in ("ADD", "ADD_EXPLICITLY"):
             self.profile_config = self.session_profiles.default_profile_config()
-            self.profile_config['name'] = '<%s>' %_('new session profile')
+            # allow localization of the default keyboard settings
+            self.profile_name = self.profile_config['name'] = profile_name
 
         # we create a backup dict of our profile_config immediately (for being able to reset erroneously made changes)
         self.profile_config_bak = copy.deepcopy(self.profile_config)
 
         self.X2goTabs = wx.Notebook(self, -1, style=0)
+        self.tab_Profile = wx.Panel(self.X2goTabs, -1)
         self.tab_Session = wx.Panel(self.X2goTabs, -1)
         self.tab_Connection = wx.Panel(self.X2goTabs, -1)
         self.tab_Settings = wx.Panel(self.X2goTabs, -1)
         self.tab_SharedFilesAndFolders = wx.Panel(self.X2goTabs, -1)
 
         # boxes for all tabs
-        self.staticbox_Profile = wx.StaticBox(self.tab_Session, -1, ' %s ' % _(u'Profile '))
-        self.staticbox_SessionType = wx.StaticBox(self.tab_Session, -1, ' %s ' % _(u'Session'))
+        self.staticbox_Profile = wx.StaticBox(self.tab_Profile, -1, ' %s ' % _(u'Session Title'))
+        self.staticbox_Window = wx.StaticBox(self.tab_Profile, -1, ' %s ' % _(u'Session Window'))
+        self.staticbox_SessionType = wx.StaticBox(self.tab_Session, -1, ' %s ' % _(u'Session Startup'))
         self.staticbox_Server = wx.StaticBox(self.tab_Connection, -1, ' %s ' % _(u"Server"))
         self.staticbox_LinkSpeed = wx.StaticBox(self.tab_Connection, -1, ' %s ' % _(u"Connection Link Speed"))
         self.staticbox_Compression = wx.StaticBox(self.tab_Connection, -1, ' %s ' % _(u"Compression"))
@@ -146,10 +171,19 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.staticbox_FileMIMEbox = wx.StaticBox(self.tab_SharedFilesAndFolders, -1, ' %s ' % _(u"File Import"))
 
         ###
-        ### widgets for the SESSION tab
+        ### widgets for the PROFILE tab
         ###
-        self.ProfileNameLabel = wx.StaticText(self.tab_Session, -1, _(u"Name")+":")
-        self.ProfileName = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(200,20))
+        self.ProfileNameLabel = wx.StaticText(self.tab_Profile, -1, _(u"Name")+":")
+        self.ProfileName = wx.TextCtrl(self.tab_Profile, -1, "")
+
+        if self.action in ("ADD_EXPLICITLY", "EDIT_EXPLICITLY"):
+            self.ProfileNameLabel.Enable(False)
+            self.ProfileName.Enable(False)
+
+        self.SetSessionWindowTitle = wx.CheckBox(self.tab_Profile, -1, _(u"Set session window title"))
+        self.UseDefaultSessionWindowTitle = wx.CheckBox(self.tab_Profile, -1, _(u"Use a default session window title"))
+        self.CustomSessionWindowTitleLabel = wx.StaticText(self.tab_Profile, -1, _(u"Custom session window title") + ":")
+        self.CustomSessionWindowTitle = wx.TextCtrl(self.tab_Profile, -1, "")
         _share_location = os.path.split(_icons_location)[0]
         if 'icon' in self.profile_config:
             path_to_icon = self.profile_config['icon']
@@ -158,21 +192,30 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         if not os.path.exists(path_to_icon) or not 'icon' in self.profile_config:
             path_to_icon = os.path.normpath('%s/icons/PyHoca/128x128/pyhoca-session.png' % _share_location)
         self.IconPath = path_to_icon
-        self.IconButtonLabel = wx.StaticText(self.tab_Session, -1, _(u"Icon")+':')
-        self.IconButton = wx.BitmapButton(self.tab_Session, -1, wx.Bitmap(path_to_icon, wx.BITMAP_TYPE_ANY))
+        self.IconButtonLabel = wx.StaticText(self.tab_Profile, -1, _(u"Window Icon")+':')
+        self.IconButton = wx.BitmapButton(self.tab_Profile, -1, wx.Bitmap(path_to_icon, wx.BITMAP_TYPE_ANY), size=wx.Size(136,136), )
+
+        ###
+        ### widgets for the SESSION tab
+        ###
+        self.AutoStartSession = wx.CheckBox(self.tab_Session, -1, _(u"Start session automatically after login"))
+        self.AutoLoginSessionProfile = wx.CheckBox(self.tab_Session, -1, _(u"Login automatically after %s has started") % self._PyHocaGUI.appname)
         self.SessionTypeLabel = wx.StaticText(self.tab_Session, -1, _(u"Type")+':')
         self.SessionType = wx.ComboBox(self.tab_Session, -1, choices=self.sessionChoices.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY)
         self.ApplicationLabel = wx.StaticText(self.tab_Session, -1, _(u"Application")+':')
         self.Application = wx.ComboBox(self.tab_Session, -1, choices=self.applicationChoices.values(), style=wx.CB_DROPDOWN|wx.CB_READONLY)
         self.CommandLabel = wx.StaticText(self.tab_Session, -1, _(u"Custom command")+':')
-        self.Command = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(200,20))
-        self.RDPSettingsLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP settings")+':')
+        self.Command = wx.TextCtrl(self.tab_Session, -1, "", )
+        self.XDMCPServerLabel = wx.StaticText(self.tab_Session, -1, _(u"XDMCP server")+':')
+        self.XDMCPServer = wx.TextCtrl(self.tab_Session, -1, "", )
         self.RDPServerLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP server")+':')
-        self.RDPServer = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20))
+        self.RDPServer = wx.TextCtrl(self.tab_Session, -1, "", )
         self.RDPOptionsLabel = wx.StaticText(self.tab_Session, -1, _(u"RDP options")+':')
-        self.RDPOptions = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20))
-        self.XDMCPServerLabel = wx.StaticText(self.tab_Session, -1, _(u"XDMCP server")+':')
-        self.XDMCPServer = wx.TextCtrl(self.tab_Session, -1, "", size=wx.Size(160,20))
+        self.RDPOptions = wx.TextCtrl(self.tab_Session, -1, "", )
+        self.RootlessSession = wx.CheckBox(self.tab_Session, -1, _(u"Integrate remote application(s) into local desktop (rootless mode)"))
+        self.UsePublishedApplications = wx.CheckBox(self.tab_Session, -1, _(u"Menu of published applications"))
+        self._last_pubapp_value = None
+        self._last_auto_start_value = None
 
         ###
         ### widgets for the CONNECTION tab
@@ -182,24 +225,24 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.HostLabel = wx.StaticText(self.tab_Connection, -1, _(u"Host")+':')
         self.Host = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20))
         self.SSHPortLabel = wx.StaticText(self.tab_Connection, -1, _(u"Port")+':')
-        self.SSHPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000)
+        self.SSHPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=65534)
         self.SSHKeyFileLabel = wx.StaticText(self.tab_Connection, -1, _(u"RSA/DSA private key")+':')
         self.SSHKeyFile = wx.TextCtrl(self.tab_Connection, -1, style=wx.TE_PROCESS_ENTER)
-        self.SSHKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY))
+        self.SSHKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY), size=wx.Size(self._textfield_height,self._textfield_height), )
         self.UseSSHProxy = wx.CheckBox(self.tab_Connection, -1, _(u"Server behind SSH proxy"))
         self.SSHProxyUserLabel = wx.StaticText(self.tab_Connection, -1, _(u"User")+':')
         self.SSHProxyUser = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(80,20))
         self.SSHProxyKeyFileLabel = wx.StaticText(self.tab_Connection, -1, _(u"Key file")+':')
         self.SSHProxyKeyFile = wx.TextCtrl(self.tab_Connection, -1, style=wx.TE_PROCESS_ENTER)
-        self.SSHProxyKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY))
+        self.SSHProxyKeyFileBrowseButton = wx.BitmapButton(self.tab_Connection, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY), size=wx.Size(self._textfield_height,self._textfield_height), )
         self.SSHProxyHostLabel = wx.StaticText(self.tab_Connection, -1, _(u"Host[:Port]")+':')
         self.SSHProxyHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(80,20))
         self.SSHProxyTunnelLabel = wx.StaticText(self.tab_Connection, -1, _(u"SSH Proxy Tunnel")+':')
         self.SSHProxyTunnelFromHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20))
-        self.SSHProxyTunnelFromPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000)
+        self.SSHProxyTunnelFromPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=65534)
         self.SSHProxyTunnelBetweenLabel = wx.StaticText(self.tab_Connection, -1, " -> ")
         self.SSHProxyTunnelToHost = wx.TextCtrl(self.tab_Connection, -1, "", size=wx.Size(200,20))
-        self.SSHProxyTunnelToPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=64000)
+        self.SSHProxyTunnelToPort = wx.SpinCtrl(self.tab_Connection, -1, "0", min=22, max=65534)
 
         self.LinkSpeed = wx.Slider(self.tab_Connection, -1, 0, 0, 4)
         self.ModemLabel = wx.StaticText(self.tab_Connection, -1, "|\n "+_(u"Modem"), style=wx.ALIGN_CENTRE)
@@ -224,15 +267,19 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.ScreenHeight = wx.SpinCtrl(self.tab_Settings, -1, "600", min=500, max=3000)
         self.SetDisplayDPI = wx.CheckBox(self.tab_Settings, -1, _(u"Set display DPI")+':')
         self.DisplayDPI = wx.SpinCtrl(self.tab_Settings, -1, "96", min=32, max=512)
-        self.CurrentKeyBoard = wx.CheckBox(self.tab_Settings, -1, _(u"Keep current keyboard settings"))
-        self.KeyboardLayoutLabel = wx.StaticText(self.tab_Settings, -1, _(u"Keyboard layout")+':')
-        self.KeyboardLayout = wx.TextCtrl(self.tab_Settings, -1, "")
+        self.DontSetKeyboard = wx.RadioButton(self.tab_Settings, -1, label=_(u"Do not set (use server-side tools to configure the keyboard)"), style=wx.RB_GROUP)
+        self.AutoSetKeyboard = wx.RadioButton(self.tab_Settings, -1, label=_(u"Automatically detect and use client-side keyboard configuration inside the session"))
+        self.CustomSetKeyboard = wx.RadioButton(self.tab_Settings, -1, label=_(u"Use custom keyboard settings as provided below") + ':')
         self.KeyboardModelLabel = wx.StaticText(self.tab_Settings, -1, _(u"Keyboard model")+':')
         self.KeyboardModel = wx.TextCtrl(self.tab_Settings, -1, "")
+        self.KeyboardLayoutLabel = wx.StaticText(self.tab_Settings, -1, _(u"Layout")+':')
+        self.KeyboardLayout = wx.TextCtrl(self.tab_Settings, -1, "")
+        self.KeyboardVariantLabel = wx.StaticText(self.tab_Settings, -1, _(u"Layout variant")+':')
+        self.KeyboardVariant = wx.TextCtrl(self.tab_Settings, -1, "")
         self.EnableSound = wx.CheckBox(self.tab_Settings, -1, _(u"Enable sound support"))
         self.PulseAudio = wx.RadioButton(self.tab_Settings, -1, _(u"Pulse Audio"), style=wx.RB_GROUP)
 
-        # Arts daemon is not supported by PyHoca-GUI / Python X2go as it is outdated.
+        # Arts daemon is not supported by PyHoca-GUI / Python X2Go as it is outdated.
         # However, config files can contain an Arts configuration, so we will honour this
         self.Arts = wx.RadioButton(self.tab_Settings, -1, _(u"Arts (not supported)"))
         self.Arts.Enable(False)
@@ -246,7 +293,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.UseLocalFolderSharing = wx.CheckBox(self.tab_SharedFilesAndFolders, -1, _(u"Use local folder sharing"))
         self.SharedFolderPathLabel = wx.StaticText(self.tab_SharedFilesAndFolders, -1, _(u"Path")+':')
         self.SharedFolderPath = wx.TextCtrl(self.tab_SharedFilesAndFolders, -1, "", style=wx.TE_PROCESS_ENTER)
-        self.SharedFolderPathBrowseButton = wx.BitmapButton(self.tab_SharedFilesAndFolders, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY))
+        self.SharedFolderPathBrowseButton = wx.BitmapButton(self.tab_SharedFilesAndFolders, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY), size=wx.Size(self._textfield_height,self._textfield_height), )
         self.AddSharedFolderPathButton = wx.Button(self.tab_SharedFilesAndFolders, -1, _(u"Add"))
         self.SharedFoldersList = CheckListCtrl(self.tab_SharedFilesAndFolders)
         self.SharedFoldersList.InsertColumn(0, _("Local Path"), wx.LIST_FORMAT_LEFT)
@@ -280,6 +327,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
 
         self.Bind(wx.EVT_BUTTON, self.OnIconChange, self.IconButton)
         self.Bind(wx.EVT_COMBOBOX, self.OnSessionTypeSelected, self.SessionType)
+        self.Bind(wx.EVT_CHECKBOX, self.OnUseDefaultSessionWindowTitle, self.UseDefaultSessionWindowTitle)
+        self.Bind(wx.EVT_CHECKBOX, self.OnSetSessionWindowTitle, self.SetSessionWindowTitle)
         self.Bind(wx.EVT_BUTTON, self.OnSSHKeyFileBrowse, self.SSHKeyFileBrowseButton)
         self.Bind(wx.EVT_BUTTON, self.OnSSHProxyKeyFileBrowse, self.SSHProxyKeyFileBrowseButton)
         self.Bind(wx.EVT_CHECKBOX, self.OnUseSSHProxy, self.UseSSHProxy)
@@ -289,7 +338,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayFullscreen, self.DisplayTypeFullscreen)
         self.Bind(wx.EVT_RADIOBUTTON, self.OnSetDisplayCustom, self.DisplayTypeCustom)
         self.Bind(wx.EVT_CHECKBOX, self.OnSetDisplayDPI, self.SetDisplayDPI)
-        self.Bind(wx.EVT_CHECKBOX, self.OnKeepKeyboard, self.CurrentKeyBoard)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetKeyboard, self.DontSetKeyboard)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetKeyboard, self.AutoSetKeyboard)
+        self.Bind(wx.EVT_RADIOBUTTON, self.OnSetKeyboard, self.CustomSetKeyboard)
         self.Bind(wx.EVT_CHECKBOX, self.OnSoundEnable, self.EnableSound)
         self.Bind(wx.EVT_CHECKBOX, self.OnDefaultSoundPort, self.DefaultSoundPort)
         self.Bind(wx.EVT_RADIOBUTTON, self.OnPulseAudio, self.PulseAudio)
@@ -317,6 +368,10 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.SharedFoldersList.OnCheckItem = _SharedFoldersList_OnCheckItem
 
     def __set_properties(self):
+        """\
+        Set hard-coded widget properties.
+
+        """
         if self.action == 'ADD':
             self.SetTitle(_(u"PyHoca-GUI Profile Manager - new profile"))
         elif self.action == 'EDIT_CONNECTED':
@@ -324,346 +379,377 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         else:
             self.SetTitle(_(u"PyHoca-GUI Profile Manager - %s") % self.profile_config['name'])
         self.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
-        _textfield_height = self.SSHKeyFileBrowseButton.GetBestSize().GetHeight()-2
-
-        self.ProfileNameLabel.SetMinSize((120, 16))
-        self.ProfileName.SetMinSize((180, _textfield_height))
-        self.IconButton.SetSize(self.IconButton.GetBestSize())
+        _textfield_height = 30
+
+        self.ProfileNameLabel.SetMinSize((160, 16))
+        self.ProfileName.SetMinSize((320, self._textfield_height))
+        self.SetSessionWindowTitle.SetMinSize((-1, self._textfield_height))
+        self.UseDefaultSessionWindowTitle.SetMinSize((-1, self._textfield_height))
+        self.CustomSessionWindowTitleLabel.SetMinSize((160, 16))
+        self.CustomSessionWindowTitle.SetMinSize((320, self._textfield_height))
+        self.IconButtonLabel.SetMinSize((168, 16))
+
+        self.AutoStartSession.SetMinSize((-1, self._textfield_height))
+        self.AutoLoginSessionProfile.SetMinSize((-1, self._textfield_height))
         self.SessionTypeLabel.SetMinSize((120, 16))
-        self.SessionType.SetMinSize((-1, _textfield_height))
+        self.SessionType.SetMinSize((320, self._textfield_height))
         self.SessionType.SetSelection(5)
         self.ApplicationLabel.SetMinSize((120, 16))
-        self.Application.SetMinSize((-1, _textfield_height))
+        self.Application.SetMinSize((-1, self._textfield_height))
         self.Application.SetSelection(0)
-        self.Command.SetMinSize((-1, _textfield_height))
+        self.Command.SetMinSize((-1, self._textfield_height))
         self.XDMCPServerLabel.SetMinSize((120, 16))
-        self.XDMCPServer.SetMinSize((-1, _textfield_height))
-        self.RDPSettingsLabel.SetMinSize((120, 16))
+        self.XDMCPServer.SetMinSize((-1, self._textfield_height))
         self.RDPServerLabel.SetMinSize((180, 16))
-        self.RDPServer.SetMinSize((180, _textfield_height))
-        self.RDPOptionsLabel.SetMinSize((120, 16))
-        self.RDPOptions.SetMinSize((120, _textfield_height))
+        self.RDPServer.SetMinSize((-1, self._textfield_height))
+        self.RDPOptionsLabel.SetMinSize((180, 16))
+        self.RDPOptions.SetMinSize((-1, self._textfield_height))
+        self.RootlessSession.SetMinSize((-1, self._textfield_height))
+        self.UsePublishedApplications.SetMinSize((-1, self._textfield_height))
 
-        self.HostLabel.SetMinSize((110, 16))
-        self.Host.SetMinSize((180, _textfield_height))
         self.UserNameLabel.SetMinSize((110, 16))
-        self.UserName.SetMinSize((180, _textfield_height))
+        self.UserName.SetMinSize((220, self._textfield_height))
+        self.HostLabel.SetMinSize((110, 16))
+        self.Host.SetMinSize((220, self._textfield_height))
         self.SSHPortLabel.SetMinSize((110, 16))
-        self.SSHPort.SetMinSize((65, _textfield_height))
+        self.SSHPort.SetMinSize((65, self._textfield_height))
         self.SSHKeyFileLabel.SetMinSize((-1, 16))
-        self.SSHKeyFile.SetMinSize((152, _textfield_height))
-        self.SSHKeyFileBrowseButton.SetSize(self.SSHKeyFileBrowseButton.GetBestSize())
+        self.SSHKeyFile.SetMinSize((152, self._textfield_height))
         self.SSHProxyUserLabel.SetMinSize((140, 16))
-        self.SSHProxyUser.SetMinSize((180, _textfield_height))
+        self.SSHProxyUser.SetMinSize((180, self._textfield_height))
         self.SSHProxyHostLabel.SetMinSize((140, 16))
-        self.SSHProxyHost.SetMinSize((180, _textfield_height))
-        self.SSHProxyKeyFile.SetMinSize((120, _textfield_height))
-        self.SSHProxyKeyFileBrowseButton.SetSize(self.SSHProxyKeyFileBrowseButton.GetBestSize())
+        self.SSHProxyHost.SetMinSize((180, self._textfield_height))
+        self.SSHProxyKeyFile.SetMinSize((120, self._textfield_height))
         self.SSHProxyTunnelLabel.SetMinSize((140, 16))
-        self.SSHProxyTunnelFromPort.SetMinSize((60, _textfield_height))
-        self.SSHProxyTunnelToPort.SetMinSize((60, _textfield_height))
-        self.SSHProxyTunnelFromHost.SetMinSize((120, _textfield_height))
-        self.SSHProxyTunnelToHost.SetMinSize((120, _textfield_height))
+        self.SSHProxyTunnelFromPort.SetMinSize((60, self._textfield_height))
+        self.SSHProxyTunnelToPort.SetMinSize((60, self._textfield_height))
+        self.SSHProxyTunnelFromHost.SetMinSize((120, self._textfield_height))
+        self.SSHProxyTunnelToHost.SetMinSize((120, self._textfield_height))
         if X2GOCLIENT_OS == 'Windows':
-            self.LinkSpeed.SetMinSize((425, _textfield_height))
+            self.LinkSpeed.SetMinSize((425, self._textfield_height))
         else:
-            self.LinkSpeed.SetMinSize((440, _textfield_height))
+            self.LinkSpeed.SetMinSize((440, self._textfield_height))
         self.ModemLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
         self.ISDNLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
         self.ADSLLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
         self.WANLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
         self.LANLabel.SetFont(wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
         self.CompressionLabel.SetMinSize((120, 16))
-        self.Compression.SetMinSize((180, _textfield_height))
+        self.Compression.SetMinSize((180, self._textfield_height))
         self.Compression.SetSelection(0)
         self.ImageQualityLabel.SetMinSize((120, 16))
-        self.ImageQuality.SetMinSize((180, _textfield_height))
-        self.DisplayTypeFullscreen.SetMinSize((-1, _textfield_height))
-        self.ScreenWidth.SetMinSize((60, _textfield_height))
-        self.ScreenHeight.SetMinSize((60, _textfield_height))
-        self.SetDisplayDPI.SetMinSize((-1, _textfield_height))
-        self.DisplayDPI.SetMinSize((60, _textfield_height))
-        self.KeyboardLayoutLabel.SetMinSize((120, 16))
-        self.KeyboardLayout.SetMinSize((120, _textfield_height))
-        self.KeyboardModelLabel.SetMinSize((120, 16))
-        self.KeyboardModel.SetMinSize((120, _textfield_height))
-        self.PulseAudio.SetMinSize((-1, _textfield_height))
-        self.Arts.SetMinSize((-1, _textfield_height))
-        self.Esd.SetMinSize((-1, _textfield_height))
-        self.DefaultSoundPort.SetMinSize((-1, _textfield_height))
-        self.SoundPort.SetMinSize((-1, _textfield_height))
-        self.ClientSidePrinting.SetMinSize((-1, _textfield_height))
-        self.SharedFolderPath.SetMinSize((220, _textfield_height))
-        self.SharedFolderPathBrowseButton.SetSize(self.SharedFolderPathBrowseButton.GetBestSize())
+        self.ImageQuality.SetMinSize((180, self._textfield_height))
+        self.DisplayTypeFullscreen.SetMinSize((-1, self._textfield_height))
+        self.ScreenWidth.SetMinSize((60, self._textfield_height))
+        self.ScreenHeight.SetMinSize((60, self._textfield_height))
+        self.SetDisplayDPI.SetMinSize((-1, self._textfield_height))
+        self.DisplayDPI.SetMinSize((60, self._textfield_height))
+        self.KeyboardModelLabel.SetMinSize((-1, 16))
+        self.KeyboardModel.SetMinSize((-1, self._textfield_height))
+        self.KeyboardLayoutLabel.SetMinSize((-1, 16))
+        self.KeyboardLayout.SetMinSize((-1, self._textfield_height))
+        self.KeyboardVariantLabel.SetMinSize((-1, 16))
+        self.KeyboardVariant.SetMinSize((-1, self._textfield_height))
+        self.PulseAudio.SetMinSize((-1, self._textfield_height))
+        self.Arts.SetMinSize((-1, self._textfield_height))
+        self.Esd.SetMinSize((-1, self._textfield_height))
+        self.DefaultSoundPort.SetMinSize((-1, self._textfield_height))
+        self.SoundPort.SetMinSize((-1, self._textfield_height))
+        self.ClientSidePrinting.SetMinSize((-1, self._textfield_height))
+        self.SharedFolderPath.SetMinSize((220, self._textfield_height))
         self.SharedFoldersList.SetMinSize((-1, 180))
 
-        self.ClientEncoding.SetMinSize((140, _textfield_height))
-        self.ServerEncoding.SetMinSize((140, _textfield_height))
+        self.ClientEncoding.SetMinSize((140, self._textfield_height))
+        self.ServerEncoding.SetMinSize((140, self._textfield_height))
 
-        self.FileMIMEboxExtensions.SetMinSize((140, _textfield_height))
-        self.FileMIMEboxAction.SetMinSize((180, _textfield_height))
+        self.FileMIMEboxAction.SetMinSize((-1, self._textfield_height))
+        _field_width = self.FileMIMEboxAction.GetBestSize().GetWidth()
+        self.FileMIMEboxExtensions.SetMinSize((_field_width, self._textfield_height))
 
         self.OKButton.SetMinSize((-1, 30))
         self.CancelButton.SetMinSize((-1, 30))
         self.DefaultButton.SetMinSize((-1, 30))
 
     def __do_layout(self):
+        """\
+        Arrange/layout widgets on screen.
 
-        # SESSION TAB
+        """
+        # PROFILE TAB
         sizer_1 = wx.BoxSizer(wx.VERTICAL)
         sizer_1_1 = wx.StaticBoxSizer(self.staticbox_Profile, wx.VERTICAL)
-        sizer_1_1_1 = wx.FlexGridSizer(2, 2, 7, 9)
+        sizer_1_1_1 = wx.FlexGridSizer(1, 2, 7, 9)
         sizer_1_1_1.Add(self.ProfileNameLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
         sizer_1_1_1.Add(self.ProfileName)
-        sizer_1_1_1.Add(self.IconButtonLabel, flag=wx.TOP)
-        sizer_1_1_1.Add(self.IconButton)
         sizer_1_1.Add(sizer_1_1_1, flag=wx.EXPAND|wx.ALL, border=7)
 
-        sizer_1_2 = wx.StaticBoxSizer(self.staticbox_SessionType, wx.VERTICAL)
-        sizer_1_2_1 = wx.GridBagSizer(hgap=3,vgap=6)
-        sizer_1_2_1.Add(self.SessionTypeLabel, pos=(0,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
-        sizer_1_2_1.Add(self.SessionType, pos=(0,1), span=(1,2), flag=wx.EXPAND, )
-        sizer_1_2_1.Add(self.ApplicationLabel, pos=(1,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
-        sizer_1_2_1.Add(self.Application, pos=(1,1), span=(1,2), flag=wx.EXPAND, )
-        sizer_1_2_1.Add(self.CommandLabel, pos=(2,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
-        sizer_1_2_1.Add(self.Command, pos=(2, 1), span=(1,2), flag=wx.EXPAND, )
-        sizer_1_2_1.Add(self.XDMCPServerLabel, (3,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
-        sizer_1_2_1.Add(self.XDMCPServer, pos=(3,1), span=(1,2), flag=wx.EXPAND, )
-        sizer_1_2_1.Add(self.RDPServerLabel, pos=(4,1), flag=wx.ALIGN_BOTTOM, )
-        sizer_1_2_1.Add(self.RDPOptionsLabel, pos=(4,2), flag=wx.ALIGN_BOTTOM, )
-        sizer_1_2_1.Add(self.RDPSettingsLabel, pos=(5,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
-        sizer_1_2_1.Add(self.RDPServer, pos=(5, 1), )
-        sizer_1_2_1.Add(self.RDPOptions, pos=(5,2), )
+        sizer_1_2 = wx.StaticBoxSizer(self.staticbox_Window, wx.VERTICAL)
+        sizer_1_2_1 = wx.GridBagSizer(hgap=2,vgap=4)
+        sizer_1_2_1.Add(self.SetSessionWindowTitle, pos=(0,0), span=(1,2))
+        sizer_1_2_1.Add(self.UseDefaultSessionWindowTitle, pos=(1,0), span=(1,2))
+        sizer_1_2_1.Add(self.CustomSessionWindowTitleLabel, pos=(2,0), )
+        sizer_1_2_1.Add(self.CustomSessionWindowTitle, pos=(2,1), )
+        sizer_1_2_1.Add(self.IconButtonLabel, flag=wx.TOP, pos=(3,0), )
+        sizer_1_2_1.Add(self.IconButton, pos=(3,1), )
+
         sizer_1_2.Add(sizer_1_2_1, flag=wx.EXPAND|wx.ALL, border=7)
 
-        sizer_1.Add(sizer_1_1, 1, flag=wx.EXPAND|wx.ALL, border=5)
-        sizer_1.Add(sizer_1_2, 1, flag=wx.EXPAND|wx.ALL, border=5)
-        self.tab_Session.SetSizerAndFit(sizer_1)
-        self.tab_Session.Layout()
+        sizer_1.Add(sizer_1_1, flag=wx.EXPAND|wx.ALL, border=5)
+        sizer_1.Add(sizer_1_2, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
+        self.tab_Profile.SetSizerAndFit(sizer_1)
+        self.tab_Profile.Layout()
 
-        ## CONNECTION TAB
+        # SESSION TAB
         sizer_2 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_1 = wx.StaticBoxSizer(self.staticbox_Server, wx.VERTICAL)
-        sizer_2_1_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_1_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_1_1.Add(self.UserNameLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_1.Add(self.UserName)
-        sizer_2_1_1_1.Add((0,32))
-        sizer_2_1_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_1_2.Add(self.HostLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_2.Add(self.Host)
-        sizer_2_1_1_2.Add((0,32))
-        sizer_2_1_1_3 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_1_3.Add(self.SSHPortLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_3.Add(self.SSHPort)
-        sizer_2_1_1_3.Add((16,0))
-        sizer_2_1_1_3.Add(self.SSHKeyFileLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_3.Add((8,0))
-        sizer_2_1_1_3.Add(self.SSHKeyFile, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_3.Add(self.SSHKeyFileBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_1_3.Add((0,32))
-        sizer_2_1_1.Add(sizer_2_1_1_1, flag=wx.EXPAND)
-        sizer_2_1_1.Add(sizer_2_1_1_2, flag=wx.EXPAND)
-        sizer_2_1_1.Add(sizer_2_1_1_3, flag=wx.EXPAND)
-
-        sizer_2_1_2 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_2_1.Add(self.UseSSHProxy, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_2_2.Add(self.SSHProxyUserLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2.Add(self.SSHProxyUser, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2.Add((16,0))
-        sizer_2_1_2_2.Add(self.SSHProxyKeyFileLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2.Add((8,0))
-        sizer_2_1_2_2.Add(self.SSHProxyKeyFile, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2.Add(self.SSHProxyKeyFileBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_2.Add((0,32))
-        sizer_2_1_2_3 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_2_3.Add(self.SSHProxyHostLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_3.Add(self.SSHProxyHost, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_3.Add((0,32))
-        sizer_2_1_2_4 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelFromHost, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_4.Add((4, 0))
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelFromPort, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_4.Add((8, 0))
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelBetweenLabel, flag=wx.ALIGN_CENTRE_VERTICAL|wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_1_2_4.Add((8, 0))
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelToHost, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_4.Add((4, 0))
-        sizer_2_1_2_4.Add(self.SSHProxyTunnelToPort, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_1_2_4.Add((0,32))
-        sizer_2_1_2.Add(sizer_2_1_2_1, flag=wx.EXPAND)
-        sizer_2_1_2.Add(sizer_2_1_2_2, flag=wx.EXPAND)
-        sizer_2_1_2.Add(sizer_2_1_2_3, flag=wx.EXPAND)
-        sizer_2_1_2.Add(sizer_2_1_2_4, flag=wx.EXPAND)
+        sizer_2_1 = wx.StaticBoxSizer(self.staticbox_SessionType, wx.VERTICAL)
+        sizer_2_1_1 = wx.GridBagSizer(hgap=2,vgap=6)
+        sizer_2_1_1.Add(self.AutoLoginSessionProfile, pos=(0,0), span=(1,2), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.AutoStartSession, pos=(1,0), span=(1,2), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.SessionTypeLabel, pos=(2,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.SessionType, pos=(2,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.ApplicationLabel, pos=(3,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.Application, pos=(3,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.CommandLabel, pos=(4,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.Command, pos=(4,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.XDMCPServerLabel, (5,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.XDMCPServer, pos=(5,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.RDPServerLabel, pos=(6,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.RDPServer, pos=(6,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.RDPOptionsLabel, pos=(7,0), flag=wx.ALIGN_CENTRE_VERTICAL, )
+        sizer_2_1_1.Add(self.RDPOptions, pos=(7,1), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.RootlessSession, pos=(8,0), span=(1,2), flag=wx.EXPAND, )
+        sizer_2_1_1.Add(self.UsePublishedApplications, pos=(9,0), span=(1,2), flag=wx.EXPAND, )
         sizer_2_1.Add(sizer_2_1_1, flag=wx.EXPAND|wx.ALL, border=7)
-        sizer_2_1.Add(sizer_2_1_2, flag=wx.EXPAND|wx.ALL, border=7)
-
-        sizer_2_2 = wx.StaticBoxSizer(self.staticbox_LinkSpeed, wx.VERTICAL)
-        sizer_2_2_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_2_1_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_2_1_1.Add(self.LinkSpeed)
-        sizer_2_2_1_2 = wx.GridSizer(1,5,0,0)
-        sizer_2_2_1_2.SetMinSize((454/5*6 - 30, -1))
-        sizer_2_2_1_2.Add(self.ModemLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1_2.Add(self.ISDNLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1_2.Add(self.ADSLLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1_2.Add(self.WANLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1_2.Add(self.LANLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1.Add(sizer_2_2_1_1, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2_1.Add(sizer_2_2_1_2, flag=wx.ALIGN_CENTRE_HORIZONTAL)
-        sizer_2_2.Add(sizer_2_2_1, flag=wx.EXPAND|wx.ALL, border=7)
-
-        sizer_2_3 = wx.StaticBoxSizer(self.staticbox_Compression, wx.VERTICAL)
-        sizer_2_3_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_2_3_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_3_1_1.Add(self.CompressionLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_3_1_1.Add(self.Compression)
-        sizer_2_3_1_1.Add((0,32))
-        sizer_2_3_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_2_3_1_2.Add(self.ImageQualityLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_2_3_1_2.Add(self.ImageQuality)
-        sizer_2_3_1.Add(sizer_2_3_1_1, flag=wx.EXPAND)
-        sizer_2_3_1.Add(sizer_2_3_1_2, flag=wx.EXPAND)
-        sizer_2_3.Add(sizer_2_3_1, proportion=1, flag=wx.EXPAND|wx.ALL, border=7)
-
-        sizer_2.Add(sizer_2_1, flag=wx.EXPAND|wx.ALL, border=5)
-        sizer_2.Add(sizer_2_2, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
-        sizer_2.Add(sizer_2_3, flag=wx.EXPAND|wx.ALL, border=5)
-        self.tab_Connection.SetSizerAndFit(sizer_2)
-        self.tab_Connection.Layout()
+        sizer_2.Add(sizer_2_1, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
+        self.tab_Session.SetSizerAndFit(sizer_2)
+        self.tab_Session.Layout()
 
-        ## SETTINGS TAB
+        ## CONNECTION TAB
         sizer_3 = wx.BoxSizer(wx.VERTICAL)
-        sizer_3_1 = wx.StaticBoxSizer(self.staticbox_Display, wx.VERTICAL)
+        sizer_3_1 = wx.StaticBoxSizer(self.staticbox_Server, wx.VERTICAL)
         sizer_3_1_1 = wx.BoxSizer(wx.VERTICAL)
         sizer_3_1_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_3_1_1_1.Add(self.DisplayTypeFullscreen, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1_1.Add((16, 0))
-        sizer_3_1_1_1.Add(self.DisplayTypeCustom, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1_1.Add(self.ScreenWidthLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1_1.Add((8,0))
-        sizer_3_1_1_1.Add(self.ScreenWidth)
-        sizer_3_1_1_1.Add((8,0))
-        sizer_3_1_1_1.Add(self.ScreenHeightLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1_1.Add((8,0))
-        sizer_3_1_1_1.Add(self.ScreenHeight)
+        sizer_3_1_1_1.Add(self.UserNameLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_1_1.Add(self.UserName)
+        sizer_3_1_1_1.Add((0,32))
         sizer_3_1_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_3_1_1_2.Add((-1,48))
-        sizer_3_1_1_2.Add(self.SetDisplayDPI, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1_2.Add((8,0))
-        sizer_3_1_1_2.Add(self.DisplayDPI, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_1_1.Add(sizer_3_1_1_1)
-        sizer_3_1_1.Add(sizer_3_1_1_2)
+        sizer_3_1_1_2.Add(self.HostLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_1_2.Add(self.Host)
+        sizer_3_1_1_2.Add((0,32))
+        sizer_3_1_1_3 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_1_1_3.Add(self.SSHPortLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_1_3.Add(self.SSHPort)
+        sizer_3_1_1_3.Add((16,0))
+        sizer_3_1_1_3.Add(self.SSHKeyFileLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_1_3.Add((8,0))
+        sizer_3_1_1_3.Add(self.SSHKeyFile, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_1_3.Add(self.SSHKeyFileBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT, border=2)
+        sizer_3_1_1_3.Add((0,32))
+        sizer_3_1_1.Add(sizer_3_1_1_1, flag=wx.EXPAND)
+        sizer_3_1_1.Add(sizer_3_1_1_2, flag=wx.EXPAND)
+        sizer_3_1_1.Add(sizer_3_1_1_3, flag=wx.EXPAND)
+
+        sizer_3_1_2 = wx.BoxSizer(wx.VERTICAL)
+        sizer_3_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_1_2_1.Add(self.UseSSHProxy, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_1_2_2.Add(self.SSHProxyUserLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_2.Add(self.SSHProxyUser, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_2.Add((16,0))
+        sizer_3_1_2_2.Add(self.SSHProxyKeyFileLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_2.Add((8,0))
+        sizer_3_1_2_2.Add(self.SSHProxyKeyFile, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_2.Add(self.SSHProxyKeyFileBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT, border=2)
+        sizer_3_1_2_2.Add((0,32))
+        sizer_3_1_2_3 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_1_2_3.Add(self.SSHProxyHostLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_3.Add(self.SSHProxyHost, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_3.Add((0,32))
+        sizer_3_1_2_4 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelFromHost, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_4.Add((4, 0))
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelFromPort, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_4.Add((8, 0))
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelBetweenLabel, flag=wx.ALIGN_CENTRE_VERTICAL|wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_1_2_4.Add((8, 0))
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelToHost, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_4.Add((4, 0))
+        sizer_3_1_2_4.Add(self.SSHProxyTunnelToPort, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_1_2_4.Add((0,32))
+        sizer_3_1_2.Add(sizer_3_1_2_1, flag=wx.EXPAND)
+        sizer_3_1_2.Add(sizer_3_1_2_2, flag=wx.EXPAND)
+        sizer_3_1_2.Add(sizer_3_1_2_3, flag=wx.EXPAND)
+        sizer_3_1_2.Add(sizer_3_1_2_4, flag=wx.EXPAND)
         sizer_3_1.Add(sizer_3_1_1, flag=wx.EXPAND|wx.ALL, border=7)
+        sizer_3_1.Add(sizer_3_1_2, flag=wx.EXPAND|wx.ALL, border=7)
 
-        sizer_3_2 = wx.StaticBoxSizer(self.staticbox_Keyboard, wx.VERTICAL)
+        sizer_3_2 = wx.StaticBoxSizer(self.staticbox_LinkSpeed, wx.VERTICAL)
         sizer_3_2_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_3_2_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_3_2_1_1.Add(self.CurrentKeyBoard, flag=wx.ALIGN_TOP)
-        sizer_3_2_1_1.Add((0, 32))
-        sizer_3_2_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_3_2_1_2.Add((32,0))
-        sizer_3_2_1_2_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_3_2_1_2_1.Add(self.KeyboardLayoutLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_2_1_2_1.Add(self.KeyboardLayout, flag=wx.EXPAND)
-        sizer_3_2_1_2_2 = wx.BoxSizer(wx.VERTICAL)
-        sizer_3_2_1_2_2.Add(self.KeyboardModelLabel)
-        sizer_3_2_1_2_2.Add(self.KeyboardModel, flag=wx.EXPAND)
-        sizer_3_2_1_2.Add(sizer_3_2_1_2_1)
-        sizer_3_2_1_2.Add((32,0))
-        sizer_3_2_1_2.Add(sizer_3_2_1_2_2)
-        sizer_3_2_1.Add(sizer_3_2_1_1)
-        sizer_3_2_1.Add(sizer_3_2_1_2)
+        sizer_3_2_1_1 = wx.BoxSizer(wx.VERTICAL)
+        sizer_3_2_1_1.Add(self.LinkSpeed)
+        sizer_3_2_1_2 = wx.GridSizer(1,5,0,0)
+        sizer_3_2_1_2.SetMinSize((454/5*6 - 30, 36))
+        sizer_3_2_1_2.Add(self.ModemLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1_2.Add(self.ISDNLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1_2.Add(self.ADSLLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1_2.Add(self.WANLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1_2.Add(self.LANLabel, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1.Add(sizer_3_2_1_1, flag=wx.ALIGN_CENTRE_HORIZONTAL)
+        sizer_3_2_1.Add(sizer_3_2_1_2, flag=wx.ALIGN_CENTRE_HORIZONTAL)
         sizer_3_2.Add(sizer_3_2_1, flag=wx.EXPAND|wx.ALL, border=7)
 
-        sizer_3_3 = wx.StaticBoxSizer(self.staticbox_Sound, wx.VERTICAL)
-        sizer_3_3_1 = wx.GridBagSizer(vgap=4, hgap=2)
-        sizer_3_3_1.Add(self.EnableSound, pos=(0,0), span=(1,2), border=16, )
-        sizer_3_3_1.Add(self.PulseAudio, pos=(1,0), flag=wx.RIGHT, border=16, )
-        sizer_3_3_1.Add(self.Arts, pos=(2,0), flag=wx.RIGHT, border=16, )
-        sizer_3_3_1.Add(self.Esd, pos=(3,0), flag=wx.RIGHT, border=16, )
-        sizer_3_3_1.Add(self.DefaultSoundPort, pos=(1,1), )
+        sizer_3_3 = wx.StaticBoxSizer(self.staticbox_Compression, wx.VERTICAL)
+        sizer_3_3_1 = wx.BoxSizer(wx.VERTICAL)
         sizer_3_3_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_3_3_1_1.Add(self.SoundPortLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_3_1_1.Add((8, -1))
-        sizer_3_3_1_1.Add(self.SoundPort, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_3_3_1.Add(sizer_3_3_1_1, pos=(2,1), )
-        sizer_3_3.Add(sizer_3_3_1, flag=wx.EXPAND|wx.ALL, border=7)
-
-        sizer_3_4 = wx.StaticBoxSizer(self.staticbox_Printing, wx.VERTICAL)
-        sizer_3_4.Add(self.ClientSidePrinting, flag=wx.EXPAND|wx.ALL, border=7)
+        sizer_3_3_1_1.Add(self.CompressionLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_3_1_1.Add(self.Compression)
+        sizer_3_3_1_1.Add((0,32))
+        sizer_3_3_1_2 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_3_3_1_2.Add(self.ImageQualityLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_3_3_1_2.Add(self.ImageQuality)
+        sizer_3_3_1.Add(sizer_3_3_1_1, flag=wx.EXPAND)
+        sizer_3_3_1.Add(sizer_3_3_1_2, flag=wx.EXPAND)
+        sizer_3_3.Add(sizer_3_3_1, proportion=1, flag=wx.EXPAND|wx.ALL, border=7)
 
         sizer_3.Add(sizer_3_1, flag=wx.EXPAND|wx.ALL, border=5)
         sizer_3.Add(sizer_3_2, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
-        sizer_3.Add(sizer_3_3, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
-        sizer_3.Add(sizer_3_4, flag=wx.EXPAND|wx.ALL, border=5)
-        self.tab_Settings.SetSizerAndFit(sizer_3)
-        self.tab_Settings.Layout()
+        sizer_3.Add(sizer_3_3, flag=wx.EXPAND|wx.ALL, border=5)
+        self.tab_Connection.SetSizerAndFit(sizer_3)
+        self.tab_Connection.Layout()
 
-        # FOLDERSHARING TAB
+        ## SETTINGS TAB
         sizer_4 = wx.BoxSizer(wx.VERTICAL)
-        sizer_4_1 = wx.StaticBoxSizer(self.staticbox_FolderSharing, wx.VERTICAL)
+        sizer_4_1 = wx.StaticBoxSizer(self.staticbox_Display, wx.VERTICAL)
         sizer_4_1_1 = wx.BoxSizer(wx.VERTICAL)
         sizer_4_1_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_1.Add(self.UseLocalFolderSharing)
+        sizer_4_1_1_1.Add(self.DisplayTypeFullscreen, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1_1.Add((16, 0))
+        sizer_4_1_1_1.Add(self.DisplayTypeCustom, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1_1.Add(self.ScreenWidthLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1_1.Add((8,0))
+        sizer_4_1_1_1.Add(self.ScreenWidth)
+        sizer_4_1_1_1.Add((8,0))
+        sizer_4_1_1_1.Add(self.ScreenHeightLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1_1.Add((8,0))
+        sizer_4_1_1_1.Add(self.ScreenHeight)
         sizer_4_1_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_2_1.Add(self.SharedFolderPathLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_1_2_1.Add(self.SharedFolderPath, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT|wx.RIGHT, border=5)
-        sizer_4_1_1_2_1.Add(self.SharedFolderPathBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_2_3 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_2_3.Add(self.AddSharedFolderPathButton, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_1_2_3.Add(self.DeleteSharedFolderPathButton, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_1_2.Add(sizer_4_1_1_2_1, flag=wx.EXPAND|wx.ALIGN_LEFT)
-        sizer_4_1_1_2.Add(sizer_4_1_1_2_2, proportion=1, flag=wx.EXPAND|wx.ALIGN_LEFT)
-        sizer_4_1_1_2.Add(sizer_4_1_1_2_3, flag=wx.EXPAND|wx.ALIGN_RIGHT)
-        sizer_4_1_1_3 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_1_3.Add(self.SharedFoldersList, proportion=1, flag=wx.EXPAND)
-        sizer_4_1_1.Add(sizer_4_1_1_1, flag=wx.EXPAND|wx.BOTTOM, border=12)
-        sizer_4_1_1.Add(sizer_4_1_1_2, flag=wx.EXPAND)
-        sizer_4_1_1.Add(sizer_4_1_1_3, flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=5)
-        sizer_4_1_2 = wx.BoxSizer(wx.VERTICAL)
-        sizer_4_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_2_1.Add(self.UseEncodingConverter, flag=wx.BOTTOM, border=5)
-        sizer_4_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_1_2_2.Add(self.ClientEncodingLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_2_2.Add((8,0))
-        sizer_4_1_2_2.Add(self.ClientEncoding)
-        sizer_4_1_2_2.Add((16,0))
-        sizer_4_1_2_2.Add(self.ServerEncodingLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_1_2_2.Add((8,0))
-        sizer_4_1_2_2.Add(self.ServerEncoding)
-        sizer_4_1_2.Add(sizer_4_1_2_1, flag=wx.EXPAND)
-        sizer_4_1_2.Add(sizer_4_1_2_2, flag=wx.EXPAND)
+        sizer_4_1_1_2.Add((-1,48))
+        sizer_4_1_1_2.Add(self.SetDisplayDPI, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1_2.Add((8,0))
+        sizer_4_1_1_2.Add(self.DisplayDPI, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_1_1.Add(sizer_4_1_1_1)
+        sizer_4_1_1.Add(sizer_4_1_1_2)
         sizer_4_1.Add(sizer_4_1_1, flag=wx.EXPAND|wx.ALL, border=7)
-        sizer_4_1.Add(sizer_4_1_2, flag=wx.EXPAND|wx.ALL, border=7)
 
-        sizer_4_2 = wx.StaticBoxSizer(self.staticbox_FileMIMEbox, wx.VERTICAL)
+        sizer_4_2 = wx.StaticBoxSizer(self.staticbox_Keyboard, wx.VERTICAL)
         sizer_4_2_1 = wx.BoxSizer(wx.VERTICAL)
-        sizer_4_2_1_1 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_2_1_1.Add(self.UseFileMIMEbox, flag=wx.BOTTOM, border=5)
+        sizer_4_2_1_1 = wx.BoxSizer(wx.VERTICAL)
+        sizer_4_2_1_1.Add(self.DontSetKeyboard, )
+        sizer_4_2_1_1.Add(self.AutoSetKeyboard, )
+        sizer_4_2_1_1.Add(self.CustomSetKeyboard, )
+        sizer_4_2_1_1.Add((0,8))
         sizer_4_2_1_2 = wx.BoxSizer(wx.HORIZONTAL)
-        sizer_4_2_1_2.Add(self.FileMIMEboxExtensionsLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_2_1_2.Add((8,0))
-        sizer_4_2_1_2.Add(self.FileMIMEboxExtensions)
-        sizer_4_2_1_2.Add((16,0))
-        sizer_4_2_1_2.Add(self.FileMIMEboxActionLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
-        sizer_4_2_1_2.Add((8,0))
-        sizer_4_2_1_2.Add(self.FileMIMEboxAction)
-        sizer_4_2_1.Add(sizer_4_2_1_1, flag=wx.EXPAND)
-        sizer_4_2_1.Add(sizer_4_2_1_2, flag=wx.EXPAND)
+        sizer_4_2_1_2.Add((32,0))
+        sizer_4_2_1_2_1 = wx.GridBagSizer(hgap=2, vgap=2)
+        sizer_4_2_1_2_1.Add(self.KeyboardModelLabel, pos=(0,0),)
+        sizer_4_2_1_2_1.Add(self.KeyboardModel, flag=wx.EXPAND, pos=(1,0),)
+        sizer_4_2_1_2_1.Add((32,0), pos=(0,1), span=(2,1))
+        sizer_4_2_1_2_1.Add(self.KeyboardLayoutLabel, flag=wx.ALIGN_CENTRE_VERTICAL, pos=(0,2), )
+        sizer_4_2_1_2_1.Add(self.KeyboardLayout, flag=wx.EXPAND, pos=(1,2), )
+        sizer_4_2_1_2_1.Add((32,0), pos=(0,3), span=(2,1))
+        sizer_4_2_1_2_1.Add(self.KeyboardVariantLabel, pos=(0,4),)
+        sizer_4_2_1_2_1.Add(self.KeyboardVariant, flag=wx.EXPAND, pos=(1,4),)
+        sizer_4_2_1_2.Add(sizer_4_2_1_2_1)
+        sizer_4_2_1.Add(sizer_4_2_1_1)
+        sizer_4_2_1.Add(sizer_4_2_1_2)
         sizer_4_2.Add(sizer_4_2_1, flag=wx.EXPAND|wx.ALL, border=7)
 
+        sizer_4_3 = wx.StaticBoxSizer(self.staticbox_Sound, wx.VERTICAL)
+        sizer_4_3_1 = wx.GridBagSizer(vgap=4, hgap=2)
+        sizer_4_3_1.Add(self.EnableSound, pos=(0,0), span=(1,2), border=16, )
+        sizer_4_3_1.Add(self.PulseAudio, pos=(1,0), flag=wx.RIGHT, border=16, )
+        sizer_4_3_1.Add(self.Arts, pos=(2,0), flag=wx.RIGHT, border=16, )
+        sizer_4_3_1.Add(self.Esd, pos=(3,0), flag=wx.RIGHT, border=16, )
+        sizer_4_3_1.Add(self.DefaultSoundPort, pos=(1,1), )
+        sizer_4_3_1_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_4_3_1_1.Add(self.SoundPortLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_3_1_1.Add((8, -1))
+        sizer_4_3_1_1.Add(self.SoundPort, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_4_3_1.Add(sizer_4_3_1_1, pos=(2,1), )
+        sizer_4_3.Add(sizer_4_3_1, flag=wx.EXPAND|wx.ALL, border=7)
+
+        sizer_4_4 = wx.StaticBoxSizer(self.staticbox_Printing, wx.VERTICAL)
+        sizer_4_4.Add(self.ClientSidePrinting, flag=wx.EXPAND|wx.ALL, border=7)
+
         sizer_4.Add(sizer_4_1, flag=wx.EXPAND|wx.ALL, border=5)
         sizer_4.Add(sizer_4_2, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
-        self.tab_SharedFilesAndFolders.SetSizerAndFit(sizer_4)
+        sizer_4.Add(sizer_4_3, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
+        sizer_4.Add(sizer_4_4, flag=wx.EXPAND|wx.ALL, border=5)
+        self.tab_Settings.SetSizerAndFit(sizer_4)
+        self.tab_Settings.Layout()
+
+        # FOLDERSHARING TAB
+        sizer_5 = wx.BoxSizer(wx.VERTICAL)
+        sizer_5_1 = wx.StaticBoxSizer(self.staticbox_FolderSharing, wx.VERTICAL)
+        sizer_5_1_1 = wx.BoxSizer(wx.VERTICAL)
+        sizer_5_1_1_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_1.Add(self.UseLocalFolderSharing)
+        sizer_5_1_1_2 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_2_1.Add(self.SharedFolderPathLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_1_1_2_1.Add(self.SharedFolderPath, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT, border=5)
+        sizer_5_1_1_2_1.Add(self.SharedFolderPathBrowseButton, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT, border=2)
+        sizer_5_1_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_2_3 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_2_3.Add(self.AddSharedFolderPathButton, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_1_1_2_3.Add(self.DeleteSharedFolderPathButton, flag=wx.ALIGN_CENTRE_VERTICAL|wx.LEFT, border=2)
+        sizer_5_1_1_2.Add(sizer_5_1_1_2_1, flag=wx.EXPAND|wx.ALIGN_LEFT)
+        sizer_5_1_1_2.Add(sizer_5_1_1_2_2, proportion=1, flag=wx.EXPAND|wx.ALIGN_LEFT)
+        sizer_5_1_1_2.Add(sizer_5_1_1_2_3, flag=wx.EXPAND|wx.ALIGN_RIGHT)
+        sizer_5_1_1_3 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_1_3.Add(self.SharedFoldersList, proportion=1, flag=wx.EXPAND)
+        sizer_5_1_1.Add(sizer_5_1_1_1, flag=wx.EXPAND|wx.BOTTOM, border=12)
+        sizer_5_1_1.Add(sizer_5_1_1_2, flag=wx.EXPAND)
+        sizer_5_1_1.Add(sizer_5_1_1_3, flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=5)
+        sizer_5_1_2 = wx.BoxSizer(wx.VERTICAL)
+        sizer_5_1_2_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_2_1.Add(self.UseEncodingConverter, flag=wx.BOTTOM, border=5)
+        sizer_5_1_2_2 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_1_2_2.Add(self.ClientEncodingLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_1_2_2.Add((8,0))
+        sizer_5_1_2_2.Add(self.ClientEncoding)
+        sizer_5_1_2_2.Add((16,0))
+        sizer_5_1_2_2.Add(self.ServerEncodingLabel, flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_1_2_2.Add((8,0))
+        sizer_5_1_2_2.Add(self.ServerEncoding)
+        sizer_5_1_2.Add(sizer_5_1_2_1, flag=wx.EXPAND)
+        sizer_5_1_2.Add(sizer_5_1_2_2, flag=wx.EXPAND)
+        sizer_5_1.Add(sizer_5_1_1, flag=wx.EXPAND|wx.ALL, border=7)
+        sizer_5_1.Add(sizer_5_1_2, flag=wx.EXPAND|wx.ALL, border=7)
+
+        sizer_5_2 = wx.StaticBoxSizer(self.staticbox_FileMIMEbox, wx.VERTICAL)
+        sizer_5_2_1 = wx.BoxSizer(wx.VERTICAL)
+        sizer_5_2_1_1 = wx.BoxSizer(wx.HORIZONTAL)
+        sizer_5_2_1_1.Add(self.UseFileMIMEbox, flag=wx.BOTTOM, border=5)
+        sizer_5_2_1_2 = wx.GridBagSizer(vgap=2, hgap=3)
+        sizer_5_2_1_2.Add(self.FileMIMEboxActionLabel, pos=(0,0), flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_2_1_2.Add(self.FileMIMEboxAction, pos=(0,2))
+        sizer_5_2_1_2.Add((8,0), pos=(0,1))
+        sizer_5_2_1_2.Add((8,0), pos=(1,1))
+        sizer_5_2_1_2.Add(self.FileMIMEboxExtensionsLabel, pos=(1,0), flag=wx.ALIGN_CENTRE_VERTICAL)
+        sizer_5_2_1_2.Add(self.FileMIMEboxExtensions, pos=(1,2))
+        sizer_5_2_1.Add(sizer_5_2_1_1, flag=wx.EXPAND)
+        sizer_5_2_1.Add(sizer_5_2_1_2, flag=wx.EXPAND)
+        sizer_5_2.Add(sizer_5_2_1, flag=wx.EXPAND|wx.ALL, border=7)
+
+        sizer_5.Add(sizer_5_1, flag=wx.EXPAND|wx.ALL, border=5)
+        sizer_5.Add(sizer_5_2, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
+        self.tab_SharedFilesAndFolders.SetSizerAndFit(sizer_5)
         self.tab_SharedFilesAndFolders.Layout()
 
-        self.X2goTabs.AddPage(self.tab_Session, _(u"Session Profile"))
+        self.X2goTabs.AddPage(self.tab_Profile, _(u"Profile"))
+        self.X2goTabs.AddPage(self.tab_Session, _(u"Session"))
         self.X2goTabs.AddPage(self.tab_Connection, _(u"Connection"))
         self.X2goTabs.AddPage(self.tab_Settings, _(u"Settings"))
         self.X2goTabs.AddPage(self.tab_SharedFilesAndFolders, _(u"Sharing"))
@@ -682,26 +768,45 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         MainSizer.Add(sizer_B, flag=wx.ALIGN_RIGHT)
         self.SetSizerAndFit(MainSizer)
 
-        max1_x, max1_y = self.tab_Session.GetBestSize()
-        max2_x, max2_y = self.tab_Connection.GetBestSize()
-        max3_x, max3_y = self.tab_Settings.GetBestSize()
-        max4_x, max4_y = self.tab_SharedFilesAndFolders.GetBestSize()
-        sizer_B_x, sizer_B_y = sizer_B.GetSize()
+        max1_x, max1_y = self.tab_Profile.GetBestSize()
+        max2_x, max2_y = self.tab_Session.GetBestSize()
+        max3_x, max3_y = self.tab_Connection.GetBestSize()
+        max4_x, max4_y = self.tab_Settings.GetBestSize()
+        max5_x, max5_y = self.tab_SharedFilesAndFolders.GetBestSize()
 
-        self.SetSize((max(max1_x, max2_x, max3_x, max4_x) * 1.05, (max(max1_y, max2_y, max3_y, max4_y) + sizer_B_y) * 1.2))
+        #self.SetSize(self.GetBestSize() + self.X2goTabs.GetBestSize())
+
+        self.SetSize((max(max1_x, max2_x, max3_x, max4_x, max5_x) * 1.05, max(max1_y, max2_y, max3_y, max4_y, max5_y) + 80))
         self.SetAutoLayout(True)
         self.Layout()
         self.CentreOnScreen()
         self.Show(True)
 
         # derive ListCtrl widths from sizer information
-        _sizer_width = sizer_4_1_1_3.GetSize().GetWidth()
+        _sizer_width = sizer_5_1_1_3.GetSize().GetWidth()
         self.SharedFoldersList.SetColumnWidth(0, abs(_sizer_width*.7))
         self.SharedFoldersList.SetColumnWidth(1, abs(_sizer_width*.3))
 
     def __update_fields(self):
+        """\
+        Update widget fields/values from session profile configuration.
 
+        """
         self.ProfileName.SetValue(self.profile_config['name'])
+        self.SetSessionWindowTitle.SetValue(self.profile_config['setsessiontitle'])
+        self.CustomSessionWindowTitle.SetValue(self.profile_config['sessiontitle'])
+        if not self.profile_config['setsessiontitle']:
+            self.CustomSessionWindowTitleLabel.Enable(False)
+            self.CustomSessionWindowTitle.Enable(False)
+            self.UseDefaultSessionWindowTitle.Enable(False)
+        else:
+            if self.profile_config['sessiontitle']:
+                self.UseDefaultSessionWindowTitle.SetValue(False)
+            else:
+                self.UseDefaultSessionWindowTitle.SetValue(True)
+                self.CustomSessionWindowTitleLabel.Enable(False)
+                self.CustomSessionWindowTitle.Enable(False)
+
         self.Host.SetValue(self.profile_config['host'])
         self.UserName.SetValue(self.profile_config['user'])
         self.SSHPort.SetValue(self.profile_config['sshport'])
@@ -712,6 +817,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.SSHProxyHost.SetValue(self.profile_config['sshproxyhost'])
         self.SSHProxyUser.SetValue(self.profile_config['sshproxyuser'])
         self.SSHProxyKeyFile.SetValue(self.profile_config['sshproxykeyfile'])
+
         _from_host = _from_port = _to_host = _to_port = None
         if self.profile_config['sshproxytunnel'].count(':') == 2:
             _from_port, _to_host, _to_port = self.profile_config['sshproxytunnel'].split(':')
@@ -764,7 +870,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SSHPortLabel.Enable(True)
             self.SSHPort.SetValue(self.profile_config_bak['sshport'])
 
+        self.AutoStartSession.SetValue(self.profile_config['autostart'])
+        self.AutoLoginSessionProfile.SetValue(self.profile_config['autologin'])
+
         _command = self.profile_config['command']
+        _published = self.profile_config['published']
+        self.RootlessSession.SetValue(self.profile_config['rootless'])
 
         # disable all command relevant widgets first
         self.ApplicationLabel.Enable(False)
@@ -773,34 +884,57 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.Command.Enable(False)
         self.XDMCPServerLabel.Enable(False)
         self.XDMCPServer.Enable(False)
+        self.RootlessSession.Enable(False)
 
+        self.UsePublishedApplications.SetValue(_published)
         if _command in self.sessionChoices.keys():
             self.SessionType.SetValue(self.sessionChoices[_command])
             self.Application.SetValue('')
             self.Command.SetValue('')
+            if _command not in defaults.X2GO_DESKTOPSESSIONS.keys():
+                self.RootlessSession.SetValue(True)
         elif _command in self.applicationChoices.keys():
             self.SessionType.SetValue(self.sessionChoices['APPLICATION'])
             self.ApplicationLabel.Enable(True)
             self.Application.Enable(True)
             self.Application.SetValue(self.applicationChoices[_command])
             self.Command.SetValue('')
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
+            self.RootlessSession.SetValue(True)
+        elif not _command and _published:
+            self.SessionType.SetValue(self.sessionChoices['PUBLISHEDAPPLICATIONS'])
+            self.UsePublishedApplications.Enable(False)
+            self.AutoStartSession.Enable(False)
+            self.AutoStartSession.SetValue(True)
+            self.Command.SetValue('')
+            self._last_pubapp_value = True
+            self.RootlessSession.SetValue(True)
         else:
             self.SessionType.SetValue(self.sessionChoices['CUSTOM'])
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
             self.Command.Enable(True)
             self.Command.SetValue(_command)
+            self.RootlessSession.Enable(True)
 
         if _command == 'XDMCP':
             self.XDMCPServerLabel.Enable(True)
             self.XDMCPServer.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
+            self.RootlessSession.Enable(False)
 
         if _command in ('RDP', 'DirectRDP'):
-            self.RDPSettingsLabel.Enable(True)
             self.RDPServerLabel.Enable(True)
             self.RDPServer.Enable(True)
             self.RDPOptionsLabel.Enable(True)
             self.RDPOptions.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
+            self.RootlessSession.SetValue(True)
+            self.RootlessSession.Enable(False)
         else:
-            self.RDPSettingsLabel.Enable(False)
             self.RDPServerLabel.Enable(False)
             self.RDPServer.Enable(False)
             self.RDPOptionsLabel.Enable(False)
@@ -848,20 +982,39 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         else:
             self.DisplayDPI.Enable(True)
 
-        # TODO Fill in the actual DPI
-        self.CurrentKeyBoard.SetValue(not self.profile_config['usekbd'])
-        self.KeyboardLayout.SetValue(self.profile_config['layout'])
-        self.KeyboardModel.SetValue(self.profile_config['type'])
-        if self.CurrentKeyBoard.GetValue():
-            self.KeyboardLayoutLabel.Enable(False)
+        if self.profile_config['usekbd']:
+            self.DontSetKeyboard.SetValue(False)
+            if self.profile_config['type'] == 'auto':
+                self.AutoSetKeyboard.SetValue(True)
+                self.CustomSetKeyboard.SetValue(False)
+            else:
+                self.AutoSetKeyboard.SetValue(False)
+                self.CustomSetKeyboard.SetValue(True)
+        else:
+            self.DontSetKeyboard.SetValue(True)
+        if self.profile_config['type'] == 'auto':
+            self.KeyboardModel.SetValue(_(u'<xkbtype>'))
+            self.KeyboardLayout.SetValue(_(u'<xkblayout>'))
+            self.KeyboardVariant.SetValue(_(u'<xkbvariant>'))
+        else:
+            self.KeyboardModel.SetValue(self.profile_config['type'])
+            self.KeyboardLayout.SetValue(self.profile_config['layout'])
+            self.KeyboardVariant.SetValue(self.profile_config['variant'])
+
+        if self.DontSetKeyboard.GetValue() or self.AutoSetKeyboard.GetValue():
             self.KeyboardModelLabel.Enable(False)
-            self.KeyboardLayout.Enable(False)
+            self.KeyboardLayoutLabel.Enable(False)
+            self.KeyboardVariantLabel.Enable(False)
             self.KeyboardModel.Enable(False)
+            self.KeyboardLayout.Enable(False)
+            self.KeyboardVariant.Enable(False)
         else:
             self.KeyboardLayoutLabel.Enable(True)
             self.KeyboardModelLabel.Enable(True)
+            self.KeyboardVariantLabel.Enable(True)
             self.KeyboardLayout.Enable(True)
             self.KeyboardModel.Enable(True)
+            self.KeyboardVariant.Enable(True)
 
         self.EnableSound.SetValue(self.profile_config['sound'])
         self.DefaultSoundPort.SetValue(self.profile_config['defsndport'])
@@ -920,7 +1073,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             if not re.match('^.*:(1|0)$', _shared_folder):
                 _shared_folder = "%s:1" % _shared_folder
 
-            print _shared_folder
             _shared_folder_path = ":".join(_shared_folder.split(':')[:-1])
             if int(_shared_folder.split(':')[-1]):
                 _shared_folder_autoconnect = _("automatically")
@@ -953,6 +1105,11 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.disable_EditConnected_options()
 
     def disable_EditConnected_options(self):
+        """\
+        If C{action} in the constructor has been set to C{EDIT_CONNECTED} this
+        method will disable several profile manager widgets.
+
+        """
         # disable widgets when editing connected sessions
         if self.action == 'EDIT_CONNECTED':
 
@@ -987,7 +1144,19 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.tab_SharedFilesAndFolders.Enable(False)
 
     def __update_from_screen(self):
+        """\
+        Update session profile configuration from the widget fields and their values.
+
+        """
         self.profile_config['name'] = self.ProfileName.GetValue()
+        self.profile_config['setsessiontitle'] = self.SetSessionWindowTitle.GetValue()
+        if self.UseDefaultSessionWindowTitle.GetValue():
+            self.profile_config['sessiontitle'] = ''
+        else:
+            self.profile_config['sessiontitle'] = self.CustomSessionWindowTitle.GetValue()
+        self.profile_config['autostart'] = self.AutoStartSession.GetValue()
+        self.profile_config['autologin'] = self.AutoLoginSessionProfile.GetValue()
+        self.profile_config['published'] = self.UsePublishedApplications.GetValue()
         self.profile_config['icon'] = self.IconPath
         self.profile_config['user'] = self.UserName.GetValue()
         self.profile_config['key'] = self.SSHKeyFile.GetValue()
@@ -1015,10 +1184,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.profile_config['rootless'] = True
         elif _session_type == 'CUSTOM':
             _command = self.Command.GetValue()
-            self.profile_config['rootless'] = True
-        elif _session_type in ('RDP', 'EMBEDDED_MENU'):
+            self.profile_config['rootless'] = self.RootlessSession.GetValue()
+        elif _session_type == 'RDP':
             _command = _session_type
             self.profile_config['rootless'] = True
+        elif _session_type == 'PUBLISHEDAPPLICATIONS':
+            _command = ""
+            self.profile_config['rootless'] = True
         else:
             _command = _session_type
             self.profile_config['rootless'] = False
@@ -1042,9 +1214,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.profile_config['setdpi'] = self.SetDisplayDPI.GetValue()
         self.profile_config['dpi'] = self.DisplayDPI.GetValue()
 
-        self.profile_config['usekbd'] = not self.CurrentKeyBoard.GetValue()
-        self.profile_config['layout'] = self.KeyboardLayout.GetValue()
-        self.profile_config['type'] = self.KeyboardModel.GetValue()
+        self.profile_config['usekbd'] = self.CustomSetKeyboard.GetValue() or self.AutoSetKeyboard.GetValue()
+        self.profile_config['type'] = self.AutoSetKeyboard.GetValue() and "auto" or self.KeyboardModel.GetValue()
+        self.profile_config['layout'] = self.AutoSetKeyboard.GetValue() and "null" or self.KeyboardLayout.GetValue()
+        self.profile_config['variant'] = self.AutoSetKeyboard.GetValue() and "null" or self.KeyboardVariant.GetValue()
+        if self.profile_config['layout'] == "null": self.profile_config['layout'] = ""
+        if self.profile_config['variant'] == "null": self.profile_config['variant'] = ""
 
         self.profile_config['sound'] = self.EnableSound.GetValue()
         self.profile_config['defsndport'] = self.DefaultSoundPort.GetValue()
@@ -1095,12 +1270,19 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.profile_config['mimeboxaction'] = _mimebox_action
 
     def OnIconChange(self, event):
+        """\
+        Gets called on profile icon change requests.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         _share_location = os.path.split(_icons_location)[0]
         iconsdir = _icons_location
         if not os.path.exists(iconsdir):
             iconsdir = os.getcwd()
-        wildcard = _(u"Icon Files (*.png)|*.png|"     \
-           "All files (*.*)|*")
+        wildcard = _(u"Icon Files (*.png)|*.png|" \
+                     u"All files (*.*)|*")
         dlg = wx.FileDialog(
             self, message=_(u"Choose an icon for this session profile"), defaultDir=iconsdir,
             defaultFile="", wildcard=wildcard, style=wx.OPEN | wx.CHANGE_DIR )
@@ -1114,7 +1296,47 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             rel_path = rel_path.replace( 'icons/PyHoca/128x128/pyhoca-session.png', 'icons/128x128/x2gosession.png')
             self.IconPath = rel_path
 
+    def OnSetSessionWindowTitle(self, event):
+        """\
+        Gets called if the change-session-window-title checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
+        if self.SetSessionWindowTitle.GetValue():
+            self.UseDefaultSessionWindowTitle.Enable(True)
+            if not self.UseDefaultSessionWindowTitle.GetValue():
+                self.CustomSessionWindowTitleLabel.Enable(True)
+                self.CustomSessionWindowTitle.Enable(True)
+        else:
+            self.UseDefaultSessionWindowTitle.Enable(False)
+            self.CustomSessionWindowTitleLabel.Enable(False)
+            self.CustomSessionWindowTitle.Enable(False)
+
+    def OnUseDefaultSessionWindowTitle(self, event):
+        """\
+        Gets called if the use-default-session-window-title checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
+        if self.UseDefaultSessionWindowTitle.GetValue():
+            self.CustomSessionWindowTitleLabel.Enable(False)
+            self.CustomSessionWindowTitle.Enable(False)
+        else:
+            self.CustomSessionWindowTitleLabel.Enable(True)
+            self.CustomSessionWindowTitle.Enable(True)
+
     def enable_DirectRDP(self):
+        """\
+        Gets called if the use-direct-RDP checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.HostLabel.Enable(False)
         self.Host.Enable(False)
         self.SSHPortLabel.Enable(False)
@@ -1136,8 +1358,14 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.tab_Settings.Enable(False)
         self.tab_SharedFilesAndFolders.Enable(False)
 
-
     def disable_DirectRDP(self):
+        """\
+        Gets called if the use-direct-RDP checkbox gets unmarked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if not self.UseSSHProxy.GetValue():
             self.HostLabel.Enable(True)
             self.Host.Enable(True)
@@ -1161,12 +1389,30 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.tab_SharedFilesAndFolders.Enable(True)
 
     def OnSessionTypeSelected(self, event):
+        """\
+        Gets called if another session type gets selected.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         _session_type = [ i for i in self.sessionChoices.keys() if self.sessionChoices[i] == self.SessionType.GetValue() ][0]
+        self.UsePublishedApplications.Enable(True)
+        self.AutoStartSession.Enable(True)
+
+        if _session_type in defaults.X2GO_DESKTOPSESSIONS.keys():
+            self.RootlessSession.SetValue(False)
+            self.RootlessSession.Enable(False)
+
         if _session_type == 'APPLICATION':
             self.ApplicationLabel.Enable(True)
             self.Application.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
             if not self.Application.GetValue():
                 self.Application.SetValue(self.applicationChoices['TERMINAL'])
+            self.RootlessSession.SetValue(True)
+            self.RootlessSession.Enable(False)
         else:
             self.ApplicationLabel.Enable(False)
             self.Application.Enable(False)
@@ -1174,8 +1420,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         if _session_type == 'CUSTOM':
             self.CommandLabel.Enable(True)
             self.Command.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
             if not self.Command.GetValue():
                 self.Command.SetValue('xterm')
+                self.RootlessSession.SetValue(True)
+            self.RootlessSession.Enable(True)
         else:
             self.CommandLabel.Enable(False)
             self.Command.Enable(False)
@@ -1183,18 +1433,24 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         if _session_type == 'XDMCP':
             self.XDMCPServerLabel.Enable(True)
             self.XDMCPServer.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
+            self.RootlessSession.SetValue(False)
+            self.RootlessSession.Enable(False)
         else:
             self.XDMCPServerLabel.Enable(False)
             self.XDMCPServer.Enable(False)
 
         if _session_type in ('RDP', 'DirectRDP', ):
-            self.RDPSettingsLabel.Enable(True)
             self.RDPServerLabel.Enable(True)
             self.RDPServer.Enable(True)
             self.RDPOptionsLabel.Enable(True)
             self.RDPOptions.Enable(True)
+            self.UsePublishedApplications.SetValue(False)
+            self.UsePublishedApplications.Enable(False)
+            self.RootlessSession.SetValue(True)
+            self.RootlessSession.Enable(False)
         else:
-            self.RDPSettingsLabel.Enable(False)
             self.RDPServerLabel.Enable(False)
             self.RDPServer.Enable(False)
             self.RDPOptionsLabel.Enable(False)
@@ -1205,10 +1461,34 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         else:
             self.disable_DirectRDP()
 
+        if _session_type == 'PUBLISHEDAPPLICATIONS':
+            self._last_pubapp_value = self.UsePublishedApplications.GetValue()
+            self._last_auto_start_value = self.AutoStartSession.GetValue()
+            self.UsePublishedApplications.SetValue(True)
+            self.UsePublishedApplications.Enable(False)
+            self.AutoStartSession.SetValue(True)
+            self.AutoStartSession.Enable(False)
+            self.Command.SetValue('')
+            self.RootlessSession.SetValue(True)
+            self.RootlessSession.Enable(False)
+        else:
+            if self._last_pubapp_value is not None:
+                self.UsePublishedApplications.SetValue(self._last_pubapp_value)
+                self._last_pubapp_value = None
+            if self._last_auto_start_value is not None:
+                self.AutoStartSession.SetValue(self._last_auto_start_value)
+                self._last_auto_start_value = None
+
         self.disable_EditConnected_options()
 
     def OnCompressionSelected(self, event):
+        """\
+        Gets called if another compression method gets selected.
 
+        @param event: event
+        @type event: C{obj}
+
+        """
         _pack = self.Compression.GetValue()
         if _pack.endswith('-%'):
             self.ImageQuality.Enable(True)
@@ -1216,6 +1496,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.ImageQuality.Enable(False)
 
     def OnSSHKeyFileBrowse(self, event):
+        """\
+        Gets called if the user requests to browse for an SSH key file (for X2Go client/server connection).
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         sshdir = os.path.expanduser('~/.ssh')
         if not os.path.exists(sshdir):
             sshdir = os.getcwd()
@@ -1231,6 +1518,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SSHKeyFile.SetValue(path)
 
     def OnSSHProxyKeyFileBrowse(self, event):
+        """\
+        Gets called if the user requests to browse for an SSH key file (for SSH proxy client/server connection).
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         sshdir = os.path.expanduser('~/.ssh')
         if not os.path.exists(sshdir):
             sshdir = os.getcwd()
@@ -1246,6 +1540,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SSHProxyKeyFile.SetValue(path)
 
     def OnUseSSHProxy(self, event):
+        """\
+        Gets called if the use-ssh-proxy checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if self.UseSSHProxy.GetValue():
             self.SSHProxyHostLabel.Enable(True)
             self.SSHProxyHost.Enable(True)
@@ -1288,24 +1589,56 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SSHPort.SetValue(self.profile_config_bak['sshport'])
 
     def OnUpdateSSHProxyTunnelFromHost(self, event):
+        """\
+        Gets called whenever the ssh-proxy-tunnel-from-host gets modified.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.Host.SetValue(self.SSHProxyTunnelFromHost.GetValue())
 
     def OnUpdateSSHProxyTunnelFromPort(self, event):
+        """\
+        Gets called whenever the ssh-proxy-tunnel-from-port gets modified.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.SSHPort.SetValue(self.SSHProxyTunnelFromPort.GetValue())
 
-    def OnKeepKeyboard(self, event):
-        if self.CurrentKeyBoard.GetValue():
-            self.KeyboardLayoutLabel.Enable(False)
-            self.KeyboardModelLabel.Enable(False)
-            self.KeyboardLayout.Enable(False)
-            self.KeyboardModel.Enable(False)
-        else:
-            self.KeyboardLayoutLabel.Enable(True)
+    def OnSetKeyboard(self, event):
+        """\
+        Gets called whenever the either of the keyboard-settings radio buttons is selected.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
+        if self.CustomSetKeyboard.GetValue():
             self.KeyboardModelLabel.Enable(True)
+            self.KeyboardLayoutLabel.Enable(True)
+            self.KeyboardVariantLabel.Enable(True)
             self.KeyboardLayout.Enable(True)
             self.KeyboardModel.Enable(True)
+            self.KeyboardVariant.Enable(True)
+        else:
+            self.KeyboardModelLabel.Enable(False)
+            self.KeyboardLayoutLabel.Enable(False)
+            self.KeyboardVariantLabel.Enable(False)
+            self.KeyboardLayout.Enable(False)
+            self.KeyboardModel.Enable(False)
+            self.KeyboardVariant.Enable(False)
 
     def OnSoundEnable(self, event): # wxGlade: X2goMaintProfile.<event_handler>
+        """\
+        Gets called whenever the enable-sound checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if self.EnableSound.GetValue():
             self.PulseAudio.Enable(True)
             self.Esd.Enable(True)
@@ -1322,32 +1655,74 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
 
 
     def OnSetDisplayFullscreen(self, event):
+        """\
+        Gets called whenever the fullscreen-display radion button gets checked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.ScreenWidthLabel.Enable(False)
         self.ScreenWidth.Enable(False)
         self.ScreenHeightLabel.Enable(False)
         self.ScreenHeight.Enable(False)
 
     def OnSetDisplayCustom(self, event):
+        """\
+        Gets called whenever the custom-size-display radion button gets checked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.ScreenWidthLabel.Enable(True)
         self.ScreenWidth.Enable(True)
         self.ScreenHeightLabel.Enable(True)
         self.ScreenHeight.Enable(True)
 
     def OnSetDisplayDPI(self, event):
+        """\
+        Gets called whenever the set-dpi checkbox gets marked.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if self.SetDisplayDPI.GetValue():
             self.DisplayDPI.Enable(True)
         else:
             self.DisplayDPI.Enable(False)
 
     def OnPulseAudio(self, event):
+        """\
+        Gets called whenever the pulseaudio system is seleced.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if self.DefaultSoundPort.GetValue():
             self.SoundPort.SetValue(self.audioPorts['pulse'])
 
     def OnEsd(self, event):
+        """\
+        Gets called whenever the esound system is seleced.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if self.DefaultSoundPort.GetValue():
             self.SoundPort.SetValue(self.audioPorts['esd'])
 
     def OnDefaultSoundPort(self, event):
+        """\
+        Gets called if the user chooses to use the audio system's default audio port.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         if not self.DefaultSoundPort.GetValue():
             self.SoundPortLabel.Enable(True)
             self.SoundPort.Enable(True)
@@ -1360,6 +1735,10 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SoundPort.Enable(False)
 
     def _toggle_localFolderSharing(self):
+        """\
+        Helper method for L{OnToggleLocalFolderSharing}.
+
+        """
         if self.UseLocalFolderSharing.GetValue():
             self.SharedFolderPathLabel.Enable(True)
             self.SharedFolderPath.Enable(True)
@@ -1381,9 +1760,23 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.ServerEncoding.Enable(False)
 
     def OnToggleLocalFolderSharing(self, event):
+        """\
+        Gets called on activation/deactivation of client-side local folder sharing.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self._toggle_localFolderSharing()
 
     def OnSelectSharedFolderPath(self, event):
+        """\
+        Gets called whenever the uses evokes a file browser dialog that allows to choose a folder for sharing.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         shared_folder = os.path.expanduser('~')
         if not os.path.exists(shared_folder):
             shared_folder = os.getcwd()
@@ -1396,15 +1789,43 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.SharedFolderPath.SetValue(dlg.GetPath())
 
     def OnSharedFolderListItemSelected(self, event):
+        """\
+        Gets called whenever a shared folder in the list of already configured locally shared folders is selected.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.DeleteSharedFolderPathButton.Enable(True)
 
     def OnSharedFolderListItemDeselected(self, event):
+        """\
+        Gets called whenever a shared folder in the list of already configured locally shared folders is deselected.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.DeleteSharedFolderPathButton.Enable(False)
 
     def OnSharedFolderPathKeyPressed(self, event):
+        """\
+        Gets called whenever something gets typed in the sharable folder path field.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.AddSharedFolderPathButton.Enable(True)
 
     def OnAddSharedFolderPath(self, event):
+        """\
+        Gets called whenever the user requests to add a folder name to the list of locally shared folders.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         _shared_folder_path = self.SharedFolderPath.GetValue()
         if _shared_folder_path and (self.SharedFoldersList.FindItem(0, _shared_folder_path) == -1):
             idx = self.SharedFoldersList.InsertStringItem(0, _shared_folder_path)
@@ -1414,11 +1835,22 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         self.AddSharedFolderPathButton.Enable(False)
 
     def OnDeleteSharedFolderPath(self, event):
+        """\
+        Gets called whenever the user requests to remove a folder name from the list of locally shared folders.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         _item = self.SharedFoldersList.GetFocusedItem()
         self.SharedFoldersList.DeleteItem(_item)
         self.DeleteSharedFolderPathButton.Enable(False)
 
     def _toggle_useEncodingConverter(self):
+        """\
+        Helper method for L{OnToggleEncodingConverter}.
+
+        """
         if self.UseEncodingConverter.GetValue():
             self.ClientEncodingLabel.Enable(True)
             self.ClientEncoding.Enable(True)
@@ -1431,9 +1863,20 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.ServerEncoding.Enable(False)
 
     def OnToggleEncodingConverter(self, event):
+        """\
+        Gets called whenever the encoding conversion gets enabled/disabled.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self._toggle_useEncodingConverter()
 
     def _toggle_useFileMIMEbox(self):
+        """\
+        Helper method for L{OnToggleFileMIMEbox}.
+
+        """
         if self.UseFileMIMEbox.GetValue():
             self.FileMIMEboxExtensionsLabel.Enable(True)
             self.FileMIMEboxExtensions.Enable(True)
@@ -1446,19 +1889,33 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
             self.FileMIMEboxAction.Enable(False)
 
     def OnToggleFileMIMEbox(self, event):
+        """\
+        Gets called whenever the user enables/disabled the MIME box feature.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self._toggle_useFileMIMEbox()
 
     def __validate(self):
+        """\
+        Validation of all widget fields, called when the user requests to save the session profile.
+
+        @return: status of validation; C{True} for successfully validated, C{False} otherwise
+        @rtype: C{bool}
+
+        """
         validateOk = True
         if len(self.profile_config['name'].strip()) == 0:
             validateOk = False
             self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name is missing, profile unusable!!!'), icon='profile_error')
         elif self.profile_config['name'].strip() in self.session_profiles.profile_names and self.action == 'ADD':
             validateOk = False
-            self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name %s already exists!!!' % self.profile_config['name'].strip()), icon='profile_error')
+            self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name %s already exists!!!') % self.profile_config['name'].strip(), icon='profile_error')
         elif self.profile_config['name'].strip() != self.profile_config_bak['name'] and self.profile_config['name'] in self.session_profiles.profile_names:
             validateOk = False
-            self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name %s already exists!!!' % self.profile_config['name'].strip()), icon='profile_error')
+            self._PyHocaGUI.notifier.send(title=_(u'Profile Manager'), text=_(u'Profile name %s already exists!!!') % self.profile_config['name'].strip(), icon='profile_error')
         elif self.profile_config['usesshproxy'] and self.profile_config['name'] == self.profile_config_bak['name']:
             try:
                 (from_host, from_port) = self.profile_config['sshproxytunnel'].split(':')[0:2]
@@ -1477,13 +1934,20 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
         return validateOk
 
     def OnOKButton(self, event):
+        """\
+        Gets called if the users clicks on the ,,Save'' button.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         wx.BeginBusyCursor()
         self.__update_from_screen()
         if self.__validate():
 
             if self.profile_config != self.profile_config_bak:
 
-                if self.action == 'ADD':
+                if self.action in ('ADD', 'COPY'):
                     self.profile_id = self.session_profiles.add_profile()
 
                 for k in self.profile_config.keys():
@@ -1502,21 +1966,44 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
                                                   text=_(u'Changes to profile have been saved.'),
                                                   icon='profile_save',
                                                  )
-            wx.EndBusyCursor()
+                self._PyHocaGUI.register_available_server_sessions_by_profile_name(profile_name=self.profile_config['name'], re_register=True)
+
+            try: wx.EndBusyCursor()
+            except: pass
             self.Close()
             self.Destroy()
         else:
-            wx.EndBusyCursor()
+            try: wx.EndBusyCursor()
+            except: pass
 
     def OnCancel(self, event):
+        """\
+        Gets called if the users clicks on the ,,Cancel'' button.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.Close()
         self.Destroy()
 
     def OnDefault(self, event):
+        """\
+        Gets called if the users clicks on the ,,Defaults'' button.
+
+        @param event: event
+        @type event: C{obj}
+
+        """
         self.profile_config = copy.deepcopy(self.profile_config_bak)
         self.__update_fields()
 
     def Destroy(self):
+        """\
+        Tidy up some stuff in the main application instance before allowing desctruction of the
+        profile manager window.
+
+        """
         try:
             self._PyHocaGUI._sub_windows.remove(self)
         except ValueError:
diff --git a/pyhoca/wxgui/sessiontitle.py b/pyhoca/wxgui/sessiontitle.py
new file mode 100644
index 0000000..d0156f7
--- /dev/null
+++ b/pyhoca/wxgui/sessiontitle.py
@@ -0,0 +1,177 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
+#
+# PyHoca GUI 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 GUI 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 Affero General Public License for more details.
+#
+# 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.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+modules ={}
+
+try:
+    import wxversion
+    wxversion.select('2.9')
+except: pass
+
+try:
+    import wxversion
+    wxversion.select('2.8')
+except: pass
+
+# Python X2go
+import x2go
+
+# gevent
+import gevent
+import gevent.monkey
+gevent.monkey.patch_all()
+
+import wx
+import os
+
+# PyHoca-GUI modules
+# ... NONE ...
+
+if os.environ.has_key('DESKTOP_SESSION'):
+    WINDOW_MANAGER = os.environ['DESKTOP_SESSION']
+else:
+    WINDOW_MANAGER = 'generic'
+
+class PyHocaGUI_DialogBoxSessionTitle(wx.Dialog):
+    """\
+    Simple dialog box for selecting a session title string.
+
+    """
+    def __init__(self, _PyHocaGUI, profile_name, session_name): 
+        """\
+        Session title renaming dialog box (constructor).
+
+        @param _PyHocaGUI: the master/parent object of the application
+        @type _PyHocaGUI: C{obj}
+        @param profile_name: session profile name
+        @type profile_name: C{str}
+        @param session_name: the X2Go session name of the Window that we intend to modify the name of
+        @type session_name C{str}
+
+        """
+        self._PyHocaGUI = _PyHocaGUI
+        self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
+        self._pyhoca_logger('session title query box started', loglevel=x2go.loglevel_INFO, )
+
+        self.current_profile_name = profile_name
+        self.current_session_name = session_name
+
+        wx.Dialog.__init__(self, None, id=-1, title=profile_name, style=wx.DEFAULT_FRAME_STYLE, )
+        self._PyHocaGUI._sub_windows.append(self)
+
+        self.SetTitle(_(u'Session Title - %s') % profile_name)
+
+        self.titleLbl = wx.StaticText(self, wx.ID_ANY, _(u'Change session title to')+':', size=(-1, -1)) 
+        self.titleTxt = wx.TextCtrl(self, wx.ID_ANY, '', style=wx.TE_PROCESS_ENTER, size=(120, -1)) 
+        self.okBtn = wx.Button(self, wx.ID_OK, _(u'OK'), )
+        self.okBtn.SetDefault()
+        self.cancelBtn = wx.Button(self, wx.ID_CANCEL, _(u'Cancel'), )
+
+        self.Bind(wx.EVT_BUTTON, self.OnOk, self.okBtn)
+        self.Bind(wx.EVT_TEXT_ENTER, self.OnOk, self.titleTxt)
+        self.Bind(wx.EVT_BUTTON, self.OnCancel, self.cancelBtn)
+
+        titleSizer = wx.BoxSizer(wx.HORIZONTAL)
+        btnSizer = wx.BoxSizer(wx.HORIZONTAL)
+        mainSizer = wx.BoxSizer(wx.VERTICAL)
+
+        titleSizer.Add(self.titleLbl, 0, wx.ALL, 5)
+        titleSizer.Add(self.titleTxt, 0, wx.ALL, 5)
+
+        btnSizer.Add(self.okBtn, 0, wx.ALL, 5) 
+        btnSizer.Add(self.cancelBtn, 0, wx.ALL, 5) 
+
+        mainSizer.Add(titleSizer, 0, wx.ALL, 5) 
+        mainSizer.Add(btnSizer, 0, wx.ALL|wx.ALIGN_RIGHT, 5)
+
+        self.SetSizerAndFit(mainSizer) 
+        self.Layout()
+
+        maxX, maxY = wx.GetDisplaySize()
+
+        # we will use the logon window position for this session re-titling windows, as well
+        if self._PyHocaGUI.logon_window_position_x and self._PyHocaGUI.logon_window_position_y:
+
+            # allow positioning of logon window via command line option
+            if self._PyHocaGUI.logon_window_position_x < 0:
+                move_x = maxX - (self.GetSize().GetWidth() + self._PyHocaGUI.logon_window_position_x)
+            else:
+                move_x = self._PyHocaGUI.logon_window_position_x
+            if self._PyHocaGUI.logon_window_position_y < 0:
+                move_y = maxX - (self.GetSize().GetHeight() + self._PyHocaGUI.logon_window_position_y)
+            else:
+                move_y = self._PyHocaGUI.logon_window_position_y
+
+        elif (x2go.X2GOCLIENT_OS == 'Linux') and (WINDOW_MANAGER in ('gnome', 'awesome', 'ubuntu', )):
+
+            # automatically place logon Window for GNOME, awesome
+            move_x = maxX - (self.GetSize().GetWidth() + 20)
+            move_y = 35
+
+        else:
+
+            # automatically place logon Window for KDE4, LXDE, etc.
+            move_x = maxX - (self.GetSize().GetWidth() + 20)
+            move_y = maxY - (self.GetSize().GetHeight() + 70)
+
+        self.Move((move_x, move_y))
+        self.Show()
+
+    def OnOk(self, evt):
+        """\
+        Continue here, if the user clicks the Ok button in the dialog box.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        title = self.titleTxt.GetValue()
+
+        _session = self._PyHocaGUI._X2goClient__get_session_of_session_name(session_name=self.current_session_name, return_object=True)
+        _session.set_session_window_title(title=title)
+
+        self.Close()
+        self.Destroy()
+
+    def OnCancel(self, evt):
+        """\
+        Continue here, if the user clicks the Cancel button in the dialog box.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        """
+        self.Close()
+        self.Destroy()
+
+    def Destroy(self):
+        """\
+        Do some PyHocaGUI specific cleanup if this window gets destroyed.
+
+        """
+        try:
+            self._PyHocaGUI._sub_windows.remove(self)
+        except ValueError:
+            pass
+        try:
+            self._PyHocaGUI._temp_disabled_profile_names.remove(self.current_profile_name)
+        except ValueError:
+            pass
+        wx.Dialog.Destroy(self)
diff --git a/pyhoca/wxgui/splash.py b/pyhoca/wxgui/splash.py
index f14ac32..c7809d5 100644
--- a/pyhoca/wxgui/splash.py
+++ b/pyhoca/wxgui/splash.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -35,20 +35,47 @@ import os
 import basepath
 
 class PyHocaGUI_SplashScreen(wx.SplashScreen):
-    def __init__(self):
-        splash_bitmap = wx.Bitmap(os.path.join(basepath.images_basepath, 'pyhoca-splash.png'), wx.BITMAP_TYPE_PNG)
-        wx.SplashScreen.__init__(self, 
-                                 splash_bitmap,
-                                 splashStyle=wx.SPLASH_CENTRE_ON_SCREEN|wx.SPLASH_TIMEOUT,
-                                 milliseconds=5000,
-                                 parent=None,
-                                 style=wx.SIMPLE_BORDER|wx.STAY_ON_TOP|wx.FRAME_NO_TASKBAR
-                                )
-        self.Bind(wx.EVT_CLOSE, self.OnClose)
+    """\
+    L{PyHocaGUI} splash screen that gets shown an application startup.
+
+    """
+    def __init__(self, splash_image=None):
+        """
+        Splash screen (constructor).
+
+        @param splash_image: file name of a splash image file (currently, only PNGs are supported)
+        @type splash_image: C{str}
+
+        """
+        if splash_image and os.path.basename(splash_image) == splash_image:
+            splash_image = os.path.join(basepath.images_basepath, splash_image)
+
+        if not os.path.isfile(str(splash_image)):
+            splash_image = None
+
+        if splash_image is None:
+            splash_image = os.path.join(basepath.images_basepath, 'pyhoca-splash.png')
+
+        if os.path.isfile(str(splash_image)):
+            splash_wximage = wx.Image(splash_image, wx.BITMAP_TYPE_PNG, )
+            splash_wximage.Rescale(400, int(float(400)/splash_wximage.Width*splash_wximage.Height))
+
+            splash_wxbitmap = splash_wximage.ConvertToBitmap()
+            wx.SplashScreen.__init__(self, 
+                                     splash_wxbitmap,
+                                     splashStyle=wx.SPLASH_CENTRE_ON_SCREEN|wx.SPLASH_TIMEOUT,
+                                     milliseconds=5000,
+                                     parent=None,
+                                     style=wx.SIMPLE_BORDER|wx.STAY_ON_TOP|wx.FRAME_NO_TASKBAR
+                                    )
+            self.Bind(wx.EVT_CLOSE, self.OnClose)
 
     def OnClose(self, evt):
+        """\
+        Hide the splash screen.
+
+        """
         # Make sure the default handler runs too so this window gets
         # destroyed
         evt.Skip()
         self.Hide()
-
diff --git a/pyhoca/wxgui/taskbar.py b/pyhoca/wxgui/taskbar.py
index d4b3c50..7fbdd3b 100644
--- a/pyhoca/wxgui/taskbar.py
+++ b/pyhoca/wxgui/taskbar.py
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-# Copyright (C) 2010-2011 by Dick Kniep <dick.kniep at lindix.nl>
+# Copyright (C) 2010-2012 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2010-2012 by Dick Kniep <dick.kniep at lindix.nl>
 #
 # PyHoca GUI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
+# 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 GUI 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.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -56,16 +56,21 @@ _icons_location = basepath.icons_basepath
 
 class PyHocaGUI_TaskBarIcon(wx.TaskBarIcon):
     """\
-    STILL UNDOCUMENTED
+    Class for the L{PyHocaGUI} taskbar icon.
 
     """
-    def __init__(self, _about):
+    def __init__(self, about):
         """\
-        STILL UNDOCUMENTED
+        Initialize the systray icon. The main application window is
+        the about window, so this one has to be passed in as mandatory
+        argument.
+
+        @param about: instance of the About wx.Frame
+        @type about: C{obj}
 
         """
         wx.TaskBarIcon.__init__(self)
-        self._PyHocaGUI = _about._PyHocaGUI
+        self._PyHocaGUI = about._PyHocaGUI
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
         self._pyhoca_logger('start TaskBarIcon of type: %s' % (wx.PlatformInfo, ), loglevel=x2go.loglevel_INFO)
         self.SetIconIdle()
@@ -73,57 +78,112 @@ class PyHocaGUI_TaskBarIcon(wx.TaskBarIcon):
         self.tooltip = ""
 
     def SetIconConnecting(self, profile_name):
-        self.icon = self.MakeIcon(icon_name='pyhoca-trayicon')
+        """\
+        When connecting show the default icon and some informational text on mouse hover events
+        that gives some information what remote X2Go server the client is connecting to.
+
+        @param profile_name: the name of the session profile the application currently is connecting to
+        @type profile_name: C{str}
+
+        """
         if x2go.X2GOCLIENT_OS == 'Windows':
-            self.icon = self.MakeIcon(icon_name='x2go-logo-ubuntu')
+            icon_name = self._PyHocaGUI.tray_icon_connecting or self._PyHocaGUI.tray_icon
+            self.icon = self.MakeIcon(icon_name=icon_name, fallback_name='x2go-logo-ubuntu')
             self.SetIcon(self.icon, _(u"PyHoca-GUI\nConnecting you to ,,%s\'\'") % profile_name)
         else:
-            self.icon = self.MakeIcon(icon_name='pyhoca-trayicon')
-            self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nCurrently connecting you to remote X2go server ,,%s\'\'") % profile_name)
+            icon_name = self._PyHocaGUI.tray_icon_connecting or self._PyHocaGUI.tray_icon
+            self.icon = self.MakeIcon(icon_name=icon_name, fallback_name='pyhoca-trayicon')
+            self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nCurrently connecting you to remote X2Go server ,,%s\'\'") % profile_name)
 
     def SetIconIdle(self):
+        """\
+        When idle show the default icon and some default informational text on mouse hover events.
+
+        """
         if x2go.X2GOCLIENT_OS == 'Windows':
-            self.icon = self.MakeIcon(icon_name='x2go-logo-ubuntu')
-            self.SetIcon(self.icon, _(u"PyHoca-GUI\nConnecting you to X2go..."))
+            icon_name = self._PyHocaGUI.tray_icon
+            self.icon = self.MakeIcon(icon_name=icon_name, fallback_name='x2go-logo-ubuntu')
+            self.SetIcon(self.icon, _(u"PyHoca-GUI\nConnecting you to X2Go..."))
         else:
-            self.icon = self.MakeIcon(icon_name='pyhoca-trayicon')
-            self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nClient for connecting you to a remote X2go server"))
+            icon_name = self._PyHocaGUI.tray_icon
+            self.icon = self.MakeIcon(icon_name=icon_name, fallback_name='pyhoca-trayicon')
+            self.SetIcon(self.icon, _(u"PyHoca-GUI (Python X2goClient)\nClient for connecting you to a remote X2Go server"))
 
     def CreateSessionManagerPopupMenu(self, evt):
         """\
-        STILL UNDOCUMENTED
+        This method is called by the L{PyHocaGUI} base class when it needs to popup
+        the menu for the default EVT_LEFT_DOWN event.
+
+        @param evt: event
+        @type evt: C{obj}
+
+        @return: a wx-based popup menu object (containing the session and connection manager)
+        @rtype: C{obj}
 
         """
-        self.menu_sessionmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarSessionManager(self._PyHocaGUI, caller=self,))
+        if self._PyHocaGUI.args.single_session_profile:
+            self.menu_sessionmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarSessionProfile(self._PyHocaGUI, caller=self, profile_name=self._PyHocaGUI.args.session_profile))
+        else:
+            self.menu_sessionmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarSessionManager(self._PyHocaGUI, caller=self,))
         return self.menu_sessionmanager
 
     def CreatePopupMenu(self):
         """\
-        This method is called by the base class when it needs to popup
-        the menu for the default EVT_RIGHT_DOWN event.  Just create
-        the menu how you want it and return it from this function,
-        the base class takes care of the rest.
+        This method is called by the L{PyHocaGUI} base class when it needs to popup
+        the menu for the default EVT_RIGHT_DOWN event.
+
+        This method wraps around L{CreateProfileManagerPopupMenu()}.
+
+        @return: a wx-based popup menu object (containing the session profile manager, amongst others)
+        @rtype: C{obj}
+
         """
         return self.CreateProfileManagerPopupMenu()
 
     def CreateProfileManagerPopupMenu(self):
+        """\
+        Create the profile manager / client mangager popup menu (i.e. on right-click of the mouse).
+
+        @return: a wx-based popup menu object (containing the session profile manager, amongst others)
+        @rtype: C{obj}
+
+        """
         self.menu_optionsmanager = self.PopupMenu(menus_taskbar.PyHocaGUI_Menu_TaskbarOptionsManager(self._PyHocaGUI, caller=self,))
         return self.menu_optionsmanager
 
-    def MakeIcon(self, icon_name):
+    def MakeIcon(self, icon_name, fallback_name='pyhoca-trayicon'):
         """\
         The various platforms have different requirements for the
         icon size...
+
+        @param icon_name: rel. file name of the icon image
+        @type icon_name: C{str}
+        @param fallback_name: a fallback icon file name in case C{icon_name} cannot be found
+        @type fallback_name: C{str}
+
         """
         if "wxMSW" in wx.PlatformInfo:
-            img = wx.Image('%s/PyHoca/16x16/%s.png' % (_icons_location, icon_name))
+            icon_size = '16x16'
         elif "wxGTK" in wx.PlatformInfo:
-            img = wx.Image('%s/PyHoca/22x22/%s.png' % (_icons_location, icon_name))
+            icon_size = '22x22'
         elif "wxMAC" in wx.PlatformInfo:
-            img = wx.Image('%s/PyHoca/128x128/%s.png' % (_icons_location, icon_name))
+            icon_size = '128x128'
+
+        if icon_name is None:
+            icon_name = fallback_name
+
+        icon_file = '%s/PyHoca/%s/%s.png' % (_icons_location, icon_size, icon_name)
+        if not (os.path.isfile(str(icon_file)) or os.path.islink(str(icon_file))):
+            icon_file = '%s/PyHoca/%s/%s.png' % (_icons_location, icon_size, fallback_name)
+
+        img = wx.Image(icon_file)
         icon = wx.IconFromBitmap(img.ConvertToBitmap())
         return icon
 
     def Close(self):
+        """\
+        Remove the applet icon from the system tray.
+
+        """
         self.RemoveIcon()
 
diff --git a/setup.py b/setup.py
index 5a5dba6..8aeceee 100755
--- a/setup.py
+++ b/setup.py
@@ -1,36 +1,56 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-# Copyright (C) 2010-2011 by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# 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
+# it under the terms of the GNU Affero General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
 # PyHoca 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.
 
-import platform
+# import the PyHoca-GUI
+import sys
+import os
+import pyhoca.wxgui
+
+PROGRAM_NAME = 'PyHoca-GUI'
+PROGRAM_DESC = '%s is a cross-platform (Windows, MacOS X, Linux) graphical X2Go client.' % PROGRAM_NAME
+PROGRAM_VERSION = pyhoca.wxgui.__VERSION__
+PROGRAM_ICON = "pixmaps/pyhoca_x2go-logo-ubuntu.ico"
+LICENSE = 'AGPLv3+'
+AUTHOR = 'Mike Gabriel, Dick Kniep'
+URL = 'http://www.x2go.org'
+LIBRARY_ZIP = r"lib\shardlib.zip"
+
 from setuptools import setup, find_packages
 from distutils.core import setup
+import platform
+
 if platform.system() == 'Windows':
-    import py2exe
-if platform.system() == 'Linux':
+    NSIS_COMPILE = os.path.join(os.environ['ProgramFiles'], 'NSIS', 'makensis.exe')
+    from py2exe.build_exe import py2exe
+    import os, os.path
+    import subprocess
+    sys.path.append(os.path.normpath('../pyhoca-contrib/mswin/ms-vc-runtime'))
+
+elif platform.system() == 'Linux':
     from DistUtilsExtra.command import *
-from glob import glob
+    py2exe = object
 
-import os
+from glob import glob
+import shutil
 
-# import the PyHoca-GUI
-import pyhoca.wxgui
+from nsis_template import NSIS_SCRIPT_TEMPLATE
 
 #
 # to build .exe file, run on Windows:
@@ -42,41 +62,106 @@ import pyhoca.wxgui
 cmd_class = {}
 data_files = []
 
+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
+
+
+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))
+
+        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_installer(py2exe):
+
+    # This class first builds the exe file(s), then creates an NSIS installer
+    # that runs your program from a temporary directory.
+
+    def run(self):
+
+        shutil.rmtree(self.dist_dir, ignore_errors=True)
+
+        # First, let py2exe do it's work.
+        py2exe.run(self)
+
+        lib_dir = self.lib_dir
+        dist_dir = self.dist_dir
+
+        # Create the installer, using the files py2exe has created.
+        script = NSISScript(
+                            PROGRAM_NAME,
+                            PROGRAM_DESC,
+                            PROGRAM_VERSION,
+                            dist_dir,
+                            os.path.normpath(PROGRAM_ICON)
+                           )
+        print "*** creating the NSIS setup script***"
+        script.create()
+        print "*** compiling the NSIS setup script***"
+        script.compile()
+
 if platform.system() == 'Windows':
-    # building from trunk
+
     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.0.4-2\\*.*'))]
-    pulseaudio_files = [("pulseaudio", glob(r'..\\pyhoca-contrib\\mswin\\pulseaudio-mswin\\pulseaudio-0.9.6\\*.*'))]
-
-    icon_files = [
-        ("icons\\PyHoca\\16x16", glob(r'icons\\PyHoca\\16x16\\*.*')),
-        ("icons\\PyHoca\\22x22", glob(r'icons\\PyHoca\\22x22\\*.*')),
-        ("icons\\PyHoca\\32x32", glob(r'icons\\PyHoca\\32x32\\pyhoca-*.*')),
-        ("icons\\PyHoca\\32x32", glob(r'icons\\PyHoca\\32x32\\x2go*.*')),
-        ("icons\\PyHoca\\48x48", glob(r'icons\\PyHoca\\48x48\\*.*')),
-        ("icons\\PyHoca\\64x64", glob(r'icons\\PyHoca\\64x64\\*.*')),
-        ("icons\\PyHoca\\128x128", glob(r'icons\\PyHoca\\128x128\\*.*')),
-        ("PyHoca_GUI.egg-infocons\\PyHoca\\128x128", glob(r'icons\\PyHoca\\128x128\\*.*')),
-        ("icons", glob(r'pixmaps\\*.ico')),
-        ]
+    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.12.0.1')
+
+    icon_files = datafilelist('icons\\PyHoca', r'icons\\PyHoca')
     img_files = [("img", glob(r'img\\*.*'))]
-    i18n_files = [
-            ("mo\\en\\LC_MESSAGES", glob(r'build\\mo\\en\\LC_MESSAGES\\*.*')),
-            ("mo\\de\\LC_MESSAGES", glob(r'build\\mo\\de\\LC_MESSAGES\\*.*')),
-            ("mo\\nl\\LC_MESSAGES", glob(r'build\\mo\\nl\\LC_MESSAGES\\*.*')),
-            ("mo\\es\\LC_MESSAGES", glob(r'build\\mo\\es\\LC_MESSAGES\\*.*')),
-        ]
-
-    data_files.extend([ "pixmaps\\pyhoca-gui.ico", ] + 
+    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
     )
 
-if platform.system() == 'Linux':
+    cmd_class.update(
+        {
+            "build_exe": build_installer,
+        }
+    )
+
+elif platform.system() == 'Linux':
     cmd_class.update(
         {
             "build" : build_extra.build_extra,
@@ -85,14 +170,13 @@ if platform.system() == 'Linux':
         }
     )
 
-
 setup(
-    name = "pyhoca-gui",
-    version = pyhoca.wxgui.__VERSION__,
-    description = "PyHoca-GUI is a cross-platform (Windows, MacOS X, Linux) graphical X2go client.",
-    license = 'GPL',
-    author = 'Mike Gabriel, Dick Kniep',
-    url = 'http://www.x2go.org',
+    name = PROGRAM_NAME,
+    version = PROGRAM_VERSION,
+    description = PROGRAM_DESC,
+    license = LICENSE,
+    author = AUTHOR,
+    url = URL,
     packages = [ 'pyhoca.wxgui', ],
     package_dir = {'': '.'},
     install_requires = [ 'setuptools', ],
@@ -100,14 +184,20 @@ setup(
     windows = [
         {
             "script": "pyhoca-gui",
-            "icon_resources": [(0, "pixmaps/pyhoca_x2go-logo-ubuntu.ico")],
+            "icon_resources": [(0, os.path.normpath(PROGRAM_ICON))],
+            "dest_base": PROGRAM_NAME,
         },
     ],
     data_files=data_files,
+    zipfile = LIBRARY_ZIP,
     options={
         'py2exe': {
-            'dll_excludes': ['MSVCP90.DLL'],
-            'includes': ['greenlet'],
+            'includes': ['greenlet', 'gevent.core', ],
+            'compressed': 1,
+            'optimize': 2,
+        },
+        'build_exe': {
+            'includes': ['greenlet', 'gevent.core', ],
             'compressed': 1,
             'optimize': 2,
         }


hooks/post-receive
-- 
pyhoca-gui.git (Python X2Go Client (wxPython GUI))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).




More information about the x2go-commits mailing list