Evita que tu parlante Bluetooth JBL (u otros) se apague automáticamente por inactividad en Linux, generando audio silencioso solo cuando es necesario.
A diferencia de otras soluciones, este proyecto detecta si hay audio real y no interfiere con tu reproducción.
Ideal para:
- 🔊 JBL Go, Flip, Charge, etc.
- 🎧 Dispositivos Bluetooth con auto-sleep
- 🐧 Usuarios de Linux (PipeWire)
- ✅ Mantiene el dispositivo Bluetooth activo
- ✅ Solo genera silencio cuando NO hay audio real
- ✅ No interfiere con música, videos o llamadas
- ✅ Consumo mínimo de CPU y RAM
- ✅ Compatible con PipeWire y PulseAudio
- ✅ Servicio automático con systemd
- ✅ Instalación automática (
install.sh) - ✅ Implementación estable (sin dependencias frágiles de eventos)
jbl-keepalive/
├── README.md
├── install.sh
├── bin/
│ └── jbl-keepalive.sh
└── systemd/
└── jbl-keepalive.servicegit clone https://github.com/TU_USUARIO/jbl-bluetooth-keepalive-linux.git
cd jbl-bluetooth-keepalive-linux
chmod +x install.sh
./install.sh
- Detecta automáticamente tu usuario
- Intenta detectar la MAC del dispositivo Bluetooth
- Configura el servicio systemd
- Activa todo automáticamente
Una vez instalado, el servicio se ejecuta automáticamente.
Ver estado del servicio
systemctl --user status jbl-keepalive.service
Reiniciar servicio
systemctl --user restart jbl-keepalive.service
Detener servicio
systemctl --user stop jbl-keepalive.service
El script ejecuta un loop liviano cada 2 segundos:
- Verifica si el dispositivo Bluetooth está conectado (bluetoothctl)
- Verifica si hay audio reproduciéndose (pactl)
- Decide si generar silencio o no
Se utiliza pw-cat (PipeWire) con entrada desde /dev/zero:
pw-cat --playback --format s16 --rate 8000 --channels 1 - < /dev/zero
Esto:
- Genera audio silencioso real
- Mantiene activo el parlante
- Consume recursos mínimos
| Estado | Acción |
|---|---|
| JBL conectado + sin audio | Genera silencio |
| JBL conectado + audio real | Detiene silencio |
| JBL desconectado | Detiene todo |
- Linux (probado en Debian / LMDE / Ubuntu)
- PipeWire (pw-cat)
- pactl
- bluetoothctl
- systemd
Instalar dependencias:
sudo apt install pipewire pipewire-audio-client-libraries pulseaudio-utils bluez
Podés modificar el script en:
bin/jbl-keepalive.sh
Ejemplos:
- Cambiar frecuencia (--rate 8000)
- Ajustar comportamiento del loop
- Adaptar para otros dispositivos Bluetooth
El servicio no inicia
journalctl --user -u jbl-keepalive.service
No detecta el dispositivo Bluetooth
Verificá conexión:
bluetoothctl info TU_MAC
No aparece pw-cat
pgrep -a pw-cat
Si no aparece, revisar logs:
journalctl --user -u jbl-keepalive.service -f
Las contribuciones son bienvenidas:
- Fork del proyecto
- Crear rama (git checkout -b feature/nueva-feature)
- Commit (git commit -m 'Agrega nueva feature')
- Push (git push origin feature/nueva-feature)
- Pull Request
Este proyecto está bajo la licencia MIT. Ver archivo LICENSE para más detalles.
Si te sirvió el proyecto:
- ⭐ Dale una estrella en GitHub
- 🐛 Reportá bugs
- 💡 Proponé mejoras
Desarrollado por Gustavo G