From 7e3a8c69d821611faee7ed5cfd167834176651ec Mon Sep 17 00:00:00 2001 From: vesp Date: Tue, 6 Jan 2026 17:11:10 +0100 Subject: [PATCH] Change application ID from cz.vesp.roster to cz.bugsy.roster --- CLAUDE.md | 18 +++++++++--------- cz.vesp.roster.json => cz.bugsy.roster.json | 2 +- ...r.desktop.in => cz.bugsy.roster.desktop.in} | 2 +- ...gschema.xml => cz.bugsy.roster.gschema.xml} | 2 +- ....xml.in => cz.bugsy.roster.metainfo.xml.in} | 4 ++-- ...r.service.in => cz.bugsy.roster.service.in} | 2 +- ...{cz.vesp.roster.svg => cz.bugsy.roster.svg} | 0 ...mbolic.svg => cz.bugsy.roster-symbolic.svg} | 0 data/icons/meson.build | 2 +- data/meson.build | 14 +++++++------- po/POTFILES.in | 6 +++--- src/environments_dialog.py | 2 +- src/history_manager.py | 6 +++--- src/http_client.py | 2 +- src/icon_picker_dialog.py | 2 +- src/main.py | 8 ++++---- src/preferences_dialog.py | 4 ++-- src/project_manager.py | 6 +++--- src/roster.gresource.xml | 2 +- src/widgets/environment_column_header.py | 2 +- src/widgets/environment_header_row.py | 2 +- src/widgets/environment_row.py | 2 +- src/widgets/header_row.py | 2 +- src/widgets/history_item.py | 2 +- src/widgets/project_item.py | 2 +- src/widgets/request_item.py | 2 +- src/widgets/variable_data_row.py | 2 +- src/widgets/variable_row.py | 2 +- src/window.py | 2 +- 29 files changed, 52 insertions(+), 52 deletions(-) rename cz.vesp.roster.json => cz.bugsy.roster.json (97%) rename data/{cz.vesp.roster.desktop.in => cz.bugsy.roster.desktop.in} (87%) rename data/{cz.vesp.roster.gschema.xml => cz.bugsy.roster.gschema.xml} (90%) rename data/{cz.vesp.roster.metainfo.xml.in => cz.bugsy.roster.metainfo.xml.in} (97%) rename data/{cz.vesp.roster.service.in => cz.bugsy.roster.service.in} (74%) rename data/icons/hicolor/scalable/apps/{cz.vesp.roster.svg => cz.bugsy.roster.svg} (100%) rename data/icons/hicolor/symbolic/apps/{cz.vesp.roster-symbolic.svg => cz.bugsy.roster-symbolic.svg} (100%) diff --git a/CLAUDE.md b/CLAUDE.md index a8f5dca..f57909b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Roster is a GNOME application written in Python using GTK 4 and libadwaita. The project follows GNOME application conventions and uses the Meson build system. -- **Application ID**: `cz.vesp.roster` +- **Application ID**: `cz.bugsy.roster` - **Build System**: Meson - **Runtime**: GNOME Platform (org.gnome.Platform) - **UI Framework**: GTK 4 + libadwaita (Adw) @@ -40,12 +40,12 @@ The application uses **libsoup3** (from GNOME Platform) for HTTP requests - no e ## Development with Flatpak -The project includes a Flatpak manifest (`cz.vesp.roster.json`) for building and running the application in a sandboxed environment: +The project includes a Flatpak manifest (`cz.bugsy.roster.json`) for building and running the application in a sandboxed environment: ```bash # Build with GNOME Builder (recommended for GNOME apps) # Or use flatpak-builder directly: -flatpak-builder --user --install --force-clean build-dir cz.vesp.roster.json +flatpak-builder --user --install --force-clean build-dir cz.bugsy.roster.json ``` ## Architecture @@ -83,10 +83,10 @@ src/ roster.gresource.xml # GResource bundle definition data/ - cz.vesp.roster.desktop.in # Desktop entry (i18n template) - cz.vesp.roster.metainfo.xml.in # AppStream metadata (i18n template) - cz.vesp.roster.gschema.xml # GSettings schema - cz.vesp.roster.service.in # D-Bus service file (configured by Meson) + cz.bugsy.roster.desktop.in # Desktop entry (i18n template) + cz.bugsy.roster.metainfo.xml.in # AppStream metadata (i18n template) + cz.bugsy.roster.gschema.xml # GSettings schema + cz.bugsy.roster.service.in # D-Bus service file (configured by Meson) icons/ # Application icons po/ @@ -116,10 +116,10 @@ When adding new `.py` files to `src/`: When adding new `.ui` files: 1. Place in `src/` directory 2. Add `` entry to `src/roster.gresource.xml` -3. Use `@Gtk.Template(resource_path='/cz/vesp/roster/filename.ui')` in the corresponding Python class +3. Use `@Gtk.Template(resource_path='/cz/bugsy/roster/filename.ui')` in the corresponding Python class ## GSettings Schema -Settings are defined in `data/cz.vesp.roster.gschema.xml`. After modifying: +Settings are defined in `data/cz.bugsy.roster.gschema.xml`. After modifying: - Schema is validated during `meson test` - Compiled automatically during installation via `gnome.post_install()` diff --git a/cz.vesp.roster.json b/cz.bugsy.roster.json similarity index 97% rename from cz.vesp.roster.json rename to cz.bugsy.roster.json index 308be8c..8ac31e4 100644 --- a/cz.vesp.roster.json +++ b/cz.bugsy.roster.json @@ -1,5 +1,5 @@ { - "id" : "cz.vesp.roster", + "id" : "cz.bugsy.roster", "runtime" : "org.gnome.Platform", "runtime-version" : "49", "sdk" : "org.gnome.Sdk", diff --git a/data/cz.vesp.roster.desktop.in b/data/cz.bugsy.roster.desktop.in similarity index 87% rename from data/cz.vesp.roster.desktop.in rename to data/cz.bugsy.roster.desktop.in index 1ebde35..9d57b68 100644 --- a/data/cz.vesp.roster.desktop.in +++ b/data/cz.bugsy.roster.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] Name=roster Exec=roster -Icon=cz.vesp.roster +Icon=cz.bugsy.roster Terminal=false Type=Application Categories=Utility; diff --git a/data/cz.vesp.roster.gschema.xml b/data/cz.bugsy.roster.gschema.xml similarity index 90% rename from data/cz.vesp.roster.gschema.xml rename to data/cz.bugsy.roster.gschema.xml index 406510b..3e07f59 100644 --- a/data/cz.vesp.roster.gschema.xml +++ b/data/cz.bugsy.roster.gschema.xml @@ -1,6 +1,6 @@ - + true Force TLS verification diff --git a/data/cz.vesp.roster.metainfo.xml.in b/data/cz.bugsy.roster.metainfo.xml.in similarity index 97% rename from data/cz.vesp.roster.metainfo.xml.in rename to data/cz.bugsy.roster.metainfo.xml.in index 02c9d5a..2b4f4e2 100644 --- a/data/cz.vesp.roster.metainfo.xml.in +++ b/data/cz.bugsy.roster.metainfo.xml.in @@ -1,6 +1,6 @@ - cz.vesp.roster + cz.bugsy.roster CC0-1.0 GPL-3.0-or-later @@ -36,7 +36,7 @@ roster - cz.vesp.roster.desktop + cz.bugsy.roster.desktop diff --git a/data/cz.vesp.roster.service.in b/data/cz.bugsy.roster.service.in similarity index 74% rename from data/cz.vesp.roster.service.in rename to data/cz.bugsy.roster.service.in index 7ac46ec..7fbb6ea 100644 --- a/data/cz.vesp.roster.service.in +++ b/data/cz.bugsy.roster.service.in @@ -1,3 +1,3 @@ [D-BUS Service] -Name=cz.vesp.roster +Name=cz.bugsy.roster Exec=@bindir@/roster --gapplication-service diff --git a/data/icons/hicolor/scalable/apps/cz.vesp.roster.svg b/data/icons/hicolor/scalable/apps/cz.bugsy.roster.svg similarity index 100% rename from data/icons/hicolor/scalable/apps/cz.vesp.roster.svg rename to data/icons/hicolor/scalable/apps/cz.bugsy.roster.svg diff --git a/data/icons/hicolor/symbolic/apps/cz.vesp.roster-symbolic.svg b/data/icons/hicolor/symbolic/apps/cz.bugsy.roster-symbolic.svg similarity index 100% rename from data/icons/hicolor/symbolic/apps/cz.vesp.roster-symbolic.svg rename to data/icons/hicolor/symbolic/apps/cz.bugsy.roster-symbolic.svg diff --git a/data/icons/meson.build b/data/icons/meson.build index bed13f7..2e13dd9 100644 --- a/data/icons/meson.build +++ b/data/icons/meson.build @@ -1,4 +1,4 @@ -application_id = 'cz.vesp.roster' +application_id = 'cz.bugsy.roster' scalable_dir = 'hicolor' / 'scalable' / 'apps' install_data( diff --git a/data/meson.build b/data/meson.build index 26253e0..a78755c 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,6 +1,6 @@ desktop_file = i18n.merge_file( - input: 'cz.vesp.roster.desktop.in', - output: 'cz.vesp.roster.desktop', + input: 'cz.bugsy.roster.desktop.in', + output: 'cz.bugsy.roster.desktop', type: 'desktop', po_dir: '../po', install: true, @@ -13,8 +13,8 @@ if desktop_utils.found() endif appstream_file = i18n.merge_file( - input: 'cz.vesp.roster.metainfo.xml.in', - output: 'cz.vesp.roster.metainfo.xml', + input: 'cz.bugsy.roster.metainfo.xml.in', + output: 'cz.bugsy.roster.metainfo.xml', po_dir: '../po', install: true, install_dir: get_option('datadir') / 'metainfo' @@ -24,7 +24,7 @@ appstreamcli = find_program('appstreamcli', required: false, disabler: true) test('Validate appstream file', appstreamcli, args: ['validate', '--no-net', '--explain', appstream_file]) -install_data('cz.vesp.roster.gschema.xml', +install_data('cz.bugsy.roster.gschema.xml', install_dir: get_option('datadir') / 'glib-2.0' / 'schemas' ) @@ -37,8 +37,8 @@ test('Validate schema file', service_conf = configuration_data() service_conf.set('bindir', get_option('prefix') / get_option('bindir')) configure_file( - input: 'cz.vesp.roster.service.in', - output: 'cz.vesp.roster.service', + input: 'cz.bugsy.roster.service.in', + output: 'cz.bugsy.roster.service', configuration: service_conf, install_dir: get_option('datadir') / 'dbus-1' / 'services' ) diff --git a/po/POTFILES.in b/po/POTFILES.in index 0b4efa0..aaae612 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,8 +1,8 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -data/cz.vesp.roster.desktop.in -data/cz.vesp.roster.metainfo.xml.in -data/cz.vesp.roster.gschema.xml +data/cz.bugsy.roster.desktop.in +data/cz.bugsy.roster.metainfo.xml.in +data/cz.bugsy.roster.gschema.xml src/main.py src/window.py src/window.ui diff --git a/src/environments_dialog.py b/src/environments_dialog.py index 2898fe4..b588b53 100644 --- a/src/environments_dialog.py +++ b/src/environments_dialog.py @@ -24,7 +24,7 @@ from .widgets.environment_header_row import EnvironmentHeaderRow from .widgets.variable_data_row import VariableDataRow -@Gtk.Template(resource_path='/cz/vesp/roster/environments-dialog.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/environments-dialog.ui') class EnvironmentsDialog(Adw.Dialog): """Dialog for managing project environments and variables.""" diff --git a/src/history_manager.py b/src/history_manager.py index 5c1995c..bf65c45 100644 --- a/src/history_manager.py +++ b/src/history_manager.py @@ -36,9 +36,9 @@ class HistoryManager: def __init__(self): # Use XDG config directory (works for both Flatpak and native) - # Flatpak: ~/.var/app/cz.vesp.roster/config/cz.vesp.roster - # Native: ~/.config/cz.vesp.roster - self.config_dir = Path(GLib.get_user_config_dir()) / 'cz.vesp.roster' + # Flatpak: ~/.var/app/cz.bugsy.roster/config/cz.bugsy.roster + # Native: ~/.config/cz.bugsy.roster + self.config_dir = Path(GLib.get_user_config_dir()) / 'cz.bugsy.roster' self.history_file = self.config_dir / 'history.json' self._ensure_config_dir() diff --git a/src/http_client.py b/src/http_client.py index 02723b4..9795ef6 100644 --- a/src/http_client.py +++ b/src/http_client.py @@ -34,7 +34,7 @@ class HttpClient: self.session = Soup.Session.new() # Load settings - self.settings = Gio.Settings.new('cz.vesp.roster') + self.settings = Gio.Settings.new('cz.bugsy.roster') # Initialize TLS verification flag self.force_tls_verification = True diff --git a/src/icon_picker_dialog.py b/src/icon_picker_dialog.py index 084172a..3b6f86c 100644 --- a/src/icon_picker_dialog.py +++ b/src/icon_picker_dialog.py @@ -21,7 +21,7 @@ from gi.repository import Adw, Gtk, GObject from .constants import PROJECT_ICONS -@Gtk.Template(resource_path='/cz/vesp/roster/icon-picker-dialog.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/icon-picker-dialog.ui') class IconPickerDialog(Adw.Dialog): """Dialog for selecting a project icon.""" diff --git a/src/main.py b/src/main.py index a521c30..661d440 100644 --- a/src/main.py +++ b/src/main.py @@ -32,9 +32,9 @@ class RosterApplication(Adw.Application): """The main application singleton class.""" def __init__(self, version='0.0.0'): - super().__init__(application_id='cz.vesp.roster', + super().__init__(application_id='cz.bugsy.roster', flags=Gio.ApplicationFlags.DEFAULT_FLAGS, - resource_base_path='/cz/vesp/roster') + resource_base_path='/cz/bugsy/roster') self.version = version self.create_action('quit', lambda *_: self.quit(), ['q']) self.create_action('about', self.on_about_action) @@ -55,7 +55,7 @@ class RosterApplication(Adw.Application): def on_about_action(self, *args): """Callback for the app.about action.""" about = Adw.AboutDialog(application_name='Roster', - application_icon='cz.vesp.roster', + application_icon='cz.bugsy.roster', developer_name='Pavel Baksy', version=self.version, developers=['Pavel Baksy'], @@ -77,7 +77,7 @@ class RosterApplication(Adw.Application): def on_shortcuts_action(self, widget, _): """Callback for the app.shortcuts action.""" - builder = Gtk.Builder.new_from_resource('/cz/vesp/roster/shortcuts-dialog.ui') + builder = Gtk.Builder.new_from_resource('/cz/bugsy/roster/shortcuts-dialog.ui') shortcuts_window = builder.get_object('shortcuts_dialog') shortcuts_window.set_transient_for(self.props.active_window) shortcuts_window.present() diff --git a/src/preferences_dialog.py b/src/preferences_dialog.py index 5be345b..0f4d804 100644 --- a/src/preferences_dialog.py +++ b/src/preferences_dialog.py @@ -20,7 +20,7 @@ from gi.repository import Adw, Gtk, Gio, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/preferences-dialog.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/preferences-dialog.ui') class PreferencesDialog(Adw.PreferencesWindow): __gtype_name__ = 'PreferencesDialog' @@ -38,7 +38,7 @@ class PreferencesDialog(Adw.PreferencesWindow): self.history_manager = history_manager # Get settings - self.settings = Gio.Settings.new('cz.vesp.roster') + self.settings = Gio.Settings.new('cz.bugsy.roster') # Bind settings to UI self.settings.bind( diff --git a/src/project_manager.py b/src/project_manager.py index d8ef260..4536a83 100644 --- a/src/project_manager.py +++ b/src/project_manager.py @@ -36,9 +36,9 @@ class ProjectManager: def __init__(self): # Use XDG data directory (works for both Flatpak and native) - # Flatpak: ~/.var/app/cz.vesp.roster/data/cz.vesp.roster - # Native: ~/.local/share/cz.vesp.roster - self.data_dir = Path(GLib.get_user_data_dir()) / 'cz.vesp.roster' + # Flatpak: ~/.var/app/cz.bugsy.roster/data/cz.bugsy.roster + # Native: ~/.local/share/cz.bugsy.roster + self.data_dir = Path(GLib.get_user_data_dir()) / 'cz.bugsy.roster' self.projects_file = self.data_dir / 'requests.json' self._ensure_data_dir() diff --git a/src/roster.gresource.xml b/src/roster.gresource.xml index af734a0..431cafd 100644 --- a/src/roster.gresource.xml +++ b/src/roster.gresource.xml @@ -1,6 +1,6 @@ - + main-window.ui shortcuts-dialog.ui preferences-dialog.ui diff --git a/src/widgets/environment_column_header.py b/src/widgets/environment_column_header.py index fe9dd01..d9d58c3 100644 --- a/src/widgets/environment_column_header.py +++ b/src/widgets/environment_column_header.py @@ -20,7 +20,7 @@ from gi.repository import Gtk, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/environment-column-header.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/environment-column-header.ui') class EnvironmentColumnHeader(Gtk.Box): """Widget for displaying an environment column header with edit/delete buttons.""" diff --git a/src/widgets/environment_header_row.py b/src/widgets/environment_header_row.py index e42e0a4..355757d 100644 --- a/src/widgets/environment_header_row.py +++ b/src/widgets/environment_header_row.py @@ -21,7 +21,7 @@ from gi.repository import Gtk, GObject from .environment_column_header import EnvironmentColumnHeader -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/environment-header-row.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/environment-header-row.ui') class EnvironmentHeaderRow(Gtk.Box): """Widget for the header row containing all environment column headers.""" diff --git a/src/widgets/environment_row.py b/src/widgets/environment_row.py index 1a75622..5de6388 100644 --- a/src/widgets/environment_row.py +++ b/src/widgets/environment_row.py @@ -20,7 +20,7 @@ from gi.repository import Gtk, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/environment-row.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/environment-row.ui') class EnvironmentRow(Gtk.Box): """Widget for displaying and editing an environment with its variables.""" diff --git a/src/widgets/header_row.py b/src/widgets/header_row.py index 39cf0fe..43fb195 100644 --- a/src/widgets/header_row.py +++ b/src/widgets/header_row.py @@ -20,7 +20,7 @@ from gi.repository import Gtk, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/header-row.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/header-row.ui') class HeaderRow(Gtk.Box): """Widget for editing a single HTTP header key-value pair.""" diff --git a/src/widgets/history_item.py b/src/widgets/history_item.py index 5e2db0d..6ccf3dc 100644 --- a/src/widgets/history_item.py +++ b/src/widgets/history_item.py @@ -21,7 +21,7 @@ from gi.repository import Gtk, GObject, Gdk from datetime import datetime -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/history-item.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/history-item.ui') class HistoryItem(Gtk.Box): """Widget for displaying a history entry.""" diff --git a/src/widgets/project_item.py b/src/widgets/project_item.py index 2c35cf6..9560709 100644 --- a/src/widgets/project_item.py +++ b/src/widgets/project_item.py @@ -21,7 +21,7 @@ from gi.repository import Gtk, GObject, Gio from .request_item import RequestItem -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/project-item.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/project-item.ui') class ProjectItem(Gtk.Box): """Widget for displaying a project with its requests.""" diff --git a/src/widgets/request_item.py b/src/widgets/request_item.py index 48446fb..e19c678 100644 --- a/src/widgets/request_item.py +++ b/src/widgets/request_item.py @@ -20,7 +20,7 @@ from gi.repository import Gtk, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/request-item.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/request-item.ui') class RequestItem(Gtk.Box): """Widget for displaying a saved request.""" diff --git a/src/widgets/variable_data_row.py b/src/widgets/variable_data_row.py index 3ae20d5..99d1c39 100644 --- a/src/widgets/variable_data_row.py +++ b/src/widgets/variable_data_row.py @@ -21,7 +21,7 @@ from gi.repository import Gtk, GObject, GLib from datetime import datetime, timedelta -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/variable-data-row.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/variable-data-row.ui') class VariableDataRow(Gtk.Box): """Widget for a data row with variable name and values for each environment.""" diff --git a/src/widgets/variable_row.py b/src/widgets/variable_row.py index b8ccb1a..2443095 100644 --- a/src/widgets/variable_row.py +++ b/src/widgets/variable_row.py @@ -20,7 +20,7 @@ from gi.repository import Gtk, GObject -@Gtk.Template(resource_path='/cz/vesp/roster/widgets/variable-row.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/widgets/variable-row.ui') class VariableRow(Gtk.Box): """Widget for editing a variable name.""" diff --git a/src/window.py b/src/window.py index f7fe8fb..0216412 100644 --- a/src/window.py +++ b/src/window.py @@ -46,7 +46,7 @@ import uuid logger = logging.getLogger(__name__) -@Gtk.Template(resource_path='/cz/vesp/roster/main-window.ui') +@Gtk.Template(resource_path='/cz/bugsy/roster/main-window.ui') class RosterWindow(Adw.ApplicationWindow): __gtype_name__ = 'RosterWindow'