Release v1.3.0
Date: 2026-06-04
Highlights
Architecture Overhaul
- Extracted
scripts/lib.shas a shared library sourced by both the runtime and installer — zero duplicated logic remains. - The runtime now resolves
lib.shvia well-known installed paths at startup, eliminating the sed-based patching that was previously needed. - xrandr output is cached once per command invocation for performance.
- All mutating xrandr calls go through a
run_xrandr()helper with consistent error handling.
Security Improvements
- The installer verifies SHA256 checksums on remote downloads when available.
- Both the runtime and installer now show the package list and prompt for confirmation before running
sudo. - VNC password tradeoffs, unencrypted traffic, and SSH tunneling are documented in
docs/SECURITY.mdand theinstall-vnchelp output.
Reliability Fixes
stopnow cleans up xrandr modes to prevent accumulation after repeated start/stop cycles.- Stale lock files from crashed processes are auto-detected and cleaned.
- The fixed 1-second startup sleep is replaced with a port-polling loop that adapts to available tools (
ss,netstat, or timed fallback) and sleep granularity (fractional or whole-second).
Structured Logging
- Start, stop, config changes, and security events now write timestamped entries to the log file alongside x11vnc output.
Testing
- Added Xvfb-based integration tests exercising the full lifecycle in CI.
- Added installer fallback tests verifying the remote-download path.
- Unit tests at 110+.
- CI runs lint, unit, smoke, integration, and installer fallback checks in parallel jobs.
Packaging
- The Debian package builder now includes
lib.sh. - Removed the stale committed Debian package directory (
linux-display-extend-1.0/).
What's Changed Since v1.1.0
This release bundles all work from v1.2.0, v1.2.1, and v1.3.0:
- v1.2.0 — Major rewrite: safe config parsing,
doctor/install-deps/logs/set-password/install-vnccommands, stateful start/stop with PID tracking, password-based VNC auth by default, consolidated installer, CI, contributor docs, and architecture documentation. - v1.2.1 — Bug fixes: xrandr mode collision when requested resolution matches an existing system mode, clip coordinate fixes for left/above positioning, improved error messages, doctor improvements, 106 unit tests.
- v1.3.0 — Architecture overhaul, security hardening, reliability fixes, structured logging, 110+ unit tests, integration tests, and Debian packaging updates.
Files Changed
41 files changed, ~3,777 insertions, ~1,544 deletions.
Upgrade
bash <(curl -fsSL https://raw.githubusercontent.com/USKhokhar/linux-display-extend/main/universal_installer.sh)Or pull and reinstall from source:
git pull origin main
sudo make install