2017-09-29 22 views
0

저는 우분투 그놈 (gnome shell) 버전 3.24.2를 사용하고 있습니다. 그놈 셸 확장을 만들려고하는데 자바 스크립트를 사용하고 있습니다.그놈 쉘 확장에 글로벌 키 바인딩을 만드는 방법

내 확장 프로그램 및 자바 스크립트에서 Gnome의 어느 곳에서나 인식되는 전역 키 바인딩을 어떻게 만듭니 까? 해당 키 바인딩에 함수를 바인딩하여 사용자가 키 조합을 누른 다음 해당 함수가 실행되도록하려고합니다.

그놈 - 셸 확장 개발에 관한 문서는 거의 없습니다. 그래서 여기 묻는 것은 나의 유일한 선택입니다. 그 대답은 그놈 3.22입니다 때문에, 다음과 같은 유래 질문에 저를 참조하고 진심 키 - 바인딩을 만들 수있는 쉬운 방법이 희망하지 마십시오 : Gnome Shell Extension Key Binding

답변

0

가 여기에 꽤 완전한 답변 : How to handle keyboard events in gnome shell extensions?

당신은 가장 쉬운 방법은 그놈 쉘의 DBUS 인터페이스를 사용하는 것입니다 찾을 수 있지만 바로 가기 충돌 처리와 신호 콜백을 처리하는 것은 피할 수 없다 :

버스 이름 : org.gnome.Shell -> 경로 :/조직/그놈/쉘 -> 인터페이스 : org.gnome.Shell

관련 방법 :

GrabAccelerator(String accelerator, UInt32 flags) -> (UInt32 action) UngrabAccelerator(UInt32 action) -> (Boolean success)

신호 : 답장을 보내

AcceleratorActivate(UInt32, Dict of {String, Variant})

+0

들으. 지금 아래에 링크 된 솔루션을 사용하고 있지만 " a"와 ""(예 : "a"와 같은 마지막 문자가 없음)의 경우가 아닌 경우에만 작동하도록 할 수 있습니다. 오류가 발생합니다. 바인딩이 키를 수신 할 수 없었다. 당신이 내가? https://superuser.com/ 아래에 연결 한 예 : ""또는 ""솔루션을 사용하여 나는이 부분 키 bidning를 만드는 방법을 알고 계십니까 질문/471606/그놈 - 쉘 - 확장 - 키 바인딩/1182899 # 1182899 –

+0

내가 아는 한, 그건 모두 수정 자 키이고 '액셀러레이터 활성화'이벤트를 트리거하지 않기 때문에 불가능합니다. 'key-press-event'에 바인딩하고 응답에 기술 된대로 keyval에서 키 이름을 해독해야합니다. 내가 위에 링크 된 솔루션 (또는 위에 링크 된 솔루션에 대해 귀하가 링크하지 말 것을 요청한 경우) –