web-dev-qa-db-fra.com

Diffuser un message du terminal à l'utilisateur connecté localement

Voici ce que j'essaie de faire. Les enfants regardent des films, youtube, etc. sur Ubuntu Box. Je fais tout ce que je veux sur Windows Box. Comme les enfants ont des écouteurs dans leurs oreilles, je veux me connecter à un terminal et leur envoyer un message, de quelque manière que ce soit, pour attirer leur attention ou leur envoyer un message. Je sais déjà comment me connecter au terminal à distance pour travailler sur la boîte pendant qu'ils jouent.

J'ai vu quelques options telles que "Wall" ou "Write", mais celles-ci ne semblent fonctionner que pour les connexions au terminal. Je peux envoyer des messages à mon compte de test connecté via le terminal, mais rien n'est transmis à l'utilisateur local assis devant le moniteur.

Quelles sont mes options? Pour l'essentiel, j'aimerais qu'une fenêtre s'ouvre avec le message que j'essaie de diffuser qui interrompra ce qu'ils font quand YouTube ou tout ce qui est en plein écran.

Pensées? Suggestions? Conseil?

5
KC5SDY

Accorder l'accès

xhost +local:

ou désactiver le contrôle d’accès, les clients peuvent se connecter à partir de n’importe quel hôte (mauvaise idée, mais cela semble aller dans votre réseau)

xhost +

Maintenant, vous pouvez le faire depuis votre connexion à distance:

DISPLAY=:0 xmessage -center " THIS IS A TEST MESSAGE"

Bellow est une petite démo. J'ai partagé la session entre TTY1 et le terminal GUI. Comme vous pouvez le constater, aucune variable d'environnement n'est définie pour DISPLAY. Ce terminal est donc comme si je travaillais dans TTY1. La commande ci-dessus définit temporairement la variable DISPLAY, faisant ainsi apparaître xmessage sur l'instance de xserver sur cet affichage.

enter image description here

J'ai essayé de faire la même chose avec notify-send mais cela ne semblait pas fonctionner.

EDIT

xmessage est un peu petit. Ce que je préférerais, c’est d’utiliser la boîte de dialogue zenity. Par exemple,

DISPLAY=:0 zenity --info --text=" THIS IS ZENITY INFO DIALOG "

1
Sergiy Kolodyazhnyy

Puisque vous voulez créer des fenêtres contextuelles sur leur écran, il serait plus simple de:

1) Lancez un programme (j'utiliserais un script Perl) lorsque vos enfants se connecteront. Mettez-le en arrière-plan. Le script Perl doit écouter une connexion TCP sur un port inutilisé situé au-dessus de 1024 et inférieur à 65536, dites le port 12345. Lorsqu'il reçoit un message (sur TCP port 12345), il peut générer la fenêtre contextuelle et attendre la ligne suivante.

2) Sous Windows, utilisez PuTTY pour vous connecter au TCP port 12345 du serveur Ubuntu, puis tapez votre message.

1
waltinator

Si vous souhaitez un message simple et bref, vous pouvez utiliser notify-send. Cela créera un message d’alerte de courte durée dans le coin supérieur droit de l’écran (du même style utilisé par Thunderbird pour vous avertir de l’arrivée de nouveaux messages ou par Filezilla pour vous avertir qu’une opération de longue durée est terminée).

notify-send "message text here"

ou

notify-send "title here" "message text here"

ou, si vous vraiment voulez leur attention,

notify-send "title here" "message text here" -i face-angry

qui mettra un visage en colère (il ya une surprise!) avant le message. Vous pouvez utiliser différentes icônes. Pour voir la liste disponible sur votre ordinateur, entrez ls /usr/share/icons/gnome/32x32/emotes/.

0
TRiG