Skip to main content

HDMI Monitor

Use your laptop as a monitor for another computer (a mini PC, Raspberry Pi, Jetson, console...) through a cheap USB HDMI capture card.

Plug the other computer's HDMI output into the capture card, plug the card into your laptop, and run hdmi-monitor. You get a low-latency, full-screen picture with sound.

Install

Linux (Ubuntu, Debian, Mint, Fedora, Arch...)

sudo apt install pipx libxcb-cursor0     # Fedora: sudo dnf install pipx xcb-util-cursor
pipx ensurepath                          # then open a new terminal
pipx install hdmi-monitor
hdmi-monitor --create-shortcut           # optional: add it to your applications menu

Windows 10/11

Install Python 3.10 or newer first if you don't have it. Then, in PowerShell:

py -m pip install --user pipx
py -m pipx ensurepath                    # then open a new terminal
pipx install hdmi-monitor
hdmi-monitor --create-shortcut           # optional: add it to the Start menu

If you already use uv, uv tool install hdmi-monitor works on both systems.

Update: pipx upgrade hdmi-monitor · Uninstall: hdmi-monitor --remove-shortcut, then pipx uninstall hdmi-monitor

Why not just use the Camera app?

  • It finds the capture card automatically (skipping the built-in webcam) and uses its best mode, e.g. 1920x1080 @ 60 fps.
  • It plays the HDMI audio through the laptop speakers.
  • True borderless full screen. The mouse pointer hides when idle, and the screen won't sleep or blank.
  • It remembers your source, resolution, audio, volume, and window options.
  • It reconnects automatically when the capture card is unplugged and plugged back in.
  • Only one copy runs at a time, because a capture card can only be read by one program. Opening it again brings the existing window to the front.

Controls

Key / action Does
F11 or double-click Full screen on / off
Esc Leave full screen
Right-click All options (source, resolution, audio...)
M Mute
Ctrl+T Always on top
Ctrl+S Save a screenshot to Pictures
F5 Reconnect
Ctrl+H Show / hide toolbar
Ctrl+Q Exit

Troubleshooting

  • Black picture or "Could not open the capture device": close any other app using the card (Camera, OBS, Teams, Zoom, a browser tab).
  • Linux: Could not load the Qt platform plugin "xcb": install libxcb-cursor0 (Debian/Ubuntu) or xcb-util-cursor (Fedora).
  • Linux: ImportError: lib....so: cannot open shared object file (only on very minimal installs): on Debian/Ubuntu run sudo apt install libgl1 libegl1 libglib2.0-0 libgssapi-krb5-2 libxkbcommon-x11-0 libpulse0.
  • Windows: install fails with a "Long Path" hint: use Python from python.org rather than the Microsoft Store, or enable long paths.
  • Linux: no picture, or permission denied: make sure your user can access /dev/video* (usually the video group).
  • What did it detect? Run hdmi-monitor --diagnose. After 6 s it writes the devices, mode, and frame rate to hdmi_monitor_diagnose.txt in your temp folder (/tmp on Linux, %TEMP% on Windows).

Alternatives

  • OBS Studio: add a Video Capture Device, then right-click → Fullscreen Projector. Heavier, and audio needs extra setup.
  • VLC: Open Capture Device. Set caching to about 0 ms, or the picture lags.
  • Over the network (no capture card): NoMachine, VNC, RustDesk, or Sunshine/Moonlight. These also give you keyboard and mouse control, but the other computer must be booted and on the network.

A capture card sees everything, including BIOS and boot screens, and needs no software on the other computer. Expect about 50–100 ms of delay with typical MS2109-based cards.

For developers

pip install -e .              # run from source: python -m hdmi_monitor
python -m build               # build the PyPI wheel + sdist into dist/

Stand-alone installers that don't need Python, built from Windows:

  • powershell -ExecutionPolicy Bypass -File build.ps1 builds the Windows setup .exe. It needs Inno Setup 6.
  • wsl -d Ubuntu -u root -- sh linux/wsl_build.sh builds the Linux .deb and AppImage inside an Ubuntu 22.04 chroot in WSL.

Built with PySide6 / Qt Multimedia (FFmpeg backend). MIT licensed.

Metadata

Release files for hdmi-monitor 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hdmi-monitor 1.0.0
File Size Uploaded Provenance
hdmi_monitor-1.0.0.tar.gz 22.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for hdmi-monitor 1.0.0
File Interpreter ABI Platform
hdmi_monitor-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 48.6 kB

Release files / hdmi_monitor-1.0.0.tar.gz

Download URL hdmi_monitor-1.0.0.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b099190b6505456b4958366ebbef66aa31d1f027e88d51bbe6eccd3dac9fbd4e
BLAKE2b-256 checksum
How to use checksums
ba9671624afbd9984b59f53139350b11600d685af358e5f59a17344f7451c9b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.4

Release files / hdmi_monitor-1.0.0-py3-none-any.whl

Download URL hdmi_monitor-1.0.0-py3-none-any.whl
Size 26.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ed276be5177ead740008e03e811f299e637784e3d8ac61f5e34114049270cea
BLAKE2b-256 checksum
How to use checksums
7a0dcb8f01037c4dbbdd941cf299d459095d2130eb879cc5f1fd498832b820ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.4

Security for hdmi-monitor 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page