종료자가 구성을 동적으로 다시 로드하도록 강제하는 방법은 무엇입니까?

종료자가 구성을 동적으로 다시 로드하도록 강제하는 방법은 무엇입니까?

저는 터미네이터를 터미널 에뮬레이터로 사용하고 있는데 너무 좋아서 한 가지만 하고 싶지만 어떻게 해야 할지 전혀 모르겠습니다.

그래서 마우스 오른쪽 버튼을 클릭하고 환경 설정으로 이동하여 색상 프로필과 글꼴을 선택하는 방법을 알고 있습니다. 그런 다음 완료되면 기본 설정에 액세스하는 종료자 인스턴스에 방금 수행한 업데이트(예: 색상/글꼴이 다름)가 반영됩니다. 이 작업을 수행하고 싶지만 구성 파일을 수동으로 편집한 ~/.config/terminator/config다음 활성 터미네이터 세션에서 구성 파일을 다시 로드한 다음 에뮬레이터를 다시 시작하지 않고도 해당 변경 사항을 반영하면 됩니다.

이를 수행할 수 있는 방법이 있습니까? --실제 프로그램을 닫지 않고도 구성 파일에서 자체적으로 다시 로드하도록 지시하는 일종의 명령을 터미네이터에 보냅니다. GUI를 통해 구성을 수동으로 편집하면 프로세스를 다시 시작하지 않고도 변경 사항이 반영되기 때문에 이것이 가능해야 한다고 생각합니다.

답변1

명령줄 솔루션은 아니지만 기본 설정 대화 상자를 열고 닫아 터미네이터를 종료하지 않고 프로필을 수동으로 다시 로드할 수 있습니다.

답변2

소스 코드로 이동하여 자신만의 솔루션을 만들고 싶다면 터미네이터가 Python으로 작성되었으므로 소스 코드로 이동하는 것이 쉽습니다. 다음을 찾았습니다.

에는 terminatorlib모듈이 있습니다 terminal.py. 클래스에서 다음 두 줄을 실행하면 Terminal원하는 효과를 얻을 수 있습니다.

self.config.base.reload()
self.reconfigure()

예를 들어, 왼쪽 마우스 버튼 이벤트를 처리하는 on_buttonpress클래스 부분에 다음을 넣을 수 있습니다.Terminal

   if event.button == self.MOUSEBUTTON_LEFT:
            # Ctrl+leftclick on a URL should open it
            if self.config["link_single_click"] or event.get_state() & Gdk.ModifierType.CONTROL_MASK == Gdk.ModifierType.CONTROL_MASK:
                # Check new OSC-8 method first
                url = self.vte.hyperlink_check_event(event)
                dbg('url: %s' % url)
                if url:
                    self.open_url(url, prepare=False)
                else:
                    dbg('OSC-8 URL not detected dropping back to regex match')
                    url = self.vte.match_check_event(event)
                    if url[0]:
                        self.open_url(url, prepare=True)
                    else:
                        dbg("No regex match, discard event.")
            self.config.base.reload()  # <------ reload config file
            self.reconfigure()         # <------ refresh terminal profile

terminatorlib내 컴퓨터 에서는 /usr/lib/python3.11/site-packages/terminatorlib물론 실행 중인 것을 찾을 수 있습니다: sudo find / -name terminatorlib.

고쳐 쓰다: 이 내용을 추가한 것 같습니다.출신지(여기); 따라서 소스에서 빌드하든 다음 릴리스를 기다리든 코드를 직접 작성할 필요가 없습니다. :)

답변3

sudo apt-get install xdotool나는 xdotool()의 터미네이터를 사용하여 창을 설정하여 색 구성표를 변경하는 단계를 수행하기 위해 프로그래밍 방식으로 마우스를 이동하기 위해 매우 맹목적이고 깨지기 쉬운 스크립트를 작성했습니다 . 마우스를 화면의 x, y 좌표로 이동하는데, 이는 시행착오를 통해 순전히 찾았습니다. 좌표가 다른 컴퓨터에서도 동일한지 확실하지 않습니다. 우분투 20을 사용하고 있습니다.

#!/bin/bash

if [ "$1" != "light" ] && [ "$1" != "dark" ]; then
    echo "Need to pass \"light\" or \"dark\" as arg"
    exit 1
fi

xdotool mousemove 100 100
xdotool click 3
xdotool mousemove 140 350
xdotool click 1
xdotool mousemove 140 100
sleep 1
xdotool click 1
xdotool mousemove 420 140
xdotool click 1
xdotool mousemove 420 250
xdotool click 1


if [ "$1" = "light" ]; then
    xdotool mousemove 420 230
    xdotool click 1
else
    xdotool mousemove 420 280
    xdotool click 1
fi

xdotool mousemove 840 720
xdotool click 1

Selenium과 같은 도구를 사용하여 Linux에서 이 작업을 수행할 수 있는 방법이 있을 수 있습니다(특정 버튼의 좌표를 찾기 위해 화면 픽셀을 구문 분석하기 위해 OpenCV를 사용하는 Ubuntu에 대한 설명을 본 것 같습니다). 버튼 버튼을 사용하여 버튼 텍스트를 선택했지만 지금은 이것이 작동합니다. 누구든지 이 실망스러운 문제에 직면할 경우를 대비해 공유하세요.

관련 정보