La Touch Bar de Apple en Linux
convertida en un motor vivo de widgets
Ecualizador de espectro de 32 bandas impulsado por audio real de PipeWire (dBFS), reproductor multimedia MPRIS, galería táctil de capturas y conmutación en caliente sin reiniciar la laptop.
Construido para el kernel de Linux. Sin rodeos.
TuxBar no utiliza capas web pesadas (Electron) ni bindings C frágiles. Se comunica directamente con el subsistema DRM del kernel y los buses nativos de Linux.
Pure Rust DRM KMS
Dibuja directo en el controlador de pantalla appletbdrm usando Dumb Buffers vía ioctls del kernel. 100% de memoria segura sin fugas ni dependencias de Cairo o librsvg.
Telemetría PipeWire PCM & VU Heatmap
Monitoreo pasivo del flujo de audio a 8000 Hz / 16-bit mono. Calcula decibeles reales (dBFS), correlación espectral y gradiente cromático térmico de 10 segmentos (Cian a Carmesí) con retención de picos. Cero sonido emitido a los altavoces.
Control MPRIS Dinámico
Inspección nativa del bus D-Bus de sesión. Enlaza con Chromium, Spotify, VLC y Firefox; extrae el nombre real de la pista, artista, progreso y prioriza el reproductor que esté activo.
Photo Scrubber & Desktop Bridge
Escanea capturas reales en ~/Pictures, renderiza miniaturas de 84×54 px y delega la apertura con systemd-run --user al visor nativo GNOME (Eye of GNOME / Loupe) con variables de sesión Wayland/X11 y cero datos hardcodeados.
Detección Tecla Fn Física
Monitorea el dispositivo Apple Internal Keyboard. Al mantener pulsada la tecla física Fn, la barra conmuta en 0 ms a las teclas F1-F12 y restaura tus widgets al soltarla.
Virtual uinput & Timings Reales
Dispositivo de teclado virtual mediante /dev/uinput con pulso de retención de 25 ms. Emite pulsaciones físicas genuinas de Esc, F1-F12 y control de canciones universal (Spotify, YouTube/Chrome) sin caídas de eventos.
6 experiencias ergonómicas a 60 píxeles de altura
Aprovechamiento integral del área vertical de la Touch Bar: botones de 58 px de alto, dianas táctiles amplias y respuesta visual luminiscente al tocar el cristal.
| Modo | Componentes Principales | Interacción Táctil | Caso de Uso |
|---|---|---|---|
| Pro Split | Píldora de música + Mini-Ecualizador Heatmap + 12 Cores CPU + Reloj tipográfico | Play/Pause, Next/Prev con pulso uinput de 25ms, Esc directo y toque en reloj para ciclar | Productividad diaria y programación |
| Control Deck | 15 accesos táctiles con iconos vectoriales a color: Brillo Pantalla -/+, Brillo Teclado -/+, Mic Mute, Volumen -/+/Mute, Calculadora, Navegador, Carpetas, Escritorios y Media | Pulsación táctil con triple despacho (Kernel uinput + Sysfs directo + puente D-Bus systemd-run en sesión de usuario) | Control total del sistema, ergonomía y accesos rápidos directos |
| Audiophile | 32 barras con gradiente térmico de 10 colores + Badge dinámico de decibeles + Retención de picos | Toque en el espectro conmuta reproducción, scrubber de pista | Música en Spotify / YouTube Music |
| Gallery | Tira filmstrip anticolisión con cápsula de título + Botones ◀, ABRIR, ▶ |
Deslizar con inercia, toque en ABRIR o doble toque en miniatura para abrir en GNOME vía systemd-run |
Revisar capturas de código y fotos |
| Cyberdeck | Matriz individual de carga por núcleo (hilo por hilo) + Temp °C + RAM | Toque en la matriz cicla al siguiente modo con respuesta neón | Compilaciones pesadas y benchmarks |
| F1-F12 Keys | 13 teclas de tamaño completo (58px alto) con bordes físicos resaltados de 2px (keycaps mecánicos) y tipografía de alta definición | Emite pulsaciones reales KEY_ESC y KEY_F1..F12 al SO con auto-conmutación al presionar la tecla Fn física |
IDEs, terminal, vim y atajos de sistema |
Sin reiniciar. Listo en menos de 10 segundos.
TuxBar se instala como un servicio systemd administrado y crea el comando tuxbar-toggle para que puedas volver a tiny-dfr cuando lo desees sin reiniciar.
Opción 1: Instalador Rápido vía Terminal
Ideal para terminales y servidores. Descarga, verifica y activa TuxBar automáticamente:
- Detiene
tiny-dfrlimpiamente sin conflictos. - Instala el binario en
/usr/local/bin/tuxbar. - Habilita y arranca
tuxbar.serviceal instante.
Opción 2: Paquete Debian Nativo (.deb)
Para usuarios que prefieren la gestión de paquetes tradicional de Ubuntu:
# O con apt para resolución de dependencias:
sudo apt install ./tuxbar_0.2.6_amd64.deb
Comandos de Control desde la Terminal
| Comando | Descripción |
|---|---|
sudo tuxbar-toggle |
Conmutador rápido sin reinicio: Alterna al instante entre TuxBar (Widgets) y tiny-dfr (Teclado F1-F12 estándar). |
tuxbar status |
Muestra en terminal la pista activa (MPRIS), decibeles y espectro de audio (PipeWire), uso de CPU por núcleo y RAM. |
tuxbar play-pause |
Envía comando Play/Pause por D-Bus al reproductor activo en el escritorio. |
tuxbar next |
Avanza a la siguiente canción en Spotify / Chrome / VLC. |
tuxbar previous |
Retrocede a la canción anterior. |
Hardware Comprobado y Distribuciones Compatibles
TuxBar fue desarrollado y testeado en profundidad en hardware físico real. A continuación se detalla la configuración de prueba oficial y la compatibilidad con modelos de Apple y distribuciones Linux.
🔬 Equipo Oficial de Pruebas y Laboratorio (100% Funcional)
Test Físico Exitoso ✓- Laptop: Apple MacBook Pro 16 pulgadas (2019)
- Identificador de modelo:
MacBookPro16,1(A2141) - Chip de Seguridad: Apple T2 SoC
- Procesador: Intel Core i7 / i9 (9na Generación)
- Panel OLED Touch Bar: 2008 × 60 píxeles @ 60 Hz
- Sistema Operativo: Ubuntu 24.04 LTS (Noble Numbat)
- Kernel de Linux:
7.3.0-4-t2-noble(con parches T2) - Subsistema Gráfico: DRM / KMS nativo (driver
appletbdrm) - Audio DSP: PipeWire 1.0+ (objetivo
@DEFAULT_AUDIO_SINK@) - Sesión Gráfica: Wayland y X11 (GNOME Desktop)
Modelos de Mac Compatibles
Cualquier MacBook con pantalla Touch Bar reconocida por el driver del kernel appletbdrm:
- MacBook Pro 16" (2019):
MacBookPro16,1,16,4 - MacBook Pro 15" (2016-2019):
MacBookPro15,1,15,3,14,3,13,3 - MacBook Pro 13" (2016-2020):
MacBookPro16,2,16,3,15,2,14,2,13,2
Distribuciones Soportadas
Listo para instalar mediante paquete nativo .deb o compilación directa:
- Ubuntu 24.04 LTS: Testeado oficialmente (Noble Numbat)
- Ubuntu 22.04 LTS: Totalmente compatible (Jammy)
- Debian 12 / Linux Mint: Compatible vía paquete
.deb - Fedora / Arch Linux: Compatible compilando con
cargo build --release
Requisitos del Kernel
Para comunicarse con la pantalla y el digitalizador táctil de la Touch Bar se requiere:
- Kernel con controlador
appletbdrm(incluido en kernels T2 Linux) - Acceso a
/dev/dri/card*y/dev/uinput - PipeWire o PulseAudio para telemetría de audio
- Bus de sesión D-Bus activo para metadatos MPRIS