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.