web-dev-qa-db-ja.com

Android StudioでZshテーマを変更する

最近、船をzshにジャンプし、 Oh my Zsh! テーマblinksを使用しています。 OSXターミナルでは見た目はとても良いですが、Android Studioのターミナルでは見た目がとても悪いです。

だから私の質問はこのセッションがAndroid Studioで開かれているのではなく、 OSXターミナルとそれに応じてzshテーマを変更しますか?

enter image description here

enter image description here

14
Sheharyar

他の誰からも答えが得られなかったので、まったく異なるソフトウェアを使用しているにもかかわらず、私は試みています。したがって、これはanyソフトウェアでそれを行う方法に関する一般的な答えです。頭に浮かぶ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ボックスでのxtermkonsoleの違いは次のとおりです(注:ページに合わせて間隔が変更されています):

_                                   > 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           <
_

その中には、2つの異なる端末を起動したときのノイズが含まれています。しかし、他はそうではありません。 XTermでのみ何かが必要な場合、_if [ -n "$XTERM_VERSION" ]_はそれを行うにはかなり良い方法のようです。同様に、Konsoleの場合、_$KONSOLE_PROFILE_NAME_が適切です(おそらく他のいくつかも同様です)。

2.異なる親プロセス

シェルは自身のプロセスIDを知っており、_$$_を介してアクセスできます。 POSIXには、親PIDを直接取得するための_$PPID_もあるので、zshにもあると思います。そうでない場合は、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を使用して親の親などを取得できます。

2
derobert