Tilda는 출시 시 가짜 화면 크기에 대해 불평합니까? [복사]

Tilda는 출시 시 가짜 화면 크기에 대해 불평합니까? [복사]

Ubuntu 14.04에서는 MATE 데스크탑. 방금 Tilda Terminal을 설치하여 시작 앱에 추가하고 /usr/bin/tilda재부팅했는데 Tilda가 시작되는 것을 보고 다음과 같은 사실을 발견했습니다.

틸다

"131072x1 화면 크기는 가짜입니다. 문제가 발생할 수 있습니다."

그런 다음 tilda를 다시 시작하려고 시도했지만 killall tilda동일한 메시지가 나타났습니다.

이 가짜 화면 크기 문제를 해결하는 방법을 아는 사람이 있습니까?

답변1

무엇이 이 메시지를 생성했는가

이는 Bourne Again 쉘에 의해 생성되지 않습니다. 이것은 Tilda가 만든 것이 아닙니다.

이는 ps다음 명령으로 생성 됩니다.procps 도구 세트성능이는 set_screen_size()기능 을 확인합니다.. 이 ps명령을 사용하려면 콘텐츠를 합리적으로 표시하려면 터미널 장치가 최소 9열 x 2행이어야 합니다. 어딘가에서, 당신은 그것을 모르고 전화하고 있습니다 ps.

ps명령은 표준 I/O 파일 설명자에 연결된 터미널 장치(라인 규칙)에서 직접 터미널 크기를 가져오고 해당 값이 올바른 숫자인 경우 환경 변수로 재정의할 수 있습니다 COLUMNS. 다음을 실행하여 결정을 내릴 수 있도록 명령에 표시되는 내용을 확인할 LINES수 있습니다 .ps

stty 크기; printenv 열 행
다음 명령을 실행하여 다리를 당겨볼 수 있습니다 ps.

열=65535행=1ps

COLUMNS환경 변수 를 어리석은 131072×1 값으로 설정 한 경우 LINES(의 출력에 표시된 대로) printenv이 작업을 수행하지 마십시오. ☺ 그러나 의 출력에서 ​​볼 수 있듯이 최종 장치 자체는 이 크기를 보고할 가능성이 더 높습니다 stty. (Bourne Again 셸이 수행하는 모든 작업은 checkwinsize이러한 셸 변수의 값을 설정하는 것뿐입니다. 내보내지 않으면 이러한 변수는 ps터미널 장치의 보고된 크기에 관계없이 해당 환경의 명령에 전달되지도 않습니다. checkwinsize마찬가지입니다. 청어의 경우 환경 변수가 의미가 없으면 단말 장치는자체가보고말도 안 돼요, 후자는 해결해야 할 근본적인 문제입니다. )

그렇기 때문에 Tilda에게 잘못이 있을 수 있다는 메시지는 생성되지 않았습니다. 최종 장치 크기는 공유 리소스이며 최종 장치에 대한 열린 파일 설명자가 있는 모든 항목은 ioctl()시스템 호출을 통해 임의로 변경될 수 있습니다. 하지만 그것은관례에 따르면설정, 소프트웨어 사용 시나리오터미널 에뮬레이션 프로그램Tilda와 마찬가지로 에뮬레이션을 표시하는 GUI 창의 크기가 변경될 때 터미널 에뮬레이터 프로그램에 의해 실행됩니다. 터미널 에뮬레이터 프로그램은 GUI 크기 조정 이벤트를 가져와 이를 열과 행으로 변환하고 이를 사용하여 장치 크기를 설정합니다 ioctl().

그렇다고 다른 것들이 이 쓰레기에 적합하지 않다는 말은 아닙니다. 결국 설정할 수 있습니다당신 자신의미 없는 크기에 도달하려면 다음 명령을 실행하십시오.

stty 열 1행 65535

우리는…

단말 장치 크기를 재설정하는 방법

최종 장치에서 보고한 크기가 의미가 없는 경우:

  • GUI 터미널 에뮬레이터를 사용하는 경우 열/행별로 GUI 크기를 왼쪽과 오른쪽으로 조정합니다. 그러면 ioctl()터미널 크기가 적절한 값으로 트리거되고 설정됩니다.
  • 크기를 보다 합리적인 값으로 설정합니다(예:).

    stty 열 80 행 25
  • reset명령을 사용하십시오 . reset최종 장치 크기 외에도 많은 다른 사항이 설정되어 있습니다 .
  • 터미널 에뮬레이터가 DEC VT340/VT420과 호환되는 경우 적절한 DECSCPP 및 DECSLPP/DECSNLS 제어 시퀀스를 직접 실행하거나Nosh 도구 세트~의console-resize(일명resizecons) 이를 발행하는 명령:

    80x25 크기 조정

관련 정보