#2602 closed enhancement (fixed)
disable desktop animations in desktop mode
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | critical | Milestone: | 4.0 |
Component: | server | Version: | 3.0.x |
Keywords: | Cc: | stdedos@… |
Description
As per GNOME Shell + Mutter See Changes For Tracking Software Rendering, VNC To Toggle Animations
Looks like a desktop specific dbus API, without any documentation that I could find.
Change History (6)
comment:1 Changed 14 months ago by
Cc: | stdedos@… added |
---|
comment:2 Changed 11 months ago by
Priority: | major → critical |
---|---|
Status: | new → assigned |
comment:3 Changed 11 months ago by
Milestone: | 4.1 → 4.0 |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Implemented in r26293.
Problem is that we can't enable this new code by default because Gio.Settings
can very easily segfault the whole process:
$ python3 -c "from gi.repository import Gio;Gio.Settings.new('hello')" (process:490782): GLib-GIO-ERROR **: 18:19:01.514: Settings schema 'hello' is not installed Trace/breakpoint trap (core dumped)
So for now, this needs to be enabled using:
XPRA_MODIFY_GSETTINGS=1 xpra start ...
(gdb) bt #0 0x00007fffea5817b5 in _g_log_abort () at /lib64/libglib-2.0.so.0 #1 0x00007fffea582839 in g_log_default_handler () at /lib64/libglib-2.0.so.0 #2 0x00007fffea582a6b in g_logv () at /lib64/libglib-2.0.so.0 #3 0x00007fffea582c53 in g_log () at /lib64/libglib-2.0.so.0 #4 0x00007fffea32d3d9 in g_settings_set_property () at /lib64/libgio-2.0.so.0 #5 0x00007fffea4ad751 in g_object_new_internal () at /lib64/libgobject-2.0.so.0 #6 0x00007fffea4af338 in g_object_new_valist () at /lib64/libgobject-2.0.so.0 #7 0x00007fffea4af68d in g_object_new () at /lib64/libgobject-2.0.so.0 #8 0x00007fffea48faa8 in ffi_call_unix64 () at /lib64/libffi.so.6 #9 0x00007fffea48f2a4 in ffi_call () at /lib64/libffi.so.6 #10 0x00007fffea6b9c35 in pygi_invoke_c_callable (function_cache=function_cache@entry=0x555555709f50, state=state@entry=0x7fffffffcfd0, py_args=py_args@entry=('hello',), py_kwargs=py_kwargs@entry=0x0) at ../gi/pygi-invoke.c:690 #11 0x00007fffea6bb5e8 in _function_cache_invoke_real (py_kwargs=0x0, py_args=('hello',), state=0x7fffffffcfd0, function_cache=0x555555709f50) at ../gi/pygi-cache.c:930 #12 _constructor_cache_invoke_real (function_cache=0x555555709f50, state=0x7fffffffcfd0, py_args=('hello',), py_kwargs=0x0) at ../gi/pygi-cache.c:930 #13 0x00007fffea6bb76c in pygi_function_cache_invoke (function_cache=<optimized out>, py_args=<optimized out>, py_kwargs=<optimized out>) at ../gi/pygi-cache.c:863 #14 0x00007fffea6ba389 in pygi_callable_info_invoke (user_data=0x0, cache=<optimized out>, kwargs=<optimized out>, py_args=<optimized out>, info=<optimized out>) at ../gi/pygi-invoke.c:770 #15 _wrap_g_callable_info_invoke (self=<optimized out>, py_args=<optimized out>, kwargs=<optimized out>) at ../gi/pygi-invoke.c:770 #16 0x00007ffff7d61f6c in _Py_CheckRecursionLimit () at /lib64/libpython3.7m.so.1.0 #17 0x00007fffea85c710 in () #18 0x00007fffea7e12f0 in () #19 0x00007fffea6ac380 in _function_info_call () at ../gi/pygi-info.c:567 #20 0x0000000000000000 in ()
This needs to be reported upstream..
comment:4 Changed 11 months ago by
I know it's extra hustle for an upstream bug, but can't you do it in the same way as OpenGL probing is done (i.e. with a new process doing it and let it crash instead)? 😕
comment:5 Changed 11 months ago by
can't you do it in the same way as OpenGL probing is done
Better solution: r26294.
comment:6 Changed 3 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2602
Now instead it's part of the
org.gnome.Mutter.ScreenCast/RemoteDestop
API to allow any remote desktop or screen cast application to inhibit animations while its session is active.Merged by Jonas Ådahl 2 months ago
, yet I can't see this API as a dbus interface or gsettings, even on Fedora 32 with mutter 3.36.1, so I've asked: how to use.Meanwhile:
And this toggles it:
The only problem is that
gsettings
are global for the user and not per-session, and so this will affect other sessions until we reset it on exit.Not a huge problem anyway since most desktop environments don't deal well with having multiple sessions for the same user simultaneously.