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 - [email protected]
+
+- 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?");
});