Есть ли способ общаться с кем-то на рабочем столе?

Моя жена сидит на своем домашнем рабочем столе, alpha , в котором работает последняя версия Ubuntu. Я нахожусь в автобусе, используя ConnectBot на своем телефоне G1, и могу SSH в альфах, где бы я ни был.

По сложным причинам я не могу использовать IM, электронную почту или телефон, чтобы связаться с ней. (Например, я не хочу разбудить ребенка, мой IM-клиент поврежден, мой почтовый сервер отключен.) Единственный мой вариант – ssh в alpha удаленно и попытаться каким-то образом сделать что-то на экране. Она использует KDE; как я могу сделать что-то всплывающее, чтобы привлечь ее внимание и сообщить ей, что я пытаюсь с ней общаться? Я подумал, что можно было удаленно запускать что-то (например, xmessage), чтобы появиться на экране, хотя мой сеанс SSH не имеет X-дисплея.

EDIT: Чтобы уточнить, у моего телефона нет никакого эффекта X, поэтому X-over-ssh невозможно. Будет ли следующая работа?

 $ export DISPLAY=:0 $ xmessage "test" 

4 Solutions collect form web for “Есть ли способ общаться с кем-то на рабочем столе?”

Вы можете указать программу X, которая будет отображаться для использования с переменной окружения DISPLAY , если вы знаете, какая отображаемая alpha показывается. Почти наверняка единственный дисплей :0 , если вы не ругались с ним, поэтому, если вы запустите:

 $ export DISPLAY=:0 

Затем все приложения X, которые вы запускаете, будут отображаться на alpha -мониторе. xmessage – хороший выбор для показа сообщений; есть также xdialog . Если у вас установлена libnotify , вы можете использовать libnotify notify-send для всплытия сообщения в углу экрана:

пример

Как показывает Майкл Мрозек , вы можете запускать X-приложения, которые отображаются на рабочем столе вашей жены. Все, что вам нужно сделать, – установить переменную среды DISPLAY в нужное значение (почти всегда :0 ) … и получить авторизацию.

Это решение требует, чтобы у вас было разрешение читать файлы жены. Доступ к серверу X требует аутентификации «cookie» , который является случайным образом генерируемым при запуске X и хранении в файле. Файл часто ~/.Xauthority ; если это не так, это должно быть указано в переменной среды XAUTHORITY . В Ubuntu с настройкой по умолчанию (с использованием Gdm) cookie вашей женской сессии не находится в ~wife/.Xauthority а в файле с автоматически сгенерированным именем; см. переменную DISPLAY ssh . См. Также Как root можно запустить графическую программу на другом рабочем столе пользователя? , Linux: wmctrl не может открывать отображение при запуске сеанса через экран ssh + .

Если у вашей жены открыт текстовый терминал, вы можете использовать write как было предложено пользователем7440, чтобы написать текст в своем терминале. Это требует, чтобы терминал принимал такие уведомления; вы можете включать и выключать это с помощью mesg y или mesg n , и я не знаю, что такое состояние по умолчанию для современных эмуляторов терминалов.

Более сложный механизм, который write – это talk . Протокол разговора является предком чат-программ; вы можете разговаривать с кем-либо на машине, на которой работает сервер разговора, и чей UDP-порт 517 или 518 (есть два варианта протокола) не фильтруется. Поэтому установите talkd Install talkd http://bit.ly/software-small , клиент, такой как ytalk Установите ytalk http://bit.ly/software-small и ytalk wife . Также есть X-клиент, xtalk Install xtalk http://bit.ly/software-small . Насколько я знаю, разговоры просто упали с радара (все, кто заботится, использует один из современных чатов-прокотолов), и нет системного компонента, который бы генерировал уведомление KDE о запросе разговора.

Хотя вы говорите, что не можете запускать IM-клиент … будет ли клиент IM-почты командной строки, запущенный на вашем домашнем компьютере, доступным через SSH, в порядке? Есть такие, например weechat Install weechat http://bit.ly/software-small . Вы все равно будете зависеть от какого-то сервера, чтобы связать вас с вашей женой, но доступ к нему будет доступен только с вашей домашней машины, а не с вашего телефона.

Я не на 100% уверен, что настройка DISPLAY=:0.0 будет работать. Я думаю, вам нужен способ получить разрешение на подключение к X-серверу на компьютере вашей жены. Инструменты для этого – xhost и xauth , но они, похоже, требуют, чтобы у вас уже был доступ к X-серверу, поэтому предположительно только ваша жена могла их запускать. (Проблема с курицей и яйцом.)

В противном случае вы можете запустить второй сервер X, например, используя X :1 , или, может быть, chvt может помочь.

Например, что-то вроде

 # X :1 # export DISPLAY=:1.0 # xmessage 'hello' 

похоже, работает на моей системе, если я запускаю ее как root.

X :1 был запущен на vt7 в моей системе, поэтому вы также можете запустить

 # chvt 7 

чтобы этот X-дисплей был тем, который в настоящее время виден.

Если у нее открыто окно терминала (используйте «кто», чтобы узнать), вы можете написать на этот терминал, используя «write». Это не будет работать с основным терминалом, поскольку KDE скрывает его, но любое окно терминала должно работать (если оно находится на текущем рабочем столе, а не сводится к минимуму, она смотрит на него …).

Interesting Posts

Замените строку содержимым файла с помощью sed

Emacs ansi-term с zsh: ошибка в технологическом фильтре. Недопустимое лицо: неуказано

Разрешить пользователям, не являющимся администраторами, устанавливать пакеты через apt или rpm?

Очень странный текст в Debian

Ноутбук не отключается после того, как он был приостановлен

Отправить javascript для Chromium или Firefox из linux terminal

Записывает ли `ln -sf` существующие файлы, которые являются только символическими ссылками

Ошибка unixODBC 2.3.0 "_S_create_c_locale name not valid"

Может ли меньше сохранять цветной выход?

Почему никакая команда не советует пользователю проконсультироваться на странице руководства при некорректном использовании?

перечислить самый старый файл в каталогах в цикле

dd для резервного копирования и восстановления полной системы

Diff: сравнивать только если файл существует, а не содержимое

Как запросить имя хоста с сервера DHCP на Ubuntu?

Настройка сетевых интерфейсов с использованием linux sysfiles

Linux и Unix - лучшая ОС в мире.