Existe-t-il un moyen de communiquer avec quelqu'un sur son bureau?

36

Ma femme est assise à son bureau à la maison alpha, qui exécute une version récente d’Ubuntu. Je suis dans un bus, j'utilise ConnectBot sur mon téléphone G1 et alphaje peux entrer en SSH où que je sois.

Pour des raisons compliquées, je ne peux pas utiliser la messagerie instantanée, le courrier électronique ou le téléphone pour la contacter. (Par exemple, je ne veux pas réveiller le bébé, mon client de messagerie instantanée est en panne, mon serveur de messagerie est en panne.) Ma seule option est de ssh à alphadistance et d'essayer de faire en sorte que quelque chose apparaisse à l'écran. Elle utilise KDE; Comment puis-je faire quelque chose pour attirer son attention et lui faire savoir que j'essaie de communiquer avec elle? Je pensais qu'il était possible de déclencher à distance quelque chose (comme xmessage) pour qu'elle apparaisse sur son écran même si ma session SSH n'a pas d'affichage X.

EDIT: Pour clarifier, mon téléphone n’exécute aucune version de X, donc X-over-ssh n’est pas possible. Est-ce que les travaux suivants fonctionneraient?

$ export DISPLAY=:0
$ xmessage "test"
du côté
la source
Envoyer un SMS à un téléphone en mode silencieux ... ou est-ce juste moi?
Nivas

Réponses:

27

Vous pouvez indiquer à un programme X quel affichage utiliser avec la DISPLAYvariable d'environnement, à condition de savoir quel affichage alphaest actuellement affiché. Le seul affichage est presque certainement :0, à moins que vous ne l'ayez manipulé manuellement, donc si vous exécutez:

$ export DISPLAY=:0

Ensuite, toutes les applications X que vous exécutez seront affichées sur alphale moniteur de. xmessageest un bon choix pour afficher des messages; il y a aussi xdialog. Si vous avez libnotifyinstallé, vous pouvez utiliser notify-sendpour afficher un message dans le coin de l’écran:

Exemple

Michael Mrozek
la source
Est-ce xauthou xhostnécessaire ici aussi?
Mikel
@ Mikel Je ne suis pas sûr de savoir comment fonctionne la sécurité lorsqu'un autre utilisateur exécute X; Je pense que ça va. Je n’ai jamais utilisé que xhostpour autoriser les connexions à distance, mais il est directement connecté à la machine
Michael Mrozek
C'est bien si vous pouvez vous connecter sur le même compte que celui auquel elle est connectée. Sinon, vous devrez gérer le contrôle d'accès X.
user7440
10

Comme l' illustre Michael Mrozek , vous pouvez exécuter des applications X qui s'affichent sur le bureau de votre femme. Tout ce que vous avez à faire est de définir la DISPLAYvariable d'environnement sur la bonne valeur (presque toujours :0)… et d'obtenir votre autorisation.

Cette solution nécessite que vous ayez la permission de lire les fichiers de votre femme. L'accès au serveur X nécessite un «cookie» d' authentification , qui est un mot de passe généré de manière aléatoire au démarrage de X et stocké dans un fichier. Le fichier est souvent ~/.Xauthority; sinon, il faut l'indiquer dans la XAUTHORITYvariable d'environnement. Sous Ubuntu avec la configuration par défaut (utilisant Gdm), le cookie de session de votre épouse ne se trouve pas dans, ~wife/.Xauthoritymais dans un fichier avec un nom généré automatiquement; voir la variable ssh DISPLAY . Voir aussi En tant que root, puis-je lancer un programme graphique sur le bureau d'un autre utilisateur? , Linux: wmctrl ne peut pas ouvrir l’affichage lorsque la session est lancée via ssh + screen .

Si votre femme a un terminal de texte ouvert, vous pouvez utiliser, write comme suggéré par user7440, pour écrire du texte dans son terminal. Cela nécessite que le terminal accepte de telles notifications; vous pouvez l'activer et le désactiver avec mesg you mesg n, et je ne connais pas l'état par défaut des émulateurs de terminaux modernes.

Un mécanisme plus sophistiqué qui writesoit talk. Le protocole de conversation est l'ancêtre des programmes de discussion; vous pouvez parler avec n'importe qui sur une machine utilisant un serveur de conversation et dont le port UDP 517 ou 518 (il existe deux variantes de protocole) n'est pas filtré. Alors installez talkd Installez talkd http://bit.ly/software-small , un client tel que ytalk Installez ytalk http://bit.ly/software-small , et ytalk wife. Il existe également un client X, xtalk Install xtalk http://bit.ly/software-small . Autant que je sache, la conversation est tout simplement tombée de l'écran (tout le monde qui l'utilise utilise l'un des procotols de discussion modernes), et aucun composant système ne générerait une notification KDE d'une demande de conversation.

Tandis que vous dites que vous ne pouvez exécuter aucun client de messagerie instantanée, un client de messagerie instantanée en ligne de commande exécuté sur votre ordinateur personnel auquel vous accédez via SSH serait-il correct? Il existe de tels exemples, par exemple weechat Install weechat http://bit.ly/software-small . Vous dépendriez toujours du serveur pour vous connecter avec votre femme, mais l'accès ne serait accessible que depuis votre ordinateur à la maison, pas depuis votre téléphone.

Gilles, arrête de faire le mal
la source
finchest la version en ligne de commande de pidgin.
LawrenceC
4

Si elle a une fenêtre de terminal ouverte (utilisez 'qui' pour le savoir), vous pouvez écrire sur ce terminal en utilisant 'write'. Cela ne fonctionnera pas avec le terminal principal car KDE le cache, mais toute fenêtre de terminal devrait fonctionner (si elle est sur le bureau actuel, non minimisée, elle le regarde ...).

utilisateur7440
la source
3

Je ne suis pas sûr à 100% que le réglage DISPLAY=:0.0va fonctionner. Je pense que vous avez besoin d'un moyen d'obtenir l'autorisation de vous connecter au serveur X sur le PC de votre femme. Les outils pour le faire sont xhostet xauth, mais ils semblent exiger que vous ayez déjà accès au serveur X. Par conséquent, seule votre femme pourrait les exécuter. (Problème de poulet et d'œuf.)

Sinon, vous pourrez peut-être démarrer un deuxième serveur X, par exemple en utilisant X :1, ou peut-être, chvtvous aider.

Par exemple, quelque chose comme

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

semble fonctionner sur mon système si je l’exécute en tant que root.

X :1 a été lancé sur vt7 sur mon système, vous pouvez donc aussi lancer

# chvt 7

pour être sûr que cet affichage X est celui actuellement visible.

Mikel
la source