[winswitch] [xpra] Implementation of Java/Android client
antoine at nagafix.co.uk
Wed May 13 10:53:59 BST 2015
On 12/05/15 13:46, Jakub Księżniak wrote:
> Of course, I'm willing to share the code and I thought about
> publishing it on GitHub, but it's quite a mess now. I'll try to clean
> up it soon, or I can PM you earlier if you want.
"Release early, release often"... something we have somewhat failed to
But if I post it, others may be able to help.
I've just posted an updated Android build based on the current trunk
(which is not great but better than nothing):
> Regarding 'transient-for' hint, I've got difficulties to run xprop and
> open menus at the same time. :) The program I run is 'konsole' from
> KDE, but also Gimp and other apps have this issue.
You can always run "DISPLAY=:XXX xprop -root -tree" via ssh, or using a
sleep timer from another terminal.
That's what I did and I found a bug in xpra which prevented us from
detecting the "transient-for" hint if the window referred to is an
override-redirect window, this is fixed in:
And will be in the next stable update.
> Jakub Księżniak
> 2015-05-12 6:56 GMT+02:00 Antoine Martin <antoine at nagafix.co.uk
> <mailto:antoine at nagafix.co.uk>>:
> On 12/05/15 00:52, Jakub Księżniak wrote:
> Hello devs,
> I've started writing a new Java/Android client. Currently, I'm
> developing a
> Swing client as a Proof of Concept and I think, that it has
> surpassed the old java client found in SVN repo, as it
> supports both
> bencode and rencode packet encodings, fully controls
> life-cycle of windows
> and popups (create, move, resize, etc.) and handles all mouse
> Can you share the code so we can try it?
> However, it still lacks keyboard support and I'd like to ask
> you for help
> and explanation, how key mapping works? (If that's not
> possible then I'll
> try to figure out it on my own. :-))
> Good question.. but there is no easy answer I am afraid.
> The key mapping code is a mixture of GTK and X11 key definitions
> (because that's how the code started), with lots of hacks to get
> other platforms to work more or less properly...
> In the old java client there is a code that builds
> key-mappings and appends
> them to 'hello' packet. Each KeySpec consists of a keyval,
> keycode, group and level. Then, on 'key-action' event, there
> is sent
> keyval, keyname and keycode again. It looks like some
> redundant data is
> sent here, so I'd like to simplify it a bit, but first I need
> to understand
> what design decisions are behind this key-mapping logic. :p
> Mostly: backwards compatibility.
> They are not as redundant as you might think. The same keycode can
> emit multiple keysyms.
> I would focus on getting the basics working with your new client
> rather than trying to refactor some code which is very tricky to
> get right for all platforms.
> (unless you have time to test all the platforms with all the
> layouts - we're talking many weeks of testing here...)
> Also, I've noticed some issues with my Xpra installation
> 1. Initial window positioning constantly changes.
> a) $ xpra start :100 --start-child=xterm
> b) Connect with 'xpra attach' to the server and move the
> window to the top
> left corner.
> c) Disconnect and connect repeatedly and notice how the window
> is moved a
> bit down on each connection. (I'm using KDE environment, if it
> That's a known issue with the window frame moving the actual
> window contents a bit.
> Not a huge issue IMO.
> 2. When a menu is opened, the Xpra server provides a
> 'transient-for' value
> which helps to associate with a parent window, but when a
> sub-menu is
> opened the 'transient-for' is missing. Is it a correct behaviour?
> Which application are you testing with?
> The transient-for hint is supplied (or not) by client applications
> and xpra just forwards it to the client.
> Unfortunately, many applications and toolkits do not always
> provide this useful window management hint.
> You can verify it server-side with xprop.
> shifter-users mailing list
> shifter-users at lists.devloop.org.uk
> <mailto:shifter-users at lists.devloop.org.uk>
More information about the shifter-users