Estoy intentando alternarcambiarEnDirección()desde un administrador de ventanas (dwm, escrito en c). Como parece que no hay manera de controlar las acciones de sinergia desde la línea de comando, intenté ejecutar combinaciones de teclas apropiadas desde el archivo wm.
Escenario: en super+,
el evento (coma), que es capturado por wm, debería activar otra combinación de teclas que synergys está escuchando. Por alguna razón XTestFakeKeyEvent
(la función xlib) no funcionó en absoluto, y simular la pulsación de teclas XSendEvent
no funciona con modificadores, así que tuve que hacer una llamada al sistema a xdotool:
xdotool keyup comma key control+alt+shift+F11 // note the required comma key up;
Parece funcionar como POC, pero en algún momento provocará un fallo de segmentación en las sinergias. Tenga en cuenta que activar la misma combinación de teclas sin xdotool no genera un error de segmentación.
¿Qué opciones tengo, si las hay?
Editar:
Una solución obvia sería escuchar el super+,
evento con sinergia en primer lugar y manejar la lógica allí (ya sea cambiar de pantalla o enviar otra combinación de teclas a dwm). Esto debería funcionar, pero implica diferentes configuraciones de dwm para el servidor y el cliente, ya que super+,
dwm aún debería manejarlo en el cliente (de lo contrario, controlar el cliente a través de su teclado nativo no funcionaría como se esperaba).