Xpra: Ticket #2070: Slow repaint of xfce4-terminal

Using xpra client 2.4.2 64-bit revision r21077 on MacOS Mojave to connect to xpra session on Ubuntu 18.04 running 2.2.6-r18968.

  1. I notice that xfe4-terminal opened in the xpra session often repaints very slowly resulting horizontal streaks in the xfce4-terminal window ONLY. The streaks show portions of the window behind the xfce4-terminal. I do not see this behavior with other app windows (I have Eclipse and Emacs windows open).

Is this known? Is it because of the different versions of xpra being used on the server and client side? Is there a setting that addresses this behavior?

  1. I notice that the option "Features -> Control/Command Key Swap" is greyed out in the xpra client. Is there any way I can enable it?

Thanks for any help/suggestion to address these issues (particularly no 1).



Thu, 06 Dec 2018 17:14:28 GMT - maverick: cc set


Thu, 06 Dec 2018 17:24:51 GMT - Antoine Martin: owner, description changed; cc deleted

Please try to reproduce the problem with a supported server version, the version provided by Ubuntu is buggy and insecure (details here: wiki/Packaging/DistributionPackages)

For some strange reason, some terminals use transparent windows, which could cause the problems you describe if the alpha channel is not forwarded properly somehow. Can you attach a screenshot? Do you have opengl enabled in the client? You may be able to fix that by starting the xpra server with:

XPRA_ALPHA=0 xpra start ...

The python3 builds may work better when it comes to handling transparency.

As for the swap-keys menu entry, this sounds like a bug. Can you post the output of the client running with -d menu?


Thu, 06 Dec 2018 18:02:53 GMT - maverick:

Thanks for your reply.

My attempt to install a supported server failed as follows:

W: GPG error: https://xpra.org bionic InRelease: The following signatures were invalid: EXPKEYSIG 18ADB31CF18AD6BB Antoine Martin <antoine@nagafix.co.uk>
E: The repository 'https://xpra.org bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Thu, 06 Dec 2018 18:09:07 GMT - Antoine Martin:

EXPKEYSIG 18ADB31CF18AD6BB: see #1854


Thu, 06 Dec 2018 18:42:22 GMT - maverick:

Thanks! Update worked. Now I am running xpra v2.4.2-r21077 (server) on my Ubuntu box.

I still see the slow repaint issue - a bit less frequent though. I did have OpenGL enabled (just let the default on). I turned it off but it made no difference. What is the recommended selection for OpenGL? Should I enable it or not?

I do not seem to experience the problem when I start xpra with XPRA_ALPHA=0. Is this what you'd recommend I use to start the server?

Here is the output of client you asked for:

/Applications/Xpra.app/Contents/MacOS/Xpra -d menu
2018-12-06 13:40:18.994 Xpra[13845:3044714] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
xpra: need a mode

Thu, 06 Dec 2018 19:18:37 GMT - Antoine Martin:

What is the recommended selection for OpenGL?

Default should be fine.

I do not seem to experience the problem when I start xpra with XPRA_ALPHA=0. Is this what you'd recommend I use to start the server?

No, we should fix the bug instead, but since I can't reproduce it, that could be difficult.

Here is the output of client you asked for:

Sorry, I meant -d menu as well as the rest of the attach command:

xpra attach -d menu tcp://host:port

(or whatever connection string you use)


Thu, 06 Dec 2018 21:11:53 GMT - maverick:

Started the server without setting XPRA_ALPHA.

Following is the client output with suggested arguments:

2018-12-06 16:00:04.261 Xpra[15929:3081971] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
  osxapp.set_menu_bar(mh.rebuild())
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
  osxapp.set_menu_bar(mh.rebuild())
2018-12-06 16:00:04,812 Xpra gtk2 client version 2.4.2-r21077 64-bit
2018-12-06 16:00:04,813  running on Mac OS X 10.14.1
2018-12-06 16:00:05,452 GStreamer version 1.14.1 for Python 2.7.15 64-bit
2018-12-06 16:00:05,589 OpenGL_accelerate module loaded
2018-12-06 16:00:05,595 Using accelerated ArrayDatatype
2018-12-06 16:00:05,885 OpenGL enabled with AMD Radeon Pro 455 OpenGL Engine
2018-12-06 16:00:06,202 Connected (version 2.0, client OpenSSH_7.6p1)
2018-12-06 16:00:07,185 Authentication (publickey) successful!
2018-12-06 16:00:08,117  keyboard settings: layout=us
2018-12-06 16:00:08,121  desktop size is 1680x1050 with 1 screen:
2018-12-06 16:00:08,122   mymachine.local (592x370 mm - DPI: 72x72) workarea: 1680x1027 at 0x23
2018-12-06 16:00:08,122     monitor 1
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
  self.macapp.set_menu_bar(self.menu)
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
  self.macapp.set_menu_bar(self.menu)
