C'è un modo per comunicare con qualcuno sul loro desktop?


36

Mia moglie è seduta sul suo desktop di casa alpha, che esegue una versione recente di Ubuntu. Sono su un autobus, usando ConnectBot sul mio telefono G1, e posso entrare in SSH alphaovunque io sia.

Per ragioni complicate, non posso usare messaggistica istantanea, e-mail o telefono per contattarla. (Ad esempio, non voglio svegliare il bambino, il mio client di messaggistica istantanea è rotto, il mio server di posta elettronica è inattivo.) La mia unica opzione è quella di accedere in alpharemoto e provare a far apparire qualcosa sullo schermo. Sta usando KDE; come posso far apparire qualcosa per attirare la sua attenzione e farle sapere che sto cercando di comunicare con lei? Ho pensato che fosse possibile attivare in remoto qualcosa (come xmessage) per apparire sul suo schermo anche se la mia sessione SSH non ha un display X.

EDIT: Per chiarire, il mio telefono non ha alcun sapore di X, quindi X-over-ssh non è possibile. Il seguente funzionerebbe?

$ export DISPLAY=:0
$ xmessage "test"

Invia un SMS a un telefono in modalità silenziosa ... o sono solo io?
Nivas,

Risposte:


27

Puoi dire a un programma X quale display usare con la DISPLAYvariabile d'ambiente, purché tu sappia quale display alphasta mostrando. Quasi certamente l'unico display è :0, a meno che tu non abbia manipolato manualmente con esso, quindi se esegui:

$ export DISPLAY=:0

Quindi tutte le applicazioni X eseguite verranno visualizzate sul alphamonitor di. xmessageè una buona scelta per mostrare messaggi; c'è anche xdialog. Se hai libnotifyinstallato, puoi usare notify-sendper far apparire un messaggio nell'angolo dello schermo:

Esempio


È xautho è xhostnecessario anche qui?
Mikel,

@Mikel Non sono sicuro di come funzioni la sicurezza quando un altro utente esegue X; Penso che vada bene. Ho sempre usato solo xhostper consentire connessioni remote, ma è direttamente SSHing alla macchina
Michael Mrozek

Va bene se riesci ad accedere con lo stesso account con cui ha effettuato l'accesso. Altrimenti dovrai occuparti del controllo dell'accesso X.
user7440

10

Come illustra Michael Mrozek , puoi eseguire le applicazioni X visualizzate sul desktop di tua moglie. Tutto quello che devi fare è impostare la DISPLAYvariabile di ambiente sul valore corretto (quasi sempre :0) ... e ottenere l'autorizzazione.

Questa soluzione richiede l'autorizzazione a leggere i file di tua moglie. L'accesso al server X richiede un "cookie" di autenticazione , che è una password che viene generata casualmente all'avvio di X e memorizzata in un file. Il file è spesso ~/.Xauthority; in caso contrario, deve essere indicato nella XAUTHORITYvariabile di ambiente. Sotto Ubuntu con la configurazione predefinita (usando Gdm), il cookie di sessione di tua moglie non è presente ~wife/.Xauthorityma in un file con un nome generato automaticamente; vedi variabile DISPLAY ssh . Vedi anche Come root posso avviare un programma grafico sul desktop di un altro utente? , Linux: wmctrl non può aprire il display quando la sessione viene avviata tramite ssh + screen .

Se tua moglie ha un terminale di testo aperto, puoi usare write come suggerito dall'utente7440 per scrivere del testo nel suo terminale. Ciò richiede che il terminale accetti tali notifiche; puoi accenderlo e spegnerlo con mesg yo mesg n, e non so quale sia lo stato predefinito sui moderni emulatori di terminali.

Un meccanismo più sofisticato che writeè talk. Il protocollo talk è l'antenato dei programmi di chat; puoi parlare con chiunque su una macchina che esegue un talk server e la cui porta UDP 517 o 518 (ci sono due varianti di protocollo) non sia filtrata. Quindi installa talkd Installa talkd http://bit.ly/software-small , un client come ytalk Installa ytalk http://bit.ly/software-small e ytalk wife. C'è anche un client X, xtalk Installa xtalk http://bit.ly/software-small . Per quanto ne so, i discorsi sono semplicemente caduti dal radar (tutti coloro che si preoccupano usano uno dei moderni procotoli di chat) e non esiste alcun componente di sistema che generi una notifica KDE di una richiesta di discorsi.

Mentre dici che non puoi eseguire alcun client di messaggistica istantanea ... un client di messaggistica istantanea da riga di comando in esecuzione sul tuo computer di casa a cui si accede tramite SSH sarebbe ok? Ce ne sono, ad esempio weechat Installa weechat http://bit.ly/software-small . Saresti comunque dipendente da alcuni server per connetterti con tua moglie, ma sarebbe accessibile solo dalla tua macchina di casa, non dal tuo telefono.


finchè la versione della riga di comando di pidgin.
LawrenceC,

4

Se ha una finestra del terminale aperta (usa 'chi' per scoprirlo) puoi scrivere su quel terminale usando 'scrivi'. Questo non funzionerà con il terminale principale poiché KDE lo nasconde, ma qualsiasi finestra del terminale dovrebbe funzionare (se si trova sul desktop corrente, non ridotto a icona, lo sta guardando ...).


3

Non sono sicuro al 100% che l'impostazione DISPLAY=:0.0funzioni. Penso che tu abbia bisogno di un modo per ottenere l'autorizzazione per collegarti al server X sul PC di tua moglie. Gli strumenti per farlo sono xhoste xauth, ma sembrano richiedere che tu abbia già accesso al server X, quindi presumibilmente solo tua moglie potrebbe eseguirli. (Problema con pollo e uova.)

In caso contrario, potresti essere in grado di avviare un secondo server X, ad esempio utilizzando X :1, o forse chvtpuò aiutare.

Ad esempio, qualcosa del genere

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

sembra funzionare sul mio sistema se lo eseguo come root.

X :1 è stato avviato su vt7 sul mio sistema, quindi puoi anche eseguirlo

# chvt 7

per essere sicuri che quel display X sia quello attualmente visibile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.