xpra icon
Bug tracker and wiki

Opened 7 months ago

Closed 3 months ago

#2750 closed enhancement (fixed)

xpra shell

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: critical Milestone: 4.1
Component: core Version: 4.0.x
Keywords: Cc:


Using exec to make it easier to debug a client or server in real-time.
Not everything is available via xpra info or debug logging. (see also #2749)
This will allow runtime inspection and modification of the code.

Change History (3)

comment:1 Changed 7 months ago by Antoine Martin

Priority: majorcritical
Status: newassigned

Very useful, in particular for things like #2756.

comment:2 Changed 7 months ago by Antoine Martin

xpra shell subcommand added in r26340, with server support only.


XPRA_SHELL=1 python3 /usr/bin/xpra start --start=xterm  --bind-tcp= -d exec
xpra shell tcp://
> print(server.get_root_window_size())
(8192, 4096)
> exit


  • better output capture needed? only capture output coming from our exec thread (server could have debug enabled and printing lots of other unrelated stuff)
  • support for client sockets
  • replace environment variable with command line option, or socket option (or both)
  • handle stdout / stderr write errors:
    BlockingIOError: [Errno 11] write could not complete without blocking
  • prompt is messy and asynchronous
  • O_NONBLOCK on win32?
  • compress shell-reply packet, use brotli?
Last edited 7 months ago by Antoine Martin (previous) (diff)

comment:3 Changed 3 months ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

r27425 allows individual server sockets to have the shell option enabled, ie:

xpra start :20 --bind-tcp=,shell=true --no-daemon --start=xterm

This will do for now, will follow up in #2872

Note: See TracTickets for help on using tickets.