GNU 분할 화면: 헤더에 활성 창을 표시하는 방법

GNU 분할 화면: 헤더에 활성 창을 표시하는 방법

나는 수평으로 분할된 GNU 화면을 사용하지만 어느 창이 활성화되어 있는지 결정하는 것이 항상 쉬운 것은 아닙니다(예: 창 중 하나에서 top과 같은 프로그램을 사용할 때). 창이 활성화되었을 때 헤더의 텍스트 색상을 변경할 수 있습니까?

현재 다음 설정을 사용하고 있습니다.

hardstatus alwayslastline "%{= G}%{g}[ %{G}%H %{g}][ %?%-Lw%?%{R} %n*%f %t %{g}%?%+Lw%? %{g}]%=%{g}[ %{W}%c:%s %{g}]"
caption splitonly "%{= g}[%n %t]"

창이 활성화된 동안 색상을 변경하거나 창을 강조 표시할 수 있으면 %n %t좋을 것입니다 R.

답변1

나는 스크린 매뉴얼 페이지의 STRING ESCAPES 섹션을 보고 여러분이 찾고 있는 것을 찾았습니다. 이것? escape는 if 문과 비슷하고 : escape는 else 문과 비슷합니다. 창에 포커스가 있으면 F는 true로 이스케이프됩니다. 따라서 if active then, else에 대한 if-then-else 문은 다음과 같습니다(가독성을 위해 패딩이 추가됨).

%? %F active-window options %: inactive-window-options %?

원래 옵션은 %{= g}입니다(너비와 녹색을 표시하기 위해 문자열 채우기). 활성 화면 텍스트를 밝은 빨간색으로 변경하면 다음과 같습니다.

caption splitonly "%?%F%{= R}%:%{= g}%?[%n %t]"

https://www.gnu.org/software/screen/manual/screen.html#String-Escapes

관련 정보