Вступление


В первую очередь надо сказать, что этот продукт уже фигурировал на ресурсах ТМ в этой статье от 2008 года. Однако по прошествии примерно 7 лет картинки потерялись и материал кажется несколько устаревшим.

Этой же публикацией я постараюсь обновить краткий мануал, раскрыть некоторые моменты, оставшиеся «за кадром», да и просто популяризовать отличное решение, которое незаслуженно страдает от недостатка внимания.

Пара слов об истории Synergy
Я не случайно сказал, что проект мог бы быть известен куда более широко, вся история его развития напоминает лоскутное одеяло и кажется заслужвающей краткого изложения:

В 1996 году инженеры Cosmo Software Ричард Ли и Адам Федер решают проблему одновременной работы со станциями Irix и Windows, но руководство отказывается выделять внутреннюю разработку в отдельный продукт. Такая недальновидность оказалась симптоматичной и через некоторое время компания закрылась.

Но удачное решение продолжило свою жизнь, хотя к 2006 году оказалось в замороженном состоянии. С целью устранения багов и дальнейшего развития, в 2009 году Сорин Сбарнэ форкнул проект в Synergy+, куда позже влился Ник Болтон, который провел слияние Synergy+ с материнской веткой и в данный момент является CEO Synergy Si, занимаясь проектом уже на постоянной основе.


Что это такое?


Итак, Synergy — это программный KVM (network-based), который позволяет объединить управление двумя и более ПК в одном комплекте мышь-клавиатура. Предельно просто принцип работы отражен на заглавной картинке офицального сайта:

image

Пользователь просто передвигает мышь к краю экрана (либо углу, либо жмет на заданную комбинацию клавиш) и курсор чудесным образом появляется на другом мониторе, подключенном к совершенно другому ПК. Курсор можно не только перемещать, но еще и перетягивать файлы с одного ПК на другой. Круто, да?

Естественно, это требует от ПО определенного уровня отзывчивости и совместимости, поэтому для разработки используется C/C++.

Есть версии для Windows, Linux, Mac OS X, на GitHub есть даже порты для Android, Haiku и иных ОС.

Где взять?


Повторюсь, ПО готово к использованию в любой распространенной ОС, я же буду продолжать знакомство в контексте использования debian-like дистрибутива. Итак, сегодня в репозиториях Debian находится несколько устаревшая версия 1.4.16, которую не удастся использовать с актуальными на сегодняшний день 1.7.x / 1.8.x из-за смены протокола, потому воспользуемся одним из вариантов:

— Скачать (купив лицензию) с официального сайта — synergy-project.org

— Скачать доступные без регистрации ночные сборки — synergy-project.org/nightly

— Скачать и собрать своим руками, взяв код на GitHub — github.com/synergy

Для ознакомления удобней всего взять одну из ночных сборок ветки «stable». Шаг установки позволю себе пропустить, так как никаких подводных камней здесь нет.

Как пользоваться


Все достаточно просто, окно приветствия при первом запуске сразу предложит нам выбрать роль текущего ПК — сервер (с клавиатурой и мышью) или клиент (без оных):

Окно приветствия

Далее предложено будет настроить шифрование и пароль, но для домашней сети я отключил его.

И, наконец, определяем расположение ПК друг относительно друга в пространстве, например:

Настройка расположения

Все готово! Теперь остается только нажать «Start» и сервер войдет в режим ожидания подключений:

Все готово к использованию

Для клиента, скорее всего, никаких настроек производить не потребуется, достаточно будет в таком же окне указать IP сервера и нажать на «Start».

А еще для настройки можно воспользоваться утилитой QuickSynergy, которая предельно проста и вполне достаточна для начальной настройки.

Хорошо, как это будет выглядеть?


Вот наиболее наглядная демонстрация использования Synergy, что мне довелось наблюдать:



… но и оно несколько неполное, ведь есть еще drag-n-drop перемещение файлов!

Надо ли платить?


Не обязательно. Продукт выпускается под GPL второй редакции, так что пользоваться им «как есть» вы можете совершенно бесплатно, а для желающих помочь разработке или получить некоторый дополнительный сервис предусмотрены следующие варианты лицензирования:

