在 Android Studio 中更改 Zsh 主题

在 Android Studio 中更改 Zsh 主题

我最近跳槽到zsh并且正在使用哦我的Zsh!主题blinks。它在 OSX 终端中看起来非常好,但在 Android Studio 终端中看起来很糟糕。

所以我的问题是有没有办法检查此会话是否已在 Android Studio 中打开,而不是在 OSX 终端中打开,并zsh据此更改主题?

在此输入图像描述

在此输入图像描述

答案1

由于没有人给你答案,所以尽管有完全不同的软件,我仍在尝试。所以这是关于如何做到这一点的通用答案任何软件。我想到了两种方法:

1、环境不同

打开终端,然后运行env > env.terminal​​.打开 Android Studio,然后运行env > env.studio​​.现在,在任一终端中,您都可以运行diff -dby --suppress-common-lines env.terminal env.studio(如果 Mac OS X diff 有这些选项;如果-U1效果不够好)。

作为示例,以下是我的 Linux 机器上的xterm和之间的区别konsole(注意:修改间距以适应页面):

                                   > 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、父进程不同

shell 知道它自己的进程 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=也可以尝试)。

在 shell 脚本中,它看起来像:

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获取父级的父级等。

相关内容