# changelog

author: Antoine Martin <antoine@xpra.org> 4.1-1
changelog:
  - Overhauled container based build system
  - Splash screen
  - `run_scaled` utility script
  - Client:
     header bar option for window control menu
     generate a qrcode to connect
     show all keyboard shortcuts
     progress bar for file transfers
     GTK cairo backend support for more native bit depths
     disable xpra's keyboard shortcuts from the system tray menu
     automatically include the server log in bug reports
  - OpenGL client backend:
     render at fixed bit depths with the `pixel-depth` option
     support more bit depths
  - Clipboard:
     MacOS support for images, more text formats, etc
     MS Windows support for images
     wayland clients
  - Server:
     faster server startup
     `xpra list-windows` subcommand
     new window control commands: move / resize and map / unmap
     remote logging from server to client
     support window re-stacking
  - `xpra top`:
     show pids, shortcuts
     more details in the list view
     show speed and quality
  - Display:
     bumped maximum resolution beyond 8K
     set the initial resolution more easily using the 'resize-display' option
  - Encoding:
     server side picture downscaling
     libva hardware accelerated encoding
     NVENC 30-bit accelerated encoding
     vpx 30-bit
     x264 30-bit
     faster 30-bit RGB subsampling
     scroll encoding now handled more generically
     black and white mode
  - Network:
     IGD / UPNP
     SO_KEEPALIVE option
     clients can be queried and controlled using local sockets
     specify connection attributes using the connection string
     nested SSH tunnels
     websocket header modules
     specify the socket type with socket activation
     expose the packet flush flag
     `xpra shell` subcommand for interacting with processes in real time
     custom group sockets directory permissions and name
  - Testing:
     better test coverage
     cleanup output


author: Antoine Martin <antoine@xpra.org> 4.2-1
changelog:
  - use pinentry for password prompts and ssh prompts
  - nvjpeg encoder
  - gui for starting remote sessions
  - new subcommands: `recover`, `displays`, `list-sessions`, `clean-displays`, `clean-sockets`
  - many fixes:
     window initial position
     focus issues
     non-opengl paint corruption
     slow rendering on MacOS
     handle smooth scroll events with wayland clients
     always lossless screen updates for terminals
     clipboard timeout
     peercred auth options
  - support multiple clients using mmap simultaneously with non-default file paths
  - only synchronize xsettings with seamless servers
  - automatic desktop scaling is now disabled
  - workaround for gnome applications starting slowly (documentation)


author: Antoine Martin <antoine@xpra.org> 4.3-10
changelog:
  - Platforms, build and packaging:
     arm64 support #3291, including nvenc and nvjpeg: #3378
     non-system header builds (eg: conda): #3360
     fixed MacOS shadow start via ssh: #3343
     parallel builds: #3255
     don't ship too may pillow plugins: #3133
     easier access to documentation: #3015
     Python 3.10 buffer api compatibility: #3031
  - Misc:
     make it easier to silence OpenGL validation warnings: #3380
     don't wait for printers: #3170
     make it easier to autostart: #3134
     'clean' subcommand: #3099
     flexible 'run_scaled' subcommand: #3303
     more flexible key shortcuts configuration: #3183
  - Encodings and latency:
     significant latency and performance improvements: #3337
     spng decoder #3373 and encoder: #3374
     jpeg with transparency: #3367
     faster argb module: #3361
     faster nvjpeg module using CUDA, add transparency: #2984
     faster xshape scaling: #1226
     downscale jpeg and webp: #3333
     disable av-sync for applications without audio: #3351
     opaque region support: #3317
     show FPS on client window: #3311
     nvenc to use the same device context as nvjpeg: #3195
     nvenc disable unsupported presets: #3136
  - Network:
     make it easier to use SSL: #3299
     support more AES modes: GCM, CFB and CTR, #3247
     forked rencodeplus encoder: #3229
  - Server:
     shadow specific areas or monitors: #3320
     faster icon lookup: #3326
     don't trust _NET_WM_PID: #3251
     move all sessions to a sub-directory: #3217
     more reliable server cleanup: #3218
     better VNC support: #3256
     more seamless server upgrades: #541
     source /etc/profile: #3083
     switch input method to ibus: #2359


