Есть замечательная программа synergy. Позволяет использовать один комплект клава-мышь несколькими компьютерами. Она кроссплатформенна, работает в системах MS — как Windows, так и NT, в Mac OS X. Ну, и конечно — в X11.
О synergy здесь уже говорили, я немножко добавлю.
Windows и OS X касаться не буду, уделю внимание лишь X11.
Компьютер, к которому подключены клава и мышь выступает в роли сервера, на нём запускается
Установка в Debian подобных системах:
Пример конфига /etc/synergy.conf. В центре — компьютер main, слева от него laptop1, справа laptop2. Все они образуют кольцо — когда указатель переходит левый край левого экрана, он оказывается на правом краю правого.
Запуск сервера — командой
Подключение —
Сервер работает только в иксах, и только в активном X сервере — в том, что принимает ввод от HID'ов. Если переключиться в другую консоль, включая другой X сервер, то synergys перестаёт обслуживать клиентов. До тех пор, пока X сервер снова не получит клаву-мышь.
Когда на одном компьютере поочерёдно работают несколько пользователей, можно запустить synergys в каждом X сервере, включая тот, где запущен GDM. Каждый synergys использует свой TCP порт, а что касается конфига — достаточно одного на всех. Дефолтный порт — 24800. Для указания порта используется ключ
Synergy не очень безопасна. Все нажатия клавиш передаются открытым текстом, всторенных механизмов шифрования нет. На помощь придёт SSH с форвардингом портов. Локальным форвардингом. О форвардинге можно почитать
Сначала запускается ssh:
Локальный порт 24800 проброшен до порта 24800 сервера. ssh ушел в бэкграунд (ключ
Теперь об удобстве использования. Если сервер можно запускать при старте иксов автоматически — вписав в .xsession, либо, в соответствии с сегодняшней модой — пощёлкав мышью в центре управления GNOME/KDE/XFCE/LXDE, то с клиентом дело сложнее. Его лучше запускать интерактивно.
Есть утилита quicksynergy. Иксовая, точнее — под GTK. Так вот. Мне она не нравится. Для того, чтобы запустить клиента, надо перейти на вкладку, вписать имя сервера, щёлкнуть «запустить», потом щёлкнуть «закрыть», чтобы она спряталась в трэй. Запоминает лишь последний вписанный сервер. Значок в трэе слишком здоровый — бросается в глаза. ssh запускать не умеет. Вобщем — ужасная вещь. Я и не пользуюсь ею.
Написал свой скрипт для запуска и остановки клиента. Обычный шелл скрипт. На моём компьютере этот скрипт называется ~/bin/syn
При запуске без параметров,
Конфигурация в самом тексте скрипта. Блок
Пример конфигурации. Имя первого хоста, домашнего, например — main.example.com, на нём два X сервера — работают 2 пользователя. Соответственно — два synergy сервера. Имя второго хоста, например, на работе — second.example.com. Там один X сервер. Локальные порты должны быть разные, чтобы несколько клиентов можно было запустить одновременно.
Ещё, неплохо поправить строку
Запуск клиента:
Просмотр состояния запущенного клиента:
Убить клиента:
Просмотр состояния незапущенного клиента:
P.S. Для бысторого запуска чего-либо из командной строки, я пользуюсь Тильдой, привязанной к клавишам <Alt ~>.
О synergy здесь уже говорили, я немножко добавлю.
Windows и OS X касаться не буду, уделю внимание лишь X11.
Компьютер, к которому подключены клава и мышь выступает в роли сервера, на нём запускается
synergys
. Прочие компьютеры — клиенты — на них работает synergyc
, который подключается к synergys
. По TCP, конечно. Все настройки делаются на стороне сервера. В конфиге описываются расположение экранов сервера и клиентов относительно друг друга — справа, слева, сверху, снизу. Установка в Debian подобных системах:
apt-get install synergy
Пример конфига /etc/synergy.conf. В центре — компьютер main, слева от него laptop1, справа laptop2. Все они образуют кольцо — когда указатель переходит левый край левого экрана, он оказывается на правом краю правого.
# /etc/synergy.conf # # Экраны всех компьютеров, включая серверный # Именуются хост именами компьютеров section screens main: laptop1: laptop2: end # # Взаимное расположение экранов section links main: left: laptop1 right: laptop2 laptop1: left: laptop2 right: main laptop2: left: main right: laptop1 end
Запуск сервера — командой
synergys
.Подключение —
synergyc имя_или_адрес_сервера
. Если хост имя клиента отличается от того, что прописано в конфиге сервера, то можно указать параметр -n имя_клиента
, где имя_клиента — имя из конфига.Сервер работает только в иксах, и только в активном X сервере — в том, что принимает ввод от HID'ов. Если переключиться в другую консоль, включая другой X сервер, то synergys перестаёт обслуживать клиентов. До тех пор, пока X сервер снова не получит клаву-мышь.
Когда на одном компьютере поочерёдно работают несколько пользователей, можно запустить synergys в каждом X сервере, включая тот, где запущен GDM. Каждый synergys использует свой TCP порт, а что касается конфига — достаточно одного на всех. Дефолтный порт — 24800. Для указания порта используется ключ
-a [адрес][:порт]
. Пример: synergys -a :24801
. Адрес не указан — слушает на всех интерфейсах.Synergy не очень безопасна. Все нажатия клавиш передаются открытым текстом, всторенных механизмов шифрования нет. На помощь придёт SSH с форвардингом портов. Локальным форвардингом. О форвардинге можно почитать
man ssh
и статью SSH Port Forwarding.Сначала запускается ssh:
ssh -f -L24800:имя_или_адрес_сервера:24800 имя_или_адрес_сервера sleep 10
Локальный порт 24800 проброшен до порта 24800 сервера. ssh ушел в бэкграунд (ключ
-f
) и выполняет на удалённой стороне sleep 10
. За эти 10 секунд надо успеть запустить synergyc
, иначе ssh завершит работу.synergyc localhost
Теперь об удобстве использования. Если сервер можно запускать при старте иксов автоматически — вписав в .xsession, либо, в соответствии с сегодняшней модой — пощёлкав мышью в центре управления GNOME/KDE/XFCE/LXDE, то с клиентом дело сложнее. Его лучше запускать интерактивно.
Есть утилита quicksynergy. Иксовая, точнее — под GTK. Так вот. Мне она не нравится. Для того, чтобы запустить клиента, надо перейти на вкладку, вписать имя сервера, щёлкнуть «запустить», потом щёлкнуть «закрыть», чтобы она спряталась в трэй. Запоминает лишь последний вписанный сервер. Значок в трэе слишком здоровый — бросается в глаза. ssh запускать не умеет. Вобщем — ужасная вещь. Я и не пользуюсь ею.
Написал свой скрипт для запуска и остановки клиента. Обычный шелл скрипт. На моём компьютере этот скрипт называется ~/bin/syn
При запуске без параметров,
~/syn
выдаёт коротенькую помощь по использованию.Конфигурация в самом тексте скрипта. Блок
case $TARGET in
, идущий сразу после комментария # Start user configurable settings
.Пример конфигурации. Имя первого хоста, домашнего, например — main.example.com, на нём два X сервера — работают 2 пользователя. Соответственно — два synergy сервера. Имя второго хоста, например, на работе — second.example.com. Там один X сервер. Локальные порты должны быть разные, чтобы несколько клиентов можно было запустить одновременно.
# ... # Start user configurable settings case $TARGET in d1) # Первый хост, первый X сервер SYN_LOCAL_PORT=24800 REMOTE_HOST='main.example.com' SYN_REMOTE_PORT=24800 d2) # Первый хост, второй X сервер SYN_LOCAL_PORT=24801 REMOTE_HOST='main.example.com' SYN_REMOTE_PORT=24801 w) # Второй хост SYN_LOCAL_PORT=24802 REMOTE_HOST='second.example.com' SYN_REMOTE_PORT=24800 # ...
Ещё, неплохо поправить строку
Defined tragets
функции usage, с которой начинается скрипт.Запуск клиента:
$ ./bin/syn d1 start Starting: 'ssh -f -L24800:main.example.com:24800 main.example.com sleep 10' .. done. Starting: 'synergyc 127.0.0.1:24800' .. done.
Просмотр состояния запущенного клиента:
$ ./bin/syn d1 status Checking ssh process: 'ssh -f -L24800:main.example.com:24800 main.example.com sleep 10' .. running, PID 18503. Checking synergyc process: 'synergyc 127.0.0.1:24800' .. running, PID 18505.
Убить клиента:
./bin/syn d1 stop Killing: 'synergyc 127.0.0.1:24800' .. done Killing: 'ssh -f -L24800:main.example.com:24800 main.example.com sleep 10' .. done.
Просмотр состояния незапущенного клиента:
./bin/syn d1 status Checking ssh process: 'ssh -f -L24800:main.example.com:24800 main.example.com sleep 10' .. stopped Checking synergyc process: 'synergyc 127.0.0.1:24800' .. stopped.
P.S. Для бысторого запуска чего-либо из командной строки, я пользуюсь Тильдой, привязанной к клавишам <Alt ~>.