Android Studio'da Zsh temasını değiştirme


14

Geçenlerde gemiye atladım zshve Oh my Zsh! tema blinks. OSX Terminalinde çok güzel görünüyor, ancak Android Studio'nun terminalinde çok kötü görünüyor.

Yani sorum şu : Bu oturumun OSX Terminali'nde değil Android Studio'da açıldığını kontrol etmenin ve zshtemayı buna göre değiştirmenin bir yolu var mı?

resim açıklamasını buraya girin

resim açıklamasını buraya girin


1
Cevabım yok, ama bunun genel olarak Intellij ile ilgili bir sorun olduğunu düşünüyorum. Ben yayınlanmıştır bu bir süre önce kendi forumlarında. Cevabı kendim bilmek isterdim.
jktravis

Sorunu anladığımdan emin değilim, ancak 'PS1'i değiştirmek için küçük bir komut dosyası çalıştırmak yeterince kolaydır. Görünüşe göre çoğunlukla arka plan rengini değiştirmek istiyorsunuz.
Ray Andrews

2
Bir çeşit çamur olarak, ana işleminizden ($ PPID) çok PID 1'e kadar PID ağacından geçmeyi deneyebilirsiniz. Orada görürseniz javatemayı değiştirin.
drdaeman

Yanıtlar:


2

Başka hiç kimse size bir cevap vermediğinden, tamamen farklı bir yazılım olmasına rağmen deniyorum. Bu, herhangi bir yazılımla nasıl yapılacağı konusunda genel bir cevaptır . Akla gelen iki yaklaşım vardır:

1. Farklı ortamlar

Terminal'i açın ve çalıştırın env > env.terminal. Android Studio'yu açın ve çalıştırın env > env.studio. Şimdi, her iki terminalde de çalıştırabilirsiniz diff -dby --suppress-common-lines env.terminal env.studio(Mac OS X diff bu seçeneklere sahipse; -U1yeterince iyi değilse).

Örnek olarak, Linux kutum arasında xtermve konsoleLinux kutumdaki fark (not: sayfaya sığacak şekilde değiştirildi):

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

Bu şeylerden bazıları, iki farklı terminali başlattığımdan açıkça geliyor. Ama diğerleri değil. Sadece XTerm'de bir şey isteseydim, if [ -n "$XTERM_VERSION" ]bunu yapmanın oldukça iyi bir yolu olurdu. Benzer şekilde, Konsole için, $KONSOLE_PROFILE_NAMEiyi bir tane olurdu (ve muhtemelen diğerlerinden birkaçı).

2. Farklı ebeveyn süreçleri

Bir kabuk kendi işlem kimliğini bilir, ona erişilebilir $$. POSIX ayrıca $PPIDüst PID'yi doğrudan almak zorundadır, bu yüzden zsh'da da olduğundan şüpheleniyorum. Değilse, pssizin için alabilirim: ppid=$(ps -o ppid= $$). Daha sonra komutu da ps ile çalıştırabilirsiniz:

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

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

(Siz de deneyebilirsiniz -o comm=).

Bir kabuk komut dosyasında şöyle görünür:

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

İşlem ağacında daha ileri gitmeniz psgerekiyorsa, ebeveynin ebeveynini vb. Almak için kullanabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.