Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.

Overview

Table of Contents

  1. About
  2. Installation
  3. Usage
  4. Help

About

Xpra is known as "screen for X" : its seamless mode allows you to run X11 programs, usually on a remote host, direct their display to your local machine, and then to disconnect from these programs and reconnect from the same or another machine(s), without losing any state. Effectively giving you remote access to individual graphical applications.
It can also be used to access existing desktop sessions and start remote desktop sessions.

Xpra is open-source (GPLv2+) with clients available for many supported platforms and the server includes a built-in HTML5 client.
Xpra is usable over a wide variety of network protocols and does its best to adapt to any network conditions.

Xpra forwards and synchronizes many extra desktop features which allows remote applications to integrate transparently into the client's desktop environment: audio input and output, printers, clipboard, system trays, notifications, webcams, etc

It can also open documents and URLs remotely, display high bit depth content and it will try honour the display's DPI.


Installation

Official stable downloads

All the packages are signed. There are also beta builds available.
For more information, see xpra downloads

Build from source

git clone https://github.com/Xpra-org/xpra; cd xpra
python3 ./setup.py install

For more details, see building from source.


Usage

Seamless Mode

To start an xterm on a remote host and display it locally:

xpra start ssh://USER@HOST/ --start=xterm

(both xpra and xterm must be installed on HOST).
For more examples, see usage.

Shadow

To view an existing desktop session running on a remote host:

xpra shadow ssh://USER@HOST/

Network Access

Xpra servers can support many different types of connections using a single TCP port: SSL, SSH, (secure) http / websockets, RFB, etc..
Connections can be secured using encryption and many authentication modules.
Sessions can be automatically announced on LANs using multicast DNS so that clients can connect more easily using a GUI (ie: xpra mdns-gui).
Its flexible proxy server can be used as a relay or front end for multiple server sessions.


Help

Make sure to check the FAQ, your question may already be answered there.
You can send your questions to the mailing list or join us on the IRC channel: #winswitch on irc.freenode.net.
If you have hit a bug (sorry about that!), please see reporting bugs.

