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