Microsoft Natural Ergonomic Keyboard 4000의 확대 / 축소 슬라이더 (및 기타 버튼)를 작동시키는 방법?


21

Ubuntu 10.10에서 Microsoft Natural Ergonomic Keyboard 4000을 사용합니다. 멀티미디어 키 (볼륨, 재생 / 일시 정지), 메일 및 계산기 버튼도 작동합니다.

이제 줌 슬라이더를 사용하고 싶습니다. 가능하면 페이지 스크롤을 사용하고 싶습니다. 그것을 가능하게하는 방법이 있습니까?


2
askubuntu.com/questions/471802/…를 참조하십시오 . 여기의 이전 답변은 더 이상 사용되지 않을 수 있습니다.
matt

답변:


18

/etc/udev/rules.d/98-ms-ergo.rules다음 내용으로 파일 을 작성하십시오 .

ACTION=="remove", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"
ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end"
SUBSYSTEMS!="usb", GOTO="keyboard_end"

SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d pageup 0xc022e pagedown"

GOTO="keyboard_end"

설치된 파일을 변경하지 않고 확대 / 축소 키를 페이지 업 / 페이지 다운에 매핑합니다 /lib/udev.

추가 한 후에는 키보드를 분리했다가 다시 연결하면 작동합니다.


이것은 Fedora 19를 사용하여 완벽하게 작동했습니다.
Rubens Mariuzzo

Microsoft Ergonomic 7000의 경우 모델은 00db가 아닌 071d (lsusb에 의해 획득 된 것으로) 나타납니다. 따라서 누군가 7000에 대해이를 시도하면 위 파일에서 00db를 071d로 대체해야합니다. 어쨌든 내 경우 (Ubuntu 14.04)는 작동하지 않습니다. 아마도 evtestErgonomic 7000 키보드의 다른 대부분의 키와 달리 줌 슬라이더가 이벤트를 트리거하지 않는다는 사실과 관련 이 있습니다. evtestUbuntu 선택 하더라도 웹 / 홈 버튼에는 출력이 표시되지 않으므로 확실하지 않습니다 .
matt

1
14.04에서도 4000을 사용할 수 없습니다. 에 이벤트가 표시되지 않습니다 xev.
Michael

14.10에 이것을 시도했지만 작동하지 않았습니다.
Rubens Mariuzzo

@Cocoabean xev은 나 에게도 효과 가 없습니다. 무엇입니까 evtest /dev/input/event3. 만약이 event3다른 이벤트와 어떤이 키에 대한 반응 검사를하지 않습니다 ( event[0..9]).
Nicolás

9

Xubuntu 13.10 (아마도 Ubuntu 13.10에서도)은 다음과 같이 수행 할 수 있습니다.

편집 키 매핑에 /lib/udev/hwdb.d/60-keyboard.hwdb:

###########################################################
# Microsoft
###########################################################

# Microsoft Natural Ergonomic Keyboard 4000
keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

운영 sudo udevadm hwdb --update

재부팅하십시오.


1
나를 위해 14.04에 근무
Amir Uval

내 60-keyboard.hwdb에는 키보드 : usb : b0003v045Ep00DB *와 함께 MNEK4K에 대한 기존 항목이 있습니다. 동작 변경이 작동하지 않았습니다. 해당 작업으로 새 항목을 추가해도 효과가있었습니다.
Alrekr

16.04의 매력처럼 작동했습니다. 웹 페이지를 탐색 할 때 더 부드러운 스크롤을 얻기 위해 "pageup"및 "pagedown"대신 "up"및 "down"을 사용했습니다. 고마워요!
Pierre

기존 키의 별칭 대신 katakanakatakanahiragana(또는 hal.freedesktop.org/quirk/quirk-keymap-list.txt 에서 사용되지 않은 다른 키 코드 )에 매핑 할 수 있습니다 . 이 방법으로 키를 인식하고 수정 자와 함께 사용하여 볼륨, 언어, 크기 등을 토글 할 수 있습니다 (두 개의 새로운 슈퍼 키를 즐기도록 창 관리자 구성).
dmitry_romanov

4