— Базовая лицензия (10$ на момент написания статьи) подразумевает поддержку со стороны разработчиков, если речь идет о каком-то сильно индивидуальном баге.

— Профессиональная лицензия (29$ на момент написания статьи) включает в себя SSL и прямую телефонную поддержку от разработчиков.

Есть еще Enterprise-версия, которая включает в себя работу разработчиков над фичами, которые запросит именно Ваша компания, она начинается для тех, кто разворачивает Synergy на парке из 100 и более машин.

Личные впечатления


— Воткнув мышь и клавиатуру в Raspberry Pi 2, работающий круглосуточно, я полностью отказался от них на основном ПК и медиа-приставке. А это 1 комплект устройств ввода вместо 3, что очень экономит место.

— Удивительная отзывчивость! Играть на ПК-клиенте в заведомо требовательные к скорости реакции игры (CS, Dota) вполне комфортно, какую-либо задержку ввода мне уловить не удалось.

— Возможность использовать на любой ОС «большой тройки». Лично мне не довелось испробовать Synergy на Mac, но связка Linux — Windows в любом порядке работала без нареканий.

И в заключение хочу добавить, что результатом запуска Synergy для «посмотреть, что это такое» стала полная реорганизация подхода к работе с ПК внутри квартиры и горячее желание помочь разработчикам, что и вылилось в эту статью. Наверное, это лучшая оценка, которую может озвучить пользователь.

Благодарю за внимание.

