호스트별 색상 코드 터미널 창

호스트별 색상 코드 터미널 창

저는 SSH를 사용하여 정기적으로 다른 호스트에서 작업하고 있으며, 때때로 어떤 컴퓨터에서 명령을 실행하고 있는지 혼란스러워합니다. 나는 때때로 잘못된 호스트에 Halt(8) 명령을 내릴 뻔했습니다.

이상적으로는 현재 로그인한 호스트에 따라 터미널 창의 상단 리본을 색상으로 구분하고 싶습니다. 저는 Openbox와 gnome-terminal을 사용하지만 이런 종류의 작업을 쉽거나 최소한 가능하게 해주는 터미널 에뮬레이터로 전환하는 것을 고려해 보겠습니다.

누구든지 이 작업을 수행하는 방법을 알고 있습니까? 프로그래밍 방식으로 창 색상을 변경하는 방법을 알려주시면 제가 직접 작업하는 것이 두렵지 않습니다.

답변1

"창 색상"이란 창 경계선의 색상을 의미합니까? 그렇다면 대부분의 패턴이 있으므로 창 제목을 기반으로 창 경계선의 색상을 설정하도록 창 관리자에게 지시하십시오 user@host: /path. 창 클래스로 터미널인지 확인한 다음 변경 시 제목을 구문 분석하고 사용된 색상을 업데이트하는 것은 쉽습니다. 하지만 관련된 흐름을 모르기 때문에 작업량이 얼마나 되는지는 모르겠습니다.

하지만 이것은 가능하다.

(openbox가 이것을 할 수 있는지는 모르겠지만 생각해 본 후에는 이것이 더 쉬운 방법입니다)

업데이트:

openbox의 소스를 살펴본 후, 창이 제목의 호스트에 따라 터미널인 경우 전역 대신 해당 창에 원하는 색상을 갖는 다른 테마가 사용되도록 framerender_frame기능 을 패치하는 것 같습니다 . 그것.openbox/framerender.cob_rr_theme

[ 의 맥락에서 framerender_frame창 제목은 다음과 같을 수 있습니다 self->client->title.]

이렇게 하려면 로컬을 통해 framerender_frame전역을 참조하도록 변경해야 하며 호스트:테마 맵과 추가 테마를 로드하는 코드를 작성해야 합니다.ob_rr_themetheme

의사 코드(즉, 실행되지 않음):

RrTheme* theme = ob_rr_theme;
if "gnome-terminal" equals self->client->class: # for example only
    host = parse_title(self->client->title)
    theme = lookup host in by_host if not found use theme
# and then in the rest of framerender_frame use theme instead of ob_rr_theme

by_host호스트 문자열을 RrTheme테마 에 매핑하는 곳

관련 정보