Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gpu-screen-recorder-gtk for 
openSUSE:Factory checked in at 2025-01-27 20:54:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk (Old)
 and      /work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.2316 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpu-screen-recorder-gtk"

Mon Jan 27 20:54:53 2025 rev:14 rq:1240414 version:20250126

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gpu-screen-recorder-gtk/gpu-screen-recorder-gtk.changes
  2025-01-21 21:11:01.304331163 +0100
+++ 
/work/SRC/openSUSE:Factory/.gpu-screen-recorder-gtk.new.2316/gpu-screen-recorder-gtk.changes
        2025-01-27 20:55:34.931445049 +0100
@@ -1,0 +2,10 @@
+Sun Jan 26 21:54:57 UTC 2025 - mantari...@pm.me
+
+- Update to version 20250126:
+  * Fix hotkeys not working on some keyboards (usually laptops)
+  * Make hotkeys configurable, fix hotkey keyboard layout issues
+    and add option to save replay with (ps4) controller
+  * Make notification smoother on wayland and other wayland fixes
+  * Improve startup time (fixes key getting grabbed for too long)
+
+-------------------------------------------------------------------

Old:
----
  gpu-screen-recorder-gtk-20250118.tar.zst

New:
----
  gpu-screen-recorder-gtk-20250126.tar.zst

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpu-screen-recorder-gtk.spec ++++++
--- /var/tmp/diff_new_pack.BJQR8T/_old  2025-01-27 20:55:35.687476209 +0100
+++ /var/tmp/diff_new_pack.BJQR8T/_new  2025-01-27 20:55:35.691476374 +0100
@@ -19,7 +19,7 @@
 %bcond_with test
 %define appid   com.dec05eba.gpu_screen_recorder
 Name:           gpu-screen-recorder-gtk
-Version:        20250118
+Version:        20250126
 Release:        0
 Summary:        GTK frontend for GPU Screen Recorder
 License:        GPL-3.0-only

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.BJQR8T/_old  2025-01-27 20:55:35.723477693 +0100
+++ /var/tmp/diff_new_pack.BJQR8T/_new  2025-01-27 20:55:35.727477858 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://repo.dec05eba.com/gpu-screen-recorder-gtk.git</param>
-              <param 
name="changesrevision">04aa90e45bcf8d7689291dfc8300b4a1ddcb7b40</param></service></servicedata>
+              <param 
name="changesrevision">219b6f0c6983e7e98b17ab0da3ed2729181fce8d</param></service></servicedata>
 (No newline at EOF)
 

++++++ gpu-screen-recorder-gtk-20250118.tar.zst -> 
gpu-screen-recorder-gtk-20250126.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gpu-screen-recorder-gtk-20250118/com.dec05eba.gpu_screen_recorder.appdata.xml
 
new/gpu-screen-recorder-gtk-20250126/com.dec05eba.gpu_screen_recorder.appdata.xml
--- 
old/gpu-screen-recorder-gtk-20250118/com.dec05eba.gpu_screen_recorder.appdata.xml
   2025-01-18 22:22:07.000000000 +0100
+++ 
new/gpu-screen-recorder-gtk-20250126/com.dec05eba.gpu_screen_recorder.appdata.xml
   2025-01-26 11:54:55.000000000 +0100
@@ -93,6 +93,29 @@
     </screenshots>
 
     <releases>
