explaingit

gnif/lookingglass

5,542CAudience · ops devopsComplexity · 5/5Setup · hard

TLDR

A tool for Linux users running a Windows virtual machine with a dedicated GPU that lets you see the VM's screen on your main monitor with near-zero lag, without a second physical display.

Mindmap

mindmap
  root((Looking Glass))
    What it does
      Shares VM display to host
      Ultra-low latency relay
      Single monitor dual OS
    How it works
      KVM FrameRelay tech
      GPU PCI Passthrough
      Frame capture and relay
    Tech Stack
      C
      KVM Linux
      KVMFR protocol
    Use Cases
      Single monitor VM gaming
      Linux plus Windows dual boot
      GPU passthrough setups
    Setup
      Build from source archive
      External documentation site
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

See your Windows virtual machine's screen on your Linux host monitor in real time without a second physical display.

USE CASE 2

Run a GPU-accelerated Windows VM alongside Linux and switch between both OSes on one screen with no cable swapping.

USE CASE 3

Set up a low-latency KVM GPU passthrough environment for gaming or professional Windows apps while staying on Linux as the host.

Tech stack

CKVMLinux

Getting it running

Difficulty · hard Time to first run · 1day+

Requires a dedicated second GPU for the VM, KVM GPU PCI passthrough configuration, and building from source, full setup docs are on the external project website.

No explicit license information provided in the explanation.

In plain English

Looking Glass is a tool that lets you see the screen of a virtual machine on your main monitor with almost no visible delay. It is designed for a specific setup: you have a physical computer running Linux, and inside that computer you are running a virtual machine (a software-simulated second computer) that has been given direct access to a real, dedicated graphics card. That arrangement is called VGA PCI Passthrough, and it lets the virtual machine use the graphics card at full speed rather than through the slower path that typical virtual machines use. The problem this solves is display output. When a virtual machine has direct control of a graphics card, that card's output normally goes to a separate physical monitor. Looking Glass captures the frames from that card and relays them back to your main screen in real time, so you can use both operating systems on one display without switching cables or monitors. The technology at the core is called KVM FrameRelay (abbreviated KVMFR). KVM is the Linux virtualization system that hosts the virtual machine. FrameRelay is the mechanism Looking Glass uses to move screen frames from the virtual machine back to the host system with very low latency. The README for this project is brief. It points to the project website and documentation for setup instructions and directs users to download a source archive rather than build from the raw repository. Full details on installation and configuration live in the external documentation at the project site.

Copy-paste prompts

Prompt 1
I have a Linux host with GPU PCI passthrough running a Windows VM in KVM. Walk me through setting up Looking Glass so the VM's screen appears on my main Linux monitor.
Prompt 2
What is KVMFR and how does Looking Glass use it to relay frames from a passthrough GPU VM back to the Linux host with low latency?
Prompt 3
Where do I download a stable Looking Glass source archive and what build dependencies do I need to compile it on Ubuntu?
Prompt 4
My Looking Glass setup has visible lag. What settings or configuration options reduce latency in the KVM FrameRelay path?
Prompt 5
How do I configure the Windows VM side of Looking Glass, what do I install inside the guest to let the host capture its display?
Open on GitHub → Explain another repo

← gnif on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.