Sway용 복잡한 사용자 지정 XKB 파일을 만들려면 어떻게 해야 하나요?

Sway용 복잡한 사용자 지정 XKB 파일을 만들려면 어떻게 해야 하나요?

Sway는 Wayland를 사용하므로 XKB 파일은 X가 아닌 Sway에 의해 구문 분석됩니다.

  • 키보드에 레이어를 추가하고 싶습니다(아마도 Hyper를 사용하여)
  • 일부 수정자 키를 섞고 싶습니다.

많은 사이트를 살펴봤지만 여전히 이를 수행하는 방법을 모르겠습니다. XKB에는 너무 많은 부분이 있는데, 무엇이 어디로 가는지 잘 모르겠습니다. 예제 파일(들)과 설명을 원합니다.

답변1

xkb 구성 파일의 이름이 custom-xkb이고 ~/.config. 그런 다음 Sway 구성 파일에 다음을 포함합니다.

input "type:keyboard" {           # or input <identifier> 
  xkb_file ~/.config/xkb/custom-xkb
}

아마도 당신은 그 부분을 이미 알고 있을 것입니다. 어려운 부분은 custom-xkb파일을 생성하는 것입니다. 저는 전문가는 아니지만 제가 할 일은 다음과 같습니다.

  1. 나는 "xkb 사양"에 대한 웹 검색을 수행할 것이며, 그러면 wikipedia에서 의 x.org전체 사양에 이르기까지 모든 종류의 정보를 얻을 수 있습니다. 아마도 이미 이와 같은 리소스 모음이 있을 것입니다.
  2. 그런 다음 내 시스템에서 기본 키보드 구성 파일을 찾을 수 있습니다. 아마도 \etc\X11\xdg\다른 곳에서 찾을 수 있습니다(약간 살펴봐야 할 수도 있습니다. 이상한 배포판에서 경로는 입니다 /nix/store/n1mlvwrkdlm77b4ai9s26kwji89jjb65-xkeyboard-config-2.27/share/X11/xkb/).
  3. symbols해당 경로에서 두 개의 하위 디렉터리 인 및 를 찾습니다 types. 첫 번째는 다양한 언어에 대한 키 맵이 있는 위치이며, 각 파일 내에는 해당 언어에 대한 키 맵 변형이 있습니다. 두 번째 하위 디렉터리는 가상 키가 정의되는 곳입니다(예: Mod1, Control 등).
  4. 그런 다음 해당 파일의 내용을 내 파일에 복사 ~/.config/xkb/custom-xkb하고 다양한 편집 내용을 실험하여 어떤 일이 일어나는지 확인했습니다. 그리고 내가 수집한 인터넷 자원을 사용하여 나의 의심을 없애려고 노력하십시오. 치명적인 일이 발생하면 Ctrl+Alt+F1을 누른 다음 nox 로그인을 수행하고 해당 줄에 주석을 달고 xkb_file ~/.config/xkb/custom-xkbX 서버를 다시 시작합니다.
  5. 나는 하위 디렉토리 및 의 내용을 조작하지 않을 것 입니다 rules. 하지만 그것들도 살펴보아야 합니다.geometrykeycodes

나는 실제로 그런 일을 한 적이 없지만 아마도 효과가 있을 것입니다. 실제 구성 파일을 살펴보면 튜토리얼과 가이드에서 실제로 말하는 내용을 파악하는 데 도움이 된다고 생각합니다.

행운을 빌어요

답변2

XKB는 실제로 정말 복잡한 짐승입니다. (적어도 내 경험으로는. 첫 번째 릴리스가 1996년에 출시되었다는 사실과 내 의견으로는 최고의 문서가 아니기 때문에 이상한 디자인 결정이 있는 것 같습니다.)

나는 다양한 구성을 실험함으로써 어느 정도 이해를 얻었고, 내가 원하는 것을 표현할 수 있는 충분한 유연성을 가지면서도 동작을 안정적으로 추측하고 편안하게 레이아웃을 만들 수 있는 기능의 하위 집합에 정착했습니다. 성취하다.

내가 배운 내용에 대한 포괄적인 튜토리얼을 작성하는 데는 꽤 시간이 걸리지만 기본 레이아웃을 읽는 것보다 더 이해하기 쉬운 구성 파일을 살펴보는 것이 좋습니다.

https://github.com/Isti115/dotfiles/tree/master/.config/xkb

(내 Sway 구성에 포함되어 있습니다.여기.)

특히 추천합니다Lenovo-L13.xkb여러 레이어가 있기 때문에 노트북용으로 만든 파일을 . (심지어 스페이스바를 누른 상태에서 수정자로 전환하기도 했습니다.ev이중 바인딩.) Vortex Core 레이아웃도 좋은 레이아웃이지만 키보드 자체도 프로그래밍 가능하므로 전체 그림은 아닙니다.

이전 답변에서 이미 언급했듯이 여기에서 찾을 수 없는 것이 필요한 경우 시작해야 할 곳은 내장 파일입니다. 를 사용하면 그 중 어느 것이 키보드에 활용되는지 알 수 있습니다 setxkbmap -print. 그러면 xkb파일이 어디에 있든 가져온 정의를 찾아볼 수 있습니다. (NixOS를 사용하지 않는 한 아마도 /usr/share/X11/xkbArch와 같은 합리적인 장소에 있을 것입니다.)

관련 정보