<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpu-screen-recorder-gnome/src/gsr-window.c, branch debian</title>
<subtitle>GNOME frontend for GPU Screen Recorder
</subtitle>
<id>https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/atom?h=debian</id>
<link rel='self' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/atom?h=debian'/>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/'/>
<updated>2026-08-10T05:59:13Z</updated>
<entry>
<title>src/gsr-window: Fix default window size</title>
<updated>2026-08-10T05:59:13Z</updated>
<author>
<name>Maria Lisina</name>
<email>sekoohaka.sarisan@gmail.com</email>
</author>
<published>2026-07-16T11:38:45Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=291ad323f0fbcdeccfdaaa73c20a6fb69532751f'/>
<id>urn:sha1:291ad323f0fbcdeccfdaaa73c20a6fb69532751f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add gettext i18n with translations (vi, de, fr, it, es, pt)</title>
<updated>2026-06-10T13:21:58Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-06-10T07:32:15Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=e845db5dc4f482f88d1562c0356cd1c65d5f538b'/>
<id>urn:sha1:e845db5dc4f482f88d1562c0356cd1c65d5f538b</id>
<content type='text'>
Wire up internationalization for the app and ship six translations.

Infrastructure:
- meson: import i18n, define GETTEXT_PACKAGE/GSR_LOCALEDIR, add po/ subdir,
  and translate the .desktop and AppStream metainfo via i18n.merge_file
  (renamed to .desktop.in / .metainfo.xml.in).
- main.c: setlocale + bindtextdomain/textdomain so the catalog is loaded.
- po/: LINGUAS, POTFILES.in, meson.build (glib preset).

String marking:
- Wrap every user-visible string with _() across main.c, gsr-window.c, the four
  pages and the shortcut dialog (titles, subtitles, labels, buttons, combo
  display names, notifications, toasts, dialogs, menu items).
- Leave ids/keys untranslated: codec/container/service ids, GAction/icon/CSS
  names, GVariant/format strings, accelerators, etc.

Linting:
- Re-enable gobject-linter's untranslated_string rule (now that i18n exists) as
  an error so new user-visible strings must be wrapped.

Translations (141 messages each, %s/%d/markup placeholders preserved):
- Vietnamese (vi), German (de), French (fr), Italian (it), Spanish (es),
  Portuguese (pt). Codec names, "OK", proper nouns and the product name are
  intentionally left in English. Verified: msgfmt --check-format passes and the
  compiled catalogs resolve (e.g. "Record" -&gt; "Ghi hình" / "Aufnahme" /
  "Enregistrement").
</content>
</entry>
<entry>
<title>refactor: adopt g_autoptr/g_autofree for scope-local cleanup</title>
<updated>2026-06-10T02:40:59Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-06-10T02:40:59Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=55a350ded89a8dcd69f037e333148fd571389fbf'/>
<id>urn:sha1:55a350ded89a8dcd69f037e333148fd571389fbf</id>
<content type='text'>
Resolve the remaining use_auto_cleanup advisories by converting the genuinely
scope-local owners to g_autoptr/g_autofree and dropping the manual cleanup:

- main.c: GtkCssProvider, AdwApplication
- gsr-window.c: GNotification, the menu GMenuItem/GMenu builders, and all the
  notification message strings
- gsr-config-page.c: the window-subtitle and monitor-label strings
- gsr-record-page.c / gsr-replay-page.c: the save-folder GtkFileDialog + GFile
  (the async select_folder call keeps its own ref)
- gsr-shortcut-accel-dialog.c: the escaped-title / markup strings

The three audio-input pointers in gsr-config-page.c are borrowed const char*
into config-owned memory (nothing to free); they're false positives, suppressed
inline with a reason. The whole tree is now gobject-linter clean.
</content>
</entry>
<entry>
<title>feat: open the saved recording's folder when its notification is clicked</title>
<updated>2026-06-10T01:32:32Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-06-10T01:24:16Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=9576fada7bb0262dda68735fd49eafe2d7d9d537'/>
<id>urn:sha1:9576fada7bb0262dda68735fd49eafe2d7d9d537</id>
<content type='text'>
The "Recording saved to &lt;path&gt;" desktop notification is now clickable:
activating it opens the default file manager at the file's containing folder
(and highlights the file where the file manager supports it).

- Add an app.open-folder action (string target = file path) that uses
  GtkFileLauncher.open_containing_folder() — portal-backed, so it works on
  both X11 and Wayland.
- The saved-recording GNotification sets that action as its default action,
  and the in-app AdwToast gains a matching "Open Folder" button.

