xbindkeys의 기본 예제 구성에는 키코드를 직접 지정하는 예제가 있습니다.
# set directly keycode (here control + f with my keyboard) #"xterm" # c:41 + m:0x4
c:
은 무슨 m:
뜻인가요? xbindkeys에 대한 문서에는 이에 대해 아무 것도 나와 있지 않습니다.
그리고 xbindkeys -k
열쇠를 찾는 데 사용할 수 있는 코드도 알고 있어요. 이것이 작동하지 않으면(비표준 fn 키 중 하나의 경우 명령이 키 누름에 응답하지 않지만 일반적인 작업을 수행함) xbindkeys
키를 처리할 수 없다는 의미입니까? 키코드 showkey -k
(저의 경우 217)를 알고 있는데도요?
답변1
c:41 + m:0x4
xbindkeys -k
바인딩하려는 키를 눌렀을 때 보고되는 내용 입니다 .
이것이 작동하지 않으면(비표준 fn 키 중 하나의 경우 명령이 키 누름에 응답하지 않지만 정상적인 작업을 수행함) xbindkeys가 키를 처리할 수 없다는 의미입니까?
아마도.
그러나 시스템의 어느 부분이 키를 "훔쳤는지"에 따라 작동하게 할 수도 있습니다.
X11 애플리케이션의 경우 키를 훔치는 것을 "잡기"라고 합니다. 안타깝게도,열쇠를 갖고 있는 사람을 식별하는 것이 어렵습니다.. 크롤링을 비활성화하면 xbindkeys가 크롤링할 기회를 갖게 됩니다.
X11 응용 프로그램이 아닌 경우(또는 X11 응용 프로그램인 경우에도) 시스템 로그를 확인하여 키를 눌렀을 때 기록된 항목이 있는지 확인하세요. 이는 누가 키 입력을 처리하고 있는지에 대한 중요한 단서를 제공합니다.
showkey -k(내 경우에는 217)의 키코드를 알고 있더라도 어떻게 될까요?
이것은 원하는 중요한 코드가 아닙니다. showkey
Linux 키코드가 표시되지만Xorg에는 자체 키코드가 있습니다. Xorg 키코드는 일반적으로 8씩 이동하며 키코드는 225일 수 있습니다. 그러나 xbindkeys -k
이것이 키코드가 표시되는 방식입니다. 이것이 작동하지 않으면 xbindkeys가 키를 감지할 수 없다는 의미입니다.
답변2
이는 문서화되지 않은 것 같지만 세 개의 수정자 b:
, , c:
및 m:
각각은 마우스 버튼, 키코드 및 수정자 마스크에 대한 숫자 값을 도입합니다. 그래서
c:41 + m:0x4
"코드 41이 있는 키"( f키보드), 수정자 4,즉 Ctrl. 수정자 값은 다음에서 정의됩니다 /usr/include/X11/X.h
.
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
state in various key-, mouse-, and button-related events. */
#define ShiftMask (1<<0)
#define LockMask (1<<1)
#define ControlMask (1<<2)
#define Mod1Mask (1<<3)
#define Mod2Mask (1<<4)
#define Mod3Mask (1<<5)
#define Mod4Mask (1<<6)
#define Mod5Mask (1<<7)
두 번째 질문에 대한 답이 확실하지 않지만 c:217
.