저는 UK/GB 키보드가 있는 Macbook에서 Linux를 사용하고 있으며 Apple의 이상한 키보드 레이아웃으로 인해 발생하는 일부 문제를 해결하기 위해 키맵을 사용자 정의했습니다. 나는 xmodmap
이것을 자주한다. Wayland를 사용해 보고 싶었지만 xmodmap
작동하지 않습니다. Wayland에서 비슷한 결과를 얻으려면 어떻게 해야 합니까? 내가 사용하는 파일에는 .Xmodmap
다음 내용이 포함되어 있습니다.
keycode 12 = 3 numbersign 3 sterling sterling sterling threesuperior sterling
clear Control
clear Mod4
add Control = Control_L Super_R
add Mod4 = Super_L
keysym Caps_Lock = NoSymbol Caps_Lock
1행: 영국 키보드에서는 Shift£ 3이므로 #은 일반적으로 근처에 자체 키가 있습니다 Return. 그러나 Mac에서는 Altgr- 를 통해 #을 얻습니다 3. 프로그래머로서 나는 £보다 #을 훨씬 더 많이 사용하므로 이 줄에서 두 값을 바꿉니다. 미국 레이아웃을 선택하면 이 작업도 수행되지만 Linux에서 그렇게 하면 OS X에서 미국/영국의 영향을 받지 않는 일반적으로 사용되는 일부 다른 키도 교체됩니다.
2-5행 : 이 키보드에는 실제 오른쪽 버튼이 없으므로 Cmd오른쪽 버튼을 Right로 설정합니다 .CtrlCtrl
6행 : CapsLock를 누를 때만 작동합니다 Shift. Mac에만 해당되는 것은 아니며 모든 운영 체제 및 키보드에 대한 표준 옵션이어야 합니다.
답변1
불행하게도 시스템 XKB 데이터베이스를 수정하는 것이 /usr/share/X11/xkb
유일한 방법입니다.다른 문제그 부분이 제대로 작동하고 있는 것 같습니다.
이러한 제한은 주로 Wayland의 미숙함과 XKB의 설계 감독으로 인해 발생합니다.
setxkbmap
및 와 같은 도구는 검색할 사용자 정의 데이터베이스를 추가하는 옵션을xkbcomp
제공합니다 (예: 또는 , 파일 및 하위 디렉터리는 시스템 데이터베이스와 유사하게 배치됩니다). 이러한 도구는 X 서버와 상호 작용하므로 Wayland에서 X 응용 프로그램을 실행하도록 호환성 계층을 구성하는 데 도움이 될 수 있습니다. 그러나 그들은 현재 Wayland 프로토콜을 사용하지 않습니다.-I
~/.xkb
~/.config/xkb
Xwayland
Wayland 프로토콜은 아직 성숙 단계에 있습니다. 지금까지
input-method
그리고text-input
합의가 가장 관련성이 높지만 둘 다 불안정합니다. 정의된 키맵 변경에 대한 언급도 없습니다. 해당 세부 사항은 합성자에게 맡겨져 있습니다.GNOME과 KDE 모두 동적 변경을 포함하여 시스템 XKB 옵션을 처리하기 위한 키보드 처리 설정 데몬을 제공합니다. 제가 아는 한, 사용자에게 맞춤 설정에 대해 알릴 방법이 없습니다. 내가 아는 한, Weston과 다른 컴포지터는 종료하고 다시 시작하는 것 외에는 변경할 수 있는 방법을 제공하지 않고 시작 시 XKB 옵션을 설정하기 위해 구성 파일이나 환경 변수에 의존합니다.
XKB 자체에서도 이는 완전히 지원되지 않습니다. 사용자 정의 기호 파일은
include
다른 시스템 기호 파일일 수 있습니다. 그러나 현재는 XKB 규칙 파일에 대한 기능이 없으므로include
Wayland 합성기와 대화하여 개인 사용자 정의를 찾을 수 있는 도구가 있더라도 사용하려는 모든 규칙을 수동으로 포함해야 합니다(예:rules/evdev*
XKB를 다음에서 복사). 시스템을 수정하고 수정하세요).libxkbcommon
가지다공개 질문이 주제에 대해관련 오류.
답변2
나는 사용해왔다차단 도구Linux의 경우 이는 성공적이었으며 다음과 같이 알려져 있습니다.사람들은 맞춤형 매핑을 위해 다른 플러그인을 생성합니다.또한.CAP2ESC는 제가 매일 사용하는 최초의 개념 증명 플러그인이며 X와 Wayland 모두에서 작동합니다. 이 도구는 일반적인 매핑 소프트웨어보다 약간 낮은 수준이지만 매우 유연하며 다음 플러그인 계획은 범용 코드 매핑 도구입니다.
면책 조항 : 나는 저자입니다.
답변3
상위 답변 외에도https://unix.stackexchange.com/a/215062매우 유용하지만 시스템 xkb 파일을 편집할 필요는 없습니다.
https://xkbcommon.org/doc/current/md_doc_user_configuration.html유용하게도 기호 파일을 넣고 $XDG_CONFIG_HOME/xkb/symbols/<name>
규칙을 사용자 정의 할 수 있습니다.$XDG_CONFIG_HOME/xkb/rules/evdev
그런 다음 사용자 정의 기호 파일을 쉽게 로드할 수 있습니다.
완전한 예로 미국 dvorak에 åäö를 추가했습니다.
$XDG_CONFIG_HOME/xkb/symbols/swedish_letters_on_dvorak
xkb_symbols "sweletters" {
//å on alt+u (qwerty f)
key <AC04> { [ u, U, aring, Aring ] };
//ä on alt+e (qwerty d)
key <AC03> { [ e, E, adiaeresis, Adiaeresis ] };
//ö on alt+o (qwerty s)
key <AC02> { [ o, O, odiaeresis, Odiaeresis ] };
// make right alt altGr
include "level3(ralt_switch)"
};
$XDG_CONFIG_HOME/xkb/rules/evdev
! option = symbols
swedish_letters_on_dvorak:sweletters = +swedish_letters_on_dvorak(sweletters)
! include %S/evdev
(그리고 내 흔들리는 구성에서)
input type:keyboard {
xkb_layout "us"
xkb_variant "dvorak"
xkb_options "caps:escape,swedish_letters_on_dvorak:sweletters"
}
답변4
이 답변은 Quickotic의 답변과 동일한 아이디어를 가지고 있지만 더 자세한 예가 있습니다.
Gnome Tweaks에는 xkb를 통해 수행할 수 있는 20~30가지 키보드 조정 목록이 있습니다. 때로는 기본적으로 원하는 조정을 찾을 수 있습니다. 제 경우에는 Print Screen 키를 메뉴로 바꾸고 싶습니다.
xkb를 통해 printscr 키를 수정하는 유일한 옵션은 이를 Win_R로 바꾸는 것입니다. 군나르 하르마르손이 스레드에printscr/win_r이 printscr/menu를 대체할 수 있도록 xkb를 수정하는 것이 좋습니다. 우리는 함께 해결책을 찾았고 여기에 다시 게시하겠습니다.
터미널에 다음을 입력하세요.
sudo su
nano /usr/share/X11/xkb/symbols/altwin
파일 하단에서 다음을 찾을 수 있습니다.
// Win is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
replace key <PRSC> { [ Super_R, Super_R ] };
modifier_map Mod4 { <PRSC>, <RWIN> };
};
이 부분을 삭제하고 다음으로 교체하세요.
// Menu is mapped to the PrtSc key (and the usual Win key).
xkb_symbols "prtsc_rwin" {
replace key <PRSC> { [ Menu, Menu ] };
modifier_map Mod4 { <PRSC>, <MENU> };
};
nano에서 삭제하려면 백스페이스 키를 사용하세요. (강조 표시 및 삭제는 작동하지 않습니다.) 붙여넣으려면 Shift-Ctrl-V를 사용하세요. 종료하고 저장하려면 ctrl-x를 누르고 Yes를 선택하여 덮어쓴 다음 Enter를 누르십시오.
재시작. Gnome/Ubuntu에서 gnome-tweak-tools로 이동합니다. Tweak 도구에서 키보드 및 마우스 섹션으로 이동하여 "추가 레이아웃 옵션" 버튼을 누르고 Alt/Win 키 동작을 확장합니다. 하단 옵션을 선택합니다: Win은 printscr에 매핑됩니다(기억하세요. 우리는 인쇄와 Win이 아닌 인쇄와 메뉴를 바꾸도록 이 동작만 수정했습니다). (KDE에서 모드화된 xkb 옵션을 활성화할 수 있는 방법이 있다고 확신하지만 저는 이를 사용하지 않아 정확한 과정을 알려드릴 수 없습니다.)