author: Antoine Martin <antoine@xpra.org> 4.4-10
changelog:
  - Platforms, build and packaging:
     Native LZ4 bindings
     Safer native brotli bindings
     Native qrencode bindings
     openSUSE build tweaks, Fedora 37, Oracle Linux / Rocky Linux / Alma Linux / CentOS Stream : 8 and 9
     Debian finally moved to `libexec`
     MS Windows taskbar integration
     SSH server support on MS Windows, including starting shadow sessions 
  - Server:
     Configurable vertical refresh rate
     Virtual Monitors
     Multi-monitor desktop mode
     Expand an existing desktop
     Exit with windows
     Full shadow keyboard mapping
     xwait subcommand
     guess content-type from parent pid
     cups print backend status report
     Override sockets on upgrade
     Allow additional options to X server invocation
     Control commands for modifying command environment and read only flag
     Start new commands via a proxy server's SSH listener
  - Shadow server:
     Geometry restrictions
     Shadow specific applications
  - Client:
     Automatic keyboard grabs
     Pointer confinement
     Faster window initial data
     Improved DPI detection on MS Windows
     Show all current keyboard shortcuts
     Preserve all options when reconnecting
     Option to accept SSL mismatched host permanently
     Forward all command line options
     Smooth scrolling options
     Per-window scaling - experimental
     Workaround Wayland startup hangs
  - Security and authentication:
     Configurable information disclosure
     Keycloak authentication
     Capability based authentication
     Authentication for web server scripts
     OTP authentication
     Workaround paramiko `No existing session` error
  - Encodings and latency:
     Option to cap picture quality
     Expose scaling quality
     NVJPEG decoder
     AVIF encoding
     selective `scroll` encoding detection
  - Network:
     SOCKS proxy connection support
     SSH agent forwarding
     SSH workarounds for polluted stream premable
     proxy network performance improvement
  - Misc:
     easier xpra subcommand invocation
  - Refactoring and preparation for the next LTS release:
     Feature deprecation
     Remove "app menus" support
     Remove ancient complicated code
     Simplify the build file
     More robust info handlers
     Remove scary warnings
     f-strings


author: Antoine Martin <antoine@xpra.org> 4.4.1-10
changelog:
  - unable to focus window
  - chunked file transfer checksum errors
  - clipboard transfer failures with large data
  - `--max-size` and `--min-size` parsing errors
  - SSH agent forwarding issues: dangling symlinks, etc
  - missing subcommands when starting via proxy
  - option to ignore OpenGL warnings not being saved on Posix systems and save it just once
  - `xpra start --encoding=help` error
  - excruciatingly slow paint without transparency
  - avoid video pipeline warnings due to race conditions or clients that don't support window transparency
  - build with clang
  - sdist snapshots missed an evdi file
  - don't clean files that no longer exist
  - RHEL 9 builds
  - RPM dependency not needed
  - cosmetic:
      - logging error handler errors
      - file transfer errors shown twice
      - honour transparency override earlier
      - unused duplicate header
      - GLib unit test error
      - version test error
      - shadow debug logging error


author: Antoine Martin <antoine@xpra.org> 4.4.2-10
changelog:
  - unit test errors with older versions of python pillow
  - worker thread cleaner termination
  - guard against missing stdin / stderr when starting servers
  - pam authentication module not linked properly
  - add another safeguard for x264 encoder crashes
  - packet errors with legacy encoders


author: Antoine Martin <antoine@xpra.org> 4.2-878-1
changelog:
  - select session attributes from list of options exposed by the server
  - detect vertical refresh rate
  - hide on-screen keyboard by default on non-mobile devices
  - tell server to prefer encodings with native decoders
  - updated documentation
  - build and packaging fixes, add easy 'deb' and 'rpm' build targets
  - support older versions of brotli
  - fix missing clipboard events
  - fix window focus tracking issues
  - fix AES encryption (broken by rencoder)


