Używam Cygwin i używam Console2 jako zamiennika domyślnego terminalu Cygwin. Muszę użyć przekierowania X11 i za każdym razem, gdy uruchamiam startxwin, uruchamia go w nowym terminalu. Zamiast tego chciałbym, aby był otwarty w tym samym terminalu (lub w nowej karcie), w Console2. Idealnie byłbym w stanie uruchomić Cygwin za pomocą startxwin lub uruchomić nową kartę z serwerem Cygwin XWin. Prawdopodobnie będzie to wymagało edycji .startxwinrc
pliku, ale nie jestem pewien, jak to zrobić. Niedawno zacząłem używać przekazywania X11 w Cygwin.
Jak mogę to zrobić?
Dzięki.
EDYCJA
Próbuję rozpocząć sesję X11 w Cygwin. Można to zrobić, ustawiając DISPLAY
zmienną środowiskową na 0.0
. Serwer X11 jest następnie uruchamiany przez wydanie polecenia startxwin
. Po wydaniu tego polecenia otwiera się nowy terminal w innym oknie. Ten terminal jest niezwykle prosty i dość brzydki. Chcę, aby terminal pojawił się jako nowa karta w Console2 lub uruchomił go w tym samym terminalu, z którego został uruchomiony. W ten sposób mogę kontynuować pracę w terminalu zoptymalizowanym do moich upodobań. Alternatywnie, jeśli możliwe jest uruchomienie Cygwin z włączonym przekierowaniem X11, byłoby to bardziej idealne. Obecnie uruchamiam Cygwin za pomocą tego poleceniaH:\bin\bash.exe --login -i -c "cd /cygdrive/d; exec /bin/bash"
. Cały powód, dla którego muszę używać X11, to to, że SSHing do zdalnego serwera, który ma programy z GUI, których muszę użyć. Chcę tylko móc zrobić wszystko w Console2.
źródło
Odpowiedzi:
Miałem problemy z przejściem na konsolę 2, próbując konsekwentnie sprawić, aby konsola rozpoznała, kiedy X jest uruchomiony, a następnie poprawnie przekazała ją do kart, kiedy ustawiam karty do łączenia się z innymi systemami. To jest rozwiązanie, na którym ostatecznie się zdecydowałem.
Pierwszym było uruchomienie sesji cygwin przez prosty plik dos bat do powłoki, aby poprawnie ustalić, czy X działa, czy nie. Aby to zrobić, użyłem if / test, aby sprawdzić, czy $ DISPLAY jest już ustawiony. Jeśli nie, uruchamia proste wywołanie xset do -display: 0.0, aby sprawdzić, czy X działa. (0.0 jest ustawieniem domyślnym dla mojej konfiguracji cygwin. Możesz oczywiście sprawdzić tutaj również innych, jeśli chcesz). Jeśli zwróci wartość true, ustawia odpowiednio WYŚWIETLACZ. Dodałem to na końcu profilu / etc / w cygwin, chociaż prawdopodobnie możesz umieścić go w .bashrc lub innym skrypcie, który zawsze działałby po zalogowaniu.
Dodając go do / etc / profile, musisz uruchomić powłokę logowania podczas uruchamiania konsoli2. np. wywołanie bash --login -i z pliku dos .BAT.
Aby poradzić sobie z przechodzeniem do innych systemów, początkowo korzystałem z prostego wywołania ssh z pliku wsadowego, ale pomijałem ustawienie tego ekranu. Aby obejść ten problem, zmodyfikowałem plik nietoperza, aby zamiast tego wywołać najpierw bash - zaloguj się:
(ustawienie DISPLAY było początkową próbą innej sugestii. W rzeczywistości nie robi nic w przypadku większości aplikacji cygwin)
ssh.bat
Ważne jest, aby pamiętać, że zmiany w / etc / profile nic nie zrobią, jeśli serwer X cygwina (lub inny serwer Xwindow) nie działa na: 0.0 lub jeśli nie wywołujesz powłoki logowania. Ale jeśli użyjesz bash -i --login w Cygwin.bat i wskażesz ustawienia konsoli 2 na ten plik, i użyjesz przykładowego Ssh.bat, aby połączyć się ze zdalnymi systemami (np. Wstaw C: \ cygwin \ ssh.bat [remote- nazwa-hosta] w polu „Shell:” dla ustawień karty Console i C: \ cygwin \ bin jako katalog startowy)
źródło