2018-12-06 16:00:09,311 enabled remote logging
2018-12-06 16:00:09,312 Xpra X11 server version 2.4.2-r21077 64-bit
2018-12-06 16:00:09,312  running on Linux Ubuntu 18.04 bionic
2018-12-06 16:00:09,334 Attached to remote-linux-dev:22 via ssh
2018-12-06 16:00:09,334  (press Control-C to detach)
2018-12-06 16:00:10,017 keymap has been changed to 'us', sending updated mappings to the server
2018-12-06 16:00:10,475 sound output using 'opus' audio codec

==========

Following lines are output intermittently - thought they ma help...

2018-12-06 16:02:49,299 Warning: long timer waiting time,
2018-12-06 16:02:49,299  UI thread polling waited 4.9 seconds longer than intended (5.4 vs 0.5)
2018-12-06 16:02:53,187 Warning: long timer waiting time,
2018-12-06 16:02:53,188  UI thread polling waited 3.4 seconds longer than intended (3.9 vs 0.5)
2018-12-06 16:02:55,023 Warning: long timer waiting time,
2018-12-06 16:02:55,024  UI thread polling waited 1.3 seconds longer than intended (1.8 vs 0.5)
2018-12-06 16:02:57,525 Warning: long timer waiting time,
2018-12-06 16:02:57,525  UI thread polling waited 2.0 seconds longer than intended (2.5 vs 0.5)
2018-12-06 16:02:58,840 UI thread is now blocked
2018-12-06 16:02:58,841 UI thread is running again, resuming
2018-12-06 16:03:54,484 Warning: long timer waiting time,
2018-12-06 16:03:54,485  UI thread polling waited 10.0 seconds longer than intended (10.5 vs 0.5)
2018-12-06 16:04:04,487 Warning: long timer waiting time,
2018-12-06 16:04:04,487  UI thread polling waited 9.5 seconds longer than intended (10.0 vs 0.5)
2018-12-06 16:04:14,587 Warning: long timer waiting time,
2018-12-06 16:04:14,587  UI thread polling waited 9.6 seconds longer than intended (10.1 vs 0.5)
2018-12-06 16:04:21,751 Warning: long timer waiting time,
2018-12-06 16:04:21,751  UI thread polling waited 6.7 seconds longer than intended (7.2 vs 0.5)
2018-12-06 16:04:25,419 Warning: long timer waiting time,
2018-12-06 16:04:25,419  UI thread polling waited 3.2 seconds longer than intended (3.7 vs 0.5)
2018-12-06 16:04:26,870 UI thread is now blocked
2018-12-06 16:04:26,872 UI thread is running again, resuming
2018-12-06 16:05:28,590 UI thread is now blocked
2018-12-06 16:05:39,475 UI thread is running again, resuming

Thu, 06 Dec 2018 21:15:58 GMT - Antoine Martin:

Following is the client output with suggested arguments:

Are you sure that -d menu was specified? None of the menu debug output is present. Please show the full command line that you used (obfuscated if necessary).

Following lines are output intermittently - thought they ma help...

This is a known issue with GTK, nothing to worry about.


Thu, 06 Dec 2018 22:11:43 GMT - maverick:

Replying to Antoine Martin:

Following is the client output with suggested arguments:

Are you sure that -d menu was specified?

