{5} Accepted, Active Tickets by Owner (Full Description) (43 matches)

List tickets accepted, group by ticket owner. This report demonstrates the use of full-row display.

Antoine Martin (43 matches)

Ticket Summary Component Milestone Type Created
#27 re-enable run-as-root server mode Client 1.1 defect 10/25/09

There are some bugs lurking there, NX/Xvnc are missing "su" so the sessions would be running as root!

#274 uppercase username sensitivity Global 0.11 defect 02/25/15


current version of winswitch have problems with case sensitive username. Currently it doesnt maintain the case of the username when parsing to other softwares (putty or any other). Looks like this was not a problem with old openssh, but now the username case is sensitive.

How to reproduce: Username: ALLUPPERCASE server machine: linux, OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 Winswitch:

setup login to $server_machine with $USERNAME in uppercase. all winswitch attempts to connect will fail. If you setup winswitch without username and password, and type the username by hand in all uppercase, it will fail too, so it's a problem of parsing the username to the program since openssh will only recognize the uppercase name.

This will not work with ssh keys either.

within a terminal (cygwin for example), the ssh ALLUPERCASE@$server_machine works like a charm, as also with plink/Tortoise provided by winswitch.

#35 CUPS printing support Global 1.0 defect 10/25/09

This bug is just a big tracker bug for all things related to printing.
Looks like we may need (at least for MS Windows clients... sigh) to start a CUPS server for each session (or is it for each client??): http://www.cups.org/documentation.php/doc-1.4/ref-client-conf.html

