원시 키보드 모드란 무엇입니까?

원시 키보드 모드란 무엇입니까?

내부에마법 시스템alt+sysrq+r키 조합 Wikipedia에 따르면 다음을 수행하는 조합이 있습니다.

키보드를 원시 모드(X11 및 svgalib와 같은 프로그램에서 사용하는 모드)에서 XLATE 모드로 전환합니다.

원시 모드란 무엇입니까? XLATE 모드란 무엇입니까?

XLATE 모드로 전환한 후 원래 모드로 다시 전환할 수 있나요?

내 키보드가 어떤 모드에 있는지 어떻게 알 수 있나요?

답변1

키보드의 키를 누르면 스캔 코드라고 하는 숫자 코드가 컴퓨터로 전송됩니다. 스캔 코드는 어떤 키를 눌렀는지 컴퓨터에 알려줍니다. 예를 들어 일반적인 미국 키보드에서는 A키를 눌렀을 때 스캔 코드 30이 전송됩니다(키를 놓으면 스캔 코드 158이 전송됩니다). 키보드가 원시 모드에 있을 때 키보드 드라이버는 이러한 코드를 응용 프로그램에 직접 보고합니다("원시"는 키보드에서 곧바로 처리되지 않음을 의미함). 일부 프로그램은 원시 모드를 사용하고 자체 키보드 처리를 수행합니다.X 서버가장 눈에 띄는 것입니다.

대부분의 프로그램은 키를 누르면 A프로그램이 문자 (ASCII 97)를 읽고, +를 a누르면 프로그램이 읽고 (ASCII 65), +를 누르면 프로그램이 문자(ASCII 1)를 읽는다고 기대합니다. . 관련 문자가 없는 키는 for 와 같은 이스케이프 시퀀스를 보냅니다 . 여기서 는 ESC 문자(ASCII 27)입니다. 키보드 드라이버는 키보드가 XLATE 모드("번역"의 약어)라고도 알려진 ASCII 모드에 있을 때 이 변환을 수행합니다. XLATE 모드를 사용하면 응용 프로그램에서 문자 입력을 수행할 수 있지만 Ctrl+A와 다른 왼쪽 Shift 또는 Ctrl+Shift+A의 미묘한 차이에 액세스할 수 없다는 단점이 있습니다.ShiftAACtrlACtrl+A\e[ALeft\e

이것kbd_mode모드 간 전환을 허용하고 인수 없이 호출할 때 현재 모드를 표시합니다.

마법의 SysRq 키 조합은 모든 종류의 나쁜 상황에서 복구하도록 설계되었습니다. 키 조합 중 하나는 Alt+SysRq+K현재 가상 콘솔에 있는 모든 프로그램을 종료합니다. 해당 프로그램이 키보드를 원시 모드로 전환하면 로그인 프롬프트(시스템 구성에 따라 자주 표시됨)에 입력할 수 없습니다. Alt+SysRq+R문자를 입력할 수 있는 일반(X 제외) ASCII 모드를 다시 시작하려면 누릅니다 .

답변2

키보드에서 전송되는 코드 유형을 정의할 수 있습니다. 이는 키보드 모드를 통해 수행됩니다. 를 사용하여 키보드 모드를 변경할 수 있습니다 kbd_mode.

맨페이지의 옵션은 다음과 같습니다.

   -s: scancode mode (RAW),
   -k: keycode mode (MEDIUMRAW),
   -a: ASCII mode (XLATE),
   -u: UTF-8 mode (UNICODE).

개발자가 누른 키의 스캔 코드만 얻을 수 있다면 왼쪽 Shift 키를 누르는 것과 같은 주요 이벤트를 캡처하는 것이 더 쉬울 것입니다.

관련 정보