У меня были припадки при переключении на console2, когда я пытался последовательно заставить консоль распознавать, когда X работал, а затем передавать ее должным образом на вкладки, когда я настраивал вкладки для подключения к другим системам. Это решение, на котором я остановился.
Сначала нужно было запустить сеанс cygwin через простой файл dos bat в оболочку, чтобы правильно определить, запущен X или нет. Для этого я использовал if / test, чтобы увидеть, был ли уже установлен $ DISPLAY. Если нет, он запускает простой вызов xset для -display: 0.0, чтобы проверить, работает ли X. (0.0 - это значение по умолчанию для моей настройки cygwin. Очевидно, что при желании вы можете проверить и другие). Если он возвращает true, он соответственно устанавливает DISPLAY. Я добавил это в конец профиля / etc / в cygwin, хотя вы, вероятно, могли бы поместить его в .bashrc или какой-либо другой скрипт, который всегда будет запускаться при входе в систему.
# /etc/profile check to set display if X is running on :0.0 if [ -n $DISPLAY ]; then if xset -display :0.0 q &>/dev/null; then export DISPLAY=:0.0 fi fi
При добавлении его в / etc / profile вам нужно вызвать оболочку входа при запуске console2. например, вызвать bash --login -i из вашего DOS-файла .BAT.
Чтобы справиться с переходом в другие системы, я изначально использовал простой вызов ssh из командного файла, но это было пропущено при настройке этого дисплея. Чтобы обойти это, я изменил файл bat, чтобы вместо этого сначала вызвать bash --login:
(Настройка DISPLAY была первоначальной попыткой другого предложения. На самом деле он ничего не делает для большинства приложений Cygwin)
ssh.bat
@echo off C: chdir C:\cygwin\bin if NOT "x%DISPLAY%" == "x" set DISPLAY=":0.0" set sshcmd="ssh -Y " bash --login -c %sshcmd%%1%
Важно отметить, что изменения в / etc / profile ничего не сделают, если X-сервер cygwin (или какой-либо другой сервер Xwindow) не работает на: 0.0 или если вы не вызываете оболочку входа в систему. Но если вы используете bash -i --login в вашем Cygwin.bat и указываете свои настройки console2 на этот файл, и используете пример Ssh.bat для подключения к удаленным системам (например, поместите C: \ cygwin \ ssh.bat [remote- host-name] в поле «Shell:» для настроек вкладки «Консоль» и C: \ cygwin \ bin в качестве каталога запуска)