À propos du projet

OpenDisplay est une solution gratuite, open source, sans compte et sans dongle permettant d'utiliser un iPhone, un iPad ou un Mac de rechange comme véritable second écran étendu pour macOS. Il constitue une alternative auto-hébergée à Apple Sidecar, Duet Display et Luna Display. Les fonctionnalités clés incluent une véritable extension d'écran (et non une duplication), une connectivité filaire USB via usbmuxd intégré à macOS pour une latence minimale, et un mode WiFi sans configuration via la découverte Bonjour. L'écran virtuel prend en charge le Retina/HiDPI avec une correspondance de pixels @2x, les entrées tactiles (tap pour cliquer, glisser, défilement à deux doigts), la rotation portrait et paysage, ainsi qu'un pipeline d'encodage matériel H.264 à faible latence utilisant VideoToolbox. Le projet utilise CGVirtualDisplay, une API CoreGraphics privée, pour créer des écrans virtuels que macOS traite comme de vrais moniteurs. Le pipeline de streaming capture l'écran virtuel via ScreenCaptureKit, encode en H.264 matériel (mode temps réel, sans B-frames) et transmet sur TCP avec contre-pression par abandon de trames et récupération par image-clé. Le décodage et le rendu sont gérés par AVSampleBufferDisplayLayer côté récepteur. Un Mac de rechange peut également servir d'écran en installant l'application distincte OpenDisplay Receiver (nécessite macOS 12+). La connexion WiFi fonctionne immédiatement ; pour les connexions filaires, un câble Thunderbolt/USB4, un câble Ethernet ou un simple câble de données USB-C peut être utilisé. Le protocole de communication est spécifié ouvertement dans PROTOCOL.md, permettant des implémentations tierces. Des clients créés par la communauté existent pour Android (Android 8.0+), les appareils iOS plus anciens (iOS 12) et Linux (bureaux Wayland, notamment KDE Plasma et Hyprland). Ce sont des projets amateurs et non maintenus officiellement. L'application macOS est signée avec un certificat Developer ID et notariée par Apple. L'application iOS nécessite iOS/iPadOS 15 ou une version ultérieure et est disponible via TestFlight ou peut être compilée depuis les sources. L'application se met à jour automatiquement via Sparkle. Le projet est sous licence GPL-3.0.