printf 명령을 사용하여 urxvt-256의 tmux에서 배경 이미지로 변경

printf 명령을 사용하여 urxvt-256의 tmux에서 배경 이미지로 변경

tmux 내부에서는 printf 명령을 사용할 수 없습니다.

즉시 배경을 변경하는 명령은 다음과 같습니다.

printf "\e]20;/home/alexsson/Downloads/alternativ.png;\a"

urxvt에서 직접 이 작업을 수행할 수 있습니다.

여기에 이미지 설명을 입력하세요

또한 내부 화면:

여기에 이미지 설명을 입력하세요

하지만 이 printf 명령은 tmux에서는 작동하지 않습니다.

여기에 이미지 설명을 입력하세요

tmux에서 어떻게 작동하게 할 수 있는지 아시나요?

추신: 여기에도 비슷한 질문이 있습니다.tmux 및 제어 시퀀스 문자 문제. 그러나 올바른 검색어를 사용하지 않으면 해당 질문을 찾기가 어렵습니다. 내 게시물은 어떤 검색어를 사용해야 할지 모르는 훨씬 더 많은 사용자에게 흥미로울 것이지만 더 일반적인 것(단순한 배경 변경과 같은)이 될 것이라고 생각합니다. 이에 대한 문서도 많이 쓰여 있지 않습니다.

답변1

urxvt, 세 가지 다른 터미널 에뮬레이터가 tmux있는데 screen, 첫 번째는 X11을 표시/입력용 백엔드로 사용하고 나머지 두 개는 호스트 터미널을 사용합니다.

tmux실제로 터미널 에뮬레이터 이므로 screen일부 이스케이프 시퀀스를 통해 활성화되는 여러 기능(굵은 문자 속성, 화면 지우기 등)을 구현하지만배경 그림지원하는 기능이 아닙니다.

또한 screen/ tmux세션은 모든 유형의 호스트 터미널에 연결될 수 있으며 한 번에 여러 터미널에 연결될 수 있으며 -x일부는 해당 기능을 지원할 수도 있고 일부는 지원하지 않을 수도 있습니다.

screen인식하지 못하는 이스케이프 시퀀스를 전달합니다 tmux. OSC( )로 시작하는 시퀀스는 \e]BEL( \a/ ^G)로 끝납니다. tmux을 보면 ( 또는 다음 이스케이프 시퀀스) \e]까지 읽고 \a해당 시퀀스를 인식하지 못하면 그냥 버립니다.

하지만,tmux 임의의 텍스트를 그대로 호스트 터미널에 전달하는 것을 지원합니다.시퀀스 와 함께 \ePtmux;\e<text>\e\. 여기서는 다음과 같이 할 수 있습니다.

printf '\ePtmux;\e\e]20;/home/alexsson/Downloads/alternativ.png;\a\e\\'

어쨌든 이는 의 매우 위험한 기능입니다 rxvt. 예를 들어, rxvtLinux에서 루트로 실행하고 (워치독을 사용할 수 있는 시스템에서) cat malicious-file다음과 같은 내용이 포함된 해당 파일을 실행하면 \e]20;/dev/watchdog\a몇 초 후에 시스템이 재부팅됩니다.

관련 정보