Комментарии (18)


  1. madhead
    28.07.2015 15:12

    Завалялись у меня 10 промо-кодов для этой чудесной программки, пишите в личку, может они ещё активные.


    1. fwizard
      28.07.2015 16:00

      Я не совсем понимаю для чего нужны промо-коды раз она бесплатная?


      1. agrrh Автор
        28.07.2015 16:16

        В процессе перевода наблюдал такой абзац:

        To say thanks to those who have donated, we came up with Synergy Premium, which gives you the right to vote on what we work on next, as well as a sneak peek at the next experimental features, and access to phone and email troubleshooting. Thats right, you can call us and speak to us for a dollar… no we're not crazy.

        То есть, если я верно понял, о каких промо-кодах говорит madhead, то Вы сможете бесплатно рассчитывать на полную техническую поддержку от разработчиков.


  1. fwizard
    28.07.2015 15:58

    У меня давно работает связка OSX, WIn, Linux. Никаких проблем.


  1. beho1der
    28.07.2015 17:49

    Пользуюсь synergy давно в связке Linux\Windows очень удобно, единственное есть один баг, может кто сталкивался и решал: Сервер на Linux, клиент Windows при этом на клиенте есть зажав правую кнопку мышь вращать камеру в 3D редакторах, то происходит какая-то инверсия и вращение происходит в другие стороны.
    Знает ли кто можно ли для synergys писать макросы, чтобы на определенные кнопки выполнялись нужные комбинации клавиатуры на клиенте?


    1. agrrh Автор
      28.07.2015 18:11

      Сталкивался только с не вполне понятным поведением мыши в Dota при вызове колеса с быстрыми репликами (двигается, куда надо, но потом вроде как отцентровывается), но списал на конкретную реализацию фичи в игре.

      Насколько мне известно, сейчас можно лишь назначать клавишу или их сочетание для быстрого переключения на другой экран и т.п., то есть, только для управления самим synergy, пересылать сочетания клавиш между ПК возможности нет.

      Не стесняйтесь репортить о багах и предлагать новые фичи прямо на github или форуме. Из подобных запросов нашел обратную передачу — #4505, с клиента на сервер. Попробуйте отметиться в issue, уточнив свое пожелание.


      1. beho1der
        28.07.2015 21:09

        Спасибо отписал в issue в поддержку этого функционала!


  1. alekseev_ap
    28.07.2015 22:07

    Экономия мышей и клавиатур — это плюс, большой. Но вот отсутствии экономии мониторов — это жирный минус. Поэтому лично я использую аппаратную KVM-ку.


    1. yosemity
      28.07.2015 23:11

      У Synergy и обычным KVM совсем разные задачи. Лично для меня Synergy мало применим, т.к. сижу за одним кампом на нескольких мониторах, разворачивая терминалы там и там. При том к одному из дисплев как раз подключен обычный KVM для ремонта компов.


  1. evr1ka
    29.07.2015 06:49

    Вот Спасибо! Все пытался найти-вспомнить, что за продукт, который позволяет мышь с монитора на монитор, на разных компьютерах двигать. )


    1. evr1ka
      29.07.2015 07:01

      Ночная сборка если имеет баги, куда писать?
      У меня на 2х x64 win (Сервер 8.1 — клиент 7) буквы не печатаются. Цифры — да. Буквы — нет.
      synergy-v1.7.4-stable-rc3-8da1b4f-Windows-x64.msi
      July 28, 2015 21:55


      1. agrrh Автор
        29.07.2015 08:35

        А пробовали другую версию? У меня одна из nightly вообще не собиралась, хотя тоже была из стейбл ветки. На другой версии все было хорошо.

        Все баги можно репортить прямо на github: github.com/synergy/synergy/issues
        Ничего похожего найти не удалось, так что можно сразу создавать новую issue, полагаю.


        1. evr1ka
          29.07.2015 08:37

          Другую версию еще не пробовал. Спасибо за ссылку и мысль


  1. AllexIn
    29.07.2015 11:20

    Раньше в автозапуске стояла… Но сейчас отказался. Причина проста:
    «Дальше — больше. Сделал управление вертолётом и оказалось, что при нажатии на кнопку и движении мышью Qt начинает адски тормозить.

    Я, как любой разумный программист, грешил на себя… Переписал внутреннюю систему обработки сообщений. Сделал проверку на дублирование сообщений… И это не помогло.

    Ладно, я отказался от обычной системы сообщений и сделал считывание состояния клавиатуры и мышки… И это не помогло.

    Я полностью отключил систему ввода в своём движке… И всё равно получил фризы. Сделал хук WH_GETMESSAGE на все сообщения, касающиеся ввода, с перехватом и отменой всех сообщений… Это не помогло. Ничего не осталось, кроме как исследовать систему вне моей среды разработки.

    Разгадка оказалась простой… Я потратил три часа, исправляя баг, которого нет… Это Synergy тормозила, если зажимать несколько кнопок одновременно. Убрал Synergy и всё стало плавненько и аккуратненько.»
    habrahabr.ru/post/252267


    1. agrrh Автор
      29.07.2015 12:49

      Synergy тормозила, если зажимать несколько кнопок одновременно

      Попробовал зажимать разные клавиши и двигать мышью — воспрозвести не получилось. Если поделитесь точными версиями ОС и Synergy — попробую еще.

      К слову, не уточните, для каких задач использовали и на какую альтернативу перешли?


      1. AllexIn
        29.07.2015 12:55

        Это проявилось только в моем проекте. Наверно если какую нибудь другую игру запустить — тоже будет видно, но я не проверял. Точными данными по версии не поделюсь — это было несколько месяцев назад. Windows 8.1
        Использовал не постоянно, если вдруг надо какой-нибудь ноут настраивать или компьютер, то подрубал Synergy чтобы не плодить мышки с клавами.
        Альтернативу не искал и не планирую. Synergy вполне устраивает. Просто убрал ее из автозагрузки.


  1. homecreate
    29.07.2015 23:08

    Обычно IP-KVM подразумевает возможность ООВ-управления. Я правильно понимаю, что Synergy, по сути своей, сильно от прочих терминальных решений не отличается? То есть это просто ещё одна софтина, которая умеет стримить ввод-вывод по сети?


    1. agrrh Автор
      30.07.2015 00:45

      Да, рулить упавшим сервером в удаленном ДЦ не получится. В целом само ПО позиционируется в первую очередь для использования в рамках рабочего места.

      Спасибо за замечание. Очевидно, мой косяк, в процессе написания статьи потерял важное в этом контексте словосочетание «network-based». Добавил уточнение в текст.