symless / synergy

Synergy lets you share one mouse and keyboard between multiple computers on Windows, macOS and Linux.
https://symless.com/synergy
GNU General Public License v2.0
10.3k stars 3.64k forks source link

Chrome OS support #3363

Open nbolton opened 9 years ago

nbolton commented 9 years ago

Imported issue:

Not sure what is possible yet. It's Linux-based so that might help.

nbolton commented 9 years ago

I would also like this. I replaced a dead laptop with a chromebook and I miss my synergy setup very much.

nbolton commented 9 years ago

Would also like to request this.

nbolton commented 9 years ago

Would be very helpfull. I'm gonna figure this out ATM personally. All I use this extra notebook for is my synology station, which is just a web app. Having Ubuntu on it is heavy, but ChromeOS would be just perfect!

nbolton commented 9 years ago

Successfully compiled and ran version 1.4.11 on chromeOS 28.0.1484.1
  - Compiled using chroot chromium/cros
  - Note: chromeOS defaults to noexec (if running from shell/crosh?), just allow exec on somewhere like /tmp (e.g. sudo mount -o exec,remount /tmp)

nbolton commented 9 years ago

Tom, could you provide more details? You say it ran, but is it fully working? Could you provide any more pointers for building it? I've plenty of experience building, but little experience in the Chrome OS world. Thanks!

nbolton commented 9 years ago

