디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Wayland에서 hwdb로 한글키 맥이는 법 알아냈다...

왓따루갤로그로 이동합니다. 2023.09.15 20:13:08
조회 143 추천 4 댓글 6

딱히 적을 곳이 없어서 여기다가 적음


tl;dr


1./proc/bus/input/devices 에서 키보드 기기명 확인

2. sudo evtest 명령어로 키코드 확인

3. 다음처럼 /etc/udev/hwdb.d/61-hangul.hwdb 파일 작성:


evdev:name:<기기명>:*
KEYBOARD_KEY_<R_Alt 키코드>=hanguel
KEYBOARD_KEY_<R_Ctrl 키코드>=hanja


4. 설정값 강제 리로드

sudo systemd-hwdb update

sudo udevadm trigger



HWDB란?


udev에 들어있는 하드웨어 데이터베이스.

각종 하드웨어에 대한 세팅정보 같은게 들어가있음.

옛날에는 별도의 이름이 없이 udev의 일부였는데, systemd로 흡수된 이후에 따로 명칭이 생김.


https://www.freedesktop.org/software/systemd/man/hwdb.html

 


이걸로 설정 가능한 내용 중에는 키 입력의 키코드 값 매핑도 있음.

여기서는 노트북 빌트인 키보드의 우측 alt/ctrl을 한글/한자 키로 매핑함.


설정값을 준비하자


일단 키를 매핑하려면 3가지가 필요함

1. 목표가 되는 키보드 기기

2. 매핑할 키의 키코드

3. 매핑후 사용할 키의 키코드


키보드 기기 확인


정확히는 설정파일에서 사용할 수 있는 "기기의 경로" 값을 확보해햐 함.

경로를 지정하는 방법에는 여러가지가 있는데, 가장 사람이 쓰기 편한 방법으로 기기의 명칭(name)을 사용하는 방법이 있음.

cat /proc/bus/input/devices 명령어로 기기 목록을 뽑아서, 그 중 N: Name 값을 경로에 이용할 수 있음.

가령 N: Name="AT Translated Set 2 keyboard" 이라면 경로는 다음 처럼 쓸 수 있음.


evdev:name:AT Translated Set 2 keyboard:*


가령 내 노트북(thinkpad)에 달린 키보드는 atkbd 모듈로 구동되는데, 이렇게도 쓸 수 있고: evdev:atkbd:dmi:*

이거 외에 USB의 VID, PID를 사용하는 방법도 있는 것 같은데 내가 쓸일 없어서 몰루?


매핑할 키의 키코드


이건 sudo evtest 명령으로 쉽게 알 수 있음.

해당 명령어를 실행하면 기기 목록이 뜨는데, 키보드를 선택하고 엔터, 그 뒤 매핑할 키를 누르면 키코드가 포함된 이벤트 정보가 뜸.


Event: time 1694775193.222899, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1694775193.222899, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1694775193.222899, -------------- SYN_REPORT ------------
Event: time 1694775194.716147, type 4 (EV_MSC), code 4 (MSC_SCAN), value b8
Event: time 1694775194.716147, type 1 (EV_KEY), code 122 (KEY_HANGUEL), value 1
Event: time 1694775194.716147, -------------- SYN_REPORT ------------
Event: time 1694775194.794984, type 4 (EV_MSC), code 4 (MSC_SCAN), value b8
Event: time 1694775194.794984, type 1 (EV_KEY), code 122 (KEY_HANGUEL), value 0
Event: time 1694775194.794984, -------------- SYN_REPORT ------------
Event: time 1694775194.984991, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9d
Event: time 1694775194.984991, type 1 (EV_KEY), code 123 (KEY_HANJA), value 1
Event: time 1694775194.984991, -------------- SYN_REPORT ------------
Event: time 1694775195.031933, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9d
Event: time 1694775195.031933, type 1 (EV_KEY), code 123 (KEY_HANJA), value 0
Event: time 1694775195.031933, -------------- SYN_REPORT ------------

