여러 키보드 레이아웃을 전환하는 스크립트

여러 키보드 레이아웃을 전환하는 스크립트

ElementaryOS 프로젝트에서 Archlinux와 Pantheon Shell을 사용하고 있는데 불편한 문제가 있습니다.허점토글 레이아웃이 있습니다. 이제 나는이 스크립트레이아웃 간을 전환합니다. 완벽하게 작동하지는 않지만(스위치 간에 여전히 약간의 지연이 있음) 표준 스위치보다 빠릅니다. 패널에서 불필요한 표시도 제거했습니다. 이제 다른 언어를 배우고 있으므로 시스템에 다른 레이아웃을 추가해야 합니다.

setxkbmap us50줄의 Python 스크립트가 느리게 실행되기 때문에 위의 모든 것과 달리 즉시 실행할 수 있는 , setxkbmap ru, setxkbmap eo스위치를 사용하고 싶습니다 . 문제는 그것들을 스크립트로 결합하여 CAPSLOCKopen US, SHIFT + CAPSLOCKopen RU, SHIFT + TABopen을 누르는 방법입니다 EO. 나는 이와 같은 스크립트를 작성한 적이 없으며 그것이 어떻게 보일지 전혀 모릅니다.

답변1

스크립트를 작성하지 않고도 비슷한 작업을 수행할 수 있는 방법이 있습니다. 영어, 러시아어, 에스페란토를 결합한 새로운 키보드 레이아웃을 만들 수 있으며 거의 ​​원하는 대로 작동합니다.

/usr/share/X11/xkb/symbols/먼저 (또는 배포판에 따라 키보드 구성 파일이 어디에 있든 ) 파일을 만들고 /usr/share/kbd/keymaps/기존 파일과 충돌하지 않는 oo이름을 지정합니다 (저는 이름을 광산으로 지정했습니다). 그리고 이 파일에 몇 줄을 추가하여 제대로 작동하는지 확인하세요.

xkb_symbols "multi" {
include "us(basic)"
include "level3(ralt_switch)"
name[Group1] = "english";
name[Group2] = "esperanto";
name[Group3] = "russian";
key <CAPS> {[ISO_Next_Group, ISO_Prev_Group]};
key.type[group1]="FOUR_LEVEL";
key.type[group2]="FOUR_LEVEL";
key.type[group3]="FOUR_LEVEL";
key <AD01> {[], [scircumflex, Scircumflex], [Cyrillic_shorti, Cyrillic_SHORTI]};
};

그런 다음 setxkbmap oo -variant multi.

  • 를 눌러 q쓰세요 q. 이 예는 글자에만 적용됩니다 q(그러나 다른 글자에 대해서는 쉽게 이 작업을 수행할 수 있습니다). ŝ에스페란토나 러시아어 로 쓸 수 있습니다 й.
  • Capsus, eo및 를 ru반복 합니다 (3회 반복하면 레이아웃 ISO_Next_Group으로 돌아갑니다 ).us
  • Shift + Caps루프를 역순으로 입력합니다 ISO_Prev_Group.

레이아웃 간 반복 방식이 마음에 들지 않으면 ( <CAPS>파일의 줄 변경)을 사용할 수 있습니다.

key <CAPS> {[ISO_First_Group, ISO_Last_Group]};
  • 입력하면 현재 어디에 있든 레이아웃으로 이동합니다 Caps.usISO_First_Group
  • 어디에 있든 입력은 Shift + Caps레이아웃으로 들어갑니다.ruISO_Last_Group
  • 불행하게도 이 없기 ISO_Second_Group때문에 2개의 레이아웃에만 직접 액세스할 수 있습니다(그러나 2개 이상을 사용하려는 경우 반복할 수 있습니다). 다른 유사한 키코드 목록이 있습니다.여기.

이 파일의 작동 방식:

  • xkb_symbols "multi" { ... };키보드 레이아웃 변형의 이름입니다.
  • include "us(basic)"레이아웃이 포함되어 있어 구성 파일에 키를 넣을 qwerty필요가 없습니다 .qwerty
  • include "level3(ralt_switch)"가끔 이용하고 싶으시다면 Altgr.
  • key <NAME>{ [group 1 content], [group 2 content], [group 3 content]};Shift, 각 콘텐츠 그룹은 기본 키, 키 및 , 키 및 ... 의 쉼표로 구분된 이름이며 Altgr최대 8개의 값입니다. 여기서는 첫 번째 그룹의 내용을 생략할 수 있습니다.

참고: 그룹을 변경하는 것이 setxkbmap매번 실행하는 것보다 빠릅니다.

관련 정보