Moja żona siedzi na domowym pulpicie alpha
, na którym jest uruchomiona najnowsza wersja Ubuntu. Jestem w autobusie, używam ConnectBot na moim telefonie G1 i mogę SSH do alpha
dowolnego miejsca.
Z skomplikowanych powodów nie mogę używać wiadomości błyskawicznych, poczty elektronicznej ani telefonu w celu skontaktowania się z nią. (Np. Nie chcę budzić dziecka, mój klient czatu jest zepsuty, mój serwer e-mail jest wyłączony). Moją jedyną opcją jest alpha
zdalne włączenie ssh i próba pokazania czegoś na ekranie. Ona używa KDE; jak mogę sprawić, by coś wyskoczyło, aby przyciągnąć jej uwagę i powiadomić ją, że próbuję się z nią porozumieć? Myślałem, że można zdalnie uruchomić coś (np. Xmessage), aby pojawiło się na jej ekranie, mimo że moja sesja SSH nie ma wyświetlania X.
EDYCJA: Aby wyjaśnić, mój telefon nie działa w żadnej wersji X, więc X-over-ssh nie jest możliwe. Czy następujące działania będą działać?
$ export DISPLAY=:0
$ xmessage "test"
Odpowiedzi:
Możesz powiedzieć programowi X, który ekran ma używać ze
DISPLAY
zmienną środowiskową, o ile wiesz, który ekranalpha
jest aktualnie wyświetlany. Niemal na pewno jedynym wyświetlaczem jest:0
, chyba że ręcznie go bawiłeś, więc jeśli uruchomisz:Następnie wszelkie uruchomione aplikacje X zostaną wyświetlone na
alpha
monitorze.xmessage
jest dobrym wyborem do wyświetlania wiadomości; jest teżxdialog
. Jeśli maszlibnotify
zainstalowany, możesz użyćnotify-send
do wyskakującego komunikatu w rogu ekranu:źródło
xauth
lubxhost
konieczna tu też?xhost
zezwalając na zdalne połączenia, ale on SSHing bezpośrednio do maszynyJak pokazuje Michael Mrozek , możesz uruchamiać aplikacje X wyświetlane na pulpicie żony. Wszystko, co musisz zrobić, to ustawić
DISPLAY
zmienną środowiskową na odpowiednią wartość (prawie zawsze:0
)… i uzyskać autoryzację.To rozwiązanie wymaga pozwolenia na odczyt plików żony. Dostęp do serwera X wymaga „cookie” uwierzytelniającego , które jest losowo generowanym hasłem podczas uruchamiania X i zapisywane w pliku. Plik jest często
~/.Xauthority
; jeśli nie, należy to wskazać wXAUTHORITY
zmiennej środowiskowej. W systemie Ubuntu z domyślną konfiguracją (przy użyciu Gdm) ciasteczko sesyjne żony nie znajduje się~wife/.Xauthority
w pliku o automatycznie generowanej nazwie, ale w nim; patrz zmienna ssh DISPLAY . Zobacz także Jako root mogę uruchomić program graficzny na pulpicie innego użytkownika? , Linux: wmctrl nie może otworzyć ekranu, gdy sesja jest inicjowana przez ssh + screen .Jeśli twoja żona ma otwarty terminal tekstowy, możesz użyć,
write
zgodnie z sugestią user7440, do napisania tekstu w jej terminalu. Wymaga to, aby terminal akceptował takie powiadomienia; możesz to włączać i wyłączać za pomocąmesg y
lubmesg n
, i nie wiem, jaki jest domyślny stan nowoczesnych emulatorów terminali.Bardziej wyrafinowany mechanizm, który
write
jesttalk
. Protokół rozmów jest przodkiem programów czatowych; możesz rozmawiać z każdym na komputerze, na którym działa serwer rozmów i którego port UDP 517 lub 518 (istnieją dwa warianty protokołu) nie jest filtrowany. Więc zainstaluj talkd Zainstaluj talkd http://bit.ly/software-small , klient taki jak ytalk Zainstaluj ytalk http://bit.ly/software-small iytalk wife
. Istnieje również klient X, xtalk Zainstaluj xtalk http://bit.ly/software-small . O ile mi wiadomo, rozmowa po prostu spadła z radaru (każdy, kogo to obchodzi, korzysta z jednego z nowoczesnych protokołów czatu) i nie ma komponentu systemowego, który generowałby powiadomienie KDE o żądaniu rozmowy.Podczas gdy mówisz, że nie możesz uruchomić żadnego klienta czatu… czy klient czatu z linii poleceń działający na twoim komputerze domowym, do którego można uzyskać dostęp przez SSH, byłby w porządku? Są takie, na przykład weechat Install weechat http://bit.ly/software-small . Nadal będziesz zależał od jakiegoś serwera, który łączy cię z żoną, ale dostęp do niego będzie możliwy tylko z komputera domowego, a nie z telefonu.
źródło
finch
to wersja pidgin z linii poleceń.Jeśli ma otwarte okno terminala (użyj „kto”, aby się dowiedzieć), możesz pisać do tego terminala, używając „write”. Nie będzie to działać z głównym terminalem, ponieważ KDE je ukrywa, ale każde okno terminala powinno działać (jeśli jest na bieżącym pulpicie, nie jest zminimalizowane, patrzy na niego ...).
źródło
Nie jestem w 100% pewien, że ustawienie
DISPLAY=:0.0
zadziała. Myślę, że potrzebujesz sposobu na uzyskanie autoryzacji na połączenie z serwerem X na komputerze swojej żony. Narzędzia do zrobienia, że sąxhost
axauth
, ale wydają się wymagać masz już dostęp do serwera X, więc prawdopodobnie tylko twoja żona mogła je uruchomić. (Problem z kurczakiem i jajkami.)W przeciwnym razie możesz uruchomić drugi serwer X, np. Używając
X :1
, a możechvt
możesz pomóc.Na przykład coś takiego
wydaje się działać w moim systemie, jeśli uruchomię go jako root.
X :1
został uruchomiony na vt7 w moim systemie, więc możesz także uruchomićaby upewnić się, że ten wyświetlacz X jest obecnie widoczny.
źródło