프로그래밍 방식으로 시너지 효과 제어

프로그래밍 방식으로 시너지 효과 제어

전환하려고 합니다.스위치인디렉션()창 관리자(dwm, c로 작성됨)에서. 명령줄에서 시너지 동작을 제어할 수 있는 방법이 없는 것 같아서 wm에서 적절한 키 조합을 실행해 보았습니다.

시나리오: super+,wm에 의해 포착되는 on (쉼표) 이벤트는 시너지가 수신하는 또 다른 키 콤보를 실행해야 합니다. 어떤 이유로 XTestFakeKeyEvent(xlib 함수)가 전혀 작동하지 않았고, XSendEvent수정자를 사용하여 키 누르기 시뮬레이션이 작동하지 않았기 때문에 xdotool에 대한 시스템 호출을 수행해야 했습니다.

xdotool keyup comma key control+alt+shift+F11 // note the required comma key up;

POC로 작동하는 것처럼 보이지만 어느 시점에서는 시너지 효과에서 세그폴트가 발생할 것입니다. xdotool 없이 동일한 키 콤보를 트리거해도 segfault가 발생하지 않습니다.

가능하다면 어떤 옵션이 있나요?

편집하다: 한 가지 확실한 해결책은 super+,우선 시너지 효과가 있는 이벤트를 수신하고 거기에서 논리를 처리하는 것입니다(화면 전환 또는 다른 키 콤보를 dwm으로 보내는지 여부). 이는 작동하지만 서버와 클라이언트에 대해 서로 다른 dwm 구성을 의미합니다. super+,클라이언트의 dwm이 계속 처리해야 하기 때문입니다(그렇지 않으면 기본 키보드를 통해 클라이언트를 제어하는 ​​것이 예상대로 작동하지 않습니다).

관련 정보