+        <release version="5.1.2" date="2025-01-26">
+            <description>
+                <ul>
+                    <li>Fix hotkeys not working on some keyboards (usually 
laptops)</li>
+                </ul>
+            </description>
+        </release>
+        <release version="5.1.1" date="2025-01-25">
+            <description>
+                <ul>
+                    <li>Fix microphone volume being low when merging audio 
devices (don't normalize audio)</li>
+                </ul>
+            </description>
+        </release>
+        <release version="5.1.0" date="2025-01-24">
+            <description>
+                <ul>
+                    <li>Make hotkeys configurable, fix hotkey keyboard layout 
issues and add option to save replay with (ps4) controller</li>
+                    <li>Make notification smoother on wayland and other 
wayland fixes</li>
+                    <li>Improve startup time (fixes key getting grabbed for 
too long)</li>
+                </ul>
+            </description>
+        </release>
         <release version="5.0.10" date="2025-01-18">
             <description>
                 <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20250118/meson.build 
new/gpu-screen-recorder-gtk-20250126/meson.build
--- old/gpu-screen-recorder-gtk-20250118/meson.build    2025-01-18 
22:22:07.000000000 +0100
+++ new/gpu-screen-recorder-gtk-20250126/meson.build    2025-01-26 
11:54:55.000000000 +0100
@@ -1,4 +1,4 @@
-project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '5.0.10', 
default_options : ['warning_level=2'])
+project('gpu-screen-recorder-gtk', ['c', 'cpp'], version : '5.1.2', 
default_options : ['warning_level=2'])
 
 add_project_arguments('-Wshadow', language : ['c', 'cpp'])
 if get_option('buildtype') == 'debug'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20250118/project.conf 
new/gpu-screen-recorder-gtk-20250126/project.conf
--- old/gpu-screen-recorder-gtk-20250118/project.conf   2025-01-18 
22:22:07.000000000 +0100
+++ new/gpu-screen-recorder-gtk-20250126/project.conf   2025-01-26 
11:54:55.000000000 +0100
@@ -1,7 +1,7 @@
 [package]
 name = "gpu-screen-recorder-gtk"
 type = "executable"
-version = "5.0.10"
+version = "5.1.2"
 platforms = ["posix"]
 
 [config]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20250118/src/config.hpp 
new/gpu-screen-recorder-gtk-20250126/src/config.hpp
--- old/gpu-screen-recorder-gtk-20250118/src/config.hpp 2025-01-18 
22:22:07.000000000 +0100
+++ new/gpu-screen-recorder-gtk-20250126/src/config.hpp 2025-01-26 
11:54:55.000000000 +0100
@@ -50,6 +50,7 @@
     bool restore_portal_session = true;
     bool use_new_ui = false;
     int32_t installed_gsr_global_hotkeys_version = 0;
+    bool kbd_mouse_update_installed = false;
 };
 
 struct YoutubeStreamConfig {
@@ -338,6 +339,7 @@
         {"main.restore_portal_session", {CONFIG_TYPE_BOOL, 
&config.main_config.restore_portal_session}},
         {"main.use_new_ui", {CONFIG_TYPE_BOOL, 
&config.main_config.use_new_ui}},
         {"main.installed_gsr_global_hotkeys_version", {CONFIG_TYPE_I32, 
&config.main_config.installed_gsr_global_hotkeys_version}},
+        {"main.kbd_mouse_update_installed", {CONFIG_TYPE_BOOL, 
&config.main_config.kbd_mouse_update_installed}},
 
         {"streaming.service", {CONFIG_TYPE_STRING, 
&config.streaming_config.streaming_service}},
         {"streaming.youtube.key", {CONFIG_TYPE_STRING, 
&config.streaming_config.youtube.stream_key}},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gpu-screen-recorder-gtk-20250118/src/main.cpp 
new/gpu-screen-recorder-gtk-20250126/src/main.cpp
--- old/gpu-screen-recorder-gtk-20250118/src/main.cpp   2025-01-18 
22:22:07.000000000 +0100
+++ new/gpu-screen-recorder-gtk-20250126/src/main.cpp   2025-01-26 
11:54:55.000000000 +0100
@@ -20,7 +20,7 @@
 #include <vector>
 #include <libayatana-appindicator/app-indicator.h>
 
-#define GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION 3
+#define GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION 4
 
 #ifndef GSR_VERSION
 #define GSR_VERSION "unknown"
@@ -2734,6 +2734,40 @@
     gtk_widget_destroy(dialog);
 }
 
