diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-05-10 21:51:14 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-05-10 21:51:14 +0200 |
commit | 085d4632d26d09070c3e80a2fc03fd283b9d3e19 (patch) | |
tree | bd9ec525c41fb6a4c6436cc5042201bd3bac7271 | |
parent | 39503de742c699a9a3f76c65697e199845045f66 (diff) |
Show warning for missing capability
-rw-r--r-- | dbus/client/dbus_client.h | 2 | ||||
-rw-r--r-- | src/egl.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/dbus/client/dbus_client.h b/dbus/client/dbus_client.h index c9e8182..98a1ecf 100644 --- a/dbus/client/dbus_client.h +++ b/dbus/client/dbus_client.h @@ -2,7 +2,7 @@ #define GSR_DBUS_CLIENT_H /* - Using a client-server architecture is needed for dbus because cap_sys_nice doesn't work with desktop portal. + Using a client-server architecture is needed for dbus because cap_sys_nice breaks desktop portal. The main binary has cap_sys_nice and we launch a new child-process without it which uses uses desktop portal. */ @@ -39,6 +39,12 @@ static void reset_cap_nice(void) { if(!caps) return; + cap_flag_value_t cap_sys_nice_value = CAP_CLEAR; + cap_get_flag(caps, CAP_SYS_NICE, CAP_EFFECTIVE, &cap_sys_nice_value); + if(cap_sys_nice_value == CAP_CLEAR) { + fprintf(stderr, "gsr warning: cap_sys_nice capability is missing on the gpu-screen-recorder binary, performance might be affected. If you are using the flatpak version of gpu-screen-recorder then the only fix is to use a non-flatpak version of gpu-screen-recorder\n"); + } + const cap_value_t cap_to_remove = CAP_SYS_NICE; cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap_to_remove, CAP_CLEAR); cap_set_flag(caps, CAP_PERMITTED, 1, &cap_to_remove, CAP_CLEAR); |