# microsoft/wslg

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-wslg).**

11,699 stars · 419 forks · C++ · MIT

## Links

- GitHub: https://github.com/microsoft/wslg
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-wslg.md

## Description

wslg is an integration layer and display server system designed to run Linux graphical applications on Windows. It provides a bridge between Linux window management, audio routing, and system clipboards and the Windows host, utilizing a Wayland and X11 display server to support visual software.

The system utilizes a virtual GPU architecture to provide hardware-accelerated rendering for graphics-intensive applications. It implements a Remote Desktop Protocol gateway to stream graphical frames and uses a specialized sound server interface to route audio and microphone data between the Linux guest and the host.

Additional capabilities include the synchronization of text and data across operating systems via a shared memory clipboard and the registration of application manifests to create native launch shortcuts in the host system menu.

## Tags

### Operating Systems & Systems Programming

- [Display Compositors](https://awesome-repositories.com/f/operating-systems-systems-programming/display-windowing/display-compositors.md) — Implements a display compositor that manages window placement and input routing for Linux applications on Windows via Wayland and X11.
- [Display Protocol Compositors](https://awesome-repositories.com/f/operating-systems-systems-programming/display-protocol-compositors.md) — Integrates a compositor that translates Wayland and X11 display protocols into a single unified output stream.
- [Display Server Integrations](https://awesome-repositories.com/f/operating-systems-systems-programming/display-server-integrations.md) — Provides a Wayland and X server environment to support visual Linux software on a Windows host.
- [GPU Acceleration](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/gpu-acceleration.md) — Exposes hardware acceleration by mapping guest graphics calls to host-side GPU drivers.
- [GPU-Accelerated UI Rendering](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/graphics-acceleration/gpu-accelerated-ui-rendering.md) — Uses virtual GPU architecture to provide hardware-accelerated UI rendering for Linux applications.
- [UI Graphics Acceleration](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/ui-graphics-acceleration.md) — Utilizes GPU drivers and virtual GPU architecture to accelerate the rendering of graphical user interface elements. ([source](https://github.com/microsoft/wslg/blob/main/README.md))
- [Host-Guest Integration Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/host-guest-integration-tools.md) — Implements metadata exchange to dynamically create native host launch shortcuts for guest applications.

### User Interface & Experience

- [Graphical Application Runtimes](https://awesome-repositories.com/f/user-interface-experience/graphical-application-runtimes.md) — Provides a runtime environment that enables Linux graphical applications to execute and integrate with the Windows host window manager. ([source](https://github.com/microsoft/wslg#readme))
- [Window Embedding](https://awesome-repositories.com/f/user-interface-experience/window-managers/window-embedding.md) — Uses the Remote Desktop Protocol to embed guest graphical windows directly onto the host desktop surface.

### Development Tools & Productivity

- [Linux Compatibility Layers](https://awesome-repositories.com/f/development-tools-productivity/platforms-runtimes-language-services/development-platforms/operating-system-environments/operating-systems/windows-development-environments/linux-compatibility-layers.md) — Acts as a compatibility layer that integrates Linux window management and clipboards into the Windows host.
- [Clipboard Synchronization](https://awesome-repositories.com/f/development-tools-productivity/clipboard-synchronization.md) — Synchronizes clipboard data across the host and guest environments to allow seamless copy and paste. ([source](https://github.com/microsoft/wslg/blob/main/README.md))
- [Virtual Audio Routing](https://awesome-repositories.com/f/development-tools-productivity/macos-utilities/virtual-audio-routing.md) — Routes audio streams from guest Linux applications to the host system via virtual audio routing. ([source](https://github.com/microsoft/wslg/blob/main/Microsoft.WSLg.nuspec))
- [Guest-Host Audio Bridges](https://awesome-repositories.com/f/development-tools-productivity/macos-utilities/virtual-audio-routing/guest-host-audio-bridges.md) — Provides a sound server interface that streams audio and microphone data between Linux guests and the Windows host.

### DevOps & Infrastructure

- [Cross-OS GUI Hosting](https://awesome-repositories.com/f/devops-infrastructure/remote-application-hosting/cross-os-gui-hosting.md) — Runs Linux graphical applications on Windows with integration into the host window manager and taskbar.

### Graphics & Multimedia

- [Virtual Audio Bridges](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing/streaming-network-frameworks/audio-over-ip/intercom-audio-bridges/virtual-audio-bridges.md) — Routes Linux audio samples through a sound server to the host system audio devices.

### Data & Databases

- [Shared Memory Data Exchange](https://awesome-repositories.com/f/data-databases/shared-memory-data-exchange.md) — Synchronizes clipboard data between operating systems using high-performance shared memory buffers.

### Networking & Communication

- [Remote Desktop Protocols](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-protocols.md) — Uses a Remote Desktop Protocol gateway to stream graphical frames from the Linux guest to the Windows host. ([source](https://github.com/microsoft/wslg/blob/main/Microsoft.WSLg.nuspec))
- [Remote Framebuffer Protocols](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-framebuffer-protocols.md) — Implements an RDP gateway to transmit graphical display updates from the Linux guest to the host.
- [Audio Streaming Servers](https://awesome-repositories.com/f/networking-communication/socket-networking/audio-streaming-servers.md) — Implements a sound server interface to stream audio and microphone data to a remote transport. ([source](https://github.com/microsoft/wslg#readme))
