Synergy-core: Ctrl key doesn't work in VMware on client

Created on 31 Oct 2014  Â·  25Comments  Â·  Source: symless/synergy-core

I can not use "ctrl" key on Guest OS of Client's VMWare.

bug

Most helpful comment

Same problem, wrote small script which checks if modmap was cleared and if so puts the controls back.

#!/bin/sh
ERG=`xmodmap | grep -c "Control_L (0x25),  Control_L (0x42),  Control_R (0x69)"`
if [ $ERG -eq 0 ]; then
    xmodmap -e "add control = Control_L Control_R"
fi

named it "modmap.sh" maked it executeable and start with:

$ watch -n 1 ./modmap.sh

Waiting for better solution ...

All 25 comments

+1.
Synergy+VirtualBox works fine, but when using Synergy with VMWare, this happens.

More information for my question.
My Machines:
Server: windows 7 + synergy 16.0
Client: ubuntu 12.04 + VMWare 10.0.3 build-1895310 + synergy 16.0

Using any kind of corporate/full version of vsphere/vcenter and trying to pass through keypresses to items even within your own screen will not work. This has been an issue since at least a year, which is when i downloaded and continues today, where we've paid for the product.

The only way i, as a hypervisor admin, both at home and work, can use synergy, is knowing that any letter keypresses should be ok, but shift, ctrl, or alt will not work, and sometimes even trying to get focus in a vmware remote console window may not be possible.

It is usually easier to just close the product if i know i have to manage any vmware virtual machines, which is awful.

I use windows 8.1 and windows server 2012r2, and mostly control other server2012r2 guests.

+1. Every other key works inside VMware but Ctrl. Shift / Alt / Caps-Lock are all working just fine.

Synergy 1.6.2
Server: Mac OS X 10.9.5
Client: CentOS 7 (ctrl key works)
VMware Player: 7.0.0 build-2305329 + Windows 7 (ctrl key fails)
VMware Player: 7.0.0 build-2305329 + CentOS 6 (ctrl key fails)
VMware Player: 7.0.0 build-2305329 + CentOS 5 (ctrl key fails)

Same issue. This completely breaks synergy for me because I am in constant need of copy and paste in the VM. Because of this, I can't use synergy at all when inside my VM (which is often).

Synergy server and client: Linux Mint 17, all updates installed as of 12/16/14.
Synergy: 1.6.2
VMWare: Workstation 9.0.3 build-1410761
VMWare Guest: Windows 7, SP1

Adding some debug logs to help troubleshoot.

ctrl key working in client

DEBUG1: recv key down id=0x0000efe3, mask=0x0002, button=0x003c
DEBUG1: mapKey efe3 (61411) with mask 0002, start state: 0000
DEBUG1: find best: 0000 0002
DEBUG1: best key index 0 of 1 (exact)
DEBUG1: found key in group 0
DEBUG1: state: 0000,0000,0000
DEBUG1: flip: 0000 (0000 vs 0000 in 0000 - 0000)
DEBUG1: desired state: 0002 0000,0000,0000
DEBUG1: flip: 0000 (0000 vs 0002 in fffd - 6020)
DEBUG1: mapped to 025, new state 0002
DEBUG1: keystrokes:
DEBUG1: 025 (00000000) down
DEBUG1: recv key up id=0x0000efe3, mask=0x0000, button=0x003c
DEBUG1: new state 0000
DEBUG1: keystrokes:
DEBUG1: 025 (00000000) up

ctrl key failing in VMware on client

DEBUG1: recv key down id=0x0000efe3, mask=0x0002, button=0x003c
DEBUG1: mapKey efe3 (61411) with mask 0002, start state: 0000
DEBUG1: find best: 0000 0002
DEBUG1: best key index 0 of 1 (exact)
DEBUG1: found key in group 0
DEBUG1: state: 0000,0000,0000
DEBUG1: flip: 0000 (0000 vs 0000 in 0000 - 0000)
DEBUG1: desired state: 0002 0000,0000,0000
DEBUG1: flip: 0002 (0000 vs 0002 in ffff - 6020)
DEBUG1: no key for modifier 0002
DEBUG1: unable to match desired modifier state (0002,ffff) for key 37
DEBUG1: can't map key
DEBUG1: recv key up id=0x0000efe3, mask=0x0000, button=0x003c

  • 1
    Same issue with Ubuntu host and Windows 7 in VmWare Player with synergy 1.6.2
    In my case only the CTRL key is not working. Shift/Alt/Capslock... all work fine

