Изменение темы Zsh в Android Studio

Я недавно прыгнул на корабль в zsh и я использую Oh my Zsh! тема blinks . В OSX Terminal очень хорошо выглядит, но в терминале Android Studio это очень плохо.

Поэтому мой вопрос заключается в том, есть ли способ проверить, что этот сеанс был открыт в Android Studio, а не в OSX Terminal, и изменить тему zsh соответствии с этим?

введите описание изображения здесь

введите описание изображения здесь

  • Могу ли я предотвратить замедление zsh с большой историей?
  • Как управлять mysql с помощью zpty?
  • цвета не расширяются в zsh print -P
  • Shell glob - заменить файл path arg с содержимым файла
  • Выход функции zsh удаляет ведущие пробелы
  • Сравнение строк в отдельных скобках в zsh
  • Прочитайте первую строку вывода команды. Команда соединяет меня с удаленным терминалом
  • Перемещение дескрипторов файлов в zsh
  • One Solution collect form web for “Изменение темы Zsh в Android Studio”

    Поскольку никто другой не дал вам ответа, я стараюсь, несмотря на совершенно другое программное обеспечение. Итак, это общий ответ о том, как это сделать с любым программным обеспечением. На ум приходят два подхода:

    1. Различные среды

    Откройте терминал и запустите env > env.terminal . Откройте Android Studio и запустите env > env.studio . Теперь в любом из терминалов вы можете запускать diff -dby --suppress-common-lines env.terminal env.studio (если у Mac OS X diff есть эти параметры, а если -U1 работает достаточно хорошо).

    В качестве примера, вот различие между xterm и konsole на моем 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 < 

    Некоторые из этих вещей явно звучат от того, как я запустил два разных терминала. Но другие – нет. Если бы я хотел что-то только в XTerm, то, if [ -n "$XTERM_VERSION" ] , казалось бы, был бы неплохим способом сделать это. Аналогично, для Konsole $KONSOLE_PROFILE_NAME будет хорошим (и, вероятно, некоторыми из других).

    2. Различные родительские процессы

    Оболочка знает свой собственный идентификатор процесса, к которому можно получить доступ через $$ . 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 для получения родительского родителя и т. Д.

    Interesting Posts

    Разрезает ли вырезать любые поля, если разделитель не существует

    Что означает перенаправление портов в «пересылке портов SSH»?

    Linux как производительность виртуализации хоста и клиента в Core i7?

    Как вы интегрируете медиаплеер с панелью задач Xfce, т. Е. Для управления воспроизведением / остановкой?

    Объем переменных при вызове функции из find

    ошибки клиентов Windows, обращающихся к принтеру через Samba, несмотря на работу CUPS

    Как очистить журналы в файловой системе ext3 / ext4?

    В init запустите собственный скрипт вместо оболочки

    Где точки монтирования, определенные в CentOS?

    Растровый шрифт в терминале Linux

    Как можно скрыть короткие клавиши X11 программой Python?

    Переключиться на текстовую консоль в Fedora

    Есть ли опасность использовать переменную unset в определении функции bash?

    Запуск сценария, как только сетевой интерфейс определяется как активный

    Объединить две операции в одну команду – awk

    Linux и Unix - лучшая ОС в мире.