Comments
  • sound improvements: refactorings, cleanups,

    sound improvements: refactorings, cleanups,

    Issue migrated from trac ticket # 849

    component: sound | priority: critical | resolution: fixed

    2015-04-30 15:39:32: antoine created the issue


    Follow up from #400, #669 - related to #835.

    • would be nice to share more code between the client and server
    • handle the sound sequence mechanism for "microphone" just like we do for "speaker"
    • use a cython or ctypes wrapper for accessing the pulse properties rather execing a subprocess
    • avoid the osx pool autorelease warnings?
    • setup process tagging in subprocess only?
    • allow us to use python3 / gstreamer 1.0 in the subprocess from a python2 caller (requires execing a process to get the list of codecs supported..)
    audio 
    opened by totaam 175
  • python3 and gtk3 support

    python3 and gtk3 support

    Issue migrated from trac ticket # 90

    component: core | priority: major | resolution: fixed

    2012-03-27 08:53:09: antoine created the issue


    Makes sense to bundle this together since python3 is only really supported with gtk3 and vice versa.

    Main work items:

    • backwards compatible python3 changes (via 2to3 mostly), most already done in r618, r619, r620, r621 and r622
    • python3 strings: changes need testing on python2.5, also need to ensure that calling encode(..) and decode(..) does not adversely affect performance
    • for other non-backwards compatible python3 changes, find a way to run 2to3 during build so we can keep a unified source tree in python2 format. (main issue here: catch exception syntax change)
    • gtk3 imports have moved and now require annotation to silence pydev lint
    • gtk3 methods on gtk.Window have changed, client.py will need to provide wrapper methods:
      • gdk.get_default_root_window().get_pointer() (removed)
      • gdk.get_default_root_window().get_size() (removed)
      • gtk.Window.__init__(win, wintype) (removed: no arg constructor now)
      • window.set_geometry_hints(...) (signature changed)
      • window.flags() (removed - must call get_$FLAGNAME)
      • window.window.set_cursor(..) (renamed to window.override_cursor?)
      • window.window.invalidate_rect (now window.queue_draw_area)
      • do_expose_event(event) is now do_draw(context)
      • window.window.get_geometry (removed, must now call get_position() and get_size()?)
      • constants have moved
      • gdk.keymap_get_default (removed?)
      • gdk.Cursor can no longer use pixbuf..
      • ...
    • gtk3 removed GdkPixmap and GdkImage, we're supposed to be using cairo but cairo.ImageSurface.create_for_data is not implemented in pycairo and there are no alternatives (ouch!)
    • PIL (Python Imaging Library) is not available on python3 (so we can't use that to fix cairo either)
    opened by totaam 143
  • migrate osx build to using jhbuild and modulesets

    migrate osx build to using jhbuild and modulesets

    Issue migrated from trac ticket # 533

    component: packaging | priority: blocker | resolution: fixed | keywords: osx focus

    2014-03-14 13:06:01: totaam created the issue

    opened by totaam 119
  • pass client DPI preference to server (and use sane defaults of 96dpi)

    pass client DPI preference to server (and use sane defaults of 96dpi)

    Issue migrated from trac ticket # 163

    component: core | priority: blocker | resolution: fixed

    2012-07-12 06:13:32: antoine created the issue


    As discussed here on the mailing list

    We need to calculate the client's screen dimensions and pass it to the server so that the Xvfb uses the same dimensions.

    The --dpi option of xrandr actually computes dimensions from the resolution and dpi.

    opened by totaam 105
  • Windows is continous flashing in loop

    Windows is continous flashing in loop

    Issue migrated from trac ticket # 790

    component: client | priority: major | resolution: fixed | keywords: firefox

    2015-01-23 03:28:57: John1221 created the issue


    Reproduce:

    1. Server (Ubuntu 12.04), Client (Windows 7), xpra 0.14.18 8503
    2. Start and attach xpra with tcp
    3. Open Firefox or something.
    4. Minimizing and restoring a Firefox window very quickly until the system got stuck in this loop, continuously flashing the window.
    opened by totaam 102
  • Focus issue with mouse on osx client

    Focus issue with mouse on osx client

    Issue migrated from trac ticket # 469

    component: client | priority: major | resolution: wontfix | keywords: osx focus

    2013-12-11 02:15:18: afarr created the issue


    With osx client 4905 mouse cursor focus seems to become confused when there is a single click on an xpra session window overlapping a second xpra session window.

    Testing with windows client (0.11.0r4903) against a fedora 19 server (0.11.0r4904) the erratic cursor/focus behavior does not occur.

    In the edited logs that I included in #438 (I'll load those logs into this ticket when I get a chance), there is an initial focus on window 55 (first drawn on line 31 of the log, comes into focus line 139), followed by a focus shift to window 82 (first drawn on line 43, comes into initial focus on line 157, I think)... then there follows what I assume are indications of mouse-wheel scrolling events occurring on window 55 (lines 174 on). That is the 'event'. The logs aren't clear that focus shifted to window 82, from what I can tell, but what I did was to click on 55, then click 82, then click 82 again on a portion of the window which, once 82 'rose' to focus, was now overlapping 55. From then on, I never clicked on window 55 again, nor did I scroll the mouse off of window 82. From the point of line 157 in the log on, my cursor remained hovering over window 82 ... but the mouse scrolling events all seem to register on the lower window (55) despite the appearance of focus being on window 82. Testing this with xterms showed that the keystrokes would register on the apparently focused window, but also that clicking on a portion of an 'upper' window (with apparent focus) which was 'above' a window space with a link would trigger the link 'through' the apparent-focus window.

    opened by totaam 101
  • Client doesn't stay on NVENC h264, even when selected in the UI

    Client doesn't stay on NVENC h264, even when selected in the UI

    Issue migrated from trac ticket # 2022

    component: encodings | priority: major | resolution: fixed

    2018-11-01 16:03:47: nathan_lstc created the issue


    Unless I run xpra with only h264 enabled,

    /usr/bin/python2 /usr/bin/xpra start -d encoder --start=xterm --no-daemon --video-encoders=nvenc --encodings=h264 :57
    

    I can observe from the debug data that very few frames are actually rendered using NVENC even when I have h264 selected from the UI. When I run it using the above command, it works wonderfully. I'm using r20858 on CentOS7 with VirtualGL on the server and an r20882 client on windows. The driver is 390.87. I'm using a C2075 for render and a K20c for encode.

    I do not think the problem has much to do with my hardware or reversion because I'm having this trouble on all of my configurations including a brand-new new computer (the other one is pretty old) with a GTX 1060 running release 2.3.4 server with release 2.4 client.

    Nathan

    v2.4.x encoding 
    opened by totaam 100
  • better sub-window encoding: detect regions and use sub video encoder

    better sub-window encoding: detect regions and use sub video encoder

    Issue migrated from trac ticket # 410

    component: core | priority: critical | resolution: fixed

    2013-08-09 07:19:24: totaam created the issue


    If you have a large window but only a fraction of that window changes we waste a lot resources. We currently create a video encoder for the whole window and waste a fair bit of time capturing, csc-ing, encoding, (sending), decoding and displaying regions of the screen that have not changed at all (and we know they haven't) [[BR]] We have the "small region" code, which deals with small-ish regions by sending them using another encoding (usually rgb or png/jpeg) but it has its limits: it does not use a video encoder and is limited in size. [[BR]] We should keep track of the damage areas in more detail, including their location and size (easy). Then we can detect regions of the screen that update often (easy-ish) and create a sub video encoder just for those (harder). This could even work when the region is moving, as long as its size stays the same. This is negated somewhat by the fact that when we send the whole window (because of other updates), it will include this region - unless we purposedly blank it out before compression and ask the client to re-assemble the two before displaying the result (hard).

    An even better solution to this would be #509 or #510, as this would give us the video area precisely everytime, even before it gets converted to RGB pixels.

    opened by totaam 98
  • OSX client crashes with Intel opengl driver

    OSX client crashes with Intel opengl driver

    Issue migrated from trac ticket # 563

    component: client | priority: major | resolution: fixed

    2014-05-02 21:57:40: troycauble created the issue


    as frequently as every two minutes.

    opened by totaam 94
  • remove the need to choose an unused DISPLAY when starting xpra

    remove the need to choose an unused DISPLAY when starting xpra

    Issue migrated from trac ticket # 172

    component: server | priority: minor | resolution: fixed

    2012-08-05 15:07:38: antoine created the issue


    I am not aware of any solution that isn't racy or just plain wrong (making assumptions about where sockets should be and who can list/access them)

    What we can do however, is try to get this patch merged into Xorg so we can just make our own randomly generated socket each time (patch from lindi):

    diff --git a/src/xcb_util.c b/src/xcb_util.c
    index 996ff25..fb0cd3d 100644
    --- a/src/xcb_util.c
    +++ b/src/xcb_util.c
    @@ -139,6 +139,12 @@ static int _xcb_open(char *host, char *protocol, const int display)
         char file[sizeof(base) + 20];
         int filelen;
    
    +    if(protocol && strcmp("unix-with-path", protocol) == 0)
    +    {
    +        /* display specifies Unix socket with explicit path */
    +        return  _xcb_open_unix("unix", host);
    +    }
    +
         if(*host)
         {
     #ifdef DNETCONN
    
    
    opened by totaam 87
  • GL acceleration for client rendering

    GL acceleration for client rendering

    Issue migrated from trac ticket # 147

    component: client | priority: major | resolution: fixed | keywords: GL

    2012-06-16 07:52:48: antoine created the issue


    (remaining) tasks:

    • provide a GL client window alternative to the standard gtk window, so OpenGL can take care of colourspace conversion, done in r922
    • urgent: fix vpx (ahuillet)
    • support all encodings (ie: mmap, jpeg and png)
    • do_expose_event isn't called automatically - fix it
    • fallback to non-GL rendering when PyOpenGL is not installed, or when the GL driver is blacklisted (or not whitelisted)
    • win32 build: we need to document how to build everything from scratch

    Changes required from commit r922:

    • whitespace cleanup
    • remove wildcard imports
    • remove unused variables
    • constify GL command string
    • do not use SystemExit
    • why does this crash python??:
    python -c "from OpenGL.GL import glGetString, GL_VERSION; glGetString(GL_VERSION)"
    
    • remove duplicated window backing code: separate GL (backing) from window code - and re-use backing (super)class if needed. GLWindowBacking is not used??
    • use booleans and not integers (ie: vtxarrays - not used?)
    • use_openGL_CSC is hardcoded, make it a switch? Needs testing too.
    • self.current_mode and self.textures, need documenting more clearly, and initializing in constructor?
    • restore nogil for decompress_image_to_rgb: csc_image_yuv2rgb does not need the gil
    • run automated tests to compare with more scenarios

    Contingency plan: we can disable the opengl code if this proves unstable or problematic.

    Note:

    • with local connections, it might even be possible for the server to render directly to the client window? (even faster than mmap)
    opened by totaam 87
  • Save / Restore window positions for different monitor layouts

    Save / Restore window positions for different monitor layouts

    Is your feature request related to a problem? Please describe. I have 13' laptop and it is docked at home, undocked during travel and docked at work@office. At both placing I have two 42" screens @100%scale or three 42" screens @100%scale.

    Describe the solution you'd like It would be nice after traveling to reposition all the window positions for a specific layout home/work.

    I use already WindowsLayoutSnapshot (https://github.com/svargh/WindowsLayoutSnapshot) for many years WIn11 also provides such feature, but doesn't work reliable when docking between eGPU at home and WDTB4 docking at work.

    Describe alternatives you've considered Working: For applications running on my desktop, I use WindowsLayoutSnapshot (https://github.com/svargh/WindowsLayoutSnapshot).

    Not working: I tried using wmctrl based scripts and manually:

    wmctrl -p -G -l 
    0x01a00006  0 37656  2666 238  1063 908  inst-dev-company ~/save_window_conf.sh  — Kate
    
    wmctrl -r 0x01a00006 -e 0,2666,238,1063,508
    

    Additional context image

    enhancement 
    opened by svargh 0
  • Paste from windows not working in 3.1.3 client (server 3.1.2): NameError: name 'ellipsizer' is not defined

    Paste from windows not working in 3.1.3 client (server 3.1.2): NameError: name 'ellipsizer' is not defined

    Hi there,

    I recently updated my MS WIndows Xpra client from 2.* to 3.1.3 and have noticed that pasting from the windows clipboard is timing out, then failing (eventually pasting something from one of the X selections).

    Steps to reproduce:

    1. server xpra start :1011 --start=xterm
    2. client xpra_cmd attach ssh://user@hostname/:1011
    3. in windows open notepad and type 'test'. copy 'test' text to clipboard with "ctrl-c"
    4. in the xterm, press middle click

    expect: paste "test" to the xterm actual: xterm hangs for a few seconds, nothing is pasted.

    Configuration

    xpra_bug_client_data.zip

    Logs

    Client:

    C:\Program Files\Xpra>Xpra_cmd.exe attach ssh://benj@ukfd-ltp4l/:1011
    2023-01-06 16:52:54,055 Xpra GTK3 client version 3.1.3-r0 64-bit
    2023-01-06 16:52:54,105  running on Microsoft Windows 10
    2023-01-06 16:52:54,762 GStreamer version 1.20.2 for Python 3.9.12 64-bit
    2023-01-06 16:52:54,962 keyboard layout code 0x809
    2023-01-06 16:52:54,964 identified as 'United States - English' : gb
    2023-01-06 16:52:55,222 Connected (version 2.0, client OpenSSH_7.4)
    2023-01-06 16:52:55,345 Authentication (publickey) successful!
    2023-01-06 16:52:55,713  keyboard settings: layout=US
    2023-01-06 16:52:55,718  desktop size is 4480x1440 with 1 screen:
    2023-01-06 16:52:55,722   Default (1185x381 mm - DPI: 96x96) workarea: 4417x1440
    2023-01-06 16:52:55,722     (Standard monitor types) Generic Non-PnP Monitor 2560x1440 at 1920x0 (590x330 mm - DPI: 110x110) workarea: 2497x1440
    2023-01-06 16:52:55,723     (Standard monitor types) Generic Non-PnP Monitor 1920x1080 at 0x360 (470x260 mm - DPI: 103x105) workarea: 1858x1080
    2023-01-06 16:52:55,836 cannot query network interface:
    2023-01-06 16:52:55,840  module 'comtypes.gen.WbemScripting' has no attribute 'ISWbemLocator'
    2023-01-06 16:52:56,483 enabled remote logging
    2023-01-06 16:52:56,486 Xpra GTK2 X11 server version 3.1.2-r25 64-bit
    2023-01-06 16:52:56,489  running on Linux RedHatEnterpriseServer 7.9 Maipo
    2023-01-06 16:52:56,495 Attached to ssh://benj@ukfd-ltp4l/1011
    2023-01-06 16:52:56,497  (press Control-C to detach)
    
    
    (Xpra_cmd.exe:5216): GLib-GIO-WARNING **: 16:52:58.557: Unexpectedly, UWP app `microsoft.windowscommunicationsapps_16005.11629.20316.0_x64__8wekyb3d8bbwe' (AUMId `microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.mail') supports 1 extensions but has no verbs
    
    (Xpra_cmd.exe:5216): GLib-GIO-WARNING **: 16:52:58.582: Unexpectedly, UWP app `microsoft.windowscommunicationsapps_16005.11629.20316.0_x64__8wekyb3d8bbwe' (AUMId `microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar') supports 2 extensions but has no verbs
    2023-01-06 16:53:08,135 unknown string message: 0xc0be / 0x52 / 0x1e7
    2023-01-06 16:53:08,145 unknown string message: 0xc0be / 0x50 / 0x0
    Traceback (most recent call last):
      File "E:/xpra/src/xpra/client/mixins/clipboard.py", line 218, in _process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 526, in process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 435, in _process_clipboard_request
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 209, in get_contents
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 284, in get_clipboard_text
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 159, in with_clipboard_lock
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 278, in get_text
    NameError: name 'ellipsizer' is not defined
    Traceback (most recent call last):
      File "E:/xpra/src/xpra/client/mixins/clipboard.py", line 218, in _process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 526, in process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 435, in _process_clipboard_request
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 209, in get_contents
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 284, in get_clipboard_text
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 159, in with_clipboard_lock
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 278, in get_text
    NameError: name 'ellipsizer' is not defined
    Traceback (most recent call last):
      File "E:/xpra/src/xpra/client/mixins/clipboard.py", line 218, in _process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 526, in process_clipboard_packet
      File "E:/xpra/src/xpra/clipboard/clipboard_core.py", line 435, in _process_clipboard_request
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 209, in get_contents
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 284, in get_clipboard_text
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 159, in with_clipboard_lock
      File "E:/xpra/src/xpra/platform/win32/clipboard.py", line 278, in get_text
    NameError: name 'ellipsizer' is not defined
    

    The NameErorr occurs when attempting to paste. On the server side i see:

    Server (full log https://gist.github.com/puremourning/e557bd89ede429ed642fb9e8735f8877)

    ESC[33m2023-01-06 16:53:11,800 Warning: remote clipboard request timed outESC[0m
    ESC[33m2023-01-06 16:53:11,800  request id 0, selection=PRIMARY, target=UTF8_STRINGESC[0m
    ESC[33m2023-01-06 16:53:13,303 Warning: remote clipboard request timed outESC[0m
    ESC[33m2023-01-06 16:53:13,303  request id 1, selection=PRIMARY, target=TEXTESC[0m
    ESC[33m2023-01-06 16:53:14,812 Warning: remote clipboard request timed outESC[0m
    ESC[33m2023-01-06 16:53:14,812  request id 3, selection=PRIMARY, target=STRINGESC[0m
    2023-01-06 16:53:22,198 client   1 @28.028 unknown string message: 0xc0be / 0x52 / 0x1e8ESC[0m
    2023-01-06 16:53:22,204 client   1 @28.035 unknown string message: 0xc0be / 0x50 / 0x0ESC[0m
    
    

    Versions

    Server

    $ xpra version
    6.1.2-r25
    
    $ lsb_release -a
    LSB Version:    :core-4.1-amd64:core-4.1-noarch
    Distributor ID: RedHatEnterpriseServer
    Description:    Red Hat Enterprise Linux Server release 7.9 (Maipo)
    Release:        7.9
    Codename:       Maipo
    

    And the following client version:

    2023-01-06 16:47:22,966 Xpra GTK3 client version 3.1.3-r0 64-bit
    2023-01-06 16:47:23,017  running on Microsoft Windows 10
    2023-01-06 16:47:24,088 GStreamer version 1.20.2 for Python 3.9.12 64-bit
    2023-01-06 16:47:25,802 keyboard layout code 0x809
    2023-01-06 16:47:25,803 identified as 'United States - English' : gb
    2023-01-06 16:47:26,734 Connected (version 2.0, client OpenSSH_7.4)
    2023-01-06 16:47:26,961 Authentication (publickey) successful!
    
    opened by puremourning 4
  • Repo / packaging logistics: Private key + `arch`

    Repo / packaging logistics: Private key + `arch`

    Should https://xpra.org/repos/bionic/xpra-beta.list match e.g. https://xpra.org/repos/bookworm/xpra-beta.list?

    Similarly for https://xpra.org/repos/bionic/xpra.list

    deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/xpra-2022.gpg ] https://xpra.org/ focal main
    deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/xpra-2022.gpg ] https://xpra.org/beta/ focal main
    
    bug packaging 
    opened by stdedos 4
  • Log files should be moved out of /run/user/<UID>/xpra

    Log files should be moved out of /run/user//xpra

    Is your feature request related to a problem? Please describe.

    Log files (Xorg.log, server.log) need to be moved from /run/user/<UID>//XDG_RUNTIME_DIR directories. Suitable locations could user based directories (e.g. XDG_DATA_HOME) or standard /var/log directories.

    The filesystem under /run/user/ is tmpfs. It is situated in RAM. Use recommendations for that directory include temporary storage of PIDs, sockets, etc, session information, configuration files - all with consideration to be small.

    LOG files belong on the opposite side of the size spectrum. Occasionally they tend to grow fast and for that reason often are placed on separate partitions altogether.

    Describe the solution you'd like

    Possible suitable LOG location candidates

    • XDG_DATA_HOME
    • XDG_CACHE_HOME
    • /var/log directories

    Alternatively LOG file location could be configurable via cmd arguments or configuration file(s).

    Describe alternatives you've considered

    Additional context

    enhancement help wanted server 
    opened by cherio 3
  • Xpra opens windows as tabs

    Xpra opens windows as tabs

    Describe the bug Not sure if it's a bug or not. But I've searched a lot and I haven't seen anyone (or the documentation) mentioning this. I use Xpra 4.4 on a remote headless Linux server and my local macOS laptop to have the GUIs of the apps running on Docker containers of the Linux server shown on my macOS laptop, even with streaming audio and OpenGL. Everything works perfectly, but there is an issue that's been bothering me a lot. I run Xpra in the seamless mode, and all windows are shown as tabs of a single window on macOS. Then, I need to detach the tab into a new window manually:

    tg_image_1906475866

    If it's not clear, what I want is to have each window opened as a separate window, not a new tab. I already have some application running, and I develop some code that I need to respawn regularly, which would be frustrating as each time I have to switch to that tab (for that window) which also mistakenly inherits the size of the previous window (tab) that is already open.

    As a side, I have found that the binaries released for macOS can not be run due to an issue with the libcrypto shipped with Xpra. FYI, I resolve this issue by replacing those files with the libcrypto and libssl installed by Homebrew. So, at least this one is a bug!

    To Reproduce Steps to reproduce the behavior:

    1. Server: xpra start --daemon=yes :9898
    2. Client: xpra attach ssh:username@ip:9898 --encoding=h264
    3. Action: Opening any [unrelated] applications
    4. Effect: All windows are shown as new tabs. Need an option to override this so that any window would be result on a new window on the client.

    System Information (please complete the following information):

    • Server OS: Headless Ubuntu 22.04.1 LTS (with Ubuntu 20.04 Docker images)
    • Client OS: macOS Ventura 13.0.1
    • Xpra Server Version: v4.4.3-r0
    • Xpra Client Version v4.4-r0
    bug client macos 
    opened by nimamox 2
  • Programs are not recognized as being from different applications in a Wayland session

    Programs are not recognized as being from different applications in a Wayland session

    Describe the bug When using xpra in a wayland session with KWin compositor, all xpra windows get grouped under the same taskbar entry and all windows have the xpra icon. It seems that some window class or the wayland equivalent is set to xpra and not to the window class of the forwarded program (coming from a virtual X11 server on the server-side).

    To Reproduce

    1. Server: xpra start :10
    2. Client: xpra attach ssh://server/10 (on wayland)
    3. Action: Open some windows from different applications
    4. Effect: All windows are grouped as if they were from the same applications and all windows have the xpra icon, so wayland probably treats xpra windows as a single application instead of forwarded windows from different applications.

    System Information (please complete the following information):

    • Server OS: Debian bullseyes
    • Client OS: Debian bookworm
    • Xpra Server Version: v4.4.3-r0
    • Xpra Client Version: v5.0-r32356
    bug enhancement client Wayland 
    opened by allo- 6
Releases(v4.4.3)
  • v4.4(Oct 1, 2022)

    Source code(tar.gz)
    Source code(zip)
  • v3.1.3(Jun 27, 2022)

    • major fixes:
      • GDK crash when updating parked windows geometry 4573f72a2906b414e30e552854b9890eeecf3d16
      • always free X11 images safely d7a4ae692248be67c68159272835fe9cc1521398
      • MS Windows clients mishandling some window hints (ie: Firefox) 3354a3affe9a4e85e8a32a8c0c1bb03468dcf767
      • connection errors when non-user-interactive clients are connected acc73ddffbc9bec34a371a065368c61fba4f31de
      • filenames with special characters when opened remotely 62f1d3527dc6a092f2a07e9b8d90f1e308f9db52
      • missing notifications due to icon parsing errors 9ea7cb9a1b8c271b37c546ecd366cb14a42d7ea7
      • handling of packet parsing errors cd5ee74eb40da83345abeaf263164cf9ffdcc328
      • bencoder error when cuda info is missing 314df99ace6cfb72f721c78589bbc141830c525c
      • missing auto-refresh 9e77ef6a60ffa9d98e78da3a168cc55225054284
      • 'Content-Security-Policy' fixes and workarounds for Safari, xpra-html5 v6 a064cd037f839cd514e05fd6e7ecbf2084ca3f61
      • keyboard mapping not honouring the more specific keymap definition cd392e9b53e61f1c801c30fb7917ac7cd8c51c2a
      • honour system prefix when loading xkb keymaps 11dc9e25820bd7453b78cd90e4518378537161ad
      • launcher gui initialization error on Wayland 75cd3118e9d2277d5f17cf2db747c0d7a829a8fe
      • audio and webcam not starting with some packet encoders b7d3f1e939cb38505226dc068f9d03ec8fd325c7
    • build and packaging:
      • build using CUDA 11.7 by default 371c43e9824bd6601ba5548d9aff1afc01da1ed2, compile as C++11 ae934df2bea8fbc4d69c043f8145ff837ca7aff2
      • clean target left some generated files behind 369dff8ee0ea1e3c22609baa9194d22c77caad03
      • dependency updates 69b669682b9e61adfcb7d930a778922316337c7f
      • MacOS new package signing key 5fda52708a0c68f040cba09323383e19cffc13c3
      • ffmpeg 5.0 compatibility 5864561a5a44d2ba3d3126b4119adcee12614cb1
      • library updates: Cython 64b70746efb6ef5f1bb3bc0ac4170e7029ed95b8, pynvml a3f98f175a99997188d8586d78c0bda9d372f63e, etc
      • workarounds for latest Cython with GCC 4 d1b1b6e07c1a806f4cefeaccdf8280d8f7c094fe, 137dd5713479bc51480903f8b298cf7ad1e7faf2
      • support almalinux fc9582d9cadc888c1bc758f7353d991d1c3ad1c7, rocklylinux and oraclelinux 8 build targets 328cd2750a7ea454720276a79208523976829379
      • aarch64 builds cfc409af2b44f33af2492d2f16696f7d8d1fb397
      • content type updates: unityhub is a browser bf810d699b3afd383c3eb02d97179f22f2b3c8f8, ffplay is video 2c6bf180890ec96d38a09dbeacdb5f52261f2e33
    • minor bugs and tweaks:
      • clipboard errors with MS Windows clients and UTF8 data c6628c50c2a403e9f443ccdc9f2b1484d83ec312
      • server errors on encoding change (ie: client tray menu) 300c42e6191c7ce0f0cc342aa1d773661d6c4d45
      • store and send client properties as strings f8651992dd9e609aeda136967408ca8c148ac62a
      • configurable ping timeout delay d15a481ce4db98a72a21331d0e64ef0664a0ca47
      • make it possible to run the client without some cython extensions 39a584e51baed0328088a7298a6ecb11e592f5af
      • 'xpra showsetting' subcommand errors 14acfa5fc3917bcf6f11391b4fc7c189218827b1
      • always expose the server socket location b681b4361d5fc9abad2bd73172c65ad828cd49e3
      • make socket querying code more resilient 64c5164091529ef19e9e68df7ed24bcde567e288
      • potential race conditions with xpra info requests 95c594470a00d32461963d016444de5ecdefd6fd
    • cosmetic:
      • more understandable error message when ssh fails to connect 893fffdb78c38717fce7ef7ba9a02cbe1bf1485a
      • during shutdown, ignore errors trying to set nodelay / cork 7d6dc1424e6a16b586ffcecb63c4adad0de7bb54
      • clipboard error messages when there is no client handling it 6b3b00301f953a8f2a879c0ceec401cbaa58c666
      • avoid warnings triggered by Pillow v9 019288e16c75a1d7e423af7b7dd43784e0bd8627
      • show disabled menu entries in MacOS menus with GTK3 builds 031e9cc3c88f90d112c0383bfa6bde314293e4b5
      • codec loader output was ignoring standard log output format 75db8f95047a370e1a8825c4b0bf7f62b5fe1546
      • silence spurious authentication modules warnings ff5c4e4d3bf3db5becfa29fddaa3502d48f542e3
      • always log the full backtrace for client connection errors dcd950cef9dbfd741c7ad4e2a617179c491a3626
      • use the correct license short names bbf9b26b3677f84ae3519068ad55be43a57e02d4
      • nvml version query error f5b63ea4d973d3a60264134c79d2a10d279b3169
      • misc logging tweaks and fixes
    • encodings:
      • disable vaapi with the ffmpeg encoder (crashy) f708203507676b1d774214a86d3cc40528ad4ac7
      • handle grayscale png images with transparency 944da351a9a8350f7617903aaa675172700afcf0
      • workaround for missing video mode client metadata beb34ea1594d158a8e2263cea41177695ee1a856
      • don't send empty alpha channel d894b2a5545173e551e52ce1bf662bf99fbfa725
      • never delay screen updates unless we have a video region 97dfa6a6729d07aa0ee49da61753f6da33d25ef7
      • jpeg decoder generated invalid picture metadata 4dcc573350aceb132fccef194f2a401ab13e1d9f
    Source code(tar.gz)
    Source code(zip)
  • v4.3.4(Jun 21, 2022)

    • major bugs:
      • audio not starting with some packet encoders 7729863e728246d9a16a35da48cbe1b89c9f8464
      • opening files with special characters remotely 0d4aeb233de24214eb470dab4a2d8d1d66936170
      • always free X11 images safely c797239fd8f496c44075081dfd51099e16c7c6e7
      • GDK crash when updating parked windows geometry d0d2bae8ad825685a9301855924f3468ae39767d
      • webcam forwarding with older clients 4df846fe29fa1f42bc8bc409c1230193cff2e85e
      • launcher gui initialization error on Wayland 9e5ffaee221259763b6714dd80f195c542180e09
      • attach=yes failing with an invalid command line 9b46f21e3a4db5d77e3464558a35c6cd90d195d3
    • minor:
      • extra file transfers safety checks 38c8747b000dee6bc74698fcd58ed4be6b5988fa, fix existing one cc5980b21ce2fab97f94b9fdc55c702ef099b168
      • support CSP headers for stream saver of html5 client version 6 df25bc3de69b76da30f2484c06e44dad035d9976
      • always expose the server socket in the session environment 25ccb72dfed230994062c549eb022d8d5b0420b3
    • build:
      • CentOS 7 build fixes: 4b93dd9ebd1b60a75897b2fdcf2c70839de1f085
      • RHEL9 build fixes: missing python cairo, no pandoc bb10bfbac24cc34107324316e6a6b4ff39eae523
      • support building on Alma Linux and Rocky Linux 5c63232788fd4c7d4e2c79c0da066e7c0f3cdb44, fa7659b317b37ff1442ca460ff7bab1b4166e164
      • build using CUDA 11.7 c70889481e07b3a6cee763cd737e41933e37fb19
      • honour the CPP build environment variable 145f17f502cfcf83aa2e55d97a7ebc90c662562e
      • use the correct license short names b87225ea66b5414153f8edec8e93c7ee847a034a
      • clean target left some generated files behind: e49157d71cdc5092d62bf4c68513d85848d7a522
      • library updates: Cython, pynvml, etc c3e82b44566c71a9d86fd47defa058cc5dac34b7
    • cosmetic:
      • jpeg cleanup warnings 4276a43aac6410c41527852fd0233c56dbce333a
      • errno Cython source name conflict c125984e801ca78229a85ae3de6d13339f028479
      • include details in conversion failure messages 445b6a52c2363e3e1bbe9dc923a73b3f24ea7ea1
      • double error in file transfer sanity checks 5047f07a482dc83d582784422841abe86a728bd1
    Source code(tar.gz)
    Source code(zip)
  • v4.3.3(Apr 28, 2022)

    • major bugs:
      • X11 server crashes with quickly disappearing odd sized video windows: 53e740642fbd4fb111cec3ff512f053f32e84305
      • MS Windows clients mishandling some window hints (ie: Firefox): #3533
      • connection errors when non-user-interactive clients are connected: 21265da495f7cfff4ae02cdaea79b8fd020120b5
      • bencode network error with cuda data: 2c5b88e5e511a2ee899450ed3a8e180502fc1b61
      • workaround VAAPI server crashes: ad64880f305a80d1c95a809c9dd7b490286197b1
      • socket leak when failing to wrap as ssl: d1b00508c9141ad8baf7b4fc6fd7229d1ac32c09
      • potential race conditions with xpra info requests: 1ab2bc57ec61ec9ac4e3f8068ad5abfaa04c5e9c
      • missing notifications due to icon parsing errors: #3366
      • workaround broken svg data format generated by Inkscape: 5f21e3cd58cfc778600dd446297ffb26b25e41c5
      • more correct solution for unicode clipboard data (MS Windows clients): 64280ca77558363dfc6c461228a861be30ecc1ea, 0c195d114455e2a31409288e8ec08a38ebab5b1b + ba56b1aae860f0d024f97ebe2c663427ebdd43b2
      • video capability workaround for legacy packet encoders (ie: older clients): 077b3d5ff7311837142901f17c54fc59968e7d47
      • MacOS DMG missing code signature: e72718d049bd690f24031341e67a5d777a62bfce
    • screen updates:
      • fix jpeg with alpha painting with opengl backend: 515b07d952fcff819a8ceee307cc4e7af4bf814c
      • png screen updates refreshed unnecessarily: 98f3eef26e025947ef2babbced5fc5b4a56c3361
      • don't use an rgb format with an empty alpha channel: a0388335397bdea3cf438f854ffbe22c5f47bbd9
      • ensure video screen updates are only flushed when complete: e512d5c2b9f36c4c879bea04916bf9ee35624522
      • avoid errors handling grayscale png images with transparency: 1d4b31f179f9780bd774e85aca178309026d2546
      • handle grayscale with spng encoder: fdee128a6bd9867c5ee7d5bdb60a09f055e4da62
      • missing transparency with webp encoder: 382412cc4606cf04d6e882f73e5cb003c09e53f2
      • paint errors in non-opengl backend: c97baac53f356b7799a7f096299db0b023fc9bda
      • never delay screen updates unless we have a video region: 16b96174324764263321ffd8832f5db7fc4c7d29
      • invalid image metadata with jpeg decoder and csc_cython output: 6b40f4cc9ed4647d2dd6f5fe5249ae400c682327
    • cosmetic:
      • during shutdown, ignore errors trying to set nodelay / cork: 35ec6227f7577bcbb8e3637b294c38531f42814f
      • codec loader output was ignoring standard log output format: 1d5e04945010a89fea3fa8195dcdbf10d42fb290
      • adjust docstring and debug logging messages, typos etc: 7235282271418a27e4a80bfa557e3d293591560d, 5225e4bf00a5a9c95e101080e0ae457244e1f30a, 0994f06351cebf1dcae82c76b636a0bfa0a737d3, 665348fce55365c6ccd3ac457ef248d1a186ef90, cfc705acf1275bb2dfcfccfe9b8a1ef922ef1a73
      • show disabled menu entries in MacOS menus: ee92daf6d9450e6ed3f69a375486a3ca850298c4
      • log current keyboard layout whenever mapping changes: cf2f81959ff23abaa36dfb72407bf940dfcb0891
      • avoid warnings triggered by Pillow v9: 1e62ccbd4ac611f1cdca21a3387049b38cc8ed46
      • error messages shown when the systray menu is not yet ready: 3ddca80b237dc1092dce89ca2c710bb9e5627758
      • more understandable error message when ssh fails to connect: 1346866cc764995b4d449f4f7aedf27b47dcb0b6
      • always log the full backtrace for client connection errors: e0b8cff8819b14ed36b2d0399216f8f5e7a8e695
      • errors when changing encoding from the client's systray menu: 44c81202c89843b8a9c77aa714da3d2c17516356
    • minor:
      • make it possible to run the client without some cython extensions: 767db9d2fcfb131453dc9a083608fcfd844b2572
      • make socket querying code more resilient: 1f961795268d844bc93a289be43873bc04d8df85, 044f0c80c7e0114648c721fdb78099fecee5579b
      • restore ability to disable smooth scrolling: 9e0286b02f7e8a67a94e0469a7196f7b2e86b143
      • carefully access subprocess file descriptors: cc0ab96021fa8cf6a30d175ca23980e3da591f2e
      • map ffplay to video application type: 88139cec534b747d4b3a6f454a2cf6dceef8bae3, unityhub as browser type (dc987e2521f97f7b312879725c0c713c34937310)
      • incomplete socket dirs validation: 0f4cd80a07b789b7fae367e46b320388e5826404
      • jpeg and nvjpeg encoders could go missing with unusual settings: 688f7bbf4a18013cf28beecba8b0b05ac70c8df3
      • Xorg dummy patch refresh: fc68a5482c3c342d9add5db6d4d523f5a5bf5ebc
      • CUDA builds with GCC 12: 97a75e2f7df9c431565b096b7d908f5d77c0d893, silence unavoidable warnings: ce2963763f8d1f70b2b164f686effb68ec20f465
      • small X11 memory leak: e110f0876a829993ea2e0a186c2007f1a463b5c3
      • make it possible to increase the ping timeout delay: ff6dfd1694daee419b6c3c8113dde9ad5edcb655
      • avoid strict warning when sorting windows (xpra list-windows): d214585cab45d22178864c7050d5f081185396b3
      • window mapping 'event' markers should not be stored as client properties: cbd18930ff7f9894b5261855a7e7c31732518804
      • use strings for all client properties: 1b428f859714f97ec0b13ad7be1b81de70fb5908
    Source code(tar.gz)
    Source code(zip)
  • v4.3.2(Jan 27, 2022)

    • colour mismatch with jpeg video and html5 client (don't use YUV input): a88e1e632cf4b3b75c37c0f3b5e21de5cd82fdea
    • missing auto-refresh: f2dfe3d0292c336912c7c0f724471ffbeb7ef0e8
    • support CUDA 11.6 and all targets: 654a9e9f5c214320e0599e20972857e0386a5005 + a3a816d3b3b6cfd997a98b5cae99f0a98fe0aa67 + ce1d496266fb13404ba949e4e4f8d214b5dd9e33, compile using C++11 acc2f532d6ba2bb9e32c6f625f43fe78b9861e12
    • 'mode' warnings on desktop upgrade: b4e4c19d9ee0b1c46577b2b92e0e45f436803eb5 + f763b104268698647225cd980dc2db088522f6b0
    • detect what type of session to 'upgrade' automatically: 955882b6cc621373a074792cdf3b73b478749fd0
    • 'Content-Security-Policy' fixes and workarounds for Safari: 60f69dad7def697094aa0e649ae26648cc6de6cc
    • None value errors with bencode clients: c7bdd16c3fa7d6dd0b3997ec7067eb2470322950
    • honour http path in websocket client connections: 7806a96afa75386ae8277b10c4319f20999a6919 - see apache proxy example
    • correctly restore original MacOS environment for subcommands: 6d73648eec24262e4d565e67294d2e4a3345318d
    • better tracking of pointer grabs: bca8d1d789866b48f36625f101906c394252cb22
    • try harder to find matching unicode keys with MS Windows clients: 54a21ae40ea381cd7282680765aa406c9cda2d3f + 815524928db1e3b61dce1f6f0f31dfca671f8bd0
    • advertise that we support _NET_WM_OPAQUE_REGION: 156e6a5935d7e0a56187700051fab762427a6cdb
    • avoid pidfile warning when showing encoding help: d901a6d94bf310afc7e0fadf8aeb396a565f75e4
    • don't use x264 encoder for source data with an alpha channel: c2b65e5420c3724cd54c2c4c5fb3603d3c3ac27b
    • do handle alpha with the new 'jpega' video encoder: 0faf2f60deeedf6aad387bf71120839fafa21046
    • handle clipboard data sent using strings (ie: some MS Windows clients): a93b8ceada72cf8af74602bf0523777350bd2a94
    • file transfer errors with legacy packet encoders: 96d23e4d0e046c24f9b0262b28af2d2c3a39e77b
    • client file upload size warning triggered a formatting error: 916ee15762c069e44359965584dcb2b74650e89a
    • enable video subregion by default (fix for HTML5 clients): e10befaa5f39703fc1c95234a4e0c7c36261ae01
    • always initialise the window source fully when the window is mapped: f9ee780629a3df45c47dbbfb2ab4d2c79a741eee
    • cython csc regression: 9e3ab039723a8d894048ba23b55c5ffe3fd56515
    • disable vaapi with the ffmpeg encoder (crashy): d5fc406e70e2e8cf66bb0ef2b07762617c6cc5cd
    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Jan 4, 2022)

    • fix vpx encoder
    • errors when using the 'password-file' command line option
    • bash path compatibility issue with source commands
    • ssh errors with some versions of paramiko
    • failures to locate existing servers (ie: remote start / attach)
    • dpi errors with desktop servers, causing blurry scaling
    • 'video-scaling' argument parsing errors
    • duplicate dpi xsettings
    • avoid resource leak warning
    • proxy video encoder errors
    • update some of the failing unit tests
    • MacOS broken helper commands, pixbuf loader path errors
    • MacOS packaging of spng codec
    • try harder to locate the html5 client installation path
    • handle source command stdout pollution, trap all errors
    Source code(tar.gz)
    Source code(zip)
  • v3.1.2(Oct 20, 2021)

    • encoding errors with vpx
    • fix pkg-info build command
    • packaging workarounds for Ubuntu Impish
    • fixup missing import in backport causing unix domain socket errors #3316
    • minor RPM build fixes
    Source code(tar.gz)
    Source code(zip)
  • v4.2.3(Oct 4, 2021)

    • network layer:
      • ensure the http headers cache is never modified unintentionally
      • invalid packet encoder names should not cause fatal errors
      • preserve audio packets chunking (avoids an HTML5 client bug)
      • prefer https links
      • prefer sha256 to sha1 for file transfer checksums
      • mmap setup error handling
      • sndbuf_bytes value was incorrect (currently unused)
      • socket timeout too long - broke VNC connections
      • AES DoS with unreasonably large number of password stretching iterations
      • tone down http content security policy for the HTML5 client
      • parsing of remote ssh command output
      • reply with a 404 if we have no http data to send
      • stricter validation of challenge digest attribute
      • stricter validation of packet indexes
      • specifying invalid compressors should not be fatal
      • handle more VNC clients correctly
      • server errors when VNC clients are connected
      • proxy sessions not found due to socket-dirs
      • mmap group lookup
    • encodings:
      • don't enable video encoders not present in 'encodings' option
      • ffmpeg H264 errors with unreleased version
      • ffmpeg codecs silencing too many warnings
      • vpx encoder lossless mode detection
      • potential race conditions in the proxy server's encoder loop
      • visual corruption with scaled jpeg updates
      • incorrect error messages with the jpeg YUV decoder
      • error in 'void' paint events (currently unused)
      • CUDA 11.4 and Ampere cards
      • RPM build errors when CUDA is disabled
      • restrict the number of NVENC errors tagged as transient
      • more robust OpenGL picture decoding sanity checks
    • packaging and platforms:
      • find the fakeXinerama library more reliably on all platforms
      • platform detection for CentOS / RedHat
      • missing default configuration files on MS Windows
      • missing webp with latest Pillow builds on MacOS
      • build fix for non-amd64 Debian (missing nvfbc)
    • clipboard selections getting stuck with MS Windows and MacOS clients
    • clipboard errors with some packet encoders sending strings
    • authentication modules not honouring socket-dirs option
    • make it easier to dismiss the splash screen
    • ssh password and key dialogs timing out without being shown
    • menu loading race condition causing empty start menu
    • window size hints may not have been honoured (rare case)
    • honour the force-replace-wm flag when upgrading
    • correctly handle command timeouts when probing servers
    • test scripts and command line tools fixups: unit tests, U2F tool, audio test, etc
    • system tray save-to-file debugging failures
    • minor cosmetic fixes to logging messages, unreachable code, icon loading errors
    • make it easier to run in a prefixed installation
    Source code(tar.gz)
    Source code(zip)
  • v3.1.1(Oct 8, 2021)

    • critical bugs:
      • crashes during printer enumeration on MS Windows
      • crashes when starting audio forwarding via the command line
      • disable crashy ffmpeg codecs with 32-bit builds
      • rencode DoS (MacOS and MS Windows binary builds)
      • missing key events
    • server stalls:
      • don't load menu data from the main thread
      • don't query the list of printers from the main thread
    • build, packaging and platform fixes:
      • Python 3.10 support
      • default to using CUDA 11.4
      • don't try to build NVENC against newer glibc headers (CUDA bug)
      • support NVidia Ampere cards natively
      • compatibility with experimental version of ffmpeg (GBRP9LE)
      • more reliable git branch detection
      • Linux distribution detection bug with Python 3 versions
      • remove unnecessary runtime dependency on distutils
      • clipboard support with python2 servers started from a Wayland environment
      • corrupted cursors on MS Windows
      • make it possible to bundle webcam support on MS Windows (still disabled by default)
      • updated GStreamer dependencies
      • the Debian package name we have to recommend is 'dnspython'
      • generic / common RPM packages should not depend on Python 3
      • use the correct /etc/default path for service configuration
      • MacOS updates for GTK3 3.24.30: patches, dependencies
      • MacOS packaging of the latest Python pillow with webp support
      • add missing C++ files to source snapshots
      • fixup some compatibility issues in previous backports
      • clean generated Cython files (some pyd filenames have changed)
      • use the versioned python interpreter for sourcing files (fix error on CentOS 8)
      • locate libfakeXinerama more reliably (at build time)
      • missing vpx support on CentOS 7.x
      • libwebp 1.2.1
      • pynvml 11.470.66
      • patched rencode - override the buggy version from EPEL
      • arm64 build and packaging tweaks
    • network:
      • handle mmap client setup errors correctly
      • mmap unix group lookup API
      • support improved packet encoders
      • use the correct exit code for encryption problems
      • http script errors
      • session 'name' server control command error
      • use cryptographically secure random values with AES
      • prevent DoS using unreasonably large number of key stretching iterations
      • menu errors when there are active VNC connections
      • stricter validation of raw packet indexes
      • better compatibility with packet encoders (start menu, clipboard)
      • reply with 404 if we don't find any data to send
      • correctly parse ssh remote command output
      • MacOS and MS Windows shadow servers missing the default TCP socket (port 14500)
    • authentication:
      • stricter validation of challenge digest
      • honour the socket-dirs option in authentication modules
      • fallback to the current user if the one specified is invalid
    • encodings:
      • correctly paint OpenGL scaled jpeg YUV screen updates
      • error in 'void' paint handler (normally unused)
      • sha1 data integrity checksum values
      • re-enable non-fatal ffmpeg logging outside suppressed code blocks
      • vpx encoder uninitialized variable undefined behaviour
      • restrict the number of NVENC errors tagged as transient
      • don't use AV sync for 'text', 'desktop' and 'picture' content types
    • window geometry:
      • errors with StackMode requests
      • size hints not being honoured in some rare cases
    • misc fixes:
      • notifications should not override the exit code
      • stop processing info requests when the server is exiting
      • increase the maximum size of Xdummy resolutions (uses more memory)
      • retry if we fail to load the list of windows the first time (seamless servers)
      • missing notifications when failing to load the icon
      • fix default values shown with 'xpra --help'
      • try harder to exit the server cleanly (kill xvfb and dbus later)
      • honour the force-replace-wm flag when upgrading
      • some modifiers may not have matching key names (ie: VNC clients)
      • don't expose xdg desktop entries that don't have a command to run
      • smooth scrolling with GTK3 clients
      • documentation, debugging, logging tweaks and fixes
      • u2f tool error
      • prefer https for links to the xpra.org website
      • fix saving icons with gi bindings (Python 3)
      • make it easier to run in a prefixed installation
      • cursor regression with Python 2 builds
    • proxy fixes:
      • preserve audio packets chunking (avoids an HTML5 client bug)
      • avoid potential race conditions with video encoder re-framing
      • try harder to find a usable session directory to use
    • audio fixes:
      • ensure we always stop the 'new-stream' notification process
      • remove aac codec flag causing compatibility errors
      • fix sink test tool command line usage
    • 'top' client:
      • server errors when 'top' clients are connected
      • handle unicode window names correctly
      • threading fixes (screen corruption)
      • latency shown as always zero
    • html5:
      • less strict content security policy
      • ensure the 'set-initial-position' attribute is initialized
      • avoid sending window attributes set to 'None'
      • fix lz4 with AES incompatibility
      • log the reason when closing
      • don't start a new session again when re-connecting
      • don't try to re-connect when the server is shutting down
      • re-connected session would lose its connection quickly
      • keyboard layout mapping from browser language
      • window snapping to the edge, wrong offset
      • avoid triggering server side errors on OR windows
    Source code(tar.gz)
    Source code(zip)
  • v4.2.2(Aug 10, 2021)

    • don't build ffmpeg codecs on i386 (crashy)
    • prevent crashes caused by svg conversion done in a thread
    • always stop the 'new-stream' notification process
    • prevent subprocesses from becoming zombies
    • clean server on 'stop' or 'exit'
    • fix application geometry issues
    • show correct default values with "xpra --help"
    • source and source-start errors on CentOS 8
    • stop responding to 'info' requests when shutting down
    • network layer:
      • honour the packet-encoding and compressors options
      • rencode packet encoder is not thread safe!
      • packet errors with bencoder and None values
      • don't assume the packet encoders handle bytes and / or strings
    • client issues:
      • backwards compatibility with v3 servers for ssh start
      • incorrect client exit code
      • icon theme errors should not be fatal (triggered on MacOS)
    • subcommands:
      • 'start-gui' invalid options shown
      • 'sessions' and 'displays' subcommands do not need a display
      • fix hidden 'wmname' utility subcommand
      • many subcommands should send debug logging to stderr
    • platform issues:
      • MacOS dock flickering with 'start-gui'
      • MacOS splash screen hiding password prompts
    • menu loading:
      • try harder to find valid menu entries to use
      • skip entries that cannot be executed
      • don't block the main thread when loading menus
    • xpra top:
      • handle unicode window titles correctly
      • fix screen corruption due to threading
      • fix latency always showing as zero
    • packaging fixes:
      • Debian packages now correctly use /etc/default for systemd service configuration
      • MacOS updates for latest GTK3 builds
      • add missing C++ files for MS Windows builds
      • DEB missing dependency on gst-launch needed for silence detection
    • audio:
      • pipeline errors with aac encoder
      • X11 warning when starting microphone forwarding from the command line
    • minor / cosmetic fixes:
      • cropped icons shown in html5 client connect page
      • logging, error handling
      • remove unused pulseaudio directories
      • '1080p' resize-display string matching
    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Jul 11, 2021)

    • build and packaging fixes:
      • missing dependencies
      • nvjpeg DEB packaging
      • OpenBSD build fix
      • compilation errors on Ubuntu Bionic
      • DEB packages were missing some files (fixes audio silence detection)
      • correct DEB dependency on 'dns' module for SSHFP support
      • remove unused outdated code
      • remove runtime dependency on distutils for 'which'
      • cryptic error when a pkg_config file is missing
    • proxy server:
      • deadlocks when queues fill up too quickly
      • honour mode and display
      • disconnections under heavy load
    • MS Windows:
      • spurious OpenGL warnings during sanity checks
      • printer enumeration crash and stalls
      • small cursors showing random pixel values
      • updated MS Windows GStreamer module list
    • MacOS:
      • MacOS GStreamer packaging of dylib modules, man page
      • MacOS update to GTK 3.24.30
      • MacOS Big Sur error with 'Xpra_Browser' subcommand
    • Network:
      • fix RFB server protocol, sockets not timing out with VNC clients
      • invalid error when bind option points to a directory
      • detect wifi network connections more reliably
      • fix 'xpra' packet type auto detection
      • default to ssl-mode if the 'wss' socket option is not specified
      • 'keydata' connection attribute should override other options
      • correct exit code for encryption errors
    • Encodings:
      • disable vaapi in ffmpeg codec by default (crashy / buggy)
      • NVENC errors when retrying after a transient failure
      • scroll detection bugs
      • webp encoder invalid memory access (corruption)
    • notification forwarding errors with SVG icons
    • disable SVG icon resizing (potential crashes on some platforms)
    • missing log prefix for 'xpra recover' subcommand
    • faster server startup failures: don't wait for things that were not started (ie: audio)
    • fix commands started twice when upgrading (ie: ibus-daemon)
    • local start with explicit attach was broken on Posix
    • 'attach' option should not be forwarded to the server (which then fails)
    • invalid window resize counter (used for resize loop prevention)
    • missing icon errors when html5 client disconnects from system-wide proxy server
    • file transfer errors when a 'top' client is connected
    • don't claim that non-interactive clients use the screen
    • retry once after X11 query tree errors during startup
    • provide XDG_RUNTIME_DIR if it is not defined
    • add new 3x4K Xdummy modeline
    • minor cosmetic and debug logging fixes
    Source code(tar.gz)
    Source code(zip)
  • v3.1(Jun 12, 2021)

    Apart from the many important fixes that had accumulated, this release also includes:

    • critical fixes for crashes and memory corruption bugs
    • better compatibility with newer operating systems and Python versions
    • many fixes to the proxy server
    • screen update fixes and improvements
    • latest xpra top client
    • the nvjpeg encoder
    • updated application metadata hints
    • keyboard and network fixes

    And much more.

    The detailed release notes can be found here: https://github.com/Xpra-org/xpra/blob/v3.1.x/src/NEWS

    Downloads: https://github.com/Xpra-org/xpra/wiki/Download

    Source code(tar.gz)
    Source code(zip)
  • v4.2(May 21, 2021)

    Source code(tar.gz)
    Source code(zip)
  • v4.1.3(Apr 21, 2021)

    • fix window geometry constraints being applied wrong b5bfa92c32e6fc6c185eeb26e85b41cf726db606
    • fix xpra start failures when the display is already running (with use-display=auto) #3077
    • fix vp9 libvpx encoder failures with older library versions b24f91a7dae9abde0f709375ae6f34fddfaf32e1
    • fix 'xpra top' errors when the version string is missing 035c7c91ddd316850151d2656681c05dbf80cdb5
    • fix server errors when non interactive clients are connected (ie: 'xpra top') #3089, #3084
    • fix http server error on incomplete installations 9f2a80ecde043c7548fe3bb6f693448c18ab4c8e
    • fix http server builtin script handler ebab0e7b30b33f89b01eba88895a93d06633601d
    • fix icon loading errors causing empty start menus 4d9c8bc51683c9dcdcc06a2652a38b836ea625c1
    • fix compilation against ffmpeg 4.4 and later on some distributions (ie: CentOS 8) 8d583c27bac240759606610dfcc9ba61658ca12b
    • exit more quickly with a failure if the VFB failed to start c91509ec0b0dfe939bc240b86137692bfa13b7ce
    • correctly replace existing notifications with the gtk notifier backend 95c6116fc5062bc7da4598f83959f23a702e402d
    • silence some rare errors and stacktraces bff6fceddfa5d55e15c2c5debe1e0c1d19f81f81, b594b363e773fa7aa43eb028521f7d83e7d75797, ebb4aa44870eda7abb990bbc5d712f34ddc72022
    • support CUDA 11.3 7f3f6e8d3e7686c4e66b8b5687de34dc71c30ab0
    Source code(tar.gz)
    Source code(zip)
  • v4.1.2(Apr 6, 2021)

    • fix unnecessary screen update delays
    • fix screen refresh rate detection
    • increase the default screen update refresh rate
    • fix missing encodings with 'upgrade' and 'upgrade-desktop' subcommands
    • fix client failures due to missing socket directories
    • fix crashes when showing notifications (ie: MacOS Big Sur)
    • workaround for hidden library paths (MacOS Big Sur)
    • more correct API usage of 'notify2' backend
    • fix run_scaled script handling of multiple arguments
    • fix ioctl error with nested SSH connections
    • fix video region detection error
    • fix sessions GUI not updating on process exit
    • fix compatibility with newer versions of python-zeroconf
    • fix directory listing with the builtin http server (still disabled by default)
    • fix clipboard errors on MS Windows when we fail to acquire the lock
    • fix the server's GetAll dbus property handler
    • fix display-name validation check
    • the 'exec-wrapper' option no longer needs to use an absolute path
    • ignore bell audio devices
    • show the correct list of pressed keys, unkown modifiers
    • prevent the splash screen process from consuming too much CPU
    • better service configuration file location detection
    • packaging script fixes, library and documentation updates
    Source code(tar.gz)
    Source code(zip)
  • v4.1.1(Mar 7, 2021)

  • v4.1(Feb 28, 2021)

    Source code(tar.gz)
    Source code(zip)
Free and open source full-stack enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python.

Readme web2py is a free open source full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applic

null 2k Dec 31, 2022
Ape is a framework for Web3 Python applications and smart contracts, with advanced functionality for testing, deployment, and on-chain interactions.

Ape Framework Ape is a framework for Web3 Python applications and smart contracts, with advanced functionality for testing, deployment, and on-chain i

ApeWorX Ltd. 552 Dec 30, 2022
bottle.py is a fast and simple micro-framework for python web-applications.

Bottle: Python Web Framework Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module a

Bottle Micro Web Framework 7.8k Dec 31, 2022
Sierra is a lightweight Python framework for building and integrating web applications

A lightweight Python framework for building and Integrating Web Applications. Sierra is a Python3 library for building and integrating web applications with HTML and CSS using simple enough syntax. You can develop your web applications with Python, taking advantage of its functionalities and integrating them to the fullest.

null 83 Sep 23, 2022
The Python micro framework for building web applications.

Flask Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to co

The Pallets Projects 61.5k Jan 6, 2023
A high-level framework for building GitHub applications in Python.

A high-level framework for building GitHub applications in Python. Core Features Async Proper ratelimit handling Handles interactions for you (

Vish M 3 Apr 12, 2022
WebSocket and WAMP in Python for Twisted and asyncio

Autobahn|Python WebSocket & WAMP for Python on Twisted and asyncio. Quick Links: Source Code - Documentation - WebSocket Examples - WAMP Examples Comm

Crossbar.io 2.4k Jan 6, 2023
The no-nonsense, minimalist REST and app backend framework for Python developers, with a focus on reliability, correctness, and performance at scale.

The Falcon Web Framework Falcon is a reliable, high-performance Python web framework for building large-scale app backends and microservices. It encou

Falconry 9k Jan 1, 2023
Daniel Vaz Gaspar 4k Jan 8, 2023
The Modern And Developer Centric Python Web Framework. Be sure to read the documentation and join the Slack channel questions: http://slack.masoniteproject.com

NOTE: Masonite 2.3 is no longer compatible with the masonite-cli tool. Please uninstall that by running pip uninstall masonite-cli. If you do not unin

Masonite 1.9k Jan 4, 2023
An abstract and extensible framework in python for building client SDKs and CLI tools for a RESTful API.

django-rest-client An abstract and extensible framework in python for building client SDKs and CLI tools for a RESTful API. Suitable for APIs made wit

Certego 4 Aug 25, 2022
Bionic is Python Framework for crafting beautiful, fast user experiences for web and is free and open source

Bionic is fast. It's powered core python without any extra dependencies. Bionic offers stateful hot reload, allowing you to make changes to your code and see the results instantly without restarting your app or losing its state.

 ⚓ 0 Mar 5, 2022
Asynchronous HTTP client/server framework for asyncio and Python

Async http client/server framework Key Features Supports both client and server side of HTTP protocol. Supports both client and server Web-Sockets out

aio-libs 13.2k Jan 5, 2023
Fast, asynchronous and elegant Python web framework.

Warning: This project is being completely re-written. If you're curious about the progress, reach me on Slack. Vibora is a fast, asynchronous and eleg

vibora.io 5.7k Jan 8, 2023
Library for building WebSocket servers and clients in Python

What is websockets? websockets is a library for building WebSocket servers and clients in Python with a focus on correctness and simplicity. Built on

Aymeric Augustin 4.3k Dec 31, 2022
Screaming-fast Python 3.5+ HTTP toolkit integrated with pipelining HTTP server based on uvloop and picohttpparser.

Japronto! There is no new project development happening at the moment, but it's not abandoned either. Pull requests and new maintainers are welcome. I

Paweł Piotr Przeradowski 8.6k Dec 29, 2022
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.

Tornado Web Server Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking ne

null 20.9k Jan 1, 2023
A micro web-framework using asyncio coroutines and chained middleware.

Growler master ' dev Growler is a web framework built atop asyncio, the asynchronous library described in PEP 3156 and added to the standard library i

null 687 Nov 27, 2022
Fully featured framework for fast, easy and documented API development with Flask

Flask RestPlus IMPORTANT NOTICE: This project has been forked to Flask-RESTX and will be maintained by by the python-restx organization. Flask-RESTPlu

Axel H. 2.7k Jan 4, 2023