urxvt - 강제 열 너비

urxvt - 강제 열 너비

저는 urxvt와 타일링 창 관리자(굉장합니다)를 사용하고 있으며 창 크기에 관계없이 터미널이 80열로 유지되기를 원합니다.

그래서 urxvt가 특정 열 너비를 유지하기 위해 글꼴/간격 크기를 조정하도록 강제하는 방법이 있는지 궁금합니다.

터미널을 생성해도 urxvtc -g 80문제가 해결되지 않습니다. 봤는데 man 7 urxvt운이 없더군요...

답변1

이는 두 가지 문제인 것 같습니다.

  • 시작하는 방법 80개의 열을 사용 urxvt하는 경우 적절한 글꼴 크기를 자동으로 선택하고 ,urxvt그리고
  • urxvt창 크기를 조정할 때 80개 열을 계속 사용하고 글꼴 크기를 자동으로 조정하려면 어떻게 해야 합니까 ?

X 애플리케이션은묻다주어진 창 크기에 대해 창 관리자는말하다애플리케이션이 사용할 크기입니다. 터미널 에뮬레이터에서는 일반적으로 창 크기가 글꼴 높이(행)와 글꼴 너비(열)의 배수가 되어야 합니다. 이렇게 하면 창 크기를 조정할 때 창 관리자가 협력할 수 있고(약간...) 창에 시각적 피드백을 제공할 수 있습니다.좋아요-그리고-목록공들여 나열한 것.

urxvt트루타입 글꼴을 사용할 때 (원칙적으로) 어떤 크기 조정도 사용할 수 있습니다. 글꼴을 열면 문자 셀의 높이와 너비를 가져옵니다. 너할 수 있다동일한 값과 화면 크기를 사용하고 창 너비를 80열 이하로 유지하는 데 필요한 적절한 비율을 계산합니다.

그러나 어려운 부분은 창 관리자가 동의하지 않으면 해당 요청을 변경하여 창의 높이와 너비를 변경할 수도 있다는 것입니다. 각 차원은 다른 차원과 독립적으로 증가하거나 감소할 수 있습니다. 타일링 창 관리자에서는 적절한 종횡비를 유지하기 위해 창을 축소하는 것이 허용된다고 가정할 수도 없습니다. 최종 결과는 urxvt창 크기를 얻은 다음 이를 문자 단위로 분할하는 방법을 결정해야 한다는 것입니다.

창 관리자의 초기 레이아웃 변경은 일반적으로 터미널 에뮬레이터에 의해 감지되며, 이를 창 크기 변경 이벤트로 (아마도 아직 시작되지 않은) 셸에 전달합니다.SIGWINCH.

마찬가지로, 출시 후 창 크기 조정은 다음과 같이 전달됩니다.SIGWINCH.

이를 고려하여 귀하는할 수 있다캡처할 애플리케이션을 셸에 작성SIGWINCH사용된 글꼴 크기를 수정합니다 urxvt. 그러면 창 관리자에게 더 나은 레이아웃을 요청할 수 있습니다.

이것은실현 가능 한, 그러나 기본적으로 urxvt이를 수행하는 직접적인 방법은 제공되지 않습니다. 이를 위해서는 약간의 스크립팅/프로그래밍이 필요합니다.

사용자가 현재 활성화된 색상과 글꼴을 결정할 수 있도록 동적 색상 제어 시퀀스를 확장합니다.

에 기록된 기능을 말합니다.XTerm 제어 순서:

만약"?"이름이나 RGB 사양 대신 제공되면 xterm은 해당 동적 색상을 설정하는 데 사용할 수 있는 동일한 형식의 제어 시퀀스로 응답합니다. 한 쌍 이상의 색상 번호와 사양이 제어 순서에 제공될 수 있으므로 xterm은 두 개 이상의 응답을 할 수 있습니다.

그리고

       Ps = 5 0  -> Set Font to Pt.

그래서 응용 프로그램은 할 수 있습니다

printf '\033]50;?\007'

현재 글꼴을 가져옵니다. 최대 250자입니다(어쨌든 최대 250자).소스 코드)

  • 적절한 계산을 수행한 후 응용 프로그램은 글꼴을 업데이트할 수 있습니다(동일한 제어 순서).

이상하게도 빠른 확인(Debian 7)의 복사본은 urxvt그렇지 않습니다.일하다~을 위한테스트 스크립트는 다음과 같습니다.xterm이 기능을 위해. 그러나 이 기능이 적합하다면 이 기능을 사용하여 자동 글꼴 크기 조정을 수행할 수 있습니다.

관련 정보