W zależności od tego , co dokładnie chcesz osiągnąć, oto kilka pomysłów w AppleScript przy użyciu stylów terminalu. Są one bardziej niezawodne niż tput
, ponieważ są resetowane przez kolorowe monity. itp. (przynajmniej dla mnie).
Spowoduje to ustawienie wszystkich kart z uruchomionym Pythonem (obecnie brak serwera SSH do testowania) na Homebrew, pozostałe na Ocean:
tell application "Terminal"
repeat with w from 1 to count windows
repeat with t from 1 to count tabs of window w
if processes of tab t of window w contains "Python" then
set current settings of tab t of window w to (first settings set whose name is "Homebrew")
else
set current settings of tab t of window w to (first settings set whose name is "Ocean")
end if
end repeat
end repeat
end tell
zapisz jako skrypt i uruchom tak, jak osascript Name.scpt
tylko chcesz zmienić kolor powłoki (oczywiście możesz to zawinąć jako skrypt powłoki lub coś takiego).
Jeśli chcesz wyświetlać wszystkie długotrwałe procesy inaczej, użyj następującego warunku:
if busy of tab t of window w is true then
Lub możesz ustawić styl pojedynczej karty, ręcznie wybrany:
on run argv
tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run
Uruchom tak:
osascript StyleTerm.scpt 3 Homebrew
-> Trzecia zakładka okna Terminalu z przodu ma styl Homebrew!
Jeśli chcesz zmodyfikować okna w tle, zastąp „okno przednie” wyrażeniem w nawiasie, tak jak zaraz po „tab”. Jeśli zawsze chcesz zmodyfikować wybraną „bieżącą kartę”, użyj selected tab
zamiast tab (item 1 of argv as number)
.
Dodaj następujące do swojego, .bash_profile
jeśli pierwsze rozwiązanie jest dla Ciebie zbyt pracochłonne:
PROMPT_COMMAND='osascript "/path/to/Name.scpt"'
Teraz jest wykonywany przed każdym monitem (tylko problem: nie po uruchomieniu czegoś, tj ssh
. Ale ten temat i tak nie dotyczy fantazyjnych sztuczek bashowych. To tylko wskaźnik).
Terminal -> Preferences -> Settings
z wyjątkiem tego, że chcę to zrobić za pomocą polecenia. Chcę utworzyć skrypt, który będzie wyglądać następująco:changeBackgroundTheme; ssh; changeBackgroundTheme
. Pomoże mi to przypomnieć, w których oknach jest obecniessh
.