Actually I have this working, but I don't know if I'm doing the same thing as you since I didn't build it. Here's what I did:

  1. Install crouton. This involves switching the Chromebook to dev mode, etc. See http://www.howtogeek.com/162120/how-to-install-ubuntu-linux-on-your-chromebook-with-crouton/
  2. Build your chroot with -t xephyr
  3. sudo enter-chroot
  4. sudo apt-get install synergy
  5. export DISPLAY=:0.0 XAUTHORITY=/etc/X11/host-Xauthority (see https://github.com/dnschneid/crouton/issues/1 and https://github.com/dnschneid/crouton/issues/126)
  6. sudo apt-get install synergy
  7. synergyc ...

This isn't running on Chrome OS proper since it's inside the chroot but it does allow FULL CONTROL of Chrome OS.

nbolton commented 9 years ago

I've got this working with crouton per Aron's instructions, though I built with Unity target.

The only issue I have is clipboard doesn't seem to be working. Otherwise working as expected (and I love it!)

nbolton commented 9 years ago

Aaron, this is working great. Does anyone know of a way of starting synergyc either on boot, or better yet, on connection to specific access points?

nbolton commented 9 years ago

Aron, thank you so much for the instructions! I struggled with the final step, so I wanted to drop a comment to add to Aron's instructions for anyone else that may be trying to get this to work.

Starting with Aron' instructions at step 7:

  1. host-x11 syngeryc -n My-Chromebook 10.10.10.1

Where "My-Chromebook" is the name the chromebook sends to the Synergy server, and 10.10.10.1 is the IP of the server running Synergy.

nbolton commented 9 years ago

Hi everyone, I can successfully use my Chromebook to connect as a synergy client, but when I try to run it as a server it crashes. I thought it might have something to do with the export DISPLAY=:0.0 XAUTHORITY=/etc/X11/host-Xauthority command... but that's beyond my ken. Any ideas?

I get the following output:

2013-11-09T23:47:49 INFO: Synergy 1.3.8 Server on Linux 3.8.11 #1 SMP Wed Nov 6 16:04:07 PST 2013 x86_64
        /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp,1098
2013-11-09T23:47:49 DEBUG: opening configuration "/etc/synergy.conf"
        /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp,1113
2013-11-09T23:47:49 DEBUG: configuration read successfully
        /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp,1124
2013-11-09T23:47:49 DEBUG: XOpenDisplay(":0.0")
        /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsScreen.cpp,901
No protocol specified
No protocol specified
2013-11-09T23:47:49 WARNING: cannot open primary screen: unable to open screen
        /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp,450
2013-11-09T23:47:49 DEBUG: retry in 60 seconds
        /build/buildd/synergy-1.3.8/src/cmd/synergys/synergys.cpp,472
nbolton commented 9 years ago

Can it work without a root, as a chrome app?

nbolton commented 9 years ago

Can we get a chrome app, or non-root version for ChromeOS?

nbolton commented 9 years ago

I would really like to see a synergy extension. I would like to have a chrome box to share the load on my desk with my Ubuntu PC. Also Chromebook to PC or Chromebook to Chromebook would be a key feature.

nbolton commented 9 years ago

Hi! I'd love to see Synergy as Web APP on Chrome! So I can use in my CrOS Linux

nbolton commented 9 years ago

Web app sounds like a tall order, and probably not the most performant approach. a PNaCl chrome app would be ideal, whether the API's are there to make it happen is the big question.

fsih commented 9 years ago

+1

epocoursera commented 9 years ago

Hi, I tried very hard to make this happen via my Acer C720P and my macbook pro !

From the steps described by Aaron, i've done all the commands but when i launch synergyc to my serveur, nothing happen. My server still waiting for client. Here is what is logged when I run synergyc:

renaud@chromebook:~$ synergyc -f 192.168.1.21 2015-03-21T17:41:17 INFO: Synergy 1.3.8 Client on Linux 3.8.11 #1 SMP Sat Mar 7 06:52:13 PST 2015 x86_64 /build/buildd/synergy-1.3.8/src/cmd/synergyc/synergyc.cpp,765 2015-03-21T17:41:17 DEBUG: XOpenDisplay(":0.0") /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsScreen.cpp,901 No protocol specified No protocol specified 2015-03-21T17:41:17 WARNING: cannot open secondary screen: unable to open screen /build/buildd/synergy-1.3.8/src/cmd/synergyc/synergyc.cpp,346 2015-03-21T17:41:17 DEBUG: retry in 60 seconds /build/buildd/synergy-1.3.8/src/cmd/synergyc/synergyc.cpp,246 synergyc: /build/buildd/synergy-1.3.8/src/lib/platform/CXWindowsScreen.cpp:112: CXWindowsScreen::CXWindowsScreen(const char*, bool, bool, int): Assertion `s_screen == __null' failed. Aborted (core dumped)

FYI i have successfully configured synergy with Ubuntu on my chromebook but i'm interested of controlling Chrome OS only !

Can someone help me ? Much appreciated

epocoursera commented 9 years ago

I resolved the issue by doing this (thanks Aaron to share this with us):

Allowing full control of Chrome OS

ericmaster commented 9 years ago

Has anybody figured the clipboard sync part?

opticron commented 9 years ago

Does this work with xiwi or is there another way to accomplish this given dnschneid's February 14th comment on https://github.com/dnschneid/crouton/issues/1 ?

ghost commented 9 years ago

+1

JoshMcCullough commented 8 years ago

When running host-x11 synergyc [ip], I get this message: No Chromium OS X server is available.

Not sure what to do about that...any ideas?

andymeneely commented 8 years ago

I get the same error as you @JoshMcCullough

thetestproject commented 8 years ago

I'm getting the same error as @JoshMcCullough and @andymeneely. Anyone have any progress with this? I'd love to use it with my Chromebook.

opticron commented 8 years ago

I solved this problem by installing Debian on my hardware. Chrome OS runs Freon in modern versions and synergy does not support Freon, as far as I know. I can see two clear paths forward and neither looks easy or quick: add Freon support to synergy or create a Freon/X11 compatibility layer for crouton.

nielsharland commented 8 years ago

+1 for stock ChromeOS devices.

Petermbartholomew commented 7 years ago

+1 for stock

md2100 commented 7 years ago

Would love this feature -- for now I'm stuck running xfce when I want to use synergy on my chromebook.

g3ortega commented 7 years ago

I would love to have this feature, that way I would be able to use my workstation running linux, from my chromebook that I use in my day to day

DevBadger commented 7 years ago

+1 for stock

terryjohnbradford commented 7 years ago

+1 for stock - chromeos

dzsquared commented 7 years ago

Also very interested in the stock option for a ChromeOS synergy client.

lindgrenj6 commented 7 years ago

+1 For stock chromeOS Support! Would be a great feature!

oywino commented 7 years ago

+1 for Stock Chrome OS support! How hard can it be to write an extension (for an experienced programmer) ?

rickybrent commented 7 years ago

+1, but I suspect the answer here is "very".

ericmaster commented 7 years ago

Any news on this?

superdug commented 7 years ago

Would love to have a native chrome OS app for synergy.

cprovatas commented 7 years ago

Hi,

I've tried the above steps to install synergy on my asus chromebook flip CP100 with crouton, but every time I try 'synergyc [IP]' I get this mysterious info message:

'INFO: Synergy 1.4.12 Client on Linux 3.14.0 #1 SMP PREEMPT Wed Mar 29 21:59:41 PDT 2017 arm7l /build/buildd/synergy-1.4.12/src/lib/synergy/CClientApp.cpp, 164'

I checked the source and that line appears to just be returning a string based on OS type, but perhaps I'm looking in the wrong branch or version.

I've tried using those specific build options instructed above. One ubuntu forum page appears to (sort of) reference this issue, attributing it to 'mir' packages. I've tried installing and uninstalling all 'mir' packages to now avail. IP address doesn't seem to matter. I can enter 'synergyc foo' and it will give the same error.

Any help would be greatly appreciated!

update: i tested using a couple different CI arguments and end up getting a seg fault when running '--no-daemon'!

trusty)charles@localhost:/$ synergyc --restart --no-daemon --no-xinitthreads --name charles --no-tray 192.xxx.x.x 2017-04-01T10:42:36 INFO: Synergy 1.4.12 Client on Linux 3.14.0 #1 SMP PREEMPT Wed Mar 29 21:59:41 PDT 2017 armv7l /build/buildd/synergy-1.4.12/src/lib/synergy/CClientApp.cpp,164 2017-04-01T10:42:36 DEBUG: skipping XInitThreads() /build/buildd/synergy-1.4.12/src/lib/platform/CXWindowsScreen.cpp,129 2017-04-01T10:42:36 DEBUG: XOpenDisplay(":0.0") /build/buildd/synergy-1.4.12/src/lib/platform/CXWindowsScreen.cpp,912 2017-04-01T10:42:36 WARNING: secondary screen unavailable: unable to open screen /build/buildd/synergy-1.4.12/src/lib/synergy/CClientApp.cpp,479 2017-04-01T10:42:36 DEBUG: retry in 60 seconds /build/buildd/synergy-1.4.12/src/lib/synergy/CClientApp.cpp,344 Segmentation fault (core dumped)

