특정 기본 xterm X11 번역을 제거하는 방법은 무엇입니까?

특정 기본 xterm X11 번역을 제거하는 방법은 무엇입니까?

나는 매뉴얼 페이지에 열거된 기본 번역 세트와 함께 제공되는 xterm을 사용하고 있습니다. 또는 내 파일의 번역을 편집합니다 #augment. 이는 예상대로 작동합니다.#override$XAPPLRESDIR/XTerm

그런데 방법을 찾을 수가 없어요제거하다특정 기본 변환(및 xterm에서 실행되는 응용 프로그램에 이벤트 전달)

Meta <Btn2Down>특히 이벤트가 애플리케이션에 전달되기를 원합니다 . xterm 기본 번역은 이를 clear-saved-lines()작업 에 바인딩합니다.

기본 키 바인딩
[...]
메타<Btn2Down>:clear-saved-lines() \n\

Meta-Btn2Down 이벤트를 수신하려면 애플리케이션에서 무엇을 해야 합니까?

답변1

내가 아는 한 X Toolkit에는 다음을 수행할 수 있는 방법이 없습니다.제거하다번역가. 당신은 할 수씌우다또는증가하다그러나 번역표의 일부를 선택적으로 삭제하지 마십시오.

추가하는 이유 중 하나입니다.번역을 생략하다리소스는 다음과 같습니다.패치 #269. 이 버전에서는 번역 테이블이 더 관리하기 쉬운 부분으로 나누어져 더 나은 사용자 정의가 가능합니다.

시작 시 xterm의 기본 번역 중 하나 이상의 부분을 선택적으로 무시합니다. 리소스 값은 쉼표로 구분된 키워드 목록으로, 다음과 같이 축약할 수 있습니다. "전체 화면","스크롤 잠금","모바일폰트"또는"휠 마우스". Xterm도 인식합니다."기본", 그러나 이를 생략하면 리소스 설정에서 유사한 정의를 제공하지 않는 한 프로그램을 사용할 수 없게 됩니다.

그러나 Stéphane Chazelas의 의견에 동의하면 애플리케이션에 전달된 이스케이프 시퀀스가 ​​버튼 이벤트를 기반으로 xterm 내부에 구축되기 때문에 제안된 변경 사항을 효과적으로 사용하는 방법이 명확하지 않습니다. 어쩌면 특별한 번역을 위해 문자열 조작을 사용할 수도 있습니다.

답변2

xterm이 처리하지 않고 전달될 바인딩된 키를 찾고 있다면 아마도 insert()또는 insert-eight-bit()작업을 찾고 있을 것입니다.

xterm 매뉴얼 페이지에서:

insert()
이 작업은 누른 키와 관련된 문자나 문자열을 삽입합니다.

insert-eight-bit()
이 작업은 누른 키와 관련된 문자 또는 문자열의 8비트 버전을 삽입합니다. 단일 바이트 값만 특별하게 처리됩니다. 정확한 작업은 다음에 따라 다릅니다.alt는 탈출을 보냅니다그리고메타 전송 탈출그리고8비트 입력자원. 이것메타 전송 탈출먼저 리소스를 테스트하십시오. 보다8비트 입력철저한 토론을 위한 리소스.

"8비트"라는 용어는 오해의 소지가 있습니다.xterm키의 범위가 128~255(8번째 비트가 설정됨)인지 확인하세요. 값이 이 범위 내에 있으면 리소스 값에 따라xterm그런 다음 다음 중 하나를 수행할 수 있습니다.

  • 이 값에 128을 더하고 8번째 비트를 설정합니다.
  • 키를 누르기 전에 ESC 바이트를 보내거나
  • 키를 변경하지 않고 보냅니다.

예를 들어,

Meta <Btn2Down>:insert-eight-bit() \n\

Alt <Key>Return:fullscreen() \n\추신: 저는 입찰을 피하고 Alt-return을 애플리케이션에 전달할 수 있도록 동일한 문제를 해결했습니다 .

관련 정보