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


14

私は最近船に飛び乗っzshて、Oh my Zshを使っています!テーマblinks。OSXターミナルでは非常にきれいに見えますが、Android Studioのターミナルでは非常に悪く見えます。

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

ここに画像の説明を入力してください

ここに画像の説明を入力してください


1
答えはありませんが、これは一般的なIntellijの問題だと思います。私はしばらく前に彼らのフォーラムにこれを投稿しました。自分で答えを知りたいです。
jktravis

問題を理解しているかどうかはわかりませんが、小さなスクリプトを実行するだけで「PS1」を何から何にでも変更するのは簡単です。背景色をほとんど変更したいようです。
レイアンドリュース

2
ちょっとした手間として、親プロセス($ PPID)からPID 1までのPIDツリーをたどってみることができます。表示されている場合はjava、テーマを切り替えます。
-drdaeman

回答:


2

他の誰もあなたに答えを与えていないので、私は完全に異なるソフトウェアを持っているにもかかわらず試みています。これはでそれを行う方法についての一般的な答えである任意のソフトウェア。思い浮かぶ2つのアプローチがあります。

1.さまざまな環境

ターミナルを開き、を実行しenv > env.terminalます。Android Studioを開き、を実行しenv > env.studioます。これで、どちらの端末でも実行できますdiff -dby --suppress-common-lines env.terminal env.studio(Mac OS X diffにこれらのオプションがある場合、-U1十分に機能しない場合)。

例として、ここでの違いであるxtermkonsole私のLinuxボックス(:間隔ページに収まるように修正ノート)には:

                                   > 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 $PPIDは親PIDを直接取得する必要があるため、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、親の親などを取得するために使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.