bafinneg commented 7 years ago

+1 for stock ChromeOS/Chromebook support

greenup commented 7 years ago

Native ChromeOS option please? with clipboard support? (since that's kindof a killer feature...) thanks-

Marcus-Freitas commented 7 years ago

Any news on this topic? Chrome OS is really growing, I work on a small store and we sell over a thousand chrome devices a month, you guys should really make this a priority!

jvschiavo commented 6 years ago

3 years later, any news?

dayne commented 6 years ago

Bump for this topic.

Newer Chromebooks now support Android apps. Synergy dev team might consider revisiting getting synergy on a modern chromebook with that as an option.

Previously it appears synergy to android devices (using Cyanogen mod) was working: https://github.com/symless/synergy-android-cyanogen

danielgraycode commented 6 years ago

Still looking for proper synergy support for chromebooks, it would be a nice addon.

jvschiavo commented 6 years ago

Suggestion: rename issue to "Platform Request: Chrome OS server support"

I know this may sound dumb since "Chrome OS support" is already pretty straightforward, but since Chromebooks now support Play Store, it means that supporting Android equals to supporting Chrome OS, so my suggestion is to focus this issue specifically on server support on Chrome OS, so we leave #531 with client only, for both Android and Chrome OS.

Edit: if you agree with me please change both names for consistency. :)

greenup commented 6 years ago

was this closed because nbolton finally gave up? from what I can tell, synergy still doesn't support ChromeOS. Recently they had a big push on a new version, and I looked through the list of things and said to myself: "Still no ChromeOS. Guess it's not worth it. (yet)"

digitalextremist commented 6 years ago

Would this change based on native support for Debian perhaps? Chrome OS has Debian support in the beta channel now, but I don't imagine it has a lot of control over the host OS's window manager.

Charles-IV commented 5 years ago

Would this change based on native support for Debian perhaps? Chrome OS has Debian support in the beta channel now, but I don't imagine it has a lot of control over the host OS's window manager.

I installed synergy using the linux apps support, which I assume you're talking about, but while it ran, I couldn't get it working. According to reddit, and some people who did get it working, it can't control ChromeOS because linux apps are run in a container, and the same probably goes for using the android app

MarkJRigdon commented 5 years ago

+1 and bump. ChromeOS has a HUGE following now. As of release of ChromeOS 69 this month ChromeOS now natively supports Linux Apps without entering Developer mode on the machine. This has been enabled in only a few chromebook versions but expect this to roll out to all new chromebooks with the right chips soon. One of my chromebooks supports it, another does not. Schools and teachers use tens of thousands of chromebooks all over the US now. Let's get this included folks! I'm a mac, linux, windows, chromeOS user myself and this needs some love finally.

dayne commented 5 years ago

I too would love this feature, however, we might want to temper our enthusiasm a bit. I am not an expert by no means for ChromeOS or how exactly how the new Crostini system is working. I am familiar with VMs, containers, and security systems and I don't expect this is as easy as we would hope it would be.

I think it would be a stretch to think they would allow a crostini container to take control of mouse and keyboard in a way that it was allowed to provide input to non-container applications (everything else on the chromebook). That opens an attack vector for malicious container apps to do naughty things to the chromebook.

Like @Charles-IV said, this is the same issue is true for android apps on a chromebook. Taking over control of the human input (mouse/keyboard) for things outside the scope of the app would be problematic from a security stance.

Pretty sure the direction to get proper synergy is to develop a native chromeapp that can be granted permissions to manage keyboard/mouse at the 'root' level of the OS. My guess is that would likely mean a whole new code base though and I'm not sure how decoupled/documented the client/server protocol is that might allow for multiple different code bases to all talk to each other as client/servers.

This is way out of my scope of knowledge for this system. I would be very interested to hear from one of the developers familiar with the guts of the server/client protocol.