구성하기 위해 마이크로 소프트 인체 공학 키보드 4000을 우리는 키보드 선언과 키를 매핑에 대한 기록을 포함하는 구성 파일을 생성해야합니다.

이를 위해서는 다음 세 가지 유형의 정보가 필요합니다.

  • 키보드 타입
  • scancode키보드의 실제 키입니다
  • 키는 name선택된 키에 원하는 기능을 할당

먼저 키보드 유형을 찾으십시오.

터미널에서 다음 명령을 실행하십시오.

lsusb 

출력에 따라 키보드 유형이 결정됩니다.

...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...    

다음에 나타납니다 ID. 이 경우045e:00db

두 번째로 스캔 코드와 키 이름을 찾으십시오.

이를 확인하기 위해 evtest터미널에서 특정 장치의 이벤트 정보를 로그 아웃하는 프로그램을 사용합니다 .

evtest

프로그램이없는 경우 다음 명령을 실행하여 설치하십시오.

sudo apt-get install evtest

evtest프로그램 을 실행하면 다음과 같은 결과가 나타납니다.

No device specified, trying to scan all of /dev/input/event* Available devices: 
/dev/input/event0:    Power Button     
/dev/input/event1:    Power Button     
/dev/input/event2:    PixArt USB Optical Mouse   
/dev/input/event3:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event4:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event5:    HDA Intel Front Headphone     
/dev/input/event6:    HDA Intel Line Out     
/dev/input/event7:    HDA Intel Line   
/dev/input/event8:    HDA Intel Rear Mic     
/dev/input/event9:    HDA Intel Front Mic     
/dev/input/event10:   HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:

출력은 설명이 필요 없으며 키보드에 적절한 숫자를 3입력하십시오.

그렇게하면 터미널에 많은 정보가 출력되고 다음 줄로 끝납니다.

... 

Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------

이제 키보드를 누를 때마다 키 정보가 덤프됩니다. 예를 들어 오른쪽 이동 옆에 있는 슬래시 키는 다음을 보여줍니다.

Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------

로그의 첫 번째 줄에는 키보드 의 실제 키 에 대한 정보 ( 예 : scancode값 뒤에 오는 키) 가 포함됩니다. 이 경우 70038입니다

두 번째 줄에는 키 이름과 같은 할당 된 기능 정보가 있습니다. 이 경우 SLASH 입니다. 다른 키를 검사하여 적절한 이름을 찾으십시오.

간단히 말해 :

  • 우리의 키보드 유형은 : 045e : 00db
  • 슬래시 키의 스캔 코드는 다음과 같습니다 : 70038
  • 할당 키의 이름은 SLASH입니다

필요한 정보를 수집 한 후 구성 파일을 만듭니다.

sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb

히트 i활성화하기 위해 삽입 모드를 하고 다음을 입력합니다 :

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

을 누르고 저장 escape한 다음 Enter 키 를 눌러 저장하고 종료 :wq하십시오.

그런 다음 구성을 적용하려면 다음 두 명령을 실행하십시오.

sudo udevadm hwdb --update
sudo udevadm control --reload

마지막으로 키보드를 분리했다가 다시 연결하십시오.

구성 파일에 대한 참고 사항 :

  • 파일 형식은 표시된 것과 정확히 일치해야하며 레코드를 매핑하기 전의 공간이 중요합니다.
  • sudoedit다른 텍스트 편집기를 사용하는 대신 위에 설명한대로 파일의 정확한 형식을 따라야합니다.
  • 두 개의 키보드 유형에 추가 문자가 있습니다 vp공급 업체 및 제품에 서있다. 그들은 또한 중요하다.
  • 키보드 유형은 구성 파일에서 대문자로 작성됩니다. 키보드 유형은 045e : 00db 이지만 구성에서는 v045Ep00DB *를 삽입합니다.
  • 키의 스캔 코드는 바로 다음에 온다 KEYBOARD_KEY_
  • 구성 파일에서 키 이름이 소문자로 나타납니다
  • 이 튜토리얼에 따라 키보드의 거의 모든 키를 사용자 정의 할 수 있습니다.

3

