Show warning for missing capability

This commit is contained in:
dec05eba
2025-05-10 21:51:14 +02:00
parent 39503de742
commit 085d4632d2
2 changed files with 7 additions and 1 deletions

View File

@@ -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.
*/

View File

@@ -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);