Saltar a contenido

Referencia del protocolo IPC

El daemon se comunica con clientes externos vía un socket de dominio Unix.

Ruta del socket

Por defecto: /tmp/mirach.sock

Cámbiala con la variable de entorno MIRACH_SOCKET.

Protocolo

Basado en texto, un mensaje por conexión. El cliente se conecta, envía un mensaje y se desconecta.

Mensajes

Mensaje Respuesta Descripción
toggle (ninguna) Dispara la transición de estado de la FSM (IDLE → RECORDING → PROCESSING → IDLE)
ping pong Chequeo de salud — responde de inmediato

Ejemplo: enviar un toggle

import socket

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/tmp/mirach.sock")
s.sendall(b"toggle")
s.close()

Ejemplo: chequeo de salud

import socket

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.settimeout(2)
s.connect("/tmp/mirach.sock")
s.sendall(b"ping")
response = s.recv(64).decode()  # "pong"
s.close()

Manejo de errores

Si el socket no existe o la conexión es rechazada, el daemon no está corriendo. El script trigger.py maneja esto mostrando una notificación de escritorio.

Seguridad

El socket se crea en /tmp/ con permisos por defecto. En un sistema multiusuario, considera definir MIRACH_SOCKET a una ruta en un directorio privado.