키보드 모드가 변경되면 xmodmap이 재설정됩니다.

키보드 모드가 변경되면 xmodmap이 재설정됩니다.

저는 Keychron K2 기계식 키보드를 가지고 있는데, 키보드 오른쪽에 있는 키는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

좀 더 표준적인 레이아웃으로 바꾸고 싶습니다. 위에서 아래로 Light Toggle, Home, Page Up, Page Down및 가 있습니다 End.

한번은 xev키 코드를 검색하고 xmodmap이를 원하는 대로 바꾸기 위한 작은 스크립트를 작성한 적이 있습니다.

#!/bin/bash

xmodmap -e "keycode 110 = Next" && xmodmap -e "keycode 112 = Home" && xmodmap -e "keycode 117 = Prior"

스크립트는 시작 시 실행되며 예상대로 정확하게 작동합니다.

문제는 이 키보드가 유선과 블루투스가 모두 가능하다는 점이다. 유선 모드와 블루투스 모드 사이를 전환하거나 그 반대로 전환하면 키가 기본 위치로 돌아가므로 위 스크립트를 수동으로 다시 실행해야 합니다. xev두 경우 모두 키 코드가 동일하다는 것을 보여줍니다. 사용 중인 키보드 모드에 관계없이 이러한 키를 바꿀 수 있도록 이 문제를 해결하는 더 좋은 방법이 있습니까?

답변1

불행하게도 Linux Mint(및 Ubuntu 파생 제품)에서는 xmodmap키보드를 연결하거나 분리하거나 새 키보드가 감지될 때마다 재설정이 발생합니다. 나와 같은 듀얼 모드 키보드를 사용하면 시스템은 이 키보드가 두 개의 별도 키보드라는 것을 인식하고 xmodmap이 시점에서 재설정됩니다.

해결책은 다음을 사용하여 pc파일을 편집하는 것입니다 /usr/share/X11/xkb/symbols/.

$ sudo nano /usr/share/X11/xkb/symbols/pc

그런 다음 77, 78, 81행을...에서 다음으로 변경합니다.

    key <HOME> {    [  Home         ]   };
    key <PGUP> {    [  Prior        ]   };
    key <PGDN> {    [  Next         ]   };

... 도착하다:

    key <HOME> {    [  Next         ]   };
    key <PGUP> {    [  Home         ]   };
    key <PGDN> {    [  Prior        ]   };

이렇게 하면 해당 키에 대한 변경 사항이 하드코딩됩니다.모두건반.

관련 정보