+static bool kms_server_proxy_setup_gsr_ui(const char *msg) {
+    GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, 
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", msg);
+    const gint response = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+
+    switch(response) {
+        case GTK_RESPONSE_YES:
+            break;
+        case GTK_RESPONSE_NO:
+        default: {
+            config.main_config.use_new_ui = false;
+            save_config(config);
+            return false;
+        }
+    }
+
+    const int exit_code = system("flatpak-spawn --host -- 
/var/lib/flatpak/app/com.dec05eba.gpu_screen_recorder/current/active/files/bin/kms-server-proxy
 setup-gsr-ui");
+    if(exit_code != 0) {
+        GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, 
GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Failed to setup the new UI. You either 
cancelled the installation or you don't have pkexec installed and a polkit 
agent running.");
+        gtk_dialog_run(GTK_DIALOG(dialog));
+        gtk_widget_destroy(dialog);
+
+        config.main_config.use_new_ui = false;
+        save_configs();
+        return false;
+    }
+
+    config.main_config.use_new_ui = true;
+    config.main_config.installed_gsr_global_hotkeys_version = 
GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION;
+    config.main_config.kbd_mouse_update_installed = true;
+    save_config(config);
+    return true;
+}
+
 static gboolean on_click_switch_to_new_ui(GtkButton*, gpointer) {
     if(!dpy) {
         GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
@@ -2765,7 +2799,6 @@
     GtkWidget *dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(window), 
GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
         "You are about to try out the new UI, which is a ShadowPlay-like 
fullscreen UI. It runs in the background and you have to show/hide it by 
pressing Left Alt+Z.\n"
         "This new UI is still experimental and you may experience issues 
depending on your system. You can switch back to the old UI at any time by 
opening the UI and clicking on the settings button and clicking on the \"Go 
back to the old UI\" button.\n"
-        "Note that at the moment the flatpak version of the software assumes 
you are using a keyboard with qwerty layout. If you are using another keyboard 
layout then instead of pressing Left Alt+Z you have to press the key that has 
been switched the with Z key.\n"
         "\n"
         "This new UI comes with new features, such as being able to 
automatically launch it on system startup by enabling it in settings, and 
hotkey support on any Wayland compositor.\n"
         "\n"
@@ -2784,39 +2817,19 @@
             return true;
     }
 
-    dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL, 
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
+    const bool kms_server_setup_finished = kms_server_proxy_setup_gsr_ui(
         "The new UI needs root privileges to finish setup to make global 
hotkeys and recording work on any system. The new UI will also be added to 
system startup.\n"
         "\n"
         "Are you sure you want to continue?");
-    response = gtk_dialog_run(GTK_DIALOG(dialog));
-    gtk_widget_destroy(dialog);
-
-    switch(response) {
-        case GTK_RESPONSE_YES:
-            break;
-        case GTK_RESPONSE_NO:
-        default:
-            return true;
-    }
-
-    const int exit_code = system("flatpak-spawn --host -- 
/var/lib/flatpak/app/com.dec05eba.gpu_screen_recorder/current/active/files/bin/kms-server-proxy
 setup-gsr-ui");
-    if(exit_code != 0) {
-        GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
-            "Failed to setup the new UI. You either cancelled the installation 
or you don't have pkexec installed and a polkit agent running.");
-        gtk_dialog_run(GTK_DIALOG(dialog));
-        gtk_widget_destroy(dialog);
+    if(!kms_server_setup_finished)
         return true;
-    }
-
-    config.main_config.use_new_ui = true;
-    config.main_config.installed_gsr_global_hotkeys_version = 
GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION;
-    save_configs();
 
     bool service_install_successful = (system(
         "data_home=$(flatpak-spawn --host -- /bin/sh -c 'echo 
\"${XDG_DATA_HOME:-$HOME/.local/share}\"') && "
         "flatpak-spawn --host -- install -Dm644 
/var/lib/flatpak/app/com.dec05eba.gpu_screen_recorder/current/active/files/share/gpu-screen-recorder/gpu-screen-recorder-ui.service
 \"$data_home/systemd/user/gpu-screen-recorder-ui.service\"") == 0);
     service_install_successful &= (system("flatpak-spawn --host -- systemctl 
--user daemon-reload") == 0);
-    service_install_successful &= (system("flatpak-spawn --host -- systemctl 
enable --now --user gpu-screen-recorder-ui") == 0);
+    service_install_successful &= (system("flatpak-spawn --host -- systemctl 
enable --user gpu-screen-recorder-ui") == 0);
+    service_install_successful &= (system("flatpak-spawn --host -- systemctl 
start --user gpu-screen-recorder-ui") == 0);
     if(!service_install_successful) {
         GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
             "Failed to add GPU Screen Recorder to system startup. If you want 
the new UI to start on system startup then you need to add this command to 
system startup:\n"
@@ -4452,39 +4465,6 @@
     }
 }
 
-static bool kms_server_proxy_setup_gsr_ui(const char *msg) {
-    GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, 
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", msg);
-    const gint response = gtk_dialog_run(GTK_DIALOG(dialog));
-    gtk_widget_destroy(dialog);
-
-    switch(response) {
-        case GTK_RESPONSE_YES:
-            break;
-        case GTK_RESPONSE_NO:
-        default: {
-            config.main_config.use_new_ui = false;
-            save_config(config);
-            return false;
-        }
-    }
-
-    const int exit_code = system("flatpak-spawn --host -- 
/var/lib/flatpak/app/com.dec05eba.gpu_screen_recorder/current/active/files/bin/kms-server-proxy
 setup-gsr-ui");
-    if(exit_code != 0) {
-        GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, 
GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Failed to setup the new UI. You either 
cancelled the installation or you don't have pkexec installed and a polkit 
agent running.");
-        gtk_dialog_run(GTK_DIALOG(dialog));
-        gtk_widget_destroy(dialog);
-        
-        config.main_config.use_new_ui = false;
-        save_configs();
-        return false;
-    }
-
-    config.main_config.use_new_ui = true;
-    config.main_config.installed_gsr_global_hotkeys_version = 
GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION;
-    save_config(config);
-    return true;
-}
-
 static bool is_gsr_global_hotkeys_installed() {
     const char *user_homepath = getenv("HOME");
     if(!user_homepath)
@@ -4522,6 +4502,28 @@
     g_object_unref(app);
 }
 
+// TODO: Remove this once GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION is updated 
to 5
+static bool has_input_device_with_keyboard_and_mouse() {
+    FILE *f = fopen("/proc/bus/input/devices", "rb");
+    if(!f)
+        return false;
+
+    bool current_device_is_virtual = false;
+    bool kbd_and_mouse = false;
+    char line[1024];
+    while(fgets(line, sizeof(line), f)) {
+        if(strncmp(line, "S:", 2) == 0) {
+            current_device_is_virtual = strstr(line, "/virtual/") != nullptr;
+        } else if(!current_device_is_virtual && strncmp(line, "H:", 2) == 0 && 
strstr(line, "kbd") && strstr(line, "mouse")) {
+            kbd_and_mouse = true;
+            break;
+        }
+    }
+
+    fclose(f);
+    return kbd_and_mouse;
+}
+
 static void startup_new_ui(bool launched_by_daemon) {
     if(!dpy) {
         if(launched_by_daemon) {
@@ -4534,7 +4536,7 @@
                 gtk_dialog_run(GTK_DIALOG(dialog));
                 gtk_widget_destroy(dialog);
             });
-            
+
             config.main_config.use_new_ui = false;
             save_config(config);
             return;
@@ -4553,11 +4555,12 @@
         return;
     }
 
-    if(config.main_config.installed_gsr_global_hotkeys_version != 
GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION) {
+    if(config.main_config.installed_gsr_global_hotkeys_version != 
GSR_CURRENT_GLOBAL_HOTKEYS_CODE_VERSION || 
(!config.main_config.kbd_mouse_update_installed && 
has_input_device_with_keyboard_and_mouse())) {
         bool finished = false;
         start_gtk_run_handler([&finished]() {
             finished = kms_server_proxy_setup_gsr_ui(
                 "An update is available. The new GPU Screen Recorder UI needs 
root privileges to finish update to make global hotkeys and recording work on 
any system.\n"
+                "You will need to restart the application to apply the 
update.\n"
                 "\n"
                 "Are you sure you want to continue?");
         });

Reply via email to