Just curious, does Left Ctrl or Right Ctrl make a difference to this? I've encountered times where only the Left Ctrl and Left Alt would work when interacting with VMs, while the right ones would apparently just get lost.

@dragon788 in my case, both left ctrl and right ctrl are failing

@dragon788, also my case both left/right ctrl are failing.

Here's my setup.
PC A:

  • Ubuntu 14.04
  • Synergy Server 1.6.2
    PC B: Ubuntu 14.04
  • Synergy Client 1.6.2
  • VMWare Workstation. 10.0.3 build-1895310
  • VMWare Guest OS: Windows 7 SP1 Ultimate 64bit.

Here's my test.
All tests are done FROM Server's keyboard TO client's vmware GuestOS.

Onscreen Keyboard

Open "Onscreen Keyboard" application in windows guest os by Win+R > osk.exe

  • by pressing CTRL key, you get visual representation on screen.
  • by pressing ALT key, you get visual representation on screen.
  • Press Ctrl+Alt, Only Ctrl key is pressed.
  • Press Alt+Ctrl, Both Alt and Ctrl key is pressed.

So, seems single key press is sending over.
however, combination of CTRL+key doesn't seem to work.

Notepad

I tried both enable/disable clipboard sharing on vmware, but no luck.
Open Notepad,

  • Alt+F opens File Menu
  • Alt+Tab switches between open windows.
  • Alt+Shift+Tab switches between open windows.
  • Shift+A types capital A letter
  • CapsLock On & type B types capital B.
  • Win+E opens Explorer
  • Ctrl+A NOT selects all.
  • Ctrl+C & Ctrl+V NOT copy & paste.

Internet Explorer

Open IE, open up more than 2 tabs,

  • CTRL+Tab Not change between Tabs.

I can't figure out where it's failling, either vmware's or synergy.

Seems like this is very old issue not solving yet.
https://communities.vmware.com/message/785283#785283

related issue: #10

Yeah, I've got the issue too. Control key as a modifier refuses to work within VMware Workstation 11 running a Windows 7 guest on an Ubuntu Linux 14.10 machine, which is operating as the synergy client. The synergy server is also Ubuntu 14.10. Running 1.7.3 on both.

Well, it's pretty obvious what's going on. Run a terminal window side-by-side with your VMWare window, in the terminal run: watch --interval=1 xmodmap

and let the vmware window take focus. watch it destroy your modmap and restore it upon loss of focus.

Here's my temp workaround, running: sleep 5; xmodmap -e "add control = Control_L Control_R"

And enter the vmware workstation window before the 5 seconds. I'll figure a permanent way later. What a horrible kluge because of vmware workstation destroying the key mappings.

Has anyone with VMware issues tried remapping the VMware Workstation
hotkeys to use something other than Ctrl, or is that completely hardcoded
as one of the escape keys? I know Ctrl+Shift+Alt are the typical ones I
use, but I thought you could unmap any of them.

On Sat, Jul 18, 2015 at 4:05 PM, circuit_breaker [email protected]
wrote:

Still unsolved. 1.7.3 on Ubuntu 14.04 both server & client, client running
vmware workstation 11 w/a windows 7 guest. control works fine outside the
windows 7 guest window.

—
Reply to this email directly or view it on GitHub
https://github.com/synergy/synergy/issues/4152#issuecomment-122597033.

Yes, and I have, via the preferences file. Set it to windows key+alt+shift. The problem is definitely VMware desktop/client applications clearing the keysyms when the window is active, evidenced by running xmodmap while letting the vmware window take/lose focus. I think I might write a patch to wmctrl that causes it to exit true when a specific window becomes active so I can && xmodmap -e "control = Control_L Control_R" to use my ctrl-key modifier in vmware. isn't software great?

