터미널을 열 때마다 다른 터미널 색상을 자동으로 얻습니다.


14

나는 종종 자신이 세 개의 터미널을 여는 것을 발견하고 각각에 독특한 색상 팔레트를 갖는 모양과 느낌을 정말로 좋아합니다.

몇 가지 색상 팔레트가 저장되어 있으며 터미널을 열 때마다 저장된 프로파일을 통해 기본값을 진행하고 싶습니다. 따라서 3을 열면 2에서 프로파일을 수동으로 변경할 필요없이 서로 다른 색상이됩니다.

이견있는 사람?

감사!


방금 원하는 것을 수행하는 스크립트로 내 대답을 편집했습니다. ./bashrc 파일에 추가해야 합니다. 그것이 당신의 필요에 적합하기를 바랍니다!
IanC

답변:


10

기능적 버전

명령:

스크립트 는 기본 우분투 터미널 인 gnome-terminal을 사용하고 있다고 간주합니다 .

스크립트를 실행하기 전에 gnome-terminal을 열고 원하는 다른 설정 (배경색, 텍스트 색, ..)으로 일부 프로파일 (편집> 기본 설정> 프로필)을 만드십시오. 이름을 Profile1, Profile2, Profile3 등으로 지정할 수 있습니다. 열려는 터미널 수를 포괄 할 수있는 충분한 프로파일을 작성하십시오. 그러나 더 많은 수의 터미널을 열면 기본 프로파일이 사용됩니다.

이 스크립트는 ~ / .Bash_Color_Changer 파일을 생성하는데,이 파일 은 터미널이 정기적으로 열렸는지 또는 .bashrc 호출 후 스크립트에 알리기 때문에 파일에 의존합니다 .

~ / .bashrc 파일 끝에 스크립트를 추가 하십시오.

스크립트:

추가 .bashrc:

#Change color according to the number of Bash shells opened
#Creates the .Bash_Color_Changer file if it's not present
if ! [ -f ~/.Bash_Color_Changer ]; then
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

#Array holding the name of the profiles: Substitute it for the names you're using
Color_counter=(Profile1 Profile2 Profile3)
#Finds out the number of opened bashs counting the lines containing "bash"
#in the pstree function. (-c deactivates compact display to avoid it showing
#lines with "2*[bash]" instead of one for each bash)
Number_of_bashs=$(($(pstree -c | grep "bash" | wc -l)-1))

