2017-12-07 18 views
0

표준 xterm 프로그램에는 간단한 그래픽 출력을위한 Tek4014 에뮬레이션이 있습니다. 그러나 이것은 rxvt, gnome-terminal 또는 kterm과 같은 대부분의 (모든?) sucessors에서 구현되지 않습니다.x11 터미널 창의 그래픽 기능을 결정하는 방법

그러나 대부분의 X11 터미널에서는 을 환경 변수 TERM (일부)로보고하므로 프로그램에서 기본 터미널에 그래픽 기능이 있는지 여부를 판단하기가 어렵습니다.

프로그래밍 방식으로 찾을 수 있습니까? 그리고 Tek4014 그래픽을 구현하는 최신 터미널 윈도우 (xterm 옆)가 있습니까?

답변

1

실제로 kterm은 메뉴에 따라 Tek4014 에뮬레이션을 제공합니다. 아마도 KDE konsole을 언급 한 것일 수 있습니다. TeraTerm (Windows 응용 프로그램)도이 기능을 지원합니다.

다음을 되돌아 감. 특정 단말기가 주어진 기능을 지원하는지 여부를 알려주는 유용한 방법이 없습니다. 일부 터미널은 터미널의 유형과 DEC가 제공 한 옵션 기능 (DEC 및 유사한 터미널의 장치 응답을 기반으로 함)을 알리는 상태 정보를 반환합니다. Tektronix 터미널에는 상태 쿼리/응답이 없었습니다 (XTerm Control Sequences 참조).

어쨌든 상태 응답에 의존하는 것은 일부 개발자가 xterm과 일치하는 응답을 하드 코딩하기 때문에 많은 보증을하지 못합니다.

터미널에서 알려주지 않으므로 실제 검사로 확인할 수있는 유일한 방법입니다. 누군가가 screendumps를 할 수있는 프로그램을 만들고 터미널이 시퀀스에 응답하는지 확인하지만 vt100 (또는 유사)과 tek4014 사이의 전환이 xterm에서 사용 된 것과 동일한 이스케이프 시퀀스로 수행되지 않을 수 있다는 함정이 여전히 있습니다. 결국 이스케이프 시퀀스는 하드웨어 터미널의 표준 레퍼토리에 포함되어 있지 않습니다.

0

송신 장치 속성 시퀀스는 터 L 널이 암호문과 함게 응답하게합니다. vim과 같은 프로그램은이 버전을 사용하여 xterm의 버전을 확인하지만 결과를 해석하는 데 필요한 구체적인 문서를 알지 못합니다. 아마도 소스를 읽는 중입니까?

참조 :

What is the ANSI escape code sequence "ESC[>c"?

이 직접 시도는 :; 다시

printf "\E[c\n" ; sleep 1 ; echo 

내 비의 xterm의 xterm 호환 터미널은? "2C \ 전자 [1"을 말한다.

+0

그걸 (그래픽이 아닌) vt100으로 식별합니다. Tek4014에 해당하는 쿼리/응답이 없습니다. –

0

터미널이 실행되는 X11 디스플레이에 액세스 할 수있는 경우 다음을 수행 할 수 있습니다. "Enter Tektronix mode"이스케이프 시퀀스 "\E[?38h"을 출력하고 새 창을 열어보십시오. WM_CLIENT_LEADER 속성은 원래 터미널 창의 ID 여야하며 WM_CLASS 속성에는 "tektronix"가 포함되어야합니다 (실제 xterm 응용 프로그램에서만 확인했습니다).

텍스트 모드 응용 프로그램에서이 작업을 수행해야하는 경우 Tek 창의 전환이 실제로 수행되는지 확인할 수 있습니다.예를 들어,

echo -en '\n\E[?38h' && echo -en 12345678 && echo -en '\E\003' && \ 
    echo -en '\e[6n' && sleep 1 && echo -en '\n' 

는 개행 문자를 인쇄 테크 창으로 전환, 거기에 일부 문자를 인쇄, 다시 VT 창에 반환하고, 커서 위치보고를 요청합니다. 모든 인쇄가 Tek 모드에 있었기 때문에 커서는 열 1에 있어야합니다. 그러나 터미널이 Tek 모드를 지원하지 않으면 문자가 기본 창에 인쇄되고 열은> 1이됩니다.