From b865f5cae3c503be65ce55b58fae09589cff3b0f Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 29 Dec 2024 19:29:27 +0100 Subject: Change name of flatpak systemd service --- src/gui/GlobalSettingsPage.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/gui/GlobalSettingsPage.cpp') diff --git a/src/gui/GlobalSettingsPage.cpp b/src/gui/GlobalSettingsPage.cpp index 7e79c16..04c2874 100644 --- a/src/gui/GlobalSettingsPage.cpp +++ b/src/gui/GlobalSettingsPage.cpp @@ -75,9 +75,17 @@ namespace gsr { else return; - const char *args[] = { "systemctl", enable ? "enable" : "disable", "--user", "gpu-screen-recorder-ui", nullptr }; std::string stdout_str; - const int exit_status = exec_program_on_host_get_stdout(args, stdout_str); + int exit_status = 0; + const bool inside_flatpak = getenv("FLATPAK_ID") != NULL; + if(inside_flatpak) { + const char *args[] = { "flatpak-spawn", "--host", "--", "systemctl", enable ? "enable" : "disable", "--user", "gpu-screen-recorder-ui-flatpak", nullptr }; + exit_status = exec_program_get_stdout(args, stdout_str); + } else { + const char *args[] = { "systemctl", enable ? "enable" : "disable", "--user", "gpu-screen-recorder-ui", nullptr }; + exit_status = exec_program_get_stdout(args, stdout_str); + } + if(on_startup_changed) on_startup_changed(enable, exit_status); }; @@ -107,9 +115,17 @@ namespace gsr { else tint_color_radio_button_ptr->set_selected_item(config.main_config.tint_color); - const char *args[] = { "systemctl", "is-enabled", "--quiet", "--user", "gpu-screen-recorder-ui", nullptr }; std::string stdout_str; - const int exit_status = exec_program_on_host_get_stdout(args, stdout_str); + int exit_status = 0; + const bool inside_flatpak = getenv("FLATPAK_ID") != NULL; + if(inside_flatpak) { + const char *args[] = { "flatpak-spawn", "--host", "--", "systemctl", "is-enabled", "--quiet", "--user", "gpu-screen-recorder-ui", nullptr }; + exit_status = exec_program_get_stdout(args, stdout_str); + } else { + const char *args[] = { "systemctl", "is-enabled", "--quiet", "--user", "gpu-screen-recorder-ui", nullptr }; + exit_status = exec_program_get_stdout(args, stdout_str); + } + startup_radio_button_ptr->set_selected_item(exit_status == 0 ? "start_on_system_startup" : "dont_start_on_system_startup", false, false); } -- cgit v1.2.3