Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package safeeyes for openSUSE:Factory checked in at 2026-04-07 16:34:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/safeeyes (Old) and /work/SRC/openSUSE:Factory/.safeeyes.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "safeeyes" Tue Apr 7 16:34:49 2026 rev:18 rq:1344958 version:3.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/safeeyes/safeeyes.changes 2026-03-31 16:26:43.057970105 +0200 +++ /work/SRC/openSUSE:Factory/.safeeyes.new.21863/safeeyes.changes 2026-04-07 16:51:27.842885964 +0200 @@ -1,0 +2,7 @@ +Tue Apr 7 09:48:14 UTC 2026 - Michael Vetter <[email protected]> + +- Update to 3.3.3: + * Show app icon in about dialog #862 + * Bigger image size in break screen #866 + +------------------------------------------------------------------- Old: ---- safeeyes-3.3.2.tar.xz New: ---- safeeyes-3.3.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ safeeyes.spec ++++++ --- /var/tmp/diff_new_pack.B2R2Ys/_old 2026-04-07 16:51:28.502913313 +0200 +++ /var/tmp/diff_new_pack.B2R2Ys/_new 2026-04-07 16:51:28.506913479 +0200 @@ -19,7 +19,7 @@ Name: safeeyes -Version: 3.3.2 +Version: 3.3.3 Release: 0 Summary: Tool for reminding the user to take breaks License: GPL-3.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.B2R2Ys/_old 2026-04-07 16:51:28.550915302 +0200 +++ /var/tmp/diff_new_pack.B2R2Ys/_new 2026-04-07 16:51:28.558915634 +0200 @@ -4,7 +4,7 @@ <param name="filename">safeeyes</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v3.3.2</param> + <param name="revision">v3.3.3</param> <param name="versionformat">@PARENT_TAG@</param> <!-- tag is vX.Y.Z, we want X.Y.Z --> <param name="versionrewrite-pattern">v(.*)</param> ++++++ safeeyes-3.3.2.tar.xz -> safeeyes-3.3.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/AUR/PKGBUILD new/safeeyes-3.3.3/AUR/PKGBUILD --- old/safeeyes-3.3.2/AUR/PKGBUILD 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/AUR/PKGBUILD 2026-04-05 14:43:08.000000000 +0200 @@ -6,8 +6,8 @@ # Maintainer: archisman <apandada1ATgmailDOTcom> pkgname=safeeyes -pkgver=3.3.1 -pkgrel=4 +pkgver=3.3.3 +pkgrel=1 pkgdesc="A Free and Open Source tool for Linux users to reduce and prevent repetitive strain injury (RSI)." arch=("any") url="https://github.com/slgobinath/safeeyes" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/README.md new/safeeyes-3.3.3/README.md --- old/safeeyes-3.3.2/README.md 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/README.md 2026-04-05 14:43:08.000000000 +0200 @@ -83,13 +83,14 @@ ``` ### Fedora -Available on the [praiskup/safeeyes](https://copr.fedorainfracloud.org/coprs/praiskup/safeeyes/) COPR maintained by @praiksup +You can install with `pip` ```bash -sudo dnf -y copr enable praiskup/safeeyes -sudo dnf -y install python3-safeeyes +pip3 install --user safeeyes ``` -For smartpause in Wayland, install the `python3-pywayland` package (in case the installer does not automatically install it as a dependency). For smart pause plugin in X11, you may have to install the latest xprintidle from: [alonid/xprintidle](https://copr.fedorainfracloud.org/coprs/alonid/xprintidle/). +For smartpause in Wayland, install the `python3-pywayland` package (in case the installer does not automatically install it as a dependency). For smart pause plugin in X11, you may have to install the latest xprintidle from: [alonid/xprintidle](https://copr.fedorainfracloud.org/coprs/alonid/xprintidle/). + +Alternatively, use the [Flatpak version](https://github.com/slgobinath/safeeyes/edit/master/README.md#flatpak), which comes preinstalls with depenendencies and features automatic updates. ### OpenSUSE Tumbleweed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/debian/changelog new/safeeyes-3.3.3/debian/changelog --- old/safeeyes-3.3.2/debian/changelog 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/debian/changelog 2026-04-05 14:43:08.000000000 +0200 @@ -1,3 +1,9 @@ +safeeyes (3.3.3) noble; urgency=medium + + * Bigger image in break screens and translation updates + + -- Archisman Panigrahi <[email protected]> Sun, 05 Apr 2026 12:32:32 +0000 + safeeyes (3.3.2) noble; urgency=medium * several bugfixes and updated translations diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/pyproject.toml new/safeeyes-3.3.3/pyproject.toml --- old/safeeyes-3.3.2/pyproject.toml 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/pyproject.toml 2026-04-05 14:43:08.000000000 +0200 @@ -1,6 +1,6 @@ [project] name = "safeeyes" -version = "3.3.2" +version = "3.3.3" description = "Protect your eyes from eye strain using this continuous breaks reminder." license = {text = "GPL-3.0-or-later"} keywords = ["linux utility health eye-strain safe-eyes"] @@ -30,7 +30,7 @@ [project.urls] Homepage = "https://github.com/slgobinath/safeeyes" -Downloads = "https://github.com/slgobinath/safeeyes/archive/v3.3.2.tar.gz" +Downloads = "https://github.com/slgobinath/safeeyes/archive/v3.3.3.tar.gz" [project.scripts] safeeyes = "safeeyes.__main__:main" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po new/safeeyes-3.3.3/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po --- old/safeeyes-3.3.2/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po 2026-04-05 14:43:08.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-10-31 13:02+0000\n" +"PO-Revision-Date: 2026-04-03 15:09+0000\n" "Last-Translator: vikdevelop <[email protected]>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/safe-eyes/" "translations/cs/>\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" -"X-Generator: Weblate 5.14.1-dev\n" +"X-Generator: Weblate 5.17-dev\n" # Short break msgid "Gently close your eyes" @@ -79,7 +79,7 @@ # Commandline arg description msgid "print the status of running Safe Eyes instance and exit" -msgstr "" +msgstr "vytisknout status puštěné instance Safe Eyes a ukončit aplikaci" # Status message msgid "Safe Eyes is not running" @@ -604,7 +604,7 @@ msgstr "Nainstalujte prosím jeden z těchto nástrojů příkazového řádku:%s" msgid "Skipping/postponing disabled period (in seconds)" -msgstr "" +msgstr "Přeskakování zakázané periody (v sekundách)" # Commandline arg description #~ msgid "print the status of running safeeyes instance and exit" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/config/locale/nl/LC_MESSAGES/safeeyes.po new/safeeyes-3.3.3/safeeyes/config/locale/nl/LC_MESSAGES/safeeyes.po --- old/safeeyes-3.3.2/safeeyes/config/locale/nl/LC_MESSAGES/safeeyes.po 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/config/locale/nl/LC_MESSAGES/safeeyes.po 2026-04-05 14:43:08.000000000 +0200 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2026-03-31 05:45+0000\n" -"Last-Translator: Archisman Panigrahi <[email protected]>\n" +"PO-Revision-Date: 2026-04-02 02:09+0000\n" +"Last-Translator: Heimen Stoffels <[email protected]>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/safe-eyes/" "translations/nl/>\n" "Language: nl\n" @@ -606,7 +606,7 @@ msgstr "Installeer een van de opdrachtregelhulpmiddelen: %s" msgid "Skipping/postponing disabled period (in seconds)" -msgstr "" +msgstr "Uitschakelduur van overslaan/uitstellen (in seconden)" # Commandline arg description #~ msgid "print the status of running safeeyes instance and exit" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po new/safeeyes-3.3.3/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po --- old/safeeyes-3.3.2/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po 2026-04-05 14:43:08.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-10-11 17:07+0000\n" +"PO-Revision-Date: 2026-04-02 02:09+0000\n" "Last-Translator: Sketch6580 <[email protected]>\n" "Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/" "projects/safe-eyes/translations/zh_Hans/>\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.14-dev\n" +"X-Generator: Weblate 5.17-dev\n" # Short break msgid "Gently close your eyes" @@ -589,7 +589,7 @@ msgstr "请安装以下任一命令行工具:%s" msgid "Skipping/postponing disabled period (in seconds)" -msgstr "" +msgstr "跳过/推迟禁用时段(秒)" # Settings dialog #~ msgid "Keyboard shortcuts disabled period (in seconds)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/config/locale/zh_TW/LC_MESSAGES/safeeyes.po new/safeeyes-3.3.3/safeeyes/config/locale/zh_TW/LC_MESSAGES/safeeyes.po --- old/safeeyes-3.3.2/safeeyes/config/locale/zh_TW/LC_MESSAGES/safeeyes.po 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/config/locale/zh_TW/LC_MESSAGES/safeeyes.po 2026-04-05 14:43:08.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2025-11-11 01:51+0000\n" +"PO-Revision-Date: 2026-04-02 02:09+0000\n" "Last-Translator: 麋麓 BigELK176 <[email protected]>\n" "Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/" "projects/safe-eyes/translations/zh_Hant/>\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.15-dev\n" +"X-Generator: Weblate 5.17-dev\n" # Short break msgid "Gently close your eyes" @@ -589,7 +589,7 @@ msgstr "請安裝其中一項指令工具: %s" msgid "Skipping/postponing disabled period (in seconds)" -msgstr "" +msgstr "跳過/延遲 已經停用的時段 (秒計)" # Settings dialog #~ msgid "Keyboard shortcuts disabled period (in seconds)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/glade/about_dialog.glade new/safeeyes-3.3.3/safeeyes/glade/about_dialog.glade --- old/safeeyes-3.3.2/safeeyes/glade/about_dialog.glade 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/glade/about_dialog.glade 2026-04-05 14:43:08.000000000 +0200 @@ -58,13 +58,24 @@ <property name="hexpand">1</property> <property name="orientation">vertical</property> <child> + <object class="GtkImage" id="img_app_icon"> + <property name="visible">1</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="margin-top">10</property> + <property name="margin-bottom">4</property> + <property name="icon-name">io.github.slgobinath.SafeEyes</property> + <property name="pixel-size">72</property> + </object> + </child> + <child> <object class="GtkLabel" id="lbl_app_name"> <property name="visible">1</property> <property name="halign">center</property> <property name="valign">center</property> <property name="margin-top">10</property> <property name="margin-bottom">10</property> - <property name="label">Safe Eyes 3.3.2</property> + <property name="label">Safe Eyes 3.3.3</property> <property name="justify">center</property> <property name="hexpand">1</property> <property name="vexpand">1</property> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/glade/break_screen.glade new/safeeyes-3.3.3/safeeyes/glade/break_screen.glade --- old/safeeyes-3.3.2/safeeyes/glade/break_screen.glade 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/glade/break_screen.glade 2026-04-05 14:43:08.000000000 +0200 @@ -27,7 +27,7 @@ <signal name="close-request" handler="on_window_delete" swapped="no"/> <child> <object class="GtkGrid" id="grid1"> - <property name="row_homogeneous">1</property> + <property name="row_homogeneous">0</property> <property name="column_homogeneous">1</property> <child> <object class="GtkBox" id="box_center_parent"> @@ -39,7 +39,7 @@ <property name="valign">center</property> <property name="row_spacing">10</property> <child> - <object class="GtkImage" id="img_break"> + <object class="GtkPicture" id="img_break"> <layout> <property name="column">0</property> <property name="row">0</property> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml new/safeeyes-3.3.3/safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml --- old/safeeyes-3.3.2/safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml 2026-04-05 14:43:08.000000000 +0200 @@ -55,6 +55,12 @@ <url type="vcs-browser">https://github.com/slgobinath/safeeyes</url> <releases> + <release version="3.3.3" date="2026-04-05"> + <url>https://github.com/slgobinath/safeeyes/releases/tag/v3.3.3</url> + <description> + <p>Bigger image in break screens and translation updates</p> + </description> + </release> <release version="3.3.2" date="2026-03-31" /> <release version="3.3.1" date="2026-01-17" /> <release version="3.3.0" date="2025-12-20" /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/safeeyes/ui/break_screen.py new/safeeyes-3.3.3/safeeyes/ui/break_screen.py --- old/safeeyes-3.3.2/safeeyes/ui/break_screen.py 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/safeeyes/ui/break_screen.py 2026-04-05 14:43:08.000000000 +0200 @@ -31,6 +31,7 @@ gi.require_version("Gtk", "4.0") from gi.repository import Gdk +from gi.repository import GdkPixbuf from gi.repository import Gtk from gi.repository import GdkX11 @@ -178,11 +179,14 @@ i = 0 for monitor in monitors: + monitor_geometry = monitor.get_geometry() window = BreakScreenWindow( self.application, message, image_path, widget, + monitor_geometry.width, + monitor_geometry.height, tray_actions, lambda: self.close(), self.show_postpone_button, @@ -362,7 +366,7 @@ lbl_message: Gtk.Label = Gtk.Template.Child() lbl_count: Gtk.Label = Gtk.Template.Child() lbl_widget: Gtk.Label = Gtk.Template.Child() - img_break: Gtk.Image = Gtk.Template.Child() + img_break: Gtk.Picture = Gtk.Template.Child() box_buttons: Gtk.Box = Gtk.Template.Child() toolbar: Gtk.Box = Gtk.Template.Child() @@ -374,6 +378,8 @@ message: str, image_path: typing.Optional[str], widget: str, + monitor_width: int, + monitor_height: int, tray_actions: list[TrayAction], on_close: typing.Callable[[], None], show_postpone: bool, @@ -385,6 +391,7 @@ super().__init__(application=application) self.on_close = on_close + self.img_break.set_content_fit(Gtk.ContentFit.SCALE_DOWN) for tray_action in tray_actions: # TODO: apparently, this would be better served with an icon theme @@ -425,7 +432,7 @@ # Set values if image_path: - self.img_break.set_from_file(image_path) + self.__set_break_image(image_path, monitor_width, monitor_height) self.lbl_message.set_label(message) self.lbl_widget.set_markup(widget) @@ -445,6 +452,36 @@ tray_action.reset() tray_action.action() + def __set_break_image( + self, image_path: str, monitor_width: int, monitor_height: int + ) -> None: + """Load the break image and cap it relative to the current monitor size.""" + max_width = max(1, (monitor_width * 8) // 10 - 1) + max_height = max(1, (monitor_height * 3) // 10 - 1) + + try: + loaded = GdkPixbuf.Pixbuf.new_from_file(image_path) + if loaded is None: + raise ValueError("Failed to load break image") + except Exception: + logging.exception("Failed to load break image: %s", image_path) + return + pixbuf: GdkPixbuf.Pixbuf = loaded + + width, height = pixbuf.get_width(), pixbuf.get_height() + scale = min(1, max_width / width, max_height / height) + if scale < 1: + pixbuf = ( + pixbuf.scale_simple( + max(1, int(width * scale)), + max(1, int(height * scale)), + GdkPixbuf.InterpType.BILINEAR, + ) + or pixbuf + ) + + self.img_break.set_paintable(Gdk.Texture.new_for_pixbuf(pixbuf)) + @Gtk.Template.Callback() def on_window_delete(self, *args) -> None: """Window close event handler.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/safeeyes-3.3.2/update-version.sh new/safeeyes-3.3.3/update-version.sh --- old/safeeyes-3.3.2/update-version.sh 2026-03-31 07:50:28.000000000 +0200 +++ new/safeeyes-3.3.3/update-version.sh 2026-04-05 14:43:08.000000000 +0200 @@ -13,6 +13,15 @@ version="$1" message="$2" +xml_escape() { + printf '%s' "$1" \ + | sed -e 's/&/\&/g' \ + -e 's/</\</g' \ + -e 's/>/\>/g' \ + -e 's/"/\"/g' \ + -e "s/'/\'/g" +} + # Validate version format (allow x.y or x.y.z) if [[ ! "$version" =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?$ ]]; then echo "Warning: Version '$version' does not match the standard format x.y or x.y.z." @@ -27,6 +36,7 @@ CHANGELOG="debian/changelog" METAFILE="safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml" PYPROJECT="pyproject.toml" +AUR_PKGBUILD="AUR/PKGBUILD" if [ ! -f "$CHANGELOG" ]; then echo "Error: $CHANGELOG not found." >&2 @@ -47,6 +57,8 @@ # Dates rfc_date=$(date -u '+%a, %d %b %Y %H:%M:%S +0000') iso_date=$(date -u '+%Y-%m-%d') +release_url="https://github.com/slgobinath/safeeyes/releases/tag/v$version" +xml_message=$(xml_escape "$message") # Determine distribution string from existing changelog first entry, fallback to 'noble' dist=$(sed -n '1,120p' "$CHANGELOG" | grep -m1 '^safeeyes (' | sed -n 's/.*) \([^;]*\);.*/\1/p' || true) @@ -74,6 +86,13 @@ echo "Updated $PYPROJECT" fi +# Update Arch Linux AUR package version if PKGBUILD exists +if [ -f "$AUR_PKGBUILD" ]; then + # Replace pkgver=... at top-level + sed -i "s/^pkgver=.*/pkgver=$version/" "$AUR_PKGBUILD" + echo "Updated $AUR_PKGBUILD" +fi + # Update glade about dialog label if present GLADE_ABOUT="safeeyes/glade/about_dialog.glade" if [ -f "$GLADE_ABOUT" ]; then @@ -101,8 +120,17 @@ # Insert release element as the first child under <releases> # Keep indentation consistent with project file (8 spaces for release lines) -awk -v ver="$version" -v iso="$iso_date" ' -/^[[:space:]]*<releases>[[:space:]]*$/ { print; printf " <release version=\"%s\" date=\"%s\" />\n", ver, iso; next } +awk -v ver="$version" -v iso="$iso_date" -v url="$release_url" -v msg="$xml_message" ' +/^[[:space:]]*<releases>[[:space:]]*$/ { + print + printf " <release version=\"%s\" date=\"%s\">\n", ver, iso + printf " <url>%s</url>\n", url + printf " <description>\n" + printf " <p>%s</p>\n", msg + printf " </description>\n" + printf " </release>\n" + next +} { print } ' "$METAFILE" > "$METAFILE.new" && mv "$METAFILE.new" "$METAFILE" echo "Updated $METAFILE"
