Commit Graph

241 Commits

Author SHA1 Message Date
Quantum
d12fd59aa7 [doc] audio: improve wording for SPICE usage 2026-11-06 12:28:09 +11:00
Quantum
ade5d06011 [doc] idd: clarify purpose of "Disable no GPU warning" option 2026-11-06 12:28:09 +11:00
Quantum
ea670a7ebb [doc] install: fix IDD upgrade instructions 2026-11-06 12:28:09 +11:00
Quantum
bdabe37c44 [doc] install: improve clarity of additional tuning 2026-11-06 12:28:09 +11:00
Quantum
186f213c67 [doc] install: improve clarity of SPICE section 2026-11-06 12:28:09 +11:00
Quantum
5100dffacf [doc] install: improve IVSHMEM formula rigour and provide script 2026-11-06 12:28:09 +11:00
Quantum
6815854df2 [doc] install: fix list 2026-11-06 12:28:09 +11:00
Quantum
3a62bd0dcc [doc] requirements: clarify versions and GPU requirement 2026-11-06 12:28:09 +11:00
Quantum
bc22f1d2cc [doc] fix spelling 2026-11-06 12:28:09 +11:00
Quantum
9d2f18981f [doc] overview: remove outdated information 2026-11-06 12:28:09 +11:00
Quantum
1898a205d8 [doc] troubleshooting: delete outdated clipboard content 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
987d2537c4 [doc] audio: SPICE server is required for USB audio 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
1ecc4884ac [doc] install_libvirt: Finishing touches 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
b694c79d9d [doc] libvirt_ivshmen: Remove AppArmor section as v5.10.0 is too old 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
39a14ca91b [doc] install_libvirt: Clipboard synchronization is handled by the IDD 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
a426c99d6a [doc] install_libvirt: SPICE is now used only as a fallback server and for USB audio 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
f8d73a9c1b [doc] install_libvirt: Cleanup 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
ecc5f77734 [doc] legacy_host: Move direction to not install both servers to this page 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
f295420e6f [doc] install: Cleanup 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
5a433d3580 [doc] build: Cleanup 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
33f540411c [doc] build: Soften intro 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
5d02b7e21f [doc] build: Remove Fetching with APT warning
Technically incorrect, as installing dependencies doesn't build anything
Also confusing
2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
97e6df54c9 [doc] quickstart: Cleanup 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
de617eef73 [doc] requirements: Cleanup 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
eb120d3299 [doc] overview: Finishing touches 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
c6f40a6f82 [doc] index: Modify intro sentence 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
505cb622e6 [doc] overview: Specify distro release target as Debian Stable 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
7cd507326c [doc] build: Reformat font requirement 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
d302a9e04f [doc] build: Reformat May be disabled to clearly list affected features 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
bf94eb309c [doc]: Remove mentions of libusbredirparser 0.7.1 or newer
Documentation targets Debian Stable which is at 0.15.0 already
2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
81d25aec9b [doc] build: Add Audio subsection and reformat 2026-11-06 12:28:09 +11:00
Jonathan Rubenstein
b957caceaa [doc] build: Add libfuse3-dev as required dep and sort 2026-11-06 12:28:09 +11:00
Geoffrey McRae
423269802f [client] evdev: fix input capture and device handling
Classify configured devices by keyboard and pointer capability so
automatic keyboard capture leaves relative pointer devices with the
display server.

Run descriptor, grab, physical-state, and LED operations on one worker.
Marshal normalized events through each display server's event loop and
serialize ownership changes with per-lane barriers.

Fall back whole lanes to native input when an evdev cohort cannot be
owned, and retry missing or removed devices without disabling the rest.

Handle report framing, SYN_DROPPED, high-resolution wheels, queue
overflow, held-state cleanup, and guest-driven keyboard LEDs. Restore
host LEDs and kernel grabs during teardown.

Re-evaluate capture when the active input transport changes.
2026-08-21 13:10:34 +10:00
Geoffrey McRae
e2ee9244ed [client] recovery: add force keybind
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Add a configured escape key plus Shift+R command that requests display
recovery from the LGMP transport and switches video to SPICE.