#Checks if the terminal being opened was opened by the user or by
#the script, and act according to it
if [ $(cat ~/.Bash_Color_Changer) = ORIGINAL ]; then 
    if ((Number_of_bashs < ${#Color_counter[*]})); then
        echo COPY > ~/.Bash_Color_Changer
        gnome-terminal --tab-with-profile-internal-id=${Color_counter[${Number_of_bashs}]} 
        exit
    fi
else 
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

테스트되었지만 광범위하지는 않습니다. 즐겨!


내일에 대한 아이디어는와 exit같은 파일 을 기반으로 조건부를 추가합니다 ~/bashcolor.txt. 열린 bash가 "원본"인지 "복사본"인지 말할 줄이있을 수 있습니다. 따라서 cat ~/bashcolor.txt"ORIGINAL"을 반환하면 exit명령이 실행 echo COPY > ~/bashcolor.txt됩니다. 그렇지 않으면 엑시트가 실행되지 않지만 파일은 원래 ( echo ORIGINAL > ~/bashcolor.txt) 로 돌아갑니다 . 깜박이는 터미널 문제를 해결합니다.
IanC

재미있는 스크립트를 만들어서 직접 사용할 수도 있습니다 :) 개선 제안은 환영합니다!
IanC

믿을 수있는 한에서이 작품
boomt14

2
내 버전에서 1 개의 변경 사항을 작성했습니다 ... 이렇게하면 프로파일보다 많은 터미널을 열 때 계속 순환됩니다. Number_of_bashs=$(($(($(pstree -c | grep "bash" | wc -l)-1))%${#Color_counter[@]}))
kpie

좋은! 반복을 주기적으로 유지하기 위해 모듈러스를 사용하는 것이 마음에 들지 않았습니다. p
IanC

9

하나의 옵션으로 사용할 수 있습니다 xfce4-terminal. 기본 우분투 터미널 ( gnome-terminal)과 매우 유사 하며 많은 종속 패키지가 gtk 구성 요소를 사용하므로 적합한 대안입니다.

먼저 설치

sudo apt-get install xfce4-terminal

그런 다음 파일을 열고 편집 -> 환경 설정으로 이동하여 색상 탭을 선택 하고 각 탭의 배경색을 바꾼 다음 지금 종료 옵션을 확인하십시오 .

기본 터미널을 만들 xfce4-terminal거나 바로 가기를 변경하여 Ctrl-Alt-T엽니 다.

이제 열 때마다 다른 색상 팔레트가 표시됩니다. 다른 컬러 터미널

유용한 링크:


5

하하, 매우 흥미 롭습니다. 나도 이것을 시도 할 수 있습니다. 나는 주로 여러 터미널과 브라우저를 실행합니다.

그래서 나는 둘러보고 이것을 발견했습니다 -https : //github.com/sos4nt/dynamic-colors . 원하는 것의 일부를 달성하는 데 도움이되는 매우 깔끔한 작은 프로젝트.

이제 colorschemes/해당 프로젝트 의 디렉토리 에 현재 4 가지 색 구성표가 있음을 알 수 있습니다. 필요 / 원하는만큼 추가 할 수 있습니다.

다른 색 구성표를 선택하는 모든 터미널을 얻을 그래서, 나는에 기능을 추가 할 내 .bash_profile또는 .bashrc어디든지, 함수가 다음과 같은 두 가지 작업을 수행하도록 :

  1. 현재 얼마나 많은 터미널이 실행되고 있는지 파악
  2. 실행 dynamic-colors switch colorscheme-name(1)에 따라 명령을.

도움이 되었기를 바랍니다!

추신 : 나는 당신을 위해 스크립트를 작성하지만 숟가락 수유를 싫어하고 게으른 af입니다. :)


터미널 명령에 래퍼 / 별명을 작성하면 얻을 수 있습니다.
비슈누 쿠마르

@ VisnuKumar, 그래, 이것이 최선의 해결책은 아니지만 처음 생각한 것입니다. 당신이 그것을 좋아 기쁘다.
theabhinavdas

괜찮은 대답을 위해 +1, 나는 정말로 "works"와 싸우고 싶지 않지만이 대답은 동적 색상 프로젝트에 사용 된 독점적 인 스타일 정의를 사용해야하며 추가로 (그리고 이것이 실제로 얻는 것입니다) 불투명도를 지원하지 않습니다 : (나는 대답에gnome-terminal --load-config=FILE
kpie

@kpie, 하하. 이 질문에는 공정성, 불투명성이 언급되지 않았습니다. 또한 명령 행에서 불투명도를 설정하기가 어렵고 많은 것들에 의존합니다. 또한,이 질문은 여러 가지 방법으로 답변 될 수 있지만, 제 답변이 꽤 편리하다고 생각했습니다 (하하 만) :)
theabhinavdas

필요한 스크립트를 제공하여 편물 따기를 보완 할 수 있기를 바랍니다 ... github.com/Krewn/stylingTerminalOnOpen 그리고 변수 불투명도를 지원하지 않도록 지정해야합니다. 색상 구성표는 기본 프로파일의 불투명도를 유지합니다.
kpie

1

Konsole은 실제로이 기능을 기본적으로 지원합니다. Konsole은 실제로 강력하고 사용자 정의가 가능합니다.

Konsole이 없다면 간단히 sudo apt install konsole

  1. 설정으로 바로 가기
  2. 곤솔 설정
  3. 모양 탭을 선택하십시오
  4. 색 구성표를 선택하십시오
  5. 오른쪽에서 "편집"을 선택하십시오
  6. "각 탭의 배경색을 변경하십시오"를 설정하는 상자가 있습니다

또한 3 대의 서버에서 동시에 작업하는 경우 여기에 표시된 몇 가지 멋진 별칭을 포함 할 수 있습니다.


괜찮은 답은 +1이지만 곤 솔이 없습니다. @ <MemoryAddress>의 답변은 더 많은 터미널 인터페이스 (OSC 이스케이프 시퀀스를 지원하는 인터페이스)를 지원합니다. 그러나 당신은 사용하기가 더 쉽습니다. 나는 며칠 안에 가장 많은 표를 얻은 사람에게 현상금을 줄 것이다. 답변 주셔서 감사합니다!
kpie

얼마나 많은 사람들이 여기에 댓글을 달았는지에 대해 놀랄 것입니다. 설치 방법을 알려줘야합니다. -_-
Matt O.

당신은 다른 사람에 대한 의견을 읽었습니까?
kpie

나는했다. 어쩌면 내가 누락 된 것이지만 가변 불투명도와 별칭이 필요없는 것을 찾고 있습니다. Konsole은 두 가지를 모두 달성하지만 탈출 시퀀스에 대해 잘 모르겠습니다.
Matt O.

1
하하. 여기에 충분한 영양가를 가진 사람들이 편집을 제안한 후에 ​​자동으로 수행하는 것이 나를 탓하지 마십시오. 난 당신의 지능을 모욕하려고하지 않습니다.
Matt O.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.