¿Hay alguna manera de comunicarse con alguien en su escritorio?

36

Mi esposa está sentada en el escritorio de su casa alpha, que ejecuta una versión reciente de Ubuntu. Estoy en un autobús, usando ConnectBot en mi teléfono G1, y puedo usar SSH alphadesde donde estoy.

Por razones complicadas, no puedo usar MI, correo electrónico o el teléfono para contactarla. (Por ejemplo, no quiero despertar al bebé, mi cliente de mensajería instantánea está roto, mi servidor de correo electrónico está inactivo). Mi única opción es ingresar de alphaforma remota e intentar hacer que algo aparezca en la pantalla. Ella está usando KDE; ¿Cómo puedo hacer que aparezca algo para llamar su atención y hacerle saber que estoy tratando de comunicarme con ella? Pensé que era posible activar remotamente algo (como xmessage) para que aparezca en su pantalla a pesar de que mi sesión SSH no tiene una pantalla X.

EDITAR: Para aclarar, mi teléfono no tiene ningún sabor de X, por lo que X-over-ssh no es posible. ¿Funcionaría lo siguiente?

$ export DISPLAY=:0
$ xmessage "test"
lado de tierra
fuente
Enviar un mensaje de texto a un teléfono en modo silencioso ... ¿o soy solo yo?
Nivas

Respuestas:

27

Puede indicarle a un programa X qué pantalla usar con la DISPLAYvariable de entorno, siempre que sepa qué pantalla alphase muestra actualmente. Es casi seguro que la única pantalla es :0, a menos que la haya manipulado manualmente, por lo que si ejecuta:

$ export DISPLAY=:0

Entonces, cualquier aplicación X que ejecute se mostrará en alphael monitor. xmessagees una buena opción para mostrar mensajes; También hay xdialog. Si lo ha libnotifyinstalado, puede usarlo notify-sendpara abrir un mensaje en la esquina de la pantalla:

Ejemplo

Michael Mrozek
fuente
¿Es xautho es xhostnecesario aquí también?
Mikel
@Mikel No estoy seguro de cómo funciona la seguridad cuando un usuario diferente ejecuta X; Creo que esta bien. Solo lo he usado xhostpara permitir conexiones remotas, pero está enviando SSH a la máquina directamente
Michael Mrozek
Está bien si puede iniciar sesión en la misma cuenta que ella inició sesión. De lo contrario, tendrá que lidiar con el control de acceso X.
user7440
10

Como ilustra Michael Mrozek , puede ejecutar aplicaciones X que se muestran en el escritorio de su esposa. Todo lo que necesita hacer es establecer la DISPLAYvariable de entorno en el valor correcto (casi siempre :0) ... y obtener su autorización.

Esta solución requiere que tenga permiso para leer los archivos de su esposa. El acceso al servidor X requiere una "cookie" de autenticación , que es una contraseña que se genera aleatoriamente cuando X se inicia y se almacena en un archivo. El archivo es a menudo ~/.Xauthority; si no es así, debe indicarse en la XAUTHORITYvariable de entorno. En Ubuntu con la configuración predeterminada (usando Gdm), la cookie de sesión de su esposa no está ~wife/.Xauthorityen un archivo con un nombre generado automáticamente; ver ssh DISPLAY variable . Consulte también Como root, ¿puedo iniciar un programa gráfico en el escritorio de otro usuario? , Linux: wmctrl no puede abrir la pantalla cuando la sesión se inicia a través de ssh + screen .

Si su esposa tiene un terminal de texto abierto, puede usar write como lo sugiere el usuario 7440 para escribir algo de texto en su terminal. Eso requiere que el terminal acepte tales notificaciones; puede activar y desactivar esto con mesg yo mesg n, y no sé cuál es el estado predeterminado en los emuladores de terminal modernos.

Un mecanismo más sofisticado que writees talk. El protocolo de conversación es el antepasado de los programas de chat; puede hablar con cualquier persona en una máquina que esté ejecutando un servidor de conversación y cuyo puerto UDP 517 o 518 (hay dos variantes de protocolo) no esté filtrado. Instale talkd Instale talkd http://bit.ly/software-small , un cliente como ytalk Instale ytalk http://bit.ly/software-small , y ytalk wife. También hay un cliente X, xtalk Instalar xtalk http://bit.ly/software-small . Hasta donde sé, la conversación simplemente se ha salido del radar (todos los que se preocupan utilizan uno de los protocolos de chat modernos), y no hay ningún componente del sistema que genere una notificación de KDE de una solicitud de conversación.

Si bien dice que no puede ejecutar ningún cliente de mensajería instantánea ... ¿estaría bien un cliente de mensajería instantánea de línea de comandos que se ejecuta en su máquina doméstica a través de SSH? Existen, por ejemplo, weechat Install weechat http://bit.ly/software-small . Seguiría dependiendo de algún servidor para conectarlo con su esposa, pero solo se accedería desde su máquina doméstica, no desde su teléfono.

Gilles 'SO- deja de ser malvado'
fuente
finches la versión de línea de comandos de pidgin.
LawrenceC
4

Si tiene una ventana de terminal abierta (use 'who' para averiguarlo) puede escribir a esa terminal usando 'write'. Esto no funcionará con el terminal principal ya que KDE lo oculta, pero cualquier ventana de terminal debería funcionar (si está en el escritorio actual, no minimizado, lo está mirando ...).

usuario7440
fuente
3

No estoy 100% seguro de que la configuración DISPLAY=:0.0vaya a funcionar. Creo que necesita una forma de obtener autorización para conectarse al servidor X en la PC de su esposa. Las herramientas para hacerlo son xhosty xauth, pero parecen requerir que ya tenga acceso al servidor X, por lo que presumiblemente solo su esposa podría ejecutarlas. (Problema de pollo y huevo).

De lo contrario, es posible que pueda iniciar un segundo servidor X, por ejemplo X :1, usar , o tal vez chvtpueda ayudar.

Por ejemplo, algo como

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

parece funcionar en mi sistema si lo ejecuto como root.

X :1 se inició en vt7 en mi sistema, por lo que también podría ejecutar

# chvt 7

para asegurarse de que esa pantalla X es la que está visible actualmente.

Mikel
fuente