mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-03-31 09:17:04 +09:00
Use flatpak specific path for gsr-global-hotkeys
This commit is contained in:
2
TODO
2
TODO
@@ -66,7 +66,7 @@ Make save-video-in-game-folder.sh and notify-saved-name.sh run ~/.config/gpu-scr
|
||||
if the profile is called 4chan.
|
||||
Create a directory of such example scripts, including 4chan webm one.
|
||||
|
||||
On nvidia check if suspend fix is applied. If not, show a popup asking the user to apply it (and apply it automatically). This is a requirement before this package is made to a flatpak.
|
||||
On nvidia check if suspend fix is applied. If not, show a popup asking the user to apply it (and apply it automatically).
|
||||
|
||||
Show warning when using steam deck or when trying to capture hevc/av1 on amd (the same warnings as gpu screen recorder gtk).
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <signal.h>
|
||||
#include <sys/wait.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
|
||||
#define PIPE_READ 0
|
||||
@@ -31,6 +32,14 @@ namespace gsr {
|
||||
}
|
||||
|
||||
bool GlobalHotkeysLinux::start() {
|
||||
const bool inside_flatpak = getenv("FLATPAK_ID") != NULL;
|
||||
const char *user_homepath = getenv("HOME");
|
||||
if(!user_homepath)
|
||||
user_homepath = "/tmp";
|
||||
|
||||
char gsr_global_hotkeys_flatpak[PATH_MAX];
|
||||
snprintf(gsr_global_hotkeys_flatpak, sizeof(gsr_global_hotkeys_flatpak), "%s/.local/share/gpu-screen-recorder/gsr-global-hotkeys", user_homepath);
|
||||
|
||||
if(process_id > 0)
|
||||
return false;
|
||||
|
||||
@@ -51,8 +60,14 @@ namespace gsr {
|
||||
close(pipes[i]);
|
||||
}
|
||||
|
||||
const char *args[] = { "gsr-global-hotkeys", NULL };
|
||||
execvp(args[0], (char* const*)args);
|
||||
if(inside_flatpak) {
|
||||
const char *args[] = { "flatpak-spawn", "--host", "--", gsr_global_hotkeys_flatpak, NULL };
|
||||
execvp(args[0], (char* const*)args);
|
||||
} else {
|
||||
const char *args[] = { "gsr-global-hotkeys", NULL };
|
||||
execvp(args[0], (char* const*)args);
|
||||
}
|
||||
|
||||
perror("execvp");
|
||||
_exit(127);
|
||||
} else { /* parent */
|
||||
|
||||
@@ -177,12 +177,13 @@ int main(int argc, char **argv) {
|
||||
if(argc == 1) {
|
||||
launch_action = LaunchAction::LAUNCH_HIDE;
|
||||
} else if(argc == 2) {
|
||||
if(strcmp(argv[1], "launch-show") == 0) {
|
||||
const char *launch_action_opt = argv[1];
|
||||
if(strcmp(launch_action_opt, "launch-show") == 0) {
|
||||
launch_action = LaunchAction::LAUNCH_SHOW;
|
||||
} else if(strcmp(argv[1], "launch-hide") == 0) {
|
||||
} else if(strcmp(launch_action_opt, "launch-hide") == 0) {
|
||||
launch_action = LaunchAction::LAUNCH_HIDE;
|
||||
} else {
|
||||
printf("error: invalid action \"%s\", expected \"launch-show\" or \"launch-hide\".\n", argv[1]);
|
||||
printf("error: invalid action \"%s\", expected \"launch-show\" or \"launch-hide\".\n", launch_action_opt);
|
||||
usage();
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user