Есть замечательная программа 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 ~>.
