올바른 프로그램에 대한 키보드 단축키를 어떻게 제공할 수 있나요?

올바른 프로그램에 대한 키보드 단축키를 어떻게 제공할 수 있나요?

Ubuntu(또는 대부분의 다른 Linux 배포판)에서는 단축키 ctrl+t를 사용하여 새 탭(firefox 또는 유사한 항목)을 열 수 있습니다. 또는 alt+tab을 사용하여 강조 표시된 창을 통합 토글하거나 다른 tty를 입력할 수 있습니다. Alt+Ctrl+F<1-6>을 사용합니다. Linux의 어떤 부분이 이러한 단축키를 처리하고 구문 분석합니까? 여러 프로그램/프로세스가 동일한 바로 가기를 공유하는 경우 우선 순위는 어떻게 해결됩니까?

(후자의 경우 이는 서로 다른 "수준"의 프로그램에만 관련이 있다고 가정합니다. 예를 들어 Firefox와 세션 스크립트는 경쟁할 수 있지만 Firefox와 Chrome은 동시에 응답해서는 안 되기 때문에 결코 경쟁하지 않습니다.)

답변1

Linux의 어떤 부분이 이러한 단축키를 처리하고 구문 분석합니까?

대부분 단일 애플리케이션 또는 창 관리자(WM)/데스크톱 환경(DE)입니다. VT 스위치에 Cntl-Alt-F[N]을 사용하는 것과 같이 일부는 커널에 의해 캡처되고 처리됩니다.

실제 이벤트 전파:

  • 커널에서
  • Xorg 서버로
  • WM/DE로
  • 신청하러 가기

이 중 하나라도 잡아서 처리하면 다음 단계로 넘어가지 못할 수도 있습니다.

GUI 터미널 내에서 (GUI가 아닌) 응용 프로그램을 실행하는 경우 GUI 터미널이 해당 응용 프로그램보다 우선합니다.

여러 프로그램/프로세스가 동일한 바로 가기를 공유하는 경우 우선 순위는 어떻게 해결됩니까?

WM/DE는 신청보다 우선순위를 갖습니다.

답변2

데스크탑을 다양한 프로그램을 실행하는 것처럼 취급하십시오.언제나, 창이나 터미널이 없거나 데몬으로 나타나더라도 마찬가지입니다. 대부분은 창 관리자, 다양한 도구 모음, 데스크탑 등을 실행합니다.

이제 키를 눌렀을 때 어떤 일이 일어나는지 살펴보겠습니다. 키 누르기와 키 놓기는 별도로 처리되지만, 라이브러리는 프로그래머를 위해 이를 결합할 수 있습니다. 키보드 드라이버는 Shift키를 개별 키 대신 수정자 키로 처리하는 등의 작업을 처리합니다. 드라이버 자체는 자체 사용을 위해 일부 키 조합을 캡처하거나 프로그램에 전달할 수 있습니다.

어떤 프로그램에서 얻을 수 있나요? 표준적으로 Windows를 사용하는 프로그램은 입력 포커스가 있을 때만 키 입력 알림을 받습니다. 프로그램은 자체 사용을 위해 특정 키를 "획득"할 수도 있습니다. Alt+ Tab다른 프로그램에서 볼 수 없도록 Unity에서 가져옵니다. Ctrl+ TFirefox의 메뉴 시스템에 의해 포착되지만, 알고 싶은 메뉴가 있는 Firefox 창에 입력 포커스가 있는 경우에만 가능합니다.

그렇다면 누가 무엇을 얻을지는 누가 결정합니까? 이미 언급한 것처럼 일반적으로 선착순으로 제공되는 입력 포커스를 제외하면. Alt+는 TabUnity(및 기타 여러 창 관리자)에 의해 획득되므로 사용자 프로그램에서 이를 빼앗아가는 경우는 거의 없습니다. 최종 사용자는 사용 중인 프로그램에 달려 있습니다. 프로그램(예: vim)에서 다양한 항목에 대해 특정 키 조합을 구성할 수 있는 경우 해당 프로그램이 키 입력을 받는 한 계속 사용할 수 있습니다.

관련 정보