send_notification() gains a send_notification_full() variant carrying the
optional path; all other notifications are unchanged.
</content>
</entry>
<entry>
<title>ci: adopt gobject-linter as a blocking static-analysis gate</title>
<updated>2026-06-10T00:04:30Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-06-10T00:04:30Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=f6009527636f8a8017d5b9192efe96a1d03d2028'/>
<id>urn:sha1:f6009527636f8a8017d5b9192efe96a1d03d2028</id>
<content type='text'>
Add gobject-linter (github.com/bilelmoussaoui/gobject-linter) to CI to catch
GObject/GLib correctness and idiom issues.

Config (gobject-linter.toml):
- min_glib_version = 2.80 (libadwaita &gt;= 1.8)
- default_level = error: every enabled rule blocks CI
- type_style ignored: the project deliberately uses plain C scalar types
- untranslated_string ignored: app is not internationalized yet
- use_auto_cleanup downgraded to warn: it mis-fires on floating GVariant
  references (consumed by g_variant_new_tuple/builders) and on objects kept
  alive past the function (the GlobalShortcuts GDBusProxy); converting those to
  g_autoptr would over-unref and crash, so it advises rather than blocks

Workflow (.github/workflows/gobject-linter.yml): runs the official container
image on push/PR, uploads SARIF to code scanning (non-fatal for fork PRs), and
fails the build on any error-level finding.

Code is brought to a green baseline by applying the auto-fixable findings:
- strcmp -&gt; g_strcmp0 (NULL-safe)
- manual g_free/g_strdup -&gt; g_set_str
- manual source removal -&gt; g_clear_handle_id / g_clear_object / g_clear_pointer
- g_string_free(.., FALSE) -&gt; g_string_free_and_steal
- g_idle_add one-shot -&gt; g_idle_add_once (id now stored and cleared in finalize,
  also closing a latent use-after-free if the window is finalized first)
- include ordering and #pragma once

The 37 remaining use_auto_cleanup findings are reported as warnings for
incremental manual review.
</content>
</entry>
<entry>
<title>Prepare 1.0.0: fix memory leaks, use-after-free bugs, and code quality issues</title>
<updated>2026-02-22T00:29:18Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-02-22T00:29:18Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=9690617ae3855ab9f58e5bce0f55b4842b9832e5'/>
<id>urn:sha1:9690617ae3855ab9f58e5bce0f55b4842b9832e5</id>
<content type='text'>
- Version 6.0.0 → 1.0.0, C standard gnu17 → gnu23
- Fix desktop file path (was referencing parent directory)
- global_shortcuts.c: fix systematic GVariant/GDBusProxy leaks, guint64-to-gchar*
  type mismatch, buffer overflow risk, missing malloc NULL checks, debug artifacts
- gsr-window.c: fix notification timeout use-after-free, menu object leak in
  finalize, localtime NULL check, extract active_mode_to_string helper
- gsr-stream-page.c, gsr-record-page.c, gsr-replay-page.c: fix timer source
  leak in finalize (use-after-free if destroyed while timer running)
- gsr-shortcut-accel-dialog.c: fix Pango markup injection via shortcut titles
- gsr-info.c: fix pclose UB, replace fprintf with g_warning
- gsr-config.c: include errno in fopen failure warning
- Remove unused include, stale Phase 5 comments
</content>
</entry>
<entry>
<title>Show View menu section only when Config tab is active</title>
<updated>2026-02-21T13:32:54Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-02-21T13:32:54Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=442c8be65ac2ba1fdcbcfa8204adec5fecb2c474'/>
<id>urn:sha1:442c8be65ac2ba1fdcbcfa8204adec5fecb2c474</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Hide unavailable record area options, fix recording saved notification, and update about dialog</title>
<updated>2026-02-21T13:20:30Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-02-21T13:20:30Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=8f1bfa65591fbec2f019c515bd3ac02934ff6e4d'/>
<id>urn:sha1:8f1bfa65591fbec2f019c515bd3ac02934ff6e4d</id>
<content type='text'>
- Only show Window/Focused window options on X11 (compile-time and runtime)
- Only show Desktop portal option on Wayland with portal support
- Fix default record area selection to use dynamic index instead of hardcoded 2
- Use notify_saved preference (default: true) for recording saved notification
  instead of notify_stopped (default: false) so users see the file path by default
- Update about dialog: website and issues URL to GitHub, revert developer to
  dec05eba with Trung Lê credited for the Adwaita port
</content>
</entry>
<entry>
<title>Initial commit</title>
<updated>2026-02-21T12:47:49Z</updated>
<author>
<name>Trung Lê</name>
<email>8@tle.id.au</email>
</author>
<published>2026-02-21T12:40:05Z</published>
<link rel='alternate' type='text/html' href='https://sekoohaka.ddns.net/Debian/gpu-screen-recorder-gnome/commit/?id=3eed1b64af72dcb4bcb8ae28d45856767d4acff1'/>
<id>urn:sha1:3eed1b64af72dcb4bcb8ae28d45856767d4acff1</id>
<content type='text'>
</content>
</entry>
</feed>
