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.
|
if the profile is called 4chan.
|
||||||
Create a directory of such example scripts, including 4chan webm one.
|
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).
|
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 <signal.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <limits.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define PIPE_READ 0
|
#define PIPE_READ 0
|
||||||
@@ -31,6 +32,14 @@ namespace gsr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool GlobalHotkeysLinux::start() {
|
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)
|
if(process_id > 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -51,8 +60,14 @@ namespace gsr {
|
|||||||
close(pipes[i]);
|
close(pipes[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *args[] = { "gsr-global-hotkeys", NULL };
|
if(inside_flatpak) {
|
||||||
execvp(args[0], (char* const*)args);
|
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");
|
perror("execvp");
|
||||||
_exit(127);
|
_exit(127);
|
||||||
} else { /* parent */
|
} else { /* parent */
|
||||||
|
|||||||
@@ -177,12 +177,13 @@ int main(int argc, char **argv) {
|
|||||||
if(argc == 1) {
|
if(argc == 1) {
|
||||||
launch_action = LaunchAction::LAUNCH_HIDE;
|
launch_action = LaunchAction::LAUNCH_HIDE;
|
||||||
} else if(argc == 2) {
|
} 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;
|
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;
|
launch_action = LaunchAction::LAUNCH_HIDE;
|
||||||
} else {
|
} 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();
|
usage();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user