author: Antoine Martin <antoine@xpra.org> 4.3-962-1
changelog:
  - build and packaging:
     installation with python2 build environment
     create symlinks for some fonts
     more reliable git branch detection
  - rencode packet encoder:
     new, clean javascript implementation
     remove workarounds for Safari, encryption, compression, etc
     handle byte arrays natively without copying
  - geometry fixes:
     option to adjust viewport to screen width via scaling
     window visibility adjustements no longer snap to the sides
     server errors for override-redirect windows offsets
     try harder to get override-redirect windows to close
  - keyboard:
     don't show the on-screen keyboard on non-mobile devices
     fix keyboard language to keymap matcher
     Ukranian keyboard layout should use 'ua'
  - re-connect:
     don't start a new session when re-connecting
     fix disconnections after re-connecting
     don't try to reconnect when shutting down the server
  - connect dialog:
     start and start-desktop now work with or without command
     missing session, category and command icons with latest google chrome
     pass w3c validation without any warnings
  - cosmetic:
     scale window icons to fit in the title bar
     use sans-serif font for window title
     change titlebar focused / unfocused colours
     make window corners round
     try to scale application cursors to match window zoom
  - misc:
     audio debugging was wrongly enabled (extra CPU usage and lag)
     remove http mp3 stream audio support
     log disconnection messages
     prevent console errors with Internet Explorer


author: Antoine Martin <antoine@xpra.org> 4.4-1017-1
changelog:
  - encryption:
     support more AES modes: CBC, CFB and CTR
     use secure random numbers
  - core:
     decode screen updates in a dedicated worker thread
     (except on Mobile devices due to strange compatibility issues)
     switch to pure javascript lz4 implementation
     (fixes compatibility issues with browsers, encryption options, etc)
  - misc:
     notifications geometry and styling
     fix zero-copy web worker regression from 4.3
     use zero-copy for transferring audio buffers from the worker


author: Antoine Martin <antoine@xpra.org> 4.5.1-1043-1
changelog:
  - workaround Firefox bug in image decoder
  - allow AES and SSL to be combined
  - support multiple authentication challenges


author: Antoine Martin <antoine@xpra.org> 4.5.2-1106-1
changelog:
  - fix toolbar position
  - install default settings in /etc/xpra/html5-client/
  - image decoding time accounting
  - handle scaled screen updates
  - skip re-connecting when the error is likely to be permanent
  - more helpful disconnection messages
  - ensure we timeout if the websocket connection fails
  - provide an easy way to prevent unwanted connections (ie: xpra.org)
  - fix decode worker sanity checks, validate jpeg, png and webp
  - decode worker errors with legacy packet encoders
  - validate all encodings
  - window title string decoding errors
  - create directories as needed when installing
  - css syntax error
  - better support for relative URLs (proxied configurations)
  - window resize offset bug, minimization bugs
  - force xz compression for DEB packages (zstd support missing from repository webhost)
  - compress harder with brotli
  - remove unnecessary time wrapper
  - try harder to detect the correct screen refresh rate


author: Antoine Martin <antoine@xpra.org> 5.0-1237-1
changelog:
  - auto-fullscreen, alt-tabbing with window previews
  - decode images using an offscreen worker thread
  - decode `avif` images, grayscale and palette `png`
  - handle `void` paint packets
  - increase default non-vsynced target framerate
  - tell servers to use 'scroll' encoding less aggressively
  - keycloak authentication (requires xpra server version 4.4 or later)
  - support pre-mapped windows (requires xpra server version 4.4 or later)
  - support clipboard pasting file into the session
  - detect inverted vertical scrolling (ie: on MacOS)
  - improved dead key mapping for non-us layouts
  - 64-bit rencode decoding bug with Safari (and IE)
  - notification errors with bencoder
  - avoid popping up the on-screen keyboard on mobile touch events
  - updated on-screen simple-keyboard UI and file saver library
  - shifted characters with simple-keyboard
  - prevent stuck keys
  - focus and raise windows when their title bar is clicked
  - spurious focus events when minimizing windows
  - fix AES encryption when used with authentication and rencodeplus
  - build script refactoring


author: Antoine Martin <antoine@xpra.org> 6.0-0-1
changelog:
  - refactorings, cleanups, github CI, etc - JanCVanB
  - split decode from paint, PR202 - TijZwa
  - experimental native decoding, PR200 - TijZwa
  - require ES6
  - move to structured `hello` packet data
  - support `hjsmin` minifier - arrowd
  - updated installer script: #190
  - support for chunked file transfers (large files): #120
  - modal windows should not be minimized