문제 이다 > evdev 운전자가 키 코드를 무시한다 (255) . Marco Chiappero
덕분에 솔루션 :

1) 필요한 모든 리 맵핑을 정의해야합니다 ( 
"scancode keycode"list) 파일을 "/ lib / udev / keymaps /"아래의 파일에 저장하십시오 
(예를 들어 logitech-lx710-cordless를 만들었습니다). 당신은 찾을 수 있습니다
evtest를 사용하여 스캔 코드 ( "sudo evtest / dev / input / eventX", 여기서 X는 
키보드 장치. 때때로 이러한 추가 키가 노출 될 수 있으므로주의하십시오
다른 장치 또는 마우스 인터페이스 : 예. event3-> kbd, event4->
마우스 및 추가 키). 다음은 샘플 출력입니다.

이벤트 : 시간 1294153475.909379, 유형 4 (기타), 코드 4 (ScanCode), 값 c1028
"c1028"은 키맵 파일에 넣을 스캔 코드 값입니다. 
앞에서 설명한대로 input.h에서 숫자를 가져 와서 
16 진수. 그런 다음 파일에 다시 매핑 쌍을 작성하십시오.
다음과 같이 의견 :

0xC1028 0x9a # 회전 버튼

255보다 큰 모든 키에 대해 반복하십시오.

2) udev에게이 리매핑 파일이 발생할 때마다 적용하도록 지시해야합니다. 
키보드에서 "/lib/udev/rules.d/95-keymap.rules"파일을 추가하여 편집하십시오. 
HW와 일치하는 udev 규칙. 규칙을 정의하도록 요청하지 마십시오.
당신. 
참고 : 직접 입력하여 키맵 파일을 즉시 적용 할 수 있습니다 
"sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ YOUR_FILE"및 
다시 한번 evtest로 확인하십시오.

이제 Gnome 단축키 편집기를 사용하여 키가 
X 안에서 사용할 수 있고 새로운 단축키를 만듭니다. 그러나 그것은 일어날 수 있습니다
keysym이 해당 키 코드에 할당되므로 XF86Foo 대신 0xXY가 표시됩니다. 
xmodmap -pke를 통해 현재 매핑을 볼 수 있습니다. 
필요한 경우 파일을 작성하고 편집하십시오 (전체 키심 코드 목록은
"/ usr / lib / X11 / XKeysymDB").
다시 매핑 한 키에 키 심을 추가하면이 파일을 저장할 수 있습니다
~ / .Xmodmap으로 (또는 모든 사용자에게 적용하려면 / etc / X11 / Xmodmap으로)

원하는 버튼이 c022d 및 c022e임을 알지만 input.h를 찾을 수 없습니다.
Martin Ueding

이해하지만 (이 하드웨어가 없기 때문에 테스트 할 수는 없습니다) 실제로 input.h가 필요하지 않으므로이 파일을 편집하면됩니다 /lib/udev/rules.d/95-keymap.rules. (런치 패드에있을 수 있습니다. 동일한 하드웨어를 가진 사람들을 찾을 수 있으므로 bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/313514 를 더 잘 도울 수 있습니다 ). 위에서 언급 한 파일을 편집 했습니까?
desgua

1
이것은 너무 기술적이고 대부분의 사람들에게 해답이 아닙니다. 몇 가지 심각한 차이 : 적절한 / dev / input / eventX를 결정하는 데 도움이되지 않으며, 상황에 맞는 정보와 혼합 된 불분명 한 단계 및 키맵 작성에 대한 지시를 요구하지 않는 요청.
Alain O'Dea

1
evtest는 기본적으로 설치되지 않아서 더 악화됩니다.
Alain O'Dea

시행 착오를 통해 키보드가 / dev / input / event3이고 evtest가 확대 / 축소 슬라이더에서 이벤트를 선택하지 않음을 발견했습니다.
Alain O'Dea

0

내 컴퓨터에서는 / dev / input / event5를 통해 추가 키 (HomePage, Search, Calc 등) 및 확대 / 축소 입력이 전송되었지만 일반 키는 / dev / input / event4를 통해 전송되었습니다. 확대 / 축소 키 값이 큐 오버플로와 일치합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.