Looks like I did not :-(

None of the menu debug output is present.

My sincere apologies. Here is the (hopefully) correct output:

=========

2018-12-06 17:04:13.837 Xpra[16130:3097715] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
2018-12-06 17:04:14,275 OSXMenuHelper(None)
2018-12-06 17:04:14,275 OSXMenuHelper.build_dock_menu()
2018-12-06 17:04:14,283 get_image(information.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x115e85140 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:14,284 OSXMenuHelper.rebuild()
2018-12-06 17:04:14,284 OSXMenuHelper.build()
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
  osxapp.set_menu_bar(mh.rebuild())
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/gui.py:98: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
  osxapp.set_menu_bar(mh.rebuild())
2018-12-06 17:04:14,391 Xpra gtk2 client version 2.4.2-r21077 64-bit
2018-12-06 17:04:14,392  running on Mac OS X 10.14.1
2018-12-06 17:04:14,996 GStreamer version 1.14.1 for Python 2.7.15 64-bit
2018-12-06 17:04:15,131 OpenGL_accelerate module loaded
2018-12-06 17:04:15,138 Using accelerated ArrayDatatype
2018-12-06 17:04:15,431 OpenGL enabled with AMD Radeon Pro 455 OpenGL Engine
2018-12-06 17:04:15,830 Connected (version 2.0, client OpenSSH_7.6p1)
2018-12-06 17:04:16,810 Authentication (publickey) successful!
2018-12-06 17:04:17,822  keyboard settings: layout=us
2018-12-06 17:04:17,826  desktop size is 1680x1050 with 1 screen:
2018-12-06 17:04:17,826   mymachine.local (592x370 mm - DPI: 72x72) workarea: 1680x1027 at 0x23
2018-12-06 17:04:17,826     monitor 1
2018-12-06 17:04:17,883 OSXMenuHelper.build()
2018-12-06 17:04:17,888 OSXMenuHelper.build()
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: Warning: invalid cast from 'GtkMenuBar' to 'GtkWindow'
  self.macapp.set_menu_bar(self.menu)
/Applications/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/osx_tray.py:89: GtkWarning: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
  self.macapp.set_menu_bar(self.menu)
2018-12-06 17:04:17,889 OSXMenuHelper.add_full_menu()
2018-12-06 17:04:17,889 get_image(statistics.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b33b40 (GdkPixbuf at 0x7fc37b9ec9e0)>
2018-12-06 17:04:17,890 get_image(update.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b33b90 (GdkPixbuf at 0x7fc37b9ecaa0)>
2018-12-06 17:04:17,891 get_image(bugs.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b33be0 (GdkPixbuf at 0x7fc37b9ecb60)>
2018-12-06 17:04:17,893 numlock_toggled((<TrayCheckMenuItem object at 0x129b402d0 (GtkCheckMenuItem at 0x7fc379a5f9b0)>,)) menu active=True
2018-12-06 17:04:17,894 get_image(scaling.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b404b0 (GdkPixbuf at 0x7fc37ba64460)>
2018-12-06 17:04:17,897 get_image(speaker.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b444b0 (GdkPixbuf at 0x7fc37ba64520)>
2018-12-06 17:04:17,898 get_image(microphone.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b446e0 (GdkPixbuf at 0x7fc37ba645e0)>
2018-12-06 17:04:17,899 get_image(retry.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b44910 (GdkPixbuf at 0x7fc37ba646a0)>
2018-12-06 17:04:17,899 get_image(raise.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b44a00 (GdkPixbuf at 0x7fc37ba645e0)>
2018-12-06 17:04:17,900 get_image(shutdown.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b44b90 (GdkPixbuf at 0x7fc37ba64460)>
2018-12-06 17:04:18,971 enabled remote logging
2018-12-06 17:04:18,972 Xpra X11 server version 2.4.2-r21077 64-bit
2018-12-06 17:04:18,972  running on Linux Ubuntu 18.04 bionic
2018-12-06 17:04:18,994 Attached to remote-server:22 via ssh
2018-12-06 17:04:18,994  (press Control-C to detach)
2018-12-06 17:04:18,995 set_sharing_menuitem() client_supports_sharing=False, server_sharing_toggle=True, server_sharing=True
2018-12-06 17:04:18,995 set_lock_menuitem() client_lock=False, server_lock_toggle=True, server lock=True
2018-12-06 17:04:18,995 set_readonly_menuitem() enabled=False
2018-12-06 17:04:18,996 set_bell_menuitem() enabled=True
2018-12-06 17:04:18,996 bell_toggled((<TrayCheckMenuItem object at 0x129b33d70 (GtkCheckMenuItem at 0x7fc37d027b30)>,)) bell_enabled=True
2018-12-06 17:04:18,996 set_notifications_menuitem() enabled=True
2018-12-06 17:04:18,996 notifications_toggled(<TrayCheckMenuItem object at 0x129b33e10 (GtkCheckMenuItem at 0x7fc37d027bf0)>,) active=True changed=False
2018-12-06 17:04:18,997 set_cursors_menuitem() enabled=True
2018-12-06 17:04:18,997 cursors_toggled((<TrayCheckMenuItem object at 0x129b33eb0 (GtkCheckMenuItem at 0x7fc37d027cb0)>,)) cursors_enabled=True
2018-12-06 17:04:18,997 gl_set(()) opengl_enabled=True,
2018-12-06 17:04:18,997 set_keyboard_sync_menuitem() enabled=False
2018-12-06 17:04:18,998 set_swapkeys_menuitem(()) no keyboard!
2018-12-06 17:04:18,998 set_numlock_menuitem(()) no keyboard!
2018-12-06 17:04:18,999 select_clipboard_menu_option(None, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=False
2018-12-06 17:04:18,999 clipboard_option_changed(<TrayCheckMenuItem object at 0x129b40be0 (GtkCheckMenuItem at 0x7fc379995a60)>) label=Clipboard, callback=<bound method OSXMenuHelper._remote_clipboard_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:18,999 _remote_clipboard_changed(<TrayCheckMenuItem object at 0x129b40be0 (GtkCheckMenuItem at 0x7fc379995a60)>, Clipboard) clipboard_change_pending=True
2018-12-06 17:04:19,000 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x129b40be0 (GtkCheckMenuItem at 0x7fc379995a60)>, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=True
2018-12-06 17:04:19,000 direction(both)=Both directions
2018-12-06 17:04:19,000 select_clipboard_menu_option(None, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=False
2018-12-06 17:04:19,001 clipboard_option_changed(<TrayCheckMenuItem object at 0x129b44140 (GtkCheckMenuItem at 0x7fc379995e20)>) label=Both directions, callback=<bound method OSXMenuHelper._clipboard_direction_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:19,001 _clipboard_direction_changed(<TrayCheckMenuItem object at 0x129b44140 (GtkCheckMenuItem at 0x7fc379995e20)>, Both directions) clipboard_change_pending=True
2018-12-06 17:04:19,001 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x129b44140 (GtkCheckMenuItem at 0x7fc379995e20)>, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=True
2018-12-06 17:04:19,003 populate_encodingsmenu(..) encoding=auto, current=auto, active=True
2018-12-06 17:04:19,003 populate_encodingsmenu(..) encoding=h264, current=auto, active=False
2018-12-06 17:04:19,004 populate_encodingsmenu(..) encoding=vp9, current=auto, active=False
2018-12-06 17:04:19,005 populate_encodingsmenu(..) encoding=vp8, current=auto, active=False
2018-12-06 17:04:19,005 populate_encodingsmenu(..) encoding=mpeg4, current=auto, active=False
2018-12-06 17:04:19,006 populate_encodingsmenu(..) encoding=png, current=auto, active=False
2018-12-06 17:04:19,006 populate_encodingsmenu(..) encoding=png/P, current=auto, active=False
2018-12-06 17:04:19,007 populate_encodingsmenu(..) encoding=png/L, current=auto, active=False
2018-12-06 17:04:19,008 populate_encodingsmenu(..) encoding=webp, current=auto, active=False
2018-12-06 17:04:19,008 populate_encodingsmenu(..) encoding=rgb, current=auto, active=False
2018-12-06 17:04:19,009 populate_encodingsmenu(..) encoding=jpeg, current=auto, active=False
2018-12-06 17:04:19,009 populate_encodingsmenu(..) encoding=h265, current=auto, active=False
2018-12-06 17:04:19,010 enable_shutdown() can_shutdown_server=True
2018-12-06 17:04:19,011 get_image(list.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x11888b690 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:19,013 get_image(upload.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118890050 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:19,260 OSXMenuHelper.rebuild()
2018-12-06 17:04:19,260 OSXMenuHelper.remove_all_menus()
2018-12-06 17:04:19,260 OSXMenuHelper.add_full_menu()
2018-12-06 17:04:19,262 get_image(statistics.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118890690 (GdkPixbuf at 0x7fc37ba645e0)>
2018-12-06 17:04:19,263 get_image(update.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118890690 (GdkPixbuf at 0x7fc37ba645e0)>
2018-12-06 17:04:19,264 get_image(bugs.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x1188906e0 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:19,266 numlock_toggled((<TrayCheckMenuItem object at 0x118890dc0 (GtkCheckMenuItem at 0x7fc37d681550)>,)) menu active=True
2018-12-06 17:04:19,267 get_image(scaling.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118898050 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:19,270 get_image(speaker.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118898e60 (GdkPixbuf at 0x7fc37ba5e400)>
2018-12-06 17:04:19,272 get_image(microphone.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118899230 (GdkPixbuf at 0x7fc37ba5e4c0)>
2018-12-06 17:04:19,273 get_image(retry.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118899460 (GdkPixbuf at 0x7fc37ba5e580)>
2018-12-06 17:04:19,274 get_image(raise.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x1188995f0 (GdkPixbuf at 0x7fc37ba5e640)>
2018-12-06 17:04:19,275 get_image(shutdown.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118899730 (GdkPixbuf at 0x7fc37ba5e700)>
2018-12-06 17:04:19,276 application menu already has a 'SEPARATOR-EXTRAS' entry
2018-12-06 17:04:19,276 application menu already has a 'Server' entry
2018-12-06 17:04:19,277 application menu already has a 'Actions' entry
2018-12-06 17:04:19,278 application menu already has a 'Encoding' entry
2018-12-06 17:04:19,278 application menu already has a 'Sound' entry
2018-12-06 17:04:19,279 application menu already has a 'Clipboard' entry
2018-12-06 17:04:19,280 application menu already has a 'Features' entry
2018-12-06 17:04:19,282 application menu already has a 'Info' entry
2018-12-06 17:04:19,366 update_soundsubmenu_state() is_on=True
2018-12-06 17:04:19,366 update_soundsubmenu_state() is_on=False
2018-12-06 17:04:19,367 enable_servercommands() server-commands-info=True
2018-12-06 17:04:19,367 enable_upload() server_file_transfer=True
2018-12-06 17:04:19,368 set_sharing_menuitem() client_supports_sharing=False, server_sharing_toggle=True, server_sharing=True
2018-12-06 17:04:19,368 set_lock_menuitem() client_lock=False, server_lock_toggle=True, server lock=True
2018-12-06 17:04:19,368 set_readonly_menuitem() enabled=False
2018-12-06 17:04:19,369 set_bell_menuitem() enabled=True
2018-12-06 17:04:19,369 bell_toggled((<TrayCheckMenuItem object at 0x1188908c0 (GtkCheckMenuItem at 0x7fc37d16a700)>,)) bell_enabled=True
2018-12-06 17:04:19,370 set_notifications_menuitem() enabled=True
2018-12-06 17:04:19,370 notifications_toggled(<TrayCheckMenuItem object at 0x118890960 (GtkCheckMenuItem at 0x7fc37d681010)>,) active=True changed=False
2018-12-06 17:04:19,370 set_cursors_menuitem() enabled=True
2018-12-06 17:04:19,370 cursors_toggled((<TrayCheckMenuItem object at 0x118890a00 (GtkCheckMenuItem at 0x7fc37d6810d0)>,)) cursors_enabled=True
2018-12-06 17:04:19,371 gl_set(()) opengl_enabled=True,
2018-12-06 17:04:19,372 set_keyboard_sync_menuitem() enabled=False
2018-12-06 17:04:19,372 set_swapkeys_menuitem(()) no keyboard!
2018-12-06 17:04:19,372 set_numlock_menuitem(()) no keyboard!
2018-12-06 17:04:19,374 select_clipboard_menu_option(None, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=False
2018-12-06 17:04:19,374 clipboard_option_changed(<TrayCheckMenuItem object at 0x118898730 (GtkCheckMenuItem at 0x7fc37d477640)>) label=Clipboard, callback=<bound method OSXMenuHelper._remote_clipboard_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:19,375 _remote_clipboard_changed(<TrayCheckMenuItem object at 0x118898730 (GtkCheckMenuItem at 0x7fc37d477640)>, Clipboard) clipboard_change_pending=True
2018-12-06 17:04:19,375 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x118898730 (GtkCheckMenuItem at 0x7fc37d477640)>, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=True
2018-12-06 17:04:19,375 direction(both)=Both directions
2018-12-06 17:04:19,376 select_clipboard_menu_option(None, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=False
2018-12-06 17:04:19,376 clipboard_option_changed(<TrayCheckMenuItem object at 0x118898be0 (GtkCheckMenuItem at 0x7fc37d478a70)>) label=Both directions, callback=<bound method OSXMenuHelper._clipboard_direction_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:19,377 _clipboard_direction_changed(<TrayCheckMenuItem object at 0x118898be0 (GtkCheckMenuItem at 0x7fc37d478a70)>, Both directions) clipboard_change_pending=True
2018-12-06 17:04:19,377 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x118898be0 (GtkCheckMenuItem at 0x7fc37d478a70)>, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=True
2018-12-06 17:04:19,379 populate_encodingsmenu(..) encoding=auto, current=auto, active=True
2018-12-06 17:04:19,379 populate_encodingsmenu(..) encoding=h264, current=auto, active=False
2018-12-06 17:04:19,380 populate_encodingsmenu(..) encoding=vp9, current=auto, active=False
2018-12-06 17:04:19,380 populate_encodingsmenu(..) encoding=vp8, current=auto, active=False
2018-12-06 17:04:19,381 populate_encodingsmenu(..) encoding=mpeg4, current=auto, active=False
2018-12-06 17:04:19,381 populate_encodingsmenu(..) encoding=png, current=auto, active=False
2018-12-06 17:04:19,381 populate_encodingsmenu(..) encoding=png/P, current=auto, active=False
2018-12-06 17:04:19,382 populate_encodingsmenu(..) encoding=png/L, current=auto, active=False
2018-12-06 17:04:19,382 populate_encodingsmenu(..) encoding=webp, current=auto, active=False
2018-12-06 17:04:19,383 populate_encodingsmenu(..) encoding=rgb, current=auto, active=False
2018-12-06 17:04:19,384 populate_encodingsmenu(..) encoding=jpeg, current=auto, active=False
2018-12-06 17:04:19,384 populate_encodingsmenu(..) encoding=h265, current=auto, active=False
2018-12-06 17:04:19,385 enable_shutdown() can_shutdown_server=True
2018-12-06 17:04:19,386 get_image(list.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b40fa0 (GdkPixbuf at 0x7fc37ba5e640)>
2018-12-06 17:04:19,388 get_image(upload.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b40eb0 (GdkPixbuf at 0x7fc37ba5e4c0)>
2018-12-06 17:04:19,476 OSXMenuHelper.rebuild()
2018-12-06 17:04:19,476 OSXMenuHelper.remove_all_menus()
2018-12-06 17:04:19,477 OSXMenuHelper.add_full_menu()
2018-12-06 17:04:19,478 get_image(statistics.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b40eb0 (GdkPixbuf at 0x7fc37d029300)>
2018-12-06 17:04:19,479 get_image(update.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b40050 (GdkPixbuf at 0x7fc37ba5e640)>
2018-12-06 17:04:19,481 get_image(bugs.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x129b40dc0 (GdkPixbuf at 0x7fc37ba64400)>
2018-12-06 17:04:19,483 numlock_toggled((<TrayCheckMenuItem object at 0x1188999b0 (GtkCheckMenuItem at 0x7fc379995ee0)>,)) menu active=True
2018-12-06 17:04:19,484 get_image(scaling.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118899a50 (GdkPixbuf at 0x7fc37b9eca40)>
2018-12-06 17:04:19,487 get_image(speaker.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x12e6f6460 (GdkPixbuf at 0x7fc37b8936a0)>
2018-12-06 17:04:19,489 get_image(microphone.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x12e6f6550 (GdkPixbuf at 0x7fc37b9ec920)>
2018-12-06 17:04:19,490 get_image(retry.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x12e6f67d0 (GdkPixbuf at 0x7fc37ba69060)>
2018-12-06 17:04:19,491 get_image(raise.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x12e6f6870 (GdkPixbuf at 0x7fc37ba69120)>
2018-12-06 17:04:19,492 get_image(shutdown.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x12e6f6aa0 (GdkPixbuf at 0x7fc37ba691e0)>
2018-12-06 17:04:19,493 application menu already has a 'SEPARATOR-EXTRAS' entry
2018-12-06 17:04:19,493 application menu already has a 'Server' entry
2018-12-06 17:04:19,494 application menu already has a 'Actions' entry
2018-12-06 17:04:19,494 application menu already has a 'Encoding' entry
2018-12-06 17:04:19,495 application menu already has a 'Sound' entry
2018-12-06 17:04:19,496 application menu already has a 'Clipboard' entry
2018-12-06 17:04:19,497 application menu already has a 'Features' entry
2018-12-06 17:04:19,499 application menu already has a 'Info' entry
2018-12-06 17:04:19,515 update_soundsubmenu_state() is_on=True
2018-12-06 17:04:19,516 update_soundsubmenu_state() is_on=False
2018-12-06 17:04:19,516 enable_servercommands() server-commands-info=True
2018-12-06 17:04:19,516 enable_upload() server_file_transfer=True
2018-12-06 17:04:19,518 set_sharing_menuitem() client_supports_sharing=False, server_sharing_toggle=True, server_sharing=True
2018-12-06 17:04:19,518 set_lock_menuitem() client_lock=False, server_lock_toggle=True, server lock=True
2018-12-06 17:04:19,518 set_readonly_menuitem() enabled=False
2018-12-06 17:04:19,519 set_bell_menuitem() enabled=True
2018-12-06 17:04:19,519 bell_toggled((<TrayCheckMenuItem object at 0x129b446e0 (GtkCheckMenuItem at 0x7fc37d027a70)>,)) bell_enabled=True
2018-12-06 17:04:19,519 set_notifications_menuitem() enabled=True
2018-12-06 17:04:19,519 notifications_toggled(<TrayCheckMenuItem object at 0x129b444b0 (GtkCheckMenuItem at 0x7fc37d0279b0)>,) active=True changed=False
2018-12-06 17:04:19,520 set_cursors_menuitem() enabled=True
2018-12-06 17:04:19,520 cursors_toggled((<TrayCheckMenuItem object at 0x129b44a00 (GtkCheckMenuItem at 0x7fc37d478bf0)>,)) cursors_enabled=True
2018-12-06 17:04:19,520 gl_set(()) opengl_enabled=True,
2018-12-06 17:04:19,521 set_keyboard_sync_menuitem() enabled=False
2018-12-06 17:04:19,521 set_swapkeys_menuitem(()) no keyboard!
2018-12-06 17:04:19,521 set_numlock_menuitem(()) no keyboard!
2018-12-06 17:04:19,522 select_clipboard_menu_option(None, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=False
2018-12-06 17:04:19,522 clipboard_option_changed(<TrayCheckMenuItem object at 0x118899e10 (GtkCheckMenuItem at 0x7fc37a374320)>) label=Clipboard, callback=<bound method OSXMenuHelper._remote_clipboard_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:19,522 _remote_clipboard_changed(<TrayCheckMenuItem object at 0x118899e10 (GtkCheckMenuItem at 0x7fc37a374320)>, Clipboard) clipboard_change_pending=True
2018-12-06 17:04:19,522 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x118899e10 (GtkCheckMenuItem at 0x7fc37a374320)>, Clipboard, ['Clipboard', 'Primary', 'Secondary']) clipboard_change_pending=True
2018-12-06 17:04:19,523 direction(both)=Both directions
2018-12-06 17:04:19,523 select_clipboard_menu_option(None, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=False
2018-12-06 17:04:19,523 clipboard_option_changed(<TrayCheckMenuItem object at 0x12e6f61e0 (GtkCheckMenuItem at 0x7fc37a3746e0)>) label=Both directions, callback=<bound method OSXMenuHelper._clipboard_direction_changed of <xpra.platform.darwin.osx_menu.OSXMenuHelper object at 0x115bea390>> clipboard_change_pending=True
2018-12-06 17:04:19,523 _clipboard_direction_changed(<TrayCheckMenuItem object at 0x12e6f61e0 (GtkCheckMenuItem at 0x7fc37a3746e0)>, Both directions) clipboard_change_pending=True
2018-12-06 17:04:19,524 select_clipboard_menu_option(<TrayCheckMenuItem object at 0x12e6f61e0 (GtkCheckMenuItem at 0x7fc37a3746e0)>, Both directions, ['Client to server only', 'Server to client only', 'Both directions', 'Disabled']) clipboard_change_pending=True
2018-12-06 17:04:19,525 populate_encodingsmenu(..) encoding=auto, current=auto, active=True
2018-12-06 17:04:19,526 populate_encodingsmenu(..) encoding=h264, current=auto, active=False
2018-12-06 17:04:19,526 populate_encodingsmenu(..) encoding=vp9, current=auto, active=False
2018-12-06 17:04:19,527 populate_encodingsmenu(..) encoding=vp8, current=auto, active=False
2018-12-06 17:04:19,528 populate_encodingsmenu(..) encoding=mpeg4, current=auto, active=False
2018-12-06 17:04:19,528 populate_encodingsmenu(..) encoding=png, current=auto, active=False
2018-12-06 17:04:19,528 populate_encodingsmenu(..) encoding=png/P, current=auto, active=False
2018-12-06 17:04:19,529 populate_encodingsmenu(..) encoding=png/L, current=auto, active=False
2018-12-06 17:04:19,530 populate_encodingsmenu(..) encoding=webp, current=auto, active=False
2018-12-06 17:04:19,530 populate_encodingsmenu(..) encoding=rgb, current=auto, active=False
2018-12-06 17:04:19,531 populate_encodingsmenu(..) encoding=jpeg, current=auto, active=False
2018-12-06 17:04:19,532 populate_encodingsmenu(..) encoding=h265, current=auto, active=False
2018-12-06 17:04:19,532 enable_shutdown() can_shutdown_server=True
2018-12-06 17:04:19,534 get_image(list.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118890050 (GdkPixbuf at 0x7fc37d029060)>
2018-12-06 17:04:19,536 get_image(upload.png, 16) pixbuf=<gtk.gdk.Pixbuf object at 0x118890690 (GdkPixbuf at 0x7fc37ba5e5e0)>
2018-12-06 17:04:19,539 update_soundsubmenu_state() is_on=True
2018-12-06 17:04:19,539 update_soundsubmenu_state() is_on=False
2018-12-06 17:04:19,539 enable_servercommands() server-commands-info=True
2018-12-06 17:04:19,540 enable_upload() server_file_transfer=True
2018-12-06 17:04:19,697 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:19,697 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:19,698 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:20,202 sound output using 'opus' audio codec
2018-12-06 17:04:23,121 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:23,121 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:23,122 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:23,122 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:23,123 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:04:23,123 update_soundsubmenu_state(gtk2.client,) is_on=True
2018-12-06 17:05:12,891 Warning: long timer waiting time,
2018-12-06 17:05:12,892  UI thread polling waited 9.7 seconds longer than intended (10.2 vs 0.5)
2018-12-06 17:05:22,894 Warning: long timer waiting time,
2018-12-06 17:05:22,894  UI thread polling waited 9.5 seconds longer than intended (10.0 vs 0.5)
2018-12-06 17:05:30,282 Warning: long timer waiting time,
2018-12-06 17:05:30,283  UI thread polling waited 6.9 seconds longer than intended (7.4 vs 0.5)

Thu, 06 Dec 2018 22:23:10 GMT - Antoine Martin: owner, status changed

Looks like it thinks that there is no keyboard support, which is why the menu entry is disabled:

2018-12-06 17:04:18,998 set_swapkeys_menuitem(()) no keyboard!

Lemme fix that.


Thu, 06 Dec 2018 23:06:01 GMT - Antoine Martin: owner, status changed

Done: fixed in r21183.

You can find a beta 2.5 build with this fix here: https://xpra.org/beta/osx


Fri, 07 Dec 2018 03:10:04 GMT - maverick:

Replying to Antoine Martin:

Done: fixed in r21183.

You can find a beta 2.5 build with this fix here: https://xpra.org/beta/osx

Thanks for the quick turn around. Really appreciate it.

I can confirm that this version fixes the greyed out swap key option in the menu.

W.r.t slow refresh, is the recommendation to use XPRA_ALPHA=0? Is there anything that I can try or provide a log of? Also, I notice you suggested that I use Python3 package. I do not see a r21184 version of Python3 package.


Fri, 07 Dec 2018 13:55:45 GMT - maverick: attachment set

Screenshot showing partially repainted xfce4-terminal window


Fri, 07 Dec 2018 13:57:15 GMT - maverick:

Replying to Antoine Martin:

Can you attach a screenshot?

I attached a screenshot. Hope that helps.


Fri, 07 Dec 2018 15:18:17 GMT - maverick: owner changed


Fri, 07 Dec 2018 17:34:14 GMT - Antoine Martin: owner, description changed

W.r.t slow refresh, is the recommendation to use XPRA_ALPHA=0?

No, turning off alpha only prevents the repaint problems with transparency.

The slowness could be explained by a VTE "feature" if xfce4-terminal also uses it, see ticket:2049#comment:5.

Is there anything that I can try or provide a log of?

See the ticket link above, this could help to confirm that the slowness problem is caused by VTE.

Also, I notice you suggested that I use Python3 package. I do not see a r21184 version of Python3 package.

There is now a GTK3 build too. Worth a try.


Mon, 10 Dec 2018 18:23:02 GMT - maverick:

It appears that turning off Features -> OpenGL in the MacOS client has minimized the slow repaint.


Mon, 10 Dec 2018 19:07:31 GMT - Antoine Martin:

It appears that turning off Features -> OpenGL in the MacOS client has minimized the slow repaint.

That's unexpected. The opengl backend is supposed to be much quicker than plain GTK, even on a low power GPU. The only recent change that could have caused a performance regression is r20541. You could try any builds older than that date: 09/28/18 16:29:02 (2 months ago).


Tue, 11 Dec 2018 03:10:23 GMT - maverick:

Replying to Antoine Martin:

It appears that turning off Features -> OpenGL in the MacOS client has minimized the slow repaint.

That's unexpected.

I guess I was a bit too hopeful - a bit too soon :-) It does not make any difference.

Additionally, if adds anything, the speed of network does not seem to have any bearing on this behavior.

The opengl backend is supposed to be much quicker than plain GTK, even on a low power GPU. The only recent change that could have caused a performance regression is r20541. You could try any builds older than that date: 09/28/18 16:29:02 (2 months ago).

I tried Xpra 2.4 r20510 (2018-09-23). I experience the same behavior of patchy repaint of xfce4-terminal. gnome-terminal also exhibits the same issue.


Tue, 11 Dec 2018 13:26:20 GMT - maverick: owner changed


Tue, 11 Dec 2018 17:26:19 GMT - Antoine Martin: owner changed

(...) I experience the same behavior of patchy repaint of xfce4-terminal. gnome-terminal also exhibits the same issue.

FWIW: trying the older builds was for the potential opengl performance regression issue, not "patchy repaint" issues.

Try posting the server's debug log with -d bandwidth,stats added to the command line.


Sat, 19 Jan 2019 17:21:45 GMT - Antoine Martin: status changed; resolution set


Sat, 23 Jan 2021 05:41:24 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2070