From 93d23697240ef3091b6204f239e9271c5b718f75 Mon Sep 17 00:00:00 2001 From: David Young Date: Thu, 29 Oct 2026 09:01:27 -0600 Subject: [PATCH] Rename to Federated Calendar Ship as Federated Calendar, with the application ID computer.federated.FederatedCalendar and the executable federated-calendar, so it can be installed and run alongside GNOME Calendar. The settings schema follows the application ID too, so the two don't share settings or install the same schema. The project name sets the executable, gettext domain and data directory; the desktop file, D-Bus service, search provider, metainfo and icons follow the application ID. Internal resource paths and the template file names are unchanged, to keep merging from GNOME Calendar simple. Co-Authored-By: Claude Opus 5.5 --- build-aux/org.gnome.Calendar.json | 4 ++-- ...omputer.federated.FederatedCalendar.Devel.svg} | 0 ...g => computer.federated.FederatedCalendar.svg} | 0 ...uter.federated.FederatedCalendar-symbolic.svg} | 0 ...ederated.FederatedCalendar.Devel-symbolic.svg} | 0 data/meson.build | 15 +++++++++------ data/org.gnome.Calendar.desktop.in.in | 4 ++-- data/org.gnome.Calendar.search-provider.ini.in | 4 ++-- data/org.gnome.Calendar.service.in | 2 +- data/org.gnome.calendar.gschema.xml.in | 4 ++-- meson.build | 14 ++++++++++---- src/appdata/meson.build | 1 + src/appdata/org.gnome.Calendar.metainfo.xml.in.in | 6 +++--- src/core/gcal-context.c | 4 +++- src/gui/gcal-application.c | 2 +- src/gui/gcal-window.blp | 2 +- src/gui/gcal-window.c | 2 +- src/main.c | 2 +- 18 files changed, 39 insertions(+), 27 deletions(-) rename data/icons/hicolor/scalable/apps/{org.gnome.Calendar.Devel.svg => computer.federated.FederatedCalendar.Devel.svg} (100%) rename data/icons/hicolor/scalable/apps/{org.gnome.Calendar.svg => computer.federated.FederatedCalendar.svg} (100%) rename data/icons/hicolor/symbolic/apps/{org.gnome.Calendar-symbolic.svg => computer.federated.FederatedCalendar-symbolic.svg} (100%) rename data/icons/hicolor/symbolic/apps/{org.gnome.Calendar.Devel-symbolic.svg => computer.federated.FederatedCalendar.Devel-symbolic.svg} (100%) diff --git a/build-aux/org.gnome.Calendar.json b/build-aux/org.gnome.Calendar.json index 5565da08..32415d9e 100644 --- a/build-aux/org.gnome.Calendar.json +++ b/build-aux/org.gnome.Calendar.json @@ -1,9 +1,9 @@ { - "app-id" : "org.gnome.Calendar.Devel", + "app-id" : "computer.federated.FederatedCalendar.Devel", "runtime" : "org.gnome.Platform", "runtime-version" : "master", "sdk" : "org.gnome.Sdk", - "command" : "gnome-calendar", + "command" : "federated-calendar", "tags" : [ "devel" ], diff --git a/data/icons/hicolor/scalable/apps/org.gnome.Calendar.Devel.svg b/data/icons/hicolor/scalable/apps/computer.federated.FederatedCalendar.Devel.svg similarity index 100% rename from data/icons/hicolor/scalable/apps/org.gnome.Calendar.Devel.svg rename to data/icons/hicolor/scalable/apps/computer.federated.FederatedCalendar.Devel.svg diff --git a/data/icons/hicolor/scalable/apps/org.gnome.Calendar.svg b/data/icons/hicolor/scalable/apps/computer.federated.FederatedCalendar.svg similarity index 100% rename from data/icons/hicolor/scalable/apps/org.gnome.Calendar.svg rename to data/icons/hicolor/scalable/apps/computer.federated.FederatedCalendar.svg diff --git a/data/icons/hicolor/symbolic/apps/org.gnome.Calendar-symbolic.svg b/data/icons/hicolor/symbolic/apps/computer.federated.FederatedCalendar-symbolic.svg similarity index 100% rename from data/icons/hicolor/symbolic/apps/org.gnome.Calendar-symbolic.svg rename to data/icons/hicolor/symbolic/apps/computer.federated.FederatedCalendar-symbolic.svg diff --git a/data/icons/hicolor/symbolic/apps/org.gnome.Calendar.Devel-symbolic.svg b/data/icons/hicolor/symbolic/apps/computer.federated.FederatedCalendar.Devel-symbolic.svg similarity index 100% rename from data/icons/hicolor/symbolic/apps/org.gnome.Calendar.Devel-symbolic.svg rename to data/icons/hicolor/symbolic/apps/computer.federated.FederatedCalendar.Devel-symbolic.svg diff --git a/data/meson.build b/data/meson.build index 07db5f1d..47303d21 100644 --- a/data/meson.build +++ b/data/meson.build @@ -3,11 +3,11 @@ subdir('icons') enum_headers = files(src_dir / 'gcal-enums.h') enums_xml = gnome.mkenums( - 'org.gnome.calendar.enums.xml', + '@0@.enums.xml'.format(settings_schema_id), sources: enum_headers, comments: '', fhead: '', - vhead: ' <@type@ id="org.gnome.calendar.@EnumName@">', + vhead: ' <@type@ id="@0@.@EnumName@">'.format(settings_schema_id), vprod: ' ', vtail: ' ', ftail: '', @@ -19,6 +19,7 @@ enums_xml = gnome.mkenums( # Note: This name is registered in gcal-weather-service.c. desktop_conf = configuration_data() desktop_conf.set('icon', application_id) +desktop_conf.set('binary', meson.project_name()) desktop = i18n.merge_file( type: 'desktop', input: configure_file( @@ -36,6 +37,7 @@ desktop = i18n.merge_file( search_provider_conf = configuration_data() search_provider_conf.set('appid', application_id) search_provider_conf.set('profile', profile) +search_provider_conf.set('objectpath', '/' + application_id.replace('.', '/')) configure_file( configuration: search_provider_conf, input: files('org.gnome.Calendar.search-provider.ini.in'), @@ -46,12 +48,12 @@ configure_file( # GSettings schema schema_conf = configuration_data() schema_conf.set('GETTEXT_PACKAGE', meson.project_name()) - -schema = 'org.gnome.calendar.gschema.xml' +schema_conf.set('SCHEMA_ID', settings_schema_id) +schema_conf.set('SCHEMA_PATH', settings_schema_path) schema_xml = configure_file( - input: schema + '.in', - output: schema, + input: 'org.gnome.calendar.gschema.xml.in', + output: '@0@.gschema.xml'.format(settings_schema_id), install: true, install_dir: calendar_schemadir, configuration: schema_conf @@ -72,6 +74,7 @@ compiled_schemas = custom_target( service_conf = configuration_data() service_conf.set('appid', application_id) service_conf.set('bindir', calendar_bindir) +service_conf.set('binary', meson.project_name()) service = 'org.gnome.Calendar.service' configure_file( diff --git a/data/org.gnome.Calendar.desktop.in.in b/data/org.gnome.Calendar.desktop.in.in index b4b082e5..191714d3 100644 --- a/data/org.gnome.Calendar.desktop.in.in +++ b/data/org.gnome.Calendar.desktop.in.in @@ -1,7 +1,7 @@ [Desktop Entry] -Name=Calendar +Name=Federated Calendar Comment=Access and manage your calendars -Exec=gnome-calendar %U +Exec=@binary@ %U # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=@icon@ Terminal=false diff --git a/data/org.gnome.Calendar.search-provider.ini.in b/data/org.gnome.Calendar.search-provider.ini.in index 3db030db..e18ee223 100644 --- a/data/org.gnome.Calendar.search-provider.ini.in +++ b/data/org.gnome.Calendar.search-provider.ini.in @@ -1,6 +1,6 @@ [Shell Search Provider] -Icon=gnome-calendar +Icon=@appid@ DesktopId=@appid@.desktop BusName=@appid@ -ObjectPath=/org/gnome/Calendar@profile@/SearchProvider +ObjectPath=@objectpath@@profile@/SearchProvider Version=2 diff --git a/data/org.gnome.Calendar.service.in b/data/org.gnome.Calendar.service.in index 70fbdd84..4d166061 100644 --- a/data/org.gnome.Calendar.service.in +++ b/data/org.gnome.Calendar.service.in @@ -1,3 +1,3 @@ [D-BUS Service] Name=@appid@ -Exec=@bindir@/gnome-calendar --gapplication-service +Exec=@bindir@/@binary@ --gapplication-service diff --git a/data/org.gnome.calendar.gschema.xml.in b/data/org.gnome.calendar.gschema.xml.in index 5de1d794..9064b5bc 100644 --- a/data/org.gnome.calendar.gschema.xml.in +++ b/data/org.gnome.calendar.gschema.xml.in @@ -1,6 +1,6 @@ - + true Window maximized @@ -11,7 +11,7 @@ Window size Window size (width and height). - + 'month' Type of the active view Type of the active window view, default value is: monthly view diff --git a/meson.build b/meson.build index 9fd839e3..edf8e853 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project( - 'gnome-calendar', + 'federated-calendar', 'c', version: '52.alpha', license: 'GPL3+', @@ -45,11 +45,16 @@ else rev = '' endif +base_application_id = 'computer.federated.FederatedCalendar' if profile == '' - application_id = 'org.gnome.Calendar' + application_id = base_application_id else - application_id = 'org.gnome.Calendar.@0@'.format(profile) + application_id = '@0@.@1@'.format(base_application_id, profile) endif + +# Settings are shared between profiles, but not with GNOME Calendar +settings_schema_id = base_application_id +settings_schema_path = '/' + settings_schema_id.replace('.', '/') + '/' calendar_buildtype = get_option('buildtype') development_release = calendar_minor_version.startswith('alpha') or \ calendar_minor_version.startswith('beta') or \ @@ -85,7 +90,8 @@ set_defines = [ ['GETTEXT_PACKAGE', meson.project_name()], ['PROFILE', profile], ['NAME_SUFFIX', name_suffix], - ['APPLICATION_ID', application_id] + ['APPLICATION_ID', application_id], + ['SETTINGS_SCHEMA_ID', settings_schema_id], ] foreach define: set_defines diff --git a/src/appdata/meson.build b/src/appdata/meson.build index 1304fb52..964b17a9 100644 --- a/src/appdata/meson.build +++ b/src/appdata/meson.build @@ -1,5 +1,6 @@ appdata_conf = configuration_data() appdata_conf.set('appid', application_id) +appdata_conf.set('binary', meson.project_name()) appdata = i18n.merge_file( input: configure_file( input: files('org.gnome.Calendar.metainfo.xml.in.in'), diff --git a/src/appdata/org.gnome.Calendar.metainfo.xml.in.in b/src/appdata/org.gnome.Calendar.metainfo.xml.in.in index 3ab9e1f8..521de2db 100644 --- a/src/appdata/org.gnome.Calendar.metainfo.xml.in.in +++ b/src/appdata/org.gnome.Calendar.metainfo.xml.in.in @@ -10,7 +10,7 @@ The GNOME Project - Calendar + Federated Calendar Manage your schedule @@ -104,10 +104,10 @@ touch - gnome-calendar + @binary@ @appid@.desktop - gnome-calendar + @binary@ diff --git a/src/core/gcal-context.c b/src/core/gcal-context.c index a00055cf..661eb211 100644 --- a/src/core/gcal-context.c +++ b/src/core/gcal-context.c @@ -20,6 +20,8 @@ #define G_LOG_DOMAIN "GcalContext" +#include "config.h" + #include "gcal-context.h" #include "gcal-time-zone-monitor.h" @@ -412,7 +414,7 @@ gcal_context_init (GcalContext *self) g_autoptr (GError) error = NULL; self->clock = gcal_clock_new (); - self->settings = g_settings_new ("org.gnome.calendar"); + self->settings = g_settings_new (SETTINGS_SCHEMA_ID); self->weather_service = gcal_weather_service_new (); self->time_format = GCAL_TIME_FORMAT_24H; diff --git a/src/gui/gcal-application.c b/src/gui/gcal-application.c index 9a5ea58b..390f80c6 100644 --- a/src/gui/gcal-application.c +++ b/src/gui/gcal-application.c @@ -519,7 +519,7 @@ gcal_application_handle_local_options (GApplication *app, { if (show_version) { - g_print ("gnome-calendar: Version %s\n", PACKAGE_VERSION); + g_print ("%s: Version %s\n", PACKAGE_NAME, PACKAGE_VERSION); return 0; } diff --git a/src/gui/gcal-window.blp b/src/gui/gcal-window.blp index 1af58cde..be6519cc 100644 --- a/src/gui/gcal-window.blp +++ b/src/gui/gcal-window.blp @@ -2,7 +2,7 @@ using Gtk 4.0; using Adw 1; template $GcalWindow: Adw.ApplicationWindow { - title: _("Calendar"); + title: _("Federated Calendar"); default-width: 800; default-height: 600; width-request: 360; diff --git a/src/gui/gcal-window.c b/src/gui/gcal-window.c index 9894cc49..b135c1dc 100644 --- a/src/gui/gcal-window.c +++ b/src/gui/gcal-window.c @@ -418,7 +418,7 @@ content_title (GcalWindow *self, return g_strdup (_("Agenda")); default: - return g_strdup (_("Calendar")); + return g_strdup (_("Federated Calendar")); } } diff --git a/src/main.c b/src/main.c index 5d39e1a2..9fa6ce56 100644 --- a/src/main.c +++ b/src/main.c @@ -33,7 +33,7 @@ main (gint argc, bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); - g_set_application_name (_("Calendar")); + g_set_application_name (_("Federated Calendar")); gcal_log_init ();