emacs(콘솔)에서 Fn 키 설정 해제

emacs(콘솔)에서 Fn 키 설정 해제

콘솔에서 emacs24를 실행하면 Fn 키가 C-SPC두 Lenovo 노트북 모두에 선택 표시( 와 동일)를 설정합니다. 화면 밝기, 볼륨 등을 변경하려면 Fn 키가 필요하기 때문에 이는 매우 미친 짓입니다.

Emacs에서 작동하지 않도록 Fn 키를 바인딩 해제하는 방법은 무엇입니까?

편집하다:

emacs를 누르면 C-h k Fn다음을 누르는 것과 정확히 동일한 출력을 얻습니다 C-h k C-SPC.

C-@ runs the command set-mark-command, which is an interactive compiledLisp function.
It is bound to C-@, C-SPC.

(set-mark-command ARG)
...

acpi_listen을 실행하고 Fn 키를 누르면 다음과 같은 출력이 표시됩니다.

^@

C-SPC이는 또는 (Ctrl+AltGr+2)를 누르면 C-@acpi_listen에서 얻는 출력과 정확히 동일합니다 . 즉, 모두 동일한 acpi 이벤트에 등록되어 있습니다.

이것을 발견한 후 설정을 해제해 보았습니다 C-@. 내가 작동하게 한 유일한 방법은 다음과 같습니다.

 (global-set-key (kbd "\C-@") 'ignore)

이:

 (global-set-key (kbd "\^@") 'ignore)

두 경우 모두 C-SPC재설정을 시도했습니다 C-SPC.

(global-set-key (kbd "C-SPC") 'set-mark-command)

그러나 이것은 작동하지 않습니다.

그런 다음 질문을 다음과 같이 구체화할 수 있습니다.

C-SPC및가 동일한 acpi 이벤트에 등록된 경우 Fnemacs에 이를 구별하도록 지시할 수 있습니까?

(이것은 콘솔에서만 발생하는 문제입니다. Emacs는 내 X 시스템에서 Fn 키를 인식하지 못합니다...)

답변1

dumpkeys, loadkeys 및 showkey를 사용하는 이 솔루션은 Linux 가상 콘솔에서 실행되는 프로그램에 의해 기능 키가 예상치 못한 방식으로 해석되는 다른 인스턴스에 적용될 수 있습니다.

다음 명령을 실행하여 문제를 일으키는 키 또는 키 조합의 키 코드를 찾으십시오.

 $ sudo showkey

...그리고 키를 누릅니다. 제 경우에는 클릭 Fn출력이 143입니다.

Fn콘솔의 프로그램이 이를 다른 것으로 해석 하지 못하게 하려면 다음을 /etc/rc.local에 추가하십시오:

(dumpkeys | grep keymaps; echo "keycode 143 =") | loadkeys

143은 당연히 해당 키의 키코드로 대체되어야 합니다. 또한 Fn물결표를 출력하는 +(볼륨 낮추기)에 문제가 있었기 LeftArrow때문에 해당 조합에 대한 코드도 얻었고 /etc/rc.local에 다른 줄을 추가했습니다.

Fn이는 기능의 정상적인 동작(볼륨, 밝기 변경 등)을 방해하지 않으며 단지 emacs와 같은 프로그램에서 기능 키가 다른 것으로 해석되는 것을 방지한다는 점에 유의하십시오 .

관련 정보