To deal with multiple remote users connected to the same user account (as there is only one


we should be able to use the CUPS_SERVER environment variable for that: http://ait.web.psi.ch/services/linux/guides/system/cups/local_cups_server/ but it doesn't seem to do what it is supposed to do...
Maybe we need an IP per cups forward? (if we can't set the port number)

This bug probably depends on #7 (smb support). In theory we can print to the client via: smbclient //printserv/myprinter -c "print myfile.txt" More info on using smbspool here

#43 disable shutdown options in virtual desktops! (and logout virtual desktop only!) Client 1.0 defect 10/26/09

Some desktops (gnome and others) offer the option to shutdown/reboot. I also have the case where openbox will log me out of my real desktop when I logout of the virtual one! WTF!
In a virtual desktop environment this is most certainly NOT wanted.
We need a way to tell the window manager to just offer logout and nothing else.
Something a bit like these gconf keys maybe?
Maybe try to detect which commands get used and define dummy aliases for them? Or maybe it's dbus related?

#44 Start menu shortcuts need more attention, they go stale Client 1.0 defect 10/26/09

We can remove existing commands during the applet's lifetime but the shortcuts do not currently get deleted. We need to replace the current lambda delete callback with a generic callback like ServerCommand?.remove() so we can call it from timeout.
Some of the shortcuts may just be invalid, we should pass them to a wrapper than can delete them if the applet replies it's invalid?
We may also want to remove them when we disconnect from a server? Make it an option? Start the applet on demand?...

#76 automate creation of the macos DMG images Client 1.0 defect 01/23/10

Currently this is a manual (tedious) process, best documented here: http://mac101.net/content/how-to/how-to-create-dmg-art-for-fancy-application-installations/comment-page-1/ (and also here: http://www.wikihow.com/Make-a-DMG-File-on-a-Mac and here: How to create a custom dmg installer on mac)

But there must be a better way, maybe one of these can help:

#84 merge out-of-tree tests and run them as part of release scripts Client 1.0 defect 02/07/10

also need to write a lot more tests

#109 supports password less logins Client 0.12 defect 07/01/10

We check that the password exists before calling attach_to_session()... so this is not going to work as-is.

This is also used in some places to popup the quick_connect window. Not going to be easy!

#162 crypto incompatibilities between pycrypto and bouncycastle Android 0.12 defect 09/20/11

There are at least two things that need addressing:

  • verify_key(...) sometimes fails and therefore the identity of the server is rejected, not sure why this is intermittent
  • When decrypting encrypted messages:
    org.bouncycastle.crypto.DataLengthException: input too large for RSA cipher.

I am still a bit puzzled as to why pycrypto manages to decrypt such blocks and BouncyCastle does not. Either we fix the data length using a specific padding scheme (as the length of the input looks fine as it is: <100bytes with 4096bit keys is ok), or we use a symmetric cipher for all encrypted packets (and exchange it during the login phase).

More info on this issue: Too much data for RSA block fail

See also #158

#247 system tray menu has incorrect dimensions on multi-head UI 0.12 defect 04/23/14

Platform: Windows (very likely exists everywhere, but none of my Linux boxes have working rotation support)

Main display is a laptop display, 1600 x 900. Secondary display to the right is 1200 x 1920. Tertiary display to the right of that is 1280 x 720. Tertiary display appears irrelevant to problem.

When clicking on taskbar tray on left most monitor, I get the menu with totally incorrect internal dimensions, and have to scroll many lines into view to see anything: left monitor screenshot

When clicking on taskbar tray on secondary monitor, the menu appears with the correct internal dimensions, but is located complete out of the correct position (this happens on all systems with multiple monitors, not just with large resolution differences): middle monitor screenshot

When selecting the system tray menu on the tertiary monitor, it appears both extremely out of place, as well as with the wrong internal dimensions: right monitor screenshot

... I suspect, that it is trying to draw the menu in the absolute coordinates for the desktop, and using the absolute desktop dimensions, when it should be doing it based on the currently active display rather than the entire desktop space.

#280 remove gstreamer sound support Global 0.11 defect 07/01/15

As reported in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785871

winswitch currently still depends on GStreamer 0.10.

GStreamer 0.10 is no longer maintained and supported by the upstream project since almost 3 years, and contains many known bugs that are fixed in the new 1.x release series of GStreamer. Next to many bug fixes, the new release series also contains many other improvements, new features and a more streamlined API.

For the next Debian release GStreamer 0.10 is planned to be removed.

#292 No Applet icon on OSX 10.11.6 Global defect 09/29/16

I've tried both the 0.12.21 and 0.12.22 builds on my Mac. The applet window never displays in the system tray. The server starts and the Ubuntu system can connect. But it is not possible from the Ubuntu system to start an app on the Mac.

Please let me know what files / logs you need for troubleshooting purposes.

#91 make file sharing protocol agnostic (support nfs, sshfs, etc..) Client 1.0 enhancement 03/01/10

The data structures should be ok (generic enough). (see #7)

What we need is to be able to hook any number of filesystem backends at both ends (and configure/detect which ones are available and enabled). The code also needs to me moved out of client_channel.add_mount_point - this was done for expediency, but definitely not the right place for it!

This will also make it fairly easy to support client-mounts-server mode (not going to work for win32 mounting smb via tunnels - unless they have fixed it in newer versions of windoze)

#92 fine grained access rights for clients: globals + per session options Client 1.0 enhancement 03/01/10

At the moment, if a client can login then he can access everything.

We must change the way we store authorization keys from the current ssh style (one line per file in .winswitch/client/authorized_keys - which should be in /server/ anyway) to a first class object: ClientPermissions, saved as UUID.conf

OTOH at minimum, we should have:

  • can_start_session
  • can_start_desktop
  • can_control_as_owner
  • can_control_as_actor
  • can_shadow_[local_display|vnc|nx]
  • can_tunnel_[sound|print|file]
  • can_grant_permissions
  • can_see_others_permissions

On login, we look it up and pass the permissions back to the user as part of the add_user command. The ssh-add and local logins will grant all permissions automatically.

Some new session attributes (set on start and modifiable):

  • locked (only owner/actor can release it)


Some new commands:

  • set_session_attributes (and also overload start_session) to protect a session.

#95 window manager integration rework Client 0.12 enhancement 03/05/10

WM_Util will log errors whenever we try to use a missing function. We should have just subclassed for each implementation and provide a fallback one that doesn't do much (and logs the error just once)

Could also be used to workaround the NX bug where it needs a screen refresh when we (re-)connect to a seamless app.

#97 hook support for external sessions (spice, qemu vnc server, local server, etc) Client 0.12 enhancement 03/05/10

These sessions cannot be started, may be stopped (if we have the pid and allow it). We may not be able to detect connection server side (good thing we still have the client status update code for vnc!)

We need a way to register them (ie: when starting a qemu instance) and maybe remove them (if we want to or if we can't detect the process' ending with its pid)

#100 better livirt support: use native python api and support start/stop instance Client 1.1 enhancement 03/23/10

python API: http://libvirt.org/python.html

Show inactive sessions and make resume start the instance before connecting via vnc. Stop could trigger a shutdown. etc

Start new session could fire "virt-manager --new" or something, via the preferred seamless protocol. Not sure this is really needed.

#135 better start menu integration: provide tools, on-off via magic key, start if needed Client 0.12 enhancement 03/03/11

The new feature in 0.11.3 to wrap regular commands via winswitch_command_wrapper is very neat (and fast too!), but for more people to use it we need to make it easier to setup: provide a tool to make it easier to convert a bunch of .desktop files to use/not-use the wrapper.

It needs to:

  • be able to run as root to change system wide settings
  • run as user and save to user specific shortcuts
  • take the blacklists into account so we don't convert software that does not work (see #132)

The freedesktop menu specification seems to allow this sort of thing. The freedesktop menu article covers similar grounds to what we want (refers to the 'alacarte' menu editor and covers the drawbacks of duplicating menu entries)

The wrapper also needs an easy way of being toggled:

  • global on/off option which can be changed from applet
  • detect magic key and based on wrapper_magic_key_action, either:
    • launch via wrapper
    • do not launch via wrapper (if default is off)
    • ask
  • option to start the applet if it is not running

Also maybe:

  • detect if the desktop files have been modified (ie: by OS upgrades) and re-apply the changes

It may be worth looking at #34 (menu configuration app) at the same time.

#168 More options for SSH connection Client 0.12 enhancement 11/13/11

I need to use a machine as gateway; currently this is done via a

ProxyCommand ssh user@host netcat %h %p

in my ~/.ssh/config. This works fine for openssh and xpra, but winswitch doesn't use this information (yet).

A similar mechanism would be nice; or, at least, some kind of (pre-)connect command that can build the first hop.

Furthermore, I currently use a TCP remote-port forwarding to get some actions tunneled back; it would be nice if either this, or some other notification mechanism (sending strings) could be done over the same channel.

#176 better support for VirtualBox sessions Global 0.12 enhancement 12/21/11

r4569 makes VirtualBox sessions usable but has a number of limitations.

  • password mode is broken? rdesktop/xfreerdp aren't very helpful with the error message here. (ie: "ERROR: send: Broken pipe")

(also when loading a session from disk: verify that the password we have is the right one by re-encoding it rather than always assigning a new one?)

  • when the session fails to start we end up calling early_failure which sets it as UNAVAILABLE but this gets reset when the session data is parsed again. Either leave it as unavailable or...?
  • we should fire call_when_done when the server log shows the port is ready rather than polling it. ie:
    VRDE server is listening on port 3389.
    VRDE server is inactive.
  • support cloning via the UI (since we already enable multi-attach)
  • allow local user to resume via SDL? Pure client-side session handling will complicate things..


#45 full virtual desktops show too many applications in their menus Client 1.0 defect 10/26/09

We filter out the ones that are not to be used in virtualized environments in load_desktop_menus.py, but when we launch a full virtual desktop it will use all the apps found in /usr\[/local\]/applications
We need a way to tell those window managers what .desktop files to use... and more importantly, which ones to ignore.

Create a new $XDG_CONFIG_DIRS=~.shifter/server/virtual-desktop-menus for the virtual desktops and set the environment variable before launching them. see xdg menu spec and environment variables

We must create this local copy on first startup (which means it will go stale... sigh) and patch it to remove the entries we don't want.. (tricky - see #94)

See also bug #43 (remove shutdown option from menus)

#179 avoid threaded code as much as possible Android 1.0 defect 12/28/11

We should be using callbacks and twisted_exec to avoid both blocking and the need for threading.

Threaded code is more complex, requires locking and often causes bugs.

As of r4536 (after improvements in r4635, r4631, etc), here are the remaining occurrences of threaded code that should be converted/improved:

  • applet / client_base threaded_start - messy..
  • controller:
    • threaded_ready
    • capture_display
    • do_shadow_session
    • reload_server_start_menu
  • quick_connect.validate: slow socket check should use twisted (low priority)
  • version_check: slow - safe via ask(), maybe we should use twisted for downloading the data? (low priority)
  • FS_Client_Helper (currently unused - low priority)

The following occurrences have been verified or fixed already:

  • controller: open_file
  • server_line_connection.do_send_bytes
  • server_util_base.start_read_from_log must use a thread as it may well be slow/long due to I/O and callbacks: process_log_data is now safe and process_log_line (many instances) has been verified
  • local_named_pipe (must run in its own thread?)

In progress / pending:

  • gstreamer_util.exec_launch_wrapper: should use twisted_exec

#181 winswitch: session activity in menu Client 0.12 defect 12/30/11

small nitpick: winswitch + xpra active on both sides killing winswitch on server, choosing "connect" in applet says for the (still active) xpra "resume" in the menu, not "detach" ie. winswitch doesn't see that this session is still connected

after resuming the xpra session I now have "connect" for the host, "detach" for the session, and the winswitch configure window "servers" says server not connected, too.

#218 --open_server_config bugs Client defect 09/04/12

winswitch 0.12.15, debian package

winswitch_applet --open_server_config= has these bugs:

  • the applet.log gets rotated; call it twice, and the running applet logs into a deleted file.
  • it doesn't connect; the winswitch menu shows the server as connected, but the sessions are not resumed, and clicking on "resume" just makes the server-menu show up disconnected again.

Generally I'd like to say "connect to server X, session named Y" - where X can contain the "ssh://" indicator, for example.

Perhaps a dbus interface would be better?

#222 Option to leave sound alone Xpra defect 10/03/12

I run Clementine through xpra so I can access it from different computers but have it always play sound through the same computer, the one connected to my speakers. This works great.

When I use winswitch, even when I turn off all sound options, the sound output from Clementine is still interfered with, and it doesn't play through the pulseaudio daemon on the system Clementine is running on. I even tried using ALSA output in Clementine, instead of PA, but it still doesn't play sound.

I would like for winswitch to do absolutely nothing to applications' sound output when I have the sound options turned off. :)

#228 Forum is down Global defect 12/12/12

When hitting winswitch.org/forum response is: Error 500 Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

I think *I* caused this following these steps:

1 - register new user for me using email and password 2 - click on verification link in email 3 - attempt to associate OpenID account (using Gmail) 4 - accept Google's warning on linking account 5 - attempt to associate OpenID account with "existing account" created in step 1 above, providing username and password specified in step 1

At this point, the forum threw the 500 error. Sorry :(

Also, is the forum the right place to post user questions? (there is little activity there) I checked the IRC channel, but no one was there (maybe remove the link to irc.winswitch.org on http://winswitch.org/documentation/ or update to freenode)

#234 wheezy beta repository contains no winswitch package Website, Email, etc defect 04/04/13

Following the instructions on the site, I've added the beta repository for debian wheezy to my apt sources, run apt-get update and then apt-get install winswitch, but no such package exists.

Inspecting the repository in a web browser, the repo contains three packages: parti, python-wimpiggy and xpra

How do I proceed?

#24 Window manager integration on MS Windows: "Windows Shell Extensions" Client 1.1 enhancement 10/25/09

Use "Windows Shell Extensions" to make it easier to action on a window (since the extension will be placed in the window's bar)

For Linux alternatives, see #111 (cant be done with metacity or other default window managers - shame that)

#25 Nautilus integration: add entries to "Send to" dialog Client 0.12 enhancement 10/25/09

When selecting "Send to" on a file in nautilus, it offers options like 'Obex', 'Email',...
We should be able to integrate there.

#33 use dbus to get notifications of screensaver state changes Client 0.12 enhancement 10/25/09

On linux we use xlib to know the "idle time" of the X session and compare that against the timeout value.
We could just do something more similar to what we do on win32 and get notifications when the screensaver is (de)activated:

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"

More information about the dbus interface, and in particular the ActiveChanged signal in the gnome-screensaver doc

The FAQ contains an example of actions using dbus-monitor: perform_actions_when_the_screensaver...

For reference, the win32 code is track-session-events (from the great win32_how_do_i)

Synergy+ has a bug entry with useful links in it: Support for gnome-screensaver as well as xscreensaver

Some other useful pointers:

#34 simple gtk application to configure the applications shown in menus Client 0.12 enhancement 10/25/09

A simple window with 2 long lists of .desktop files, allow the user to activate/de-activate entries.
This can be added as a "main-menu" server command as per bug #4

See also #135: "better start menu integration"

#37 Allow users to lock a session to prevent other users from stealing it Client 1.0 enhancement 10/25/09

This lock should be implemented client side only so the server can still make a policy decision to force the client to disconnect.

part of #92

#53 export local displays to a remote server via a reverse tunnel Global 1.0 enhancement 11/27/09

Now that we can export local displays (see r1397 and #12)

We can export these displays to a remote server by getting the server to give us a remote port and setting up a reverse tunnel to a local port on the client (reserved for nx shadow process). When we request connection (detect local access and use a shortcut - or even warning if same display as current), get the client to start the nx shadow, then it sends the session to the actual client.

Since we may want to export many local displays to a single remote server, we should add these X sessions to the server and let the server provide the remote port (as per usual in an 'add_session' message). Then on the client which owns this display we simply forward the display to that port (rather than that port back to a local port). The status of the session should be 'starting' on the server until the client updates it to 'available' once the tunnel is ready. For connecting: the server should ask the client to start nxagent, once that is done the client can set 'connecting' OR just send the session to the client that requested it.

We should also deal with clients connecting to local displays remotely exported more cleverly by not using 2 tunnels! (just detect this is local and connect directly).

This can be done via NX or VNC, re-using much of the same server-side code... so this may require a bit of refactoring.

#93 allows users to change the list of screen resolutions for virtual desktops Client 1.0 enhancement 03/05/10

step 1: move it to a GlobalSettings

step 2: UI to add/remove values

#110 Allow to change "ssh" argument from GUI Client 1.1 enhancement 07/31/10

Given the "New connection" dialog, you can only select between "SSH" and direct.

I've filed an issue with xpra (http://code.google.com/p/partiwm/issues/detail?id=28) to connect through an inner host via SSH.

The solution I've found was to use "--ssh 'outer ssh inner'" to make this work.

So, the New Connection dialog (but any other connection editing dialogs also), should allow to specify the ssh command to be used.

Alternatively / additionally, as mentioned in the xpra issue, "outer:inner" could get recognized and handled as an array of hosts in the first place.

#111 better desktop integration: edge of screen movement on *nix Client 1.0 enhancement 08/06/10

We should be able to re-use some of the techniques from x2vnc and x2x to detect when the window/mouse is over the edge of the screen and use this as a trigger to send the application to the machine defined as being attached to that edge.


  • Integration with the window manager: how do we find if there is a window being dragged easily? (in python and without libX11/win32 code if possible...) - maybe defining a compiz extension would be easier?
  • UI for defining which machines are attached to which edges... and how to deal with machines coming and going in a consistent manner.


  • Once a plugin mechanism is added to synergy+, we could potentially use that to hook our window move, see this discussion

For MS Windows, see #24

#132 workaround applications that daemonize and return after launch Server 0.12 enhancement 03/03/11

Examples of problematic software:

  • KDE apps
  • open-office
  • firefox
  • chrome

For applications that cannot be launched multiple times (open-office, most browsers), it is unlikely that the solution will be perfect as it will probably still fail to launch more than once (as opening again only adds a new tab/view to these apps). In this case, we may want to detect that the application is already running and offer to resume it or at least notify the user.

For applications that can be launched multiple times, we may be able to use:

  • systemd or just re-use some concepts (use of containers). The advantage of integrating with systemd would be the session management (we could hook dbus,cups,etc here), the downside is that this is Linux only (and not even available or installed everywhere) so we would still need a fallback.
  • LD_LIBRARY tricks - no, don't want to go there.
  • proc connector - again this is Linux specific. It is much more lightweight than systemd though. We would still have to wrap this in something, ideally integrate it with the twisted/gtk main loop. This is probably the easiest option, at least for experimenting.

#42 secure VNC connections better Global 1.1 task 10/26/09

VNC uses a very weak authentication mechanism: an 8 character password! ouch

So we could add an option to always tunnel VNC. (server side or client side? both?) OR use tls and certs TigerVNC 1.1 supports gnutls

#98 security policies: selinux, smack, etc... also handle chroots better Client 1.0 task 03/23/10

probably depends on #27

#144 rebuild Xming from source Windows Build 1.0 task 04/04/11

Some links:

Ideally, also build a 64-bit version as part of #142

#158 pycrypto does not use any padding with RSA... Client 1.0 task 08/28/11

Which is potentially insecure.

Practical attacks seem difficult, nonetheless we should either pad it (ourselves? yuk) or move to another crypto library (pita). See also #162

#146 skip all encryption when using local unix domain socket, win32 pipe or fake connection Global 1.1 enhancement 04/04/11

In all of these cases, encryption will consume extra cpu for no good reason.

#249 Shortcut in MS-Win should be named "WinSwitch" Windows Build enhancement 04/25/14

currently it's named "Window-Switch", which prevents it from being found upon typing in MS-Win "Search Programs and Files" feature.

Note: See TracReports for help on using and creating reports.