Na moim głównym komputerze mam otwarty i zalogowany pulpit Ubuntu. Następnie loguję się również na tym komputerze ze zdalnego komputera, używając X2go, który tworzy nową sesję X. Mam plik libreoffice otwarty w oryginalnej sesji . Chcę zapisać ten plik i zamknąć go - ale ze zdalnego komputera! (Obie sesje mają zalogowanego tego samego użytkownika; w razie potrzeby mogę sudo)
Próbowałem użyć, xdotool search
ale nie udało się znaleźć okna. Czy jest sposób na zrobienie tego, czego chcę od drugiej sesji? Widzę proces za pomocą ps -A
Widzę nawet otwarty plik za pomocą lsof
! Jak mogę wykonać na nim operację „zapisz i zamknij”?
DISPLAY=:0
(lub cokolwiek innego, na którym wyświetla się twoje inne konto), a następnie uruchomienie serwera i przejście do niego od klienta. Ale to może być przesada. LibreOffice może mieć protokół wiadomości - nie znam go zbyt dobrze, ponieważ używam Dokumentów Google lub zwykłych plików tekstowych w Vimie (w tym LaTex) ...DISPLAY:1
a następnie uruchom dowolny program X (xeyes do testu) i będzie działał pod VNC. To samo dotyczy zdalnych serwerów vncservers. SSH do maszyny, a następnie po prostu uruchom eksport WYŚWIETLACZ: 1 przed użyciem.Odpowiedzi:
Zakładając domyślną konfigurację, xdpyinfo na „oryginalnym” pokazałby wyświetlanie „: 0.0”, np
Jeśli twoja zmienna środowiskowa DISPLAY na „x2go” to „: 1.0”, to powinno tak być.
Z terminala na „x2go” Spróbuj znaleźć identyfikator okna:
Możliwe, że kontrola dostępu jest skonfigurowana tak, aby nie działała, ale myślę, że powinna, jeśli jesteś tym samym identyfikatorem użytkownika na tym samym hoście (tj. Dostęp do ~ / .Xauthority). Zaznacz wynik „Xauth list”, jeśli nie masz dostępu.
Jeśli to działa, użyj swojego ulubionego narzędzia do sterowania nim. Dodaj „-int” do powyższego xwininfo, aby wypisać windowid dziesiętnie, jeśli twoje narzędzie tego wymaga, xdotool nie:
lub możesz mieć więcej szczęścia z tymi zamiast „ctrl + s” / „ctrl + q”
Możesz potrzebować „alt +” zamiast „meta +”, mam niestandardowe mapowania meta / alt / super. meta działa dla mnie, przetestowane przy użyciu Xnest. Zakładam, że niezmieniony układ menu w języku angielskim i akceleratory.
Możliwe, że na twojej drodze pojawi się wyskakujące okienko, w którym to przypadku warto spróbować:
kilka razy, a następnie ponów próbę zapisania i zamknięcia. Pamiętaj, że xdotool jest wybredny, jeśli chodzi o dokładny przypadek nazw „kluczy”.
Powinieneś być w stanie wypróbować to wszystko, uruchamiając libreoffice na x2go i NIE zmieniając swojego WYŚWIETLACZA. Powinieneś zapisać polecenia w pliku skryptu powłoki, aby zmiany fokusa nie zepsuły cię.
lsof powinien pokazywać, że plik nie jest już otwarty, jeśli zadziałał :-)
źródło
xdotool key "Escape"
temat nazw, ale nie wypróbowałem długich nazw: DWygląda na to, że istnieje kilka możliwych wymagań. najwyraźniej host musi znajdować się w pliku xhosts (oznaczono go jako odpowiedź) i wyeksportować odpowiednią wartość WYŚWIETLACZA. Ten post powinien pomóc ci to zrobić tak, jak chcesz, pozwalając xdotool znaleźć zdalne okno x11 .
źródło