You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
7.8 KiB
195 lines
7.8 KiB
From 4369e31ec541172e1c0d7c64645c7990e413bbca Mon Sep 17 00:00:00 2001 |
|
From: Michael Catanzaro <mcatanzaro@gnome.org> |
|
Date: Tue, 9 Mar 2021 14:51:54 -0600 |
|
Subject: [PATCH 1/3] info-overview: add build option to control distributor |
|
logo |
|
|
|
Currently, we display a 256x256 version of the OS icon from |
|
/etc/os-release. This is too big for my taste, and it's also not |
|
sufficient for distros that want to display a logo that is not an icon. |
|
For instance, because we no longer display the operating system name |
|
immediately beneath the logo, it may be desirable to use a logo variant |
|
that includes text. This patch adds a meson build option that |
|
distributions can use to override the logo. |
|
|
|
Because the logo might include text, distributions may want to vary the |
|
logo used in dark mode. A subsequent commit will add a second option for |
|
this. |
|
--- |
|
meson.build | 6 ++++++ |
|
meson_options.txt | 1 + |
|
panels/info-overview/cc-info-overview-panel.c | 4 ++++ |
|
3 files changed, 11 insertions(+) |
|
|
|
diff --git a/meson.build b/meson.build |
|
index e8333c0da..1661caa4b 100644 |
|
--- a/meson.build |
|
+++ b/meson.build |
|
@@ -50,6 +50,12 @@ foreach define: set_defines |
|
config_h.set_quoted(define[0], define[1]) |
|
endforeach |
|
|
|
+distributor_logo = get_option('distributor_logo') |
|
+if (distributor_logo != '') |
|
+ config_h.set_quoted('DISTRIBUTOR_LOGO', distributor_logo, |
|
+ description: 'Define to absolute path of distributor logo') |
|
+endif |
|
+ |
|
# meson does not support octal values, so it must be handled as a |
|
# string. See: https://github.com/mesonbuild/meson/issues/2047 |
|
config_h.set('USER_DIR_MODE', '0700', |
|
diff --git a/meson_options.txt b/meson_options.txt |
|
index 1b7b54810..93e551373 100644 |
|
--- a/meson_options.txt |
|
+++ b/meson_options.txt |
|
@@ -8,3 +8,4 @@ option('tracing', type: 'boolean', value: false, description: 'add extra debuggi |
|
option('wayland', type: 'boolean', value: true, description: 'build with Wayland support') |
|
option('profile', type: 'combo', choices: ['default','development'], value: 'default') |
|
option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support') |
|
+option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel') |
|
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c |
|
index bd0e07762..95a5904df 100644 |
|
--- a/panels/info-overview/cc-info-overview-panel.c |
|
+++ b/panels/info-overview/cc-info-overview-panel.c |
|
@@ -869,6 +869,9 @@ cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self, |
|
static void |
|
setup_os_logo (CcInfoOverviewPanel *panel) |
|
{ |
|
+#ifdef DISTRIBUTOR_LOGO |
|
+ gtk_image_set_from_file (panel->os_logo, DISTRIBUTOR_LOGO); |
|
+#else |
|
g_autofree char *logo_name = g_get_os_info ("LOGO"); |
|
if (logo_name != NULL) |
|
{ |
|
@@ -879,6 +882,7 @@ setup_os_logo (CcInfoOverviewPanel *panel) |
|
{ |
|
gtk_image_set_from_resource (panel->os_logo, "/org/gnome/control-center/info-overview/GnomeLogoVerticalMedium.svg"); |
|
} |
|
+#endif |
|
} |
|
|
|
static void |
|
-- |
|
GitLab |
|
|
|
|
|
From f08669767ca87ff99fc08e1a7334c8f2e7f18f0b Mon Sep 17 00:00:00 2001 |
|
From: Michael Catanzaro <mcatanzaro@gnome.org> |
|
Date: Tue, 9 Mar 2021 16:02:46 -0600 |
|
Subject: [PATCH 2/3] info-overview: add build option to specify a dark mode |
|
logo variant |
|
|
|
Let's allow distributions to specify a different logo to use when using |
|
a dark GTK theme. This is best-effort only since it relies on the |
|
convention that dark themes must end with "dark" and therefore will fail |
|
for a theme named "midnight" or anything that doesn't match convention. |
|
--- |
|
meson.build | 5 ++++ |
|
meson_options.txt | 1 + |
|
panels/info-overview/cc-info-overview-panel.c | 27 +++++++++++++++++++ |
|
3 files changed, 33 insertions(+) |
|
|
|
diff --git a/meson.build b/meson.build |
|
index 1661caa4b..124171626 100644 |
|
--- a/meson.build |
|
+++ b/meson.build |
|
@@ -54,6 +54,11 @@ distributor_logo = get_option('distributor_logo') |
|
if (distributor_logo != '') |
|
config_h.set_quoted('DISTRIBUTOR_LOGO', distributor_logo, |
|
description: 'Define to absolute path of distributor logo') |
|
+ dark_mode_distributor_logo = get_option('dark_mode_distributor_logo') |
|
+ if (dark_mode_distributor_logo != '') |
|
+ config_h.set_quoted('DARK_MODE_DISTRIBUTOR_LOGO', dark_mode_distributor_logo, |
|
+ description: 'Define to absolute path of distributor logo for use in dark mode') |
|
+ endif |
|
endif |
|
|
|
# meson does not support octal values, so it must be handled as a |
|
diff --git a/meson_options.txt b/meson_options.txt |
|
index 93e551373..5305c8606 100644 |
|
--- a/meson_options.txt |
|
+++ b/meson_options.txt |
|
@@ -9,3 +9,4 @@ option('wayland', type: 'boolean', value: true, description: 'build with Wayland |
|
option('profile', type: 'combo', choices: ['default','development'], value: 'default') |
|
option('malcontent', type: 'boolean', value: false, description: 'build with malcontent support') |
|
option('distributor_logo', type: 'string', description: 'absolute path to distributor logo for the About panel') |
|
+option('dark_mode_distributor_logo', type: 'string', description: 'absolute path to distributor logo dark mode variant') |
|
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c |
|
index 95a5904df..cb20e16b1 100644 |
|
--- a/panels/info-overview/cc-info-overview-panel.c |
|
+++ b/panels/info-overview/cc-info-overview-panel.c |
|
@@ -866,10 +866,37 @@ cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self, |
|
open_software_update (self); |
|
} |
|
|
|
+#ifdef DARK_MODE_DISTRIBUTOR_LOGO |
|
+static gboolean |
|
+is_dark_mode (CcInfoOverviewPanel *panel) |
|
+{ |
|
+ GdkScreen *screen; |
|
+ GtkSettings *settings; |
|
+ g_autofree char *theme_name = NULL; |
|
+ |
|
+ theme_name = g_strdup (g_getenv ("GTK_THEME")); |
|
+ if (theme_name != NULL) |
|
+ return g_str_has_suffix (theme_name, "dark"); |
|
+ |
|
+ screen = gtk_widget_get_screen (GTK_WIDGET (panel)); |
|
+ settings = gtk_settings_get_for_screen (screen); |
|
+ |
|
+ g_object_get (settings, "gtk-theme-name", &theme_name, NULL); |
|
+ return theme_name != NULL && g_str_has_suffix (theme_name, "dark"); |
|
+} |
|
+#endif |
|
+ |
|
static void |
|
setup_os_logo (CcInfoOverviewPanel *panel) |
|
{ |
|
#ifdef DISTRIBUTOR_LOGO |
|
+#ifdef DARK_MODE_DISTRIBUTOR_LOGO |
|
+ if (is_dark_mode (panel)) |
|
+ { |
|
+ gtk_image_set_from_file (panel->os_logo, DARK_MODE_DISTRIBUTOR_LOGO); |
|
+ return; |
|
+ } |
|
+#endif |
|
gtk_image_set_from_file (panel->os_logo, DISTRIBUTOR_LOGO); |
|
#else |
|
g_autofree char *logo_name = g_get_os_info ("LOGO"); |
|
-- |
|
GitLab |
|
|
|
|
|
From c379ccc4e8f0bcdee78361f134ba29d3a25f7528 Mon Sep 17 00:00:00 2001 |
|
From: Michael Catanzaro <mcatanzaro@gnome.org> |
|
Date: Wed, 10 Mar 2021 11:30:57 -0600 |
|
Subject: [PATCH 3/3] info-overview: reduce size of logo when using icon from |
|
/etc/os-release |
|
|
|
When using the icon from /etc/os-release, display it as 128x128 rather |
|
than 256x256. In distributions that don't ship a 128x128, such as |
|
Fedora, this results in the 256x256 icon being scaled down to a |
|
reasonable size. 256x256 is so large here as to be clearly undesirable. |
|
128x128 is also the size that Ubuntu uses in its downstream patch. Might |
|
as well reduce the need for patching as far as possible, even though |
|
Fedora doesn't plan to use this codepath. |
|
--- |
|
panels/info-overview/cc-info-overview-panel.c | 2 +- |
|
1 file changed, 1 insertion(+), 1 deletion(-) |
|
|
|
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c |
|
index cb20e16b1..3575b90c5 100644 |
|
--- a/panels/info-overview/cc-info-overview-panel.c |
|
+++ b/panels/info-overview/cc-info-overview-panel.c |
|
@@ -903,7 +903,7 @@ setup_os_logo (CcInfoOverviewPanel *panel) |
|
if (logo_name != NULL) |
|
{ |
|
gtk_image_set_from_icon_name (panel->os_logo, logo_name, GTK_ICON_SIZE_INVALID); |
|
- gtk_image_set_pixel_size (panel->os_logo, 256); |
|
+ gtk_image_set_pixel_size (panel->os_logo, 128); |
|
} |
|
else |
|
{ |
|
-- |
|
GitLab |
|
|
|
|