여기서 EV_MSC, MSC_SCAN 이 표시되는 줄이 키보드 키 스캔 이벤트임.

RAlt, RCtrl을 순서대로 누른거고, 해당 키코드 값은 b8, 9d임.

해당 값은 기기별로 다르기 때문에 복붙하지 말고 직접 실험할 것.


매핑후 사용할 키의 키코드


이건 이미 기존에 정의된 값이라 고민할게 별로 없음.

다만 한글/한자키는 외국에선 안쓰다보니 인터넷에도 자료가 잘 안 뜰거임.


한글키는 hanguel

한자키는 hanja


이렇게 이름이 붙어있으니 참고.


설정하기


설정파일 작성


hwdb 설정파일은 /etc/udev/hwdb.d에 넣으면 udev가 구동할 때 자동으로 읽어들임.

hwdb 설정파일의 형식이 궁금하거나 키보드 설정 내용이 궁금하면 /usr/lib/udev/hwdb.d/60-keyboard.hwdb 을 참고할 것.


일단 다음의 위치에 설정파일을 생성하자 (편집기는 편한거 사용할 것)

sudo vi /etc/udev/hwdb.d/61-hangul.hwdb


내용은 다음과 같음:


evdev:name:<기기명>:*
KEYBOARD_KEY_<R_Alt 키코드>=hanguel
KEYBOARD_KEY_<R_Ctrl 키코드>=hanja


설정 리로드 시키기


일반적으로는 구동시에만 로드되는 값이라 설정이 바뀌면 수동으로 다시 로드 해줘야됨


sudo systemd-hwdb update

sudo udevadm trigger


정상적으로 작동하는지는 evtest로 확인할 수 있음.


추천 비추천

