Pure Rust 2021 · DRM KMS Dumb Buffers · Zero-Reboot Verified

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.

Terminal (1 Comando) · Ubuntu 24.04 / Apple T2 / Kernel t2-noble
$curl -sSL https://raw.githubusercontent.com/mylnzon58/tuxbar/main/install.sh | sudo bash
Previsualización Fiel a Escala de la Pantalla OLED (2008 × 60 px)
TuxBar Mode Preview
⚡ Modo Pro Split: Reproductor musical, mini-espectro dinámico, telemetría de silicio y reloj tipográfico. Resolución física: 2008 × 60 px @ 30 FPS · DRM Dumb Buffer
Ingeniería de Software & Hardware

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.

Modos Diseñados al Milímetro

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
Instalación y Despliegue Inmediato

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:

curl -sSL https://raw.githubusercontent.com/mylnzon58/tuxbar/main/install.sh | sudo bash
  • Detiene tiny-dfr limpiamente sin conflictos.
  • Instala el binario en /usr/local/bin/tuxbar.
  • Habilita y arranca tuxbar.service al instante.

Opción 2: Paquete Debian Nativo (.deb)

Para usuarios que prefieren la gestión de paquetes tradicional de Ubuntu:

sudo dpkg -i tuxbar_0.2.6_amd64.deb
# O con apt para resolución de dependencias:
sudo apt install ./tuxbar_0.2.6_amd64.deb

Descargar tuxbar_0.2.6_amd64.deb (1.9 MB)

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.
Transparencia Tecnológica

Desarrollado con Inteligencia Artificial. Testeado en Hardware Real.

Este proyecto ha sido programado y optimizado utilizando herramientas avanzadas de Inteligencia Artificial (no apto para puristas de la programación artesanal). Sin embargo, cada línea de código, cada ioctl de DRM KMS y cada cálculo de frecuencia de PipeWire ha sido sometido a un riguroso proceso de ingeniería y pruebas en hardware físico Apple MacBook Pro 16,1 (A2141) bajo Ubuntu 24.04 LTS Kernel 7.3.0-4-t2-noble.

El código es completamente libre y abierto (GPL-3.0). Si encuentras margen de mejora, errores en casos extremos o deseas proponer nuevos widgets, seré el primero en recibir tus Pull Requests y sugerencias con total apertura y amabilidad. Nos une el deseo de dotar a Linux del mejor ecosistema posible.

Matriz de Compatibilidad & Hardware

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
🇦🇷
Juan José Monzón
@mylnzon58
Argentina 🇦🇷 Full Stack & AI Padre de Familia

Sobre el Autor y Filosofía de este Proyecto

Soy desarrollador de software argentino y padre de una niña y un niño pequeño. Intento vivir de lo que amo: diseñar y construir productos digitales, tecnología y herramientas que resuelvan problemas reales.

Cuando instalé Ubuntu en mi MacBook Pro 16,1, me encontré con una Touch Bar estática e inerte. Decidí crear TuxBar para devolverle la vida a esa pantalla OLED con un diseño vanguardista, widgets en tiempo real y el máximo respeto por el rendimiento del equipo.

Si TuxBar le devolvió la utilidad a la Touch Bar de tu laptop o te ahorró horas de configuración, tu apoyo significa muchísimo para mi familia y para poder seguir manteniendo proyectos de código libre:

¡Comando copiado al portapapeles!