최근에 OpenSuSE 15.2에 KDE 5 및 Sun Type 7 키보드를 장착했으며 이제 왼쪽 가장자리에 있는 기능 키를 사용하여 다양한 시스템 전체 단축키를 사용하고 싶습니다. 유일한 문제는 KDE 제어 센터의 바로 가기 목록에서 이러한 키 중 일부가 무시된다는 것입니다.
도움말, 잘라내기, 복사, 붙여넣기, 열기 키는 그렇게 인식되는데 취소, 다시 실행, 실행 취소, 속성, 아웃룩, 찾기는 인식되지 않는데 이유를 모르겠습니다. 이들은 모두 자체 스캔 코드를 내보내고 xkb
이를 해당 키 기호에 매핑합니다. 예를 들어 Properties 키가 내보내는 내용은 다음과 같습니다( 의 출력 xev
).
KeyPress event, serial 40, synthetic NO, window 0x7800001,
root 0x561, subw 0x0, time 3103717, (-256,541), root:(1374,570),
state 0x10, keycode 138 (keysym 0x1005ff70, SunProps), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
이 키에 문제가 있나요? xkb
참고할 수 있는 구성은 다음과 같습니다 .
╭─jacek@epica ~
╰─➤ setxkbmap -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc102
layout: de
variant: pl
options: terminate:ctrl_alt_bksp,altwin:meta_win,lv3:ralt_switch,compose:menu
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwertz)
types: complete
compat: complete
symbols: pc+de(pl)+inet(evdev)+terminate(ctrl_alt_bksp)+altwin(meta_win)+level3(ralt_switch)+compose(menu)+terminate(ctrl_alt_bksp)
geometry: pc(pc102)
고쳐 쓰다:현재 xkb
구성을 살펴본 결과 symbols/inet
파일에 독점 Sun Type 6/7 기능 키 전용 블록 전체가 있음을 발견했습니다.
partial alphanumeric_keys
xkb_symbols "evdev" {
key <MUTE> { [ XF86AudioMute ] };
key <VOL-> { [ XF86AudioLowerVolume ] };
key <VOL+> { [ XF86AudioRaiseVolume ] };
key <POWR> { [ XF86PowerOff ] };
key <STOP> { [ Cancel ] }; // KDE ignores me!
key <AGAI> { [ Redo ] }; // KDE ignores me!
key <PROP> { [ SunProps ] }; // KDE ignores me!
key <UNDO> { [ Undo ] }; // KDE ignores me!
key <FRNT> { [ SunFront ] }; // KDE ignores me!
key <COPY> { [ XF86Copy ] };
key <OPEN> { [ XF86Open ] };
key <PAST> { [ XF86Paste ] };
key <FIND> { [ Find ] };
key <CUT> { [ XF86Cut ] };
key <HELP> { [ Help ] };
key <LNFD> { [ Linefeed ] };
};
이는 키코드와 기호가 xkb
올바른 방식으로 등록되었음을 의미하지만 불행하게도 Sun 특정 키 기호를 무시하는 곳은 KDE 제어 센터입니다(위 설명 참조).이것은 KDE 사람들에게 티켓을 제출해야 한다는 뜻인가요?
답변1
Sun 7 키보드에는 기본적으로 두 가지 옵션이 제공됩니다.
- 기본 Sun 7 매핑은 KDE나 Gnome이 인식하지 못하는 키 바인딩을 사용합니다.Cancel Redo SunProps Undo SunFront
- 이 옵션은 모든 왼쪽 키를 기능 키에 바인딩하지만 기능 키의 맨 위 행과 겹치고
suncompat
KDE나 Gnome에서 인식하지 못하는 XF86AudioMute XF86AudioLowerVolume XF86AudioRaiseVolume XF86PowerOff접두사 기호 에 바인딩합니다.Sun
따라서 두 기본 구성 모두 서로 다른 방식으로 버그가 있습니다. 이에 대한 3가지 수정 방법이 있습니다:
- 다음을 사용하여
xmodmap
키를 올바르게 다시 매핑하십시오. - 새로운 올바른 xkb 바인딩을 생성하고 이를 버그 패치로 제출합니다. (이 작업을 하려고 했지만 아직 해결하지 못했습니다. 조만간 수행하면 여기에서 업데이트하겠습니다.)
- 누락된 기호를 식별하는 KDE 및 Gnome에 대한 버그 보고서 제출
답변2
몇 가지 좋은 팁을 받은 후(감사합니다!) KDE에서 문제를 일으키는 것은 Evdev Standardized Keycodes
파일 섹션의 중요한 기호 라는 것을 알게 되었습니다 . 대부분의 기호는 실제로symbols/inet
아니요로 시작하는 XF86
는 알 수 없는 이유로(아마도 버그일까요?) KDE에서 무시되므로 내 필요에 가장 잘 맞는 기존 XF86 키 기호로 대체했습니다. 예를 들어, 키코드 Cancel
의 키 기호를 <STOP>
로 바꾸었습니다 XF86Stop
. 그러면 KDE의 단축키 정의 대화 상자가 키를 인식했습니다.