4

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
이슈 [디시人터뷰] 웃는 모습이 예쁜 누나, 아나운서 김나정 운영자 24/06/11 - -
3260 Unified Kernel Image 처음 써봤는데 괜찮은듯 [1] ㅇㅇ(205.189) 02:05 22 0
3259 이제 이 녀석은 놓아주어야 하나 [3] 리갤러(211.54) 06.13 54 0
3258 리눅스에서도 오버워치 잘 돌아가네 [3] ㅇㅇ(194.114) 06.13 63 0
3257 올드 7zip [2] asdf4(182.225) 06.13 70 0
3256 결국 리눅스로 복귀함 [2] ReimuHakurei갤로그로 이동합니다. 06.13 118 1
3255 233.39 형님 감사합니다ㅜㅜㅜ [7] 라무빌런갤로그로 이동합니다. 06.13 92 0
3254 젠투 커널 업뎃 개빠르네 [2] 리갤러(211.54) 06.12 76 1
3253 우분투 1달좀 지낫는데 오늘 중대한 버그 발생 [3] 리갤러(14.5) 06.12 74 0
3252 486에서는 dsl이 제일 편한듯 [2] asdf4(182.225) 06.12 58 1
3251 리눅스 전문가 [3] 리갤러(211.234) 06.12 88 0
3250 리눅스 2일차 뉴비 잡설&질문 [8] 리갤러(125.129) 06.12 105 0
3249 s912 sbc에 armbian 설치 shvr.iedi갤로그로 이동합니다. 06.11 134 4
3248 kubuntu 24.04 lts 화면 안 뜨는 문제 해결~ 전웅갤로그로 이동합니다. 06.11 59 2
3247 스냅드래곤 x 엘리트 기기에 설치할만한 배포판 있을까 [2] 전웅갤로그로 이동합니다. 06.11 82 0
3246 이제 윈도우 완전히 탈출할 때가 온 것 같음. [5] ㅇㅇ갤로그로 이동합니다. 06.11 156 6
3245 맨붕 [1] asdf4(182.225) 06.10 97 1
3244 486에서 쓸 젠투 빌드하고있는데 [4] asdf4(182.225) 06.10 73 0
3243 s912 sbc를 무선공유기로 써보자. [1] shvr.iedi갤로그로 이동합니다. 06.10 177 2
3242 홈서버 구축 가능하냐? [4] 리갤러(211.44) 06.10 120 0
3241 질문 있어요 [3] 리갤러(211.55) 06.10 79 0
3240 형님들 도와주세요ㅜㅜㅜㅜ [3] 라무빌런갤로그로 이동합니다. 06.09 98 0
3238 개발자님들 자주쓰는 명령어 공유좀 [15] 리갤러(14.5) 06.09 188 0
3237 아이패드에 우분투 설치 가능하다고 보냐? 리갤러(49.174) 06.09 73 0
3236 고물 데탑에 슬랙웨어 깔고 노는중 리갤러(211.54) 06.08 56 0
3235 오늘 리마 2차 답 적어서 나온사람 있어? [5] 리갤러(218.148) 06.08 217 0
3234 젠투 2주 사용 후기 [2] 리갤러(211.54) 06.08 144 3
3233 vmcore 분석하려면 [1] 리갤러(222.107) 06.08 70 0
3232 vmware 메모리 [1] 리갤러(1.237) 06.08 98 0
3231 갤럭시북4프로 듀얼부팅으로 우분투 못씀요?? [3] ㅌㅌ갤로그로 이동합니다. 06.07 121 0
3230 나도 아치리눅스 쓰는데 efi 파티션 옮김 [4] 김규소갤로그로 이동합니다. 06.07 165 2
3229 ps 투 [2] asdf4(182.225) 06.07 77 0
3228 gnome's 서포트서버 이건 뭐임 ㅇㅇ(125.183) 06.07 46 0
3227 특정 드라이브 마운트 차단시키는 법 아는형 드루와바 [3] 리갤러(116.32) 06.07 113 0
3226 우분투에서 macOS 설치해봤다 [2] ㅇㅇ(103.125) 06.07 186 1
3225 우분투 22.04에 tls 깔아서 배터리 상한 제한하려하니까 [12] linux갤로그로 이동합니다. 06.06 156 0
3224 Qemu Pass Through 그래픽카드 한개일때 질문 [12] 리갤러(36.39) 06.06 125 0
3223 센토스7 마루타로 하나만 갈아엎음 [5] 리갤러(210.110) 06.05 158 0
3222 리눅스 재부팅하니까 갑자기 랜선을 안먹는데? [4] 리갤러(118.235) 06.05 151 0
3221 리눅스 늒비 받아라 [6] 시로사키하나갤로그로 이동합니다. 06.05 209 0
3220 전면 3.5mm 잭 헤드셋 마이크가 안댐.. [12] Kat갤로그로 이동합니다. 06.05 104 0
3219 윈도우 빔은 빔 자체를 까는 거보다 vsc에 빔 익스텐션을 까는 게 더 ReimuHakurei갤로그로 이동합니다. 06.05 80 0
3218 듀얼부팅 근황 [1] 리갤러(211.176) 06.05 123 2
3217 태스크바에 날씨 정보 넣으려고 하는데 어디가 좋을까 [3] 桜坂・亜衣子갤로그로 이동합니다. 06.04 218 0
3216 우분투 24.04 새 커널 나왔는디.. ㅇㅇ(45.14) 06.04 113 0
3215 재미로 luks2 디스크 암호화 했었는데 [2] 리갤러(211.36) 06.03 124 0
3214 빔이 빔이 아니야~ [1] ReimuHakurei갤로그로 이동합니다. 06.03 93 0
3213 씨발윈도우ㅈㄴ불편하노 [3] ReimuHakurei갤로그로 이동합니다. 06.02 187 1
3212 윈도우 복구 완!(듀얼부팅 글쓴이) [7] 리갤러(211.176) 06.02 150 2
3211 심심할 땐 정전갤 뻘글 [2] 리갤러(211.54) 06.02 101 0
3210 우분투 설치를 했는데 들어가지를 못한다… [3] 리갤러(222.118) 06.02 98 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2