Track the request on the main thread, report its asynchronous result,
and return its producer instance with the request serial for exact
correlation.

Preserve normal escape+R rotation behavior, including custom Shift
escape keys.
2026-08-20 16:53:10 +10:00
Geoffrey McRae
2005ea5d69 [idd] capture: add forced indirect copy
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
2026-08-17 05:12:05 +10:00
Geoffrey McRae
96c3056cc9 [idd] capture: add direct full-copy workaround 2026-08-17 04:46:25 +10:00
Geoffrey McRae
34835dd1af [idd] lgmp: pointer motion data doesn't require 1MB buffers
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
2026-08-13 16:01:29 +10:00
Quantum
6b8b361101 [doc] miscellaneous punctuation fixes
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
2026-08-12 17:38:24 +10:00
Quantum
9497022e7a [doc] move all legacy host information into a dedicated section
It's just distracting to have legacy host application information
interleaved with the other stuff when it's deprecated.
2026-08-12 17:38:24 +10:00
Quantum
6dd1092ca3 [doc] use "Looking Glass Server" instead of "producer"
I think "server" and different "implementations" of it makes it a lot clearer
to readers that it's a swappable thing that can serve multiple clients without
being too much jargon.
2026-08-12 17:38:24 +10:00
Geoffrey McRae
2543366f5f [doc] words: add missing words 2026-08-11 21:19:59 +10:00
Geoffrey McRae
33bdc611d8 [docs] guide: document current Looking Glass features 2026-08-11 20:46:46 +10:00
Geoffrey McRae
77b661194a [client] input: fix automatic keyboard capture
Treat autoCapture as keyboard ownership while the pointer is inside the
guest viewport. Predict the next local position for both absolute and
relative motion, then release the keyboard before the pointer crosses
an edge.

Keep capture, focus, and deferred evdev transitions consistent while
retaining the latest local position as the prediction baseline.
2026-08-11 14:43:48 +10:00
Geoffrey McRae
a1da8c14f3 [client] usb audio: connect USB redirection
Add an opt-in USB audio fallback and connect the emulator to an
available PureSpice USBREDIR channel.

Keep transport-provided audio in priority and serialize USB parser
processing and teardown on the PureSpice thread.
2026-08-09 22:29:11 +10:00
Geoffrey McRae
9f2d6f6413 [client] wayland: constrain pointer only during capture
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Remove the persistent confined-pointer workaround that emulated cursor
warping on Wayland. Normal pointer motion now uses absolute input only.

Create relative and locked pointer objects only during capture. Preserve
the request across pointer capability changes, and suppress relative
events until the compositor confirms the lock.

On uncapture, publish the current absolute position instead of trying to
warp the host cursor.
2026-08-09 03:32:58 +10:00
Geoffrey McRae
5cc7f06185 [client] cursor: pace composited redraws
Coalesce pointer updates to the nominal output cadence instead of
waking the renderer for every transport packet. Keep request and
presented generations separate so updates racing a render receive a
trailing swap.

Let JIT consume cursor changes on display callbacks to preserve VRR
cadence, and use a deadline worker for non-JIT rendering. Give normal
source frames a short grace period so an on-rate feed absorbs the
cursor update instead of producing an extra swap.

Repaint visibility and cursor-content changes even when movement
redraws are disabled, including the transition that hides the cursor.
2026-08-06 22:26:10 +10:00
Geoffrey McRae
e9a16ef523 [client] input: add cursor transition diagnostics
Add opt-in sequence-numbered tracing across the core and Wayland
mouse paths.
2026-08-06 13:19:27 +10:00
Geoffrey McRae
33c81d2cf5 [client] audio: enable building without audio support
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
build / render-tests (push) Has been cancelled
Fixes #1183
2026-07-30 16:16:04 +10:00
Geoffrey McRae
ab1d26d2cc [doc] words: add contributor names to words.txt 2026-07-30 15:35:40 +10:00
Geoffrey McRae
4999e24bb7 [common] debug: switch to libunwind instead of bfd 2026-07-29 12:39:10 +10:00