MX Master 3S gestures
Resumen rápido
En esta guía dejo el paso a paso completo para deje mi Logitech MX Master 3S funcionando con LogiOps tanto en RHEL 10 como en Fedora 43, incluyendo los problemas que encontré y cómo los resolví. La configuración final que buscaba era:
- Arriba →
Ctrl + W - Abajo → mostrar aplicaciones
- Izquierda →
Ctrl + C - Derecha →
Ctrl + V - scroll vertical con sensación por pasos, pero más responsivo
En RHEL10 estos pasos funcionaron sin ningun problema con el mouse conectado al Bolt. Pero con el nuevo kernel de Fedora 43, el Bolt receiver se expone el mismo, pero con bluetooth si se puede ver el mouse directamente.
Paso a paso
1. Instalar dependencias
sudo dnf install -y git
sudo dnf install -y cmake gcc-c++ make libevdev-devel systemd-devel libconfig-devel glib2-devel
En RHEL, si hace falta habilitar CRB:
2. Clonar el proyecto
mkdir -p ~/repositories/github
cd ~/repositories/github
git clone https://github.com/PixlOne/logiops.git
cd logiops
Este paso es importante. Si no lo hago, la compilación falla porque
falta src/ipcgull.
3. Compilar e instalar
4. Habilitar el servicio
Diferencias entre RHEL y Fedora
Aquí fue donde encontré la mayor diferencia.
En RHEL 10
El mouse funcionó directamente usando el receptor Bolt. Al ejecutar:
el sistema detectaba correctamente: MX Master 3S
En Fedora 43
Con Bolt, muchas veces el receptor era detectado, pero el servicio se desactivaba pocos segundos después:
logid.service: Deactivated Successfully
Esto hacía que los gestos funcionaran solo por unos segundos.Además, con Bolt el sistema a veces exponía solo el receptor y no el mouse. La unica solución aqui fue conectar el mouse por Bluetooth en lugar de Bolt
Una vez conectado por Bluetooth, logid detectó correctamente:
Device found: MX Master 3S
Y desde ese momento los gestos comenzaron a funcionar de forma consistente.
Crear el archivo de configuración
LogiOps no crea /etc/logid.cfg automáticamente, así que copie el
ejemplo:
Mi configuración final
devices: (
{
name: "MX Master 3S";
dpi: 1000;
# Clean ratchet mode (no weird behavior)
smartshift:
{
on: true;
threshold: 40;
};
# Disable hi-res completely (most stable behavior)
hiresscroll:
{
hires: true;
target: false;
};
thumbwheel:
{
divert: false;
};
buttons: (
{
cid: 0xc3;
action =
{
type: "Gestures";
gestures: (
{
direction: "Up";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_LEFTCTRL", "KEY_W"];
};
},
{
direction: "Down";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_LEFTMETA", "KEY_A"];
};
},
{
direction: "Left";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_LEFTCTRL", "KEY_C"];
};
},
{
direction: "Right";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_LEFTCTRL", "KEY_V"];
};
},
{
direction: "None";
mode: "NoPress";
}
);
};
}
);
}
);
Ajuste opcional del scroll en GNOME
Este comando reduce la sensibilidad del scroll wheel en el sistema. Es opcional pero para mi fue super importante.
Reiniciar el servicio
En mi caso, a veces, despues de reiniciar el servicio en RHEL, tenia que esperar unos segundo para que el cambio tome efecto no se porque, y muchas veces no se sentia el cambio. Pero si desconecto el mouse y lo vuelvo a conectar, todo parece fucionar nuevamente.
Validaciones útiles
Ver estado del servicio:
systemctl status logid
Ver logs:
journalctl -u logid -e
Volver a correr en debug si necesito revisar nombre del dispositivo o botones:
sudo systemctl stop logid
sudo /usr/local/bin/logid -v
Luego volver a iniciarlo:
sudo systemctl start logid