색상 테마를 변경하는 OS X 터미널 명령


17

Mac OS X 터미널의 색 구성표를 변경하는 데 사용할 수있는 명령이 있습니까? 나는 내가 실행하는 스크립트에 따라 색상을 바꿀 수 있다는 아이디어를 좋아한다. 지금까지 PS1을 사용하여 bash 프롬프트의 색상을 변경하고 있습니다.


내가하고 싶은 Terminal -> Preferences -> Settings것은 명령 으로이 작업을 수행하려는 것을 제외하고 는 같은 방식으로 터미널 배경색을 변경하는 것 입니다. 다음과 같은 스크립트를 만들고 싶습니다 changeBackgroundTheme; ssh; changeBackgroundTheme. 이것은 현재 어느 창에 있는지 알려주는 데 도움이됩니다 ssh.
sixtyfootersdude

답변:


18

정확히 달성하려는 것에 따라 터미널 스타일을 사용하는 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

-> 맨 앞 터미널 창의 세 번째 탭은 Homebrew 스타일을 갖습니다!

배경 창을 수정하려면 "앞 창"을 "tab"바로 뒤에 괄호로 묶은 식으로 바꾸십시오. 선택한 "현재 탭"을 항상 수정하려면 selected tab대신을 사용하십시오 tab (item 1 of argv as number).


.bash_profile첫 번째 해결책이 너무 수작업이라면 다음을 추가하십시오 .

PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

이제는 모든 프롬프트 전에 실행됩니다 (문제 만 : 무언가를 시작한 후에 ssh는 아닙니다. 그러나이 주제는 어쨌든 멋진 배쉬 트릭에 관한 것이 아닙니다. 이것은 단지 포인터입니다.)


6

스크립트는 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 제어 시퀀스에 대한 자세한 정보는 여기에 있습니다 .


이것은 색상에 약간의 영향을 미치는 것으로 보이지만 setaf는 전혀 아무것도하지 않는 것 같습니다. 내가 정말로 원하는 것은 waiwai가 제안하지만 GUI를 사용하지 않고 프로그래밍 방식으로 Mac OS 터미널 테마를 변경하는 것입니다.
satur9nine

비슷한 테마를 변경하는 방법이 Terminal -> Preferences -> Settings있습니까?
sixtyfootersdude

@ sixtyfootersdude :와 함께 할 수있는 방법이 있을지 osascript모르지만 익숙하지 않습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1

applescript를 사용하여 모든 새로운 터미널에 임의의 테마를 부여 할 수 있습니다.

당신을 편집 .bash_profile하고이 명령을 추가하십시오

osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

동일한 임의의 테마 터미널을 얻는 경우 항상 ⌘I수동으로 설정하고 설정할 수 있습니다.

이것은 다른 모양의 터미널 테마를 많이 얻는 경우 더 유용합니다. 둘러 보면 많은 사이트가 있습니다.


좋아요 이 명령으로 별칭을 만들었으므로 임의로 새 설정으로 임의로 변경할 수 있습니다.
WeakPointer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.