조건부로 키보드의 키 교환(Debian, X11, KDE Plasma)

조건부로 키보드의 키 교환(Debian, X11, KDE Plasma)

Dell Latitude에 이 키보드 레이아웃이 있습니다.

키보드 레이아웃

HomeEnd키가 복합 키에 매핑된다는 사실이 정말 마음에 들었습니다 Fn. 그래서 이것을 추가하여 PageUpwith HomePageDownwith 를 교체할 수 있었습니다 . (실제로는 독일 변형입니다.)End/usr/share/X11/xkb/symbols/de

xkb_symbols "basic" {
  ...
  key <HOME> {    [  Prior        ]   };
  key <PGUP> {    [  Home         ]   };
  key  <END> {    [  Next         ]   };
  key <PGDN> {    [  End          ]   };
  ...
}

예상대로 작동하고 있습니다. 그러나 나는 이 해킹이 짜증나는 도킹 스테이션과 완전한 키보드를 사용하여 노트북과 업무용 책상 사이를 전환하는 경우가 꽤 자주 있습니다.

이 xkb 기호 파일을 조작하려면 재부팅(또는 최소한 데스크탑 환경을 다시 시작해야 함)이 필요합니다. 런타임에 동작을 전환할 가능성이 있습니까? USB-C 도크를 보는 udev 후크처럼 자동화될 수도 있나요?

답변1

를 사용하여 레이아웃 간에 전환할 수 있습니다 setxkbmap. 예를 들어 저는 Dvorak 레이아웃을 사용하고 변경 사항을 로컬에 적용 /usr/share/X11/xkb/symbols/de하고 독일어 레이아웃으로 전환했습니다.

setxkbmap de

PGUP가 홈으로 작동하는지 확인했습니다. 그런 다음 dvorak로 다시 전환했습니다.

setxkbmap dvorak

원본 레이아웃과 사용자 정의 레이아웃 사이를 전환하려면 원본 de레이아웃 파일에서 질문에 표시된 4줄을 제거하고 /usr/share/X11/과 같은 새 사용자 정의 레이아웃 파일을 만드는 것이 가장 좋은 방법이라고 생각합니다. 수정 사항이 추가된 xkb/symbols/de-modified. 두 레이아웃 사이를 전환하기 위해 재부팅이나 X 재시작이 필요하지 않습니다.

setxkbmap de # PGUP wouldn't work as home
setxkbmap de-modified # PGUP would work as home

관련 정보