
Mac OS X 터미널의 색 구성표를 변경하는 데 사용할 수 있는 명령이 있습니까? 나는 내가 실행하는 스크립트에 따라 색상을 변경할 수 있다는 아이디어를 좋아합니다. 지금까지는 괜찮지만 원하는 만큼 눈에 띄지는 않는 PS1의 bash 프롬프트 색상을 변경하고 있습니다.
답변1
무엇에 따라정확히터미널 스타일을 사용하여 AppleScript로 구현한 몇 가지 아이디어가 있습니다. 이는 색상 프롬프트로 재설정되기 때문에 보다 강력합니다 tput
. 등 (적어도 나에게는).
그러면 Python(현재 테스트에 사용할 수 있는 SSH 서버 없음)을 실행하는 모든 탭이 Homebrew로 설정되고 나머지 탭은 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
스크립트로 저장하고 osascript Name.scpt
쉘 색상을 다시 지정하고 싶을 때 언제든지 실행하십시오(물론 이를 쉘 스크립트 등으로 래핑할 수 있습니다).
모든 장기 실행 프로세스를 다르게 표시하려면 다음 조건을 사용하십시오.
if busy of tab t of window w is true then
또는 수동으로 선택한 단일 탭의 스타일을 설정할 수 있습니다.
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
다음과 같이 실행하세요:
osascript StyleTerm.scpt 3 Homebrew
-> 맨 앞 터미널 창의 세 번째 탭이 홈브루 스타일로 바뀌었습니다!
배경 창을 수정하려면 "앞 창"을 "탭" 바로 뒤와 같은 괄호 안에 있는 표현으로 바꾸세요. 선택한 "현재 탭"을 항상 수정하려면 selected tab
대신을 사용하십시오 tab (item 1 of argv as number)
.
.bash_profile
첫 번째 솔루션이 너무 육체 노동인 경우 다음을 추가하세요 .
PROMPT_COMMAND='osascript "/path/to/Name.scpt"'
이제 모든 프롬프트 전에 실행됩니다. (문제는 뭔가를 시작한 후가 아닙니다 ssh
. 즉, 이 주제는 어쨌든 멋진 bash 트릭에 관한 것이 아닙니다. 이것은 단지 포인터일 뿐입니다.)
답변2
스크립트는 tput
명령을 사용하여 이식 가능한 방식으로 색상을 설정할 수 있습니다. 다음 스크립트를 시도하면 터미널이 밝은 청록색 텍스트와 함께 어두운 청록색 배경으로 깨끗해지는 것을 볼 수 있습니다.
#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World
이에 대한 자세한 내용은 다음에서 확인할 수 있습니다.man 5 terminfo
"색상 처리"섹션에서.
터미널이 직접 인식하는 이스케이프 시퀀스를 에코하여 동일한 작업을 수행할 수 있습니다. 속도는 더 빠르지만 다른 터미널 프로그램을 사용하면 작동하지 않을 수 있습니다. 이들 중 다수는 xterm 시퀀스를 인식하며 여기에는 이를 사용하는 위의 스크립트가 표시됩니다.
#!/bin/bash
printf "\033[48;5;6m" # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World
xterm 제어 시퀀스에 대한 추가 정보가 있습니다.여기.
답변3
applescript를 사용하여 모든 새 터미널에 임의의 테마를 제공할 수 있습니다.
편집 .bash_profile
하고 이 명령을 추가하세요.
osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"
동일한 무작위 테마 터미널을 얻으면 언제든지 수동으로 ⌘I
설정할 수 있습니다.
이는 다양한 모양의 터미널 테마를 얻는 경우 더 유용합니다. 주위를 둘러보면 관련 사이트가 많이 있습니다.
답변4
이 AppleScript는 OS X 14.3에서 작동합니다(다른 답변은 작동하지 않습니다).
tell application "Terminal"
repeat with i in windows
try
set current settings of tabs in i to settings set "Solarized Dark"
end try
end repeat
end tell
터미널 응용 프로그램은 OS X 14.3에서 탭과 창을 노출하는 방식을 변경한 것으로 보입니다. 따라서 일부 창의 탭을 반복할 때 안정적으로 오류가 발생하게 됩니다. 그러나 이것들은 실제 창이 아닌 것 같으므로 그냥 무시해도 됩니다(저는 블록에 대해 그렇게 합니다 try ... end try
).
나는 쉘 스크립트에 다음과 같은 작은 스크립트를 인라인하는 경향이 있습니다.
osascript -e "tell application \"Terminal\"
repeat with i in windows
try
set current settings of tabs in i to settings set \"Solarized Dark\"
end try
end repeat
end tell"
저는 개인적으로 이것을 사용하여 터미널에서 밝은 테마와 어두운 테마를 자동으로 변경합니다(새 터미널 탭을 열거나 기능을 실행하기만 하면 됩니다 color_mode
). 이 작업을 수행하기 위한 전체 코드를 볼 수 있습니다.내 도트파일 저장소에.