Edit: So, to be clear, this is a vmware bug and not a synergy bug. I'm assuming of course that clearing xmodmap's keysyms, even temporarily is bad behavior.

@circuit-breaker I would very appreciate if you could share that patch.

@1kko Sorry but I never wrote the patch. I don't use VMware any more because it just ran like garbage for me even with 1 VM using 20% of my physical RAM. Switched to VirtualBox again (ugh). You could run: sleep 5 && xmodmap -e "control = Control_L Control_R" each time you use your VMware window, as bloody of a hack as that is..

Same problem, wrote small script which checks if modmap was cleared and if so puts the controls back.

#!/bin/sh
ERG=`xmodmap | grep -c "Control_L (0x25),  Control_L (0x42),  Control_R (0x69)"`
if [ $ERG -eq 0 ]; then
    xmodmap -e "add control = Control_L Control_R"
fi

named it "modmap.sh" maked it executeable and start with:

$ watch -n 1 ./modmap.sh

Waiting for better solution ...

Thanks. Works fine with Ubuntu MATE 16.04 and VM Workstation 12.5.2

The patch in the attachment seems to fix the problem (based on v1.8.8)

0001-BUGFIX-fix-problems-on-Linux-client.patch.zip

I have same issue in synergy 1.10.3-stable
does this patch work on it? How to run this patck?

check this: https://github.com/laughterk/synergy-core
(since encryption was removed after v1.8.8)

check this: https://github.com/laughterk/synergy-core
(since encryption was removed after v1.8.8)

your code have compilation issues. Those issues are never seen in official synergy-core repo.

$ make [ 87%] Built target arch [ 87%] Built target common [ 87%] Built target base [ 87%] Built target shared [ 87%] Built target io [ 87%] Built target mt [ 87%] Built target net [ 87%] Built target synergy [ 87%] Built target server [ 87%] Built target platform [ 87%] Built target ipc [ 87%] Built target client [ 87%] Built target synergyc [ 87%] Built target synergys [ 87%] Built target synergyd [ 87%] Built target micro [ 87%] Built target usynergy [ 87%] Built target syntool make[2]: *** No rule to make target 'src/test/CMakeFiles/gtest.dir/build'. Stop. CMakeFiles/Makefile2:1227: recipe for target 'src/test/CMakeFiles/gtest.dir/all' failed make[1]: *** [src/test/CMakeFiles/gtest.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

check this: https://github.com/laughterk/synergy-core
(since encryption was removed after v1.8.8)

your code have compilation issues. Those issues are never seen in official synergy-core repo.

$ make [ 87%] Built target arch [ 87%] Built target common [ 87%] Built target base [ 87%] Built target shared [ 87%] Built target io [ 87%] Built target mt [ 87%] Built target net [ 87%] Built target synergy [ 87%] Built target server [ 87%] Built target platform [ 87%] Built target ipc [ 87%] Built target client [ 87%] Built target synergyc [ 87%] Built target synergys [ 87%] Built target synergyd [ 87%] Built target micro [ 87%] Built target usynergy [ 87%] Built target syntool make[2]: *** No rule to make target 'src/test/CMakeFiles/gtest.dir/build'. Stop. CMakeFiles/Makefile2:1227: recipe for target 'src/test/CMakeFiles/gtest.dir/all' failed make[1]: *** [src/test/CMakeFiles/gtest.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

This is a v1.8.8 specific problem, before compiling, you have to decompress gmock-1.6.0.zip/gtest-1.6.0.zip in directory 'ext' into sub directory gmock-1.6.0 & gtest-1.6.0 accordingly.

https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_horizon_clients/5_0

Try the above link

Q) how this will give the solution of bug in synergy?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

LeTink picture LeTink  Â·  4Comments

bigbear3001 picture bigbear3001  Â·  4Comments

jenelcohen picture jenelcohen  Â·  3Comments

jasonfisherjlf picture jasonfisherjlf  Â·  4Comments

xmstspider picture xmstspider  Â·  4Comments