X의(혹은 더 아래단의)키보드 처리 방식에 대해서
안녕하세요?
일어자판 키보드를 쓰는데 키맵을 약간 변경해서 사용하려합니다.
스페이스 좌우의 쓸모없는(?) 키를 alt-ctrl로 활용하고, 오른쪽 쉬프트 바로 왼쪽의 키를 Shift키로 활용하려고 합니다.
일단 기존에 해오던 대로 xmodmap을 활용하려고 했습니다.
오른쪽 쉬프트 바로 왼쪽의 키를 Shift로 바꾸는 과정에서 근본적인 문제에 봉착했습니다.
단순하게 xmodmap에 해당 키의 keycode를 Shift_R 심볼로 적용하는것으로는 Shift키로 동작을 하지 않더군요.
문제를 분석하던 차에 xev를 통해 해당키가 Shift_R 심볼로 인식은 되지만, 실제 오른쪽 쉬프트와 미묘한 차이가 있음을 발견했습니다. xev를 실행하고, 실제 shift키를 누르면,xev가 받는 이벤트는 정확하게 두번입니다. 즉, 키를 누를때, 놓을대 두번입니다. 키를 아무리 오래 누르고 있어도 두번만 발생합니다. 반면에 일반키를 Shift로 xmodmap에서 변경하는키는 Shift 이벤트가 누르고 있는동안 계속 발생하였습니다.
이 현상은 shift뿐만 아니라, capslock, ctrl, alt, win 키등에서 동일했습니다. 즉 이 키들은 정확하게 두번만 이벤트(xev단에서 잡히는 X이벤트)가 발생합니다.
어디선가, ctrl, alt등은 modifier키라는 의미를 정의해서 X단으로는 이벤트를 누름/놓음 두개만 전달하도록 설정이 되는것 같은데, 그게 어디인지지가 궁금합니다. 즉, 일반키를 modifier처럼(제 경우엔 shift) 쓸 수 있도록 변경하려면 어느곳에서 해야하는지가 궁금합니다.
showkey로 scancode값을 찍어보면, ctrl, alt등도 반복적으로 코드가 나오는것은 확인하였습니다. (당연하겠지만...)
댓글 달기