xpra icon
Bug tracker and wiki

Opened 8 years ago

Last modified 6 years ago

#47 accepted enhancement

keep hidden/minimized windows' pixels around so we don't need a roundtrip to the server to show them

Reported by: pmarek Owned by: Antoine Martin
Priority: minor Milestone: future
Component: client Version:
Keywords: Cc:

Description

The latency for xpra windows is much higher than for local windows; so, when switching the desktop, I can see the screen, and after some time (~0.3 secs for single SSH connection) the xpra windows refreshes.

Perhaps there might be an option to request auto-refresh - from every 1 second to every hour, or something like that.

Change History (7)

comment:1 Changed 8 years ago by Antoine Martin

See --auto-refresh-delay=DELAY in

man xpra

Is this what you are after?

I don't understand why you would want to use it, how does this help with latency? Also I don't understand what this means in this context: "when switching the desktop, I can see the screen"

comment:2 Changed 8 years ago by pmarek

Yes, --auto-refresh-delay=DELAY looks exactly right - but can this be configured in winswitch? Per host, or perhaps even per application?

And I meant that on CTRL-F1 I can see the new desktop immediately (with all open windows), but only after a fraction of a second the xpra-relayed window gets its updated content.

Sorry if I'm not clear enough.

comment:3 Changed 8 years ago by Antoine Martin

This cannot be configured at present in winswitch, it is automatically set based on the connection speed defined for this server, look for get_auto_refresh_delay in xpra_client_base.py : from 5 seconds for "modem" speed to 0.5 for "lan" and "0.2" for local.

What does CTRL-F1 do? Is this a desktop overview thing? Is it tied to compiz or something else? What do I need to see this?
Why do the windows refresh at all? Does this happen without ssh in the last hop?
How is this different from normal use? Or does this also happen during normal use?

comment:4 Changed 8 years ago by pmarek

Well, there's some misunderstanding then.
IIUC for LAN the window should get refreshes automatically every half second?

Either this is disabled, or it just doesn't work.

CTRL-F1 switches to the first virtual desktop (of which I have four); on each desktop I've got certain applications running (by my own convention), and the xchat is on desktop 1. So CTRL-F1 switches to this first desktop; this switching is instantaneous, but about ⅓ to ½ a second later the xchat window gets refreshed (tabs at the bottom get colored red, for channels with unread messages - when I leave the desktop, the tabs are normally black, because I've looked at them).

No, there's no compiz involved (AFAIK); the desktop effects are all disabled.
You need at least 2 virtual desktops; having the window get changes (eg. an 'while sleep 1 ; do date ; done' in an xterm) should be enough.

Well, this is "normal" use; I'd just like to get the window refreshed every, say, 1 minute, so when I finally switch to this desktop all the tabs are _already_ colored red, instead of switching half a second later.

comment:5 in reply to:  4 Changed 8 years ago by Antoine Martin

Owner: changed from Antoine Martin to Antoine Martin
Status: newaccepted

Replying to pmarek:

Well, there's some misunderstanding then.
IIUC for LAN the window should get refreshes automatically every half second?

Only if 2 conditions are satisfied:

  • if there are other refreshes, the full-window refresh will not occur
  • the window must be visible...

CTRL-F1 switches to the first virtual desktop

OK, this is the bit I was missing: CTRL-F1 does nothing here, now that you mention that you are switching virtual desktops this makes more sense.
The window is being hidden by the local window manager so Xpra ignores all redraws until the window is shown again, hence the delay.

Changing this behaviour may be difficult, but I'll see what I can do.


Could be dealt with as part of #41: "unmapped" windows could have their window-source tuned to only send updates at most 1 time per N second to those clients that do not show the window, then we would need a new window state: "unmapped but not in task-list yet gets updated"... (no paint or events, just backing updates)

Last edited 6 years ago by Antoine Martin (previous) (diff)

comment:6 Changed 8 years ago by Antoine Martin

Milestone: future

comment:7 Changed 7 years ago by Antoine Martin

Summary: refresh intervalkeep hidden/minimized windows' pixels around so we don't need a roundtrip to the server to show them
Note: See TracTickets for help on using tickets.