Android Studio에서 Zsh 테마 변경


14

나는 최근에 배를 타고 오 오 내 Zsh를zsh 사용하고 있습니다! 테마 blinks. OSX 터미널에서는 매우 멋지지만 Android Studio의 터미널에서는 매우 나빠 보입니다.

그래서 내 질문은 이 세션이 OSX 터미널이 아닌 Android Studio에서 열렸는지 확인하고 zsh그에 따라 테마를 변경하는 방법 이 있습니까?

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


1
나는 대답이 없지만 이것이 Intellij의 일반적인 문제라고 생각합니다. 나는 이것을 얼마 전에 포럼에 게시 했습니다 . 대답을 직접 알고 싶습니다.
jktravis

나는 문제를 이해하지 못하지만 'PS1'을 무엇이든간에 변경하는 작은 스크립트를 실행하는 것만 큼 쉽습니다. 대부분 배경색을 바꾸고 싶은 것 같습니다.
Ray Andrews

2
일종의 멍청이로서 부모 프로세스 ($ PPID)에서 PID 1까지 PID 트리를 탐색 할 수 있습니다.이 경우 java테마를 전환하십시오.
drdaeman

답변:


2

아무도 당신에게 답을주지 않았으므로 완전히 다른 소프트웨어에도 불구하고 노력하고 있습니다. 따라서 이것은 모든 소프트웨어 로 수행하는 방법에 대한 일반적인 대답입니다 . 두 가지 접근 방식이 있습니다.

1. 다른 환경

터미널을 열고을 실행하십시오 env > env.terminal. Android Studio를 열고을 실행하십시오 env > env.studio. 이제 어느 터미널에서나 실행할 수 있습니다 diff -dby --suppress-common-lines env.terminal env.studio(Mac OS X diff에 해당 옵션이있는 경우 제대로 -U1작동 하지 않는 경우 ).

예를 들어, Linux 상자 xtermkonsoleLinux 상자 의 차이점은 다음 과 같습니다 (참고 : 페이지에 맞게 간격이 수정 됨).

                                   > PROFILEHOME=
                                   > SHELL_SESSION_ID=1e8d5ab2d16641668485f991a1beffe3
                                   > QSG_RENDER_LOOP=
                                   > COLORTERM=truecolor
XTERM_SHELL=/bin/bash              <
                                   > KONSOLE_DBUS_SESSION=/Sessions/1
XTERM_VERSION=XTerm(327)           | KONSOLE_DBUS_WINDOW=/Windows/1
TERM=xterm                         <
                                   > TERM=xterm-256color
                                   > KONSOLE_DBUS_SERVICE=:1.1514
                                   > QMLSCENE_DEVICE=
                                   > KONSOLE_PROFILE_NAME=Default
                                   > COLORFGBG=15;0
WINDOWID=83886094                  | WINDOWID=115343366
XAUTHORITY=/tmp/xauth-1000-_0      | XAUTHORITY=/home/anthony/.Xauthority
KDED_STARTED_BY_KDEINIT=1          <
XTERM_LOCALE=en_US.UTF-8           <

그 중 일부는 두 개의 다른 터미널을 시작한 방식에서 분명히 소음입니다. 그러나 다른 사람들은 그렇지 않습니다. XTerm에서만 무언가를 원한다면 if [ -n "$XTERM_VERSION" ]그렇게 할 수있는 좋은 방법 인 것 같습니다. 마찬가지로 Konsole의 $KONSOLE_PROFILE_NAME경우 좋은 것 (그리고 아마도 다른 것 중 일부) 일 것입니다.

2. 다른 부모 프로세스

쉘은 자체 프로세스 ID를 알고 있으며를 통해 액세스 할 수 있습니다 $$. POSIX는 $PPID부모 PID를 직접 가져와야하므로 zsh에도 해당 PID가 있다고 생각합니다. 그렇지 않은 경우 다음 ps을 얻을 수 있습니다 ppid=$(ps -o ppid= $$).. 그런 다음 ps를 사용하여 명령을 실행할 수 있습니다.

xterm:~$ ps -o args= $PPID
/usr/bin/xterm

konsole:~$ ps -o args= $PPID
/usr/bin/konsole

(당신도 시도 할 수 있습니다 -o comm=).

쉘 스크립트에서는 다음과 같습니다.

ppid=$(ps -o ppid= $$)   # if you don't have PPID for some reason
if [ "$(ps -o args= $ppid)" = "/usr/bin/xterm" ]; then
  echo "do xterm stuff"
fi

프로세스 트리를 더 진행해야하는 경우 ps부모의 부모 등을 얻는 데 사용할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.