From 79d818e36bcc35fe0f2b44841399407126bdbce5 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:41:53 -0700 Subject: [PATCH 01/19] Update GNOME_44_MAX patch --- gnome-44-max.patch | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnome-44-max.patch b/gnome-44-max.patch index ce9b4bf..584bdff 100644 --- a/gnome-44-max.patch +++ b/gnome-44-max.patch @@ -353,7 +353,7 @@ index 7883b9b..5478d2a 100644 } \ No newline at end of file diff --git a/gnome-44-max/src/xrEffect.js b/gnome-44-max/src/xrEffect.js -index 2680cae..bfb036f 100644 +index aab805c..922ec0f 100644 --- a/gnome-44-max/src/xrEffect.js +++ b/gnome-44-max/src/xrEffect.js @@ -1,13 +1,15 @@ @@ -378,7 +378,7 @@ index 2680cae..bfb036f 100644 +const Me = ExtensionUtils.getCurrentExtension(); + +const Globals = Me.imports.globals; -+const { ++const { dataViewEnd, dataViewUint8, dataViewBigUint, @@ -400,7 +400,7 @@ index 2680cae..bfb036f 100644 // the driver should be using the same data layout version const DATA_LAYOUT_VERSION = 3; -@@ -220,7 +222,7 @@ function checkParityByte(dataView) { +@@ -221,7 +223,7 @@ function checkParityByte(dataView) { return parityByte === parity; } @@ -409,9 +409,9 @@ index 2680cae..bfb036f 100644 Properties: { 'supported-device-detected': GObject.ParamSpec.boolean( 'supported-device-detected', -@@ -360,8 +362,13 @@ export const XREffect = GObject.registerClass({ +@@ -361,8 +363,13 @@ export const XREffect = GObject.registerClass({ if (!this._initialized) { - this.set_uniform_float(this.get_uniform_location('uDesktopTexture'), 1, [0]); + this.set_uniform_float(this.get_uniform_location('screenTexture'), 1, [0]); - this.get_pipeline().set_layer_texture(1, calibratingImage.get_texture()); - this.get_pipeline().set_layer_texture(2, customBannerImage.get_texture()); @@ -422,6 +422,6 @@ index 2680cae..bfb036f 100644 + } catch (e) { + Globals.logger.log(`ERROR: xrEffect.js vfunc_paint_target ${e.message}\n${e.stack}`); + } - this.get_pipeline().set_uniform_1i(this.get_uniform_location('uCalibratingTexture'), 1); - this.get_pipeline().set_uniform_1i(this.get_uniform_location('uCustomBannerTexture'), 2); + this.get_pipeline().set_uniform_1i(this.get_uniform_location('calibratingTexture'), 1); + this.get_pipeline().set_uniform_1i(this.get_uniform_location('customBannerTexture'), 2); From f5e77edf40f989ceae5ac2c49f855b8273f4f193 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:57:20 -0700 Subject: [PATCH 02/19] Bump UI to v0.12 --- ui/meson.build | 2 +- ui/src/main.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/meson.build b/ui/meson.build index c4bd796..20c4a6d 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -1,5 +1,5 @@ project('breezydesktop', - version: '0.11.0', + version: '0.12.0', meson_version: '>= 0.62.0', default_options: [ 'warning_level=2', 'werror=false', ], ) diff --git a/ui/src/main.py b/ui/src/main.py index dccac4f..dc0b0d7 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -106,7 +106,7 @@ class BreezydesktopApplication(Adw.Application): modal=True, program_name='Breezy Desktop', logo_icon_name='com.xronlinux.BreezyDesktop', - version='0.11.0', + version='0.12.0', authors=['Wayne Heaney'], copyright='© 2024 Wayne Heaney') about.present() From 740c301092ca8e6b4c9ab8b5e2b18c761a08e6e5 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:30:54 -0700 Subject: [PATCH 03/19] Pull in driver and shader fixes for sideview display distance fixes --- modules/XRLinuxDriver | 2 +- modules/sombrero | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index d7415dc..27f102e 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit d7415dc00a29afb5db844fd5867de4f0cc09d85d +Subproject commit 27f102ea97ddc015bf340a5627a7957fc6d39378 diff --git a/modules/sombrero b/modules/sombrero index 46b9988..d493c74 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 46b99881e066fdc8a90b36dd9f83cc9894ecffa0 +Subproject commit d493c7459923d8a5c60aca4340ebb98b2edc6777 From 04e8bf2a6ec3efd6ab1a9dffece09a1bd33eec9d Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:15:43 -0700 Subject: [PATCH 04/19] Pull in sombrero fix --- modules/sombrero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sombrero b/modules/sombrero index d493c74..f2b2531 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit d493c7459923d8a5c60aca4340ebb98b2edc6777 +Subproject commit f2b2531d2cdeac7d65b91461c75ba98c1902bba9 From b7daefed82e31dc96e32bba17e3cb00319139b14 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 12 Sep 2024 22:03:22 -0700 Subject: [PATCH 05/19] Pull in driver with gamescope support, update vulkan setup to copy shader files to the appropriate gamescope directory, fix license issues in Breezy GNOME UI --- modules/XRLinuxDriver | 2 +- ui/src/licensedialog.py | 26 +++++++++++++++++--------- ui/src/main.py | 2 +- ui/src/nolicense.py | 7 +++++-- ui/src/window.py | 4 ++-- vulkan/bin/setup | 13 ++++++++++++- 6 files changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 27f102e..dd27242 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 27f102ea97ddc015bf340a5627a7957fc6d39378 +Subproject commit dd272422d665ec2f6d7d7006f94837fad73e1553 diff --git a/ui/src/licensedialog.py b/ui/src/licensedialog.py index 769ab05..52a2c64 100644 --- a/ui/src/licensedialog.py +++ b/ui/src/licensedialog.py @@ -1,4 +1,5 @@ from gi.repository import Adw, Gtk, GLib +from .nolicense import NoLicense from .statemanager import StateManager from .licensetierrow import LicenseTierRow from .licensefeaturerow import LicenseFeatureRow @@ -29,6 +30,8 @@ class LicenseDialog(Gtk.Dialog): self.verify_token.connect('apply', self._on_verify_token) self.refresh_license_button.connect('clicked', self._refresh_license) + self.no_license = NoLicense(hide_refresh_button = True) + def _refresh_license(self, widget): self.refresh_license_button.set_sensitive(False) self.ipc.write_control_flags({'refresh_device_license': True}) @@ -46,19 +49,24 @@ class LicenseDialog(Gtk.Dialog): for child in self.tiers: self.tiers.remove(child) - tiers_group = Adw.PreferencesGroup(title=_("Paid Tier Status"), margin_top=20) - self.tiers.append(tiers_group) - - for tier_name, tier_details in license_view['tiers'].items(): - tiers_group.add(LicenseTierRow(tier_name, tier_details)) for child in self.features: self.features.remove(child) - features_group = Adw.PreferencesGroup(title=_("Feature Availability"), margin_top=20) - self.features.append(features_group) - for feature_name, feature_details in license_view['features'].items(): - features_group.add(LicenseFeatureRow(feature_name, feature_details)) + if license_view: + tiers_group = Adw.PreferencesGroup(title=_("Paid Tier Status"), margin_top=20) + self.tiers.append(tiers_group) + + for tier_name, tier_details in license_view['tiers'].items(): + tiers_group.add(LicenseTierRow(tier_name, tier_details)) + + features_group = Adw.PreferencesGroup(title=_("Feature Availability"), margin_top=20) + self.features.append(features_group) + + for feature_name, feature_details in license_view['features'].items(): + features_group.add(LicenseFeatureRow(feature_name, feature_details)) + else: + self.tiers.append(self.no_license) self.refresh_license_button.set_sensitive(True) diff --git a/ui/src/main.py b/ui/src/main.py index dc0b0d7..4f4a1c1 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -106,7 +106,7 @@ class BreezydesktopApplication(Adw.Application): modal=True, program_name='Breezy Desktop', logo_icon_name='com.xronlinux.BreezyDesktop', - version='0.12.0', + version='1.0.0', authors=['Wayne Heaney'], copyright='© 2024 Wayne Heaney') about.present() diff --git a/ui/src/nolicense.py b/ui/src/nolicense.py index afe059b..c09112d 100644 --- a/ui/src/nolicense.py +++ b/ui/src/nolicense.py @@ -8,13 +8,16 @@ class NoLicense(Gtk.Box): refresh_license_button = Gtk.Template.Child() - def __init__(self, **kwargs): + def __init__(self, hide_refresh_button = False, **kwargs): super(Gtk.Box, self).__init__() self.init_template() self.ipc = XRDriverIPC.get_instance() - self.refresh_license_button.connect("clicked", self.on_refresh_license_button_clicked) + if hide_refresh_button: + self.refresh_license_button.hide() + else: + self.refresh_license_button.connect("clicked", self.on_refresh_license_button_clicked) def on_refresh_license_button_clicked(self, button): self.ipc.write_control_flags({'refresh_device_license': True}) \ No newline at end of file diff --git a/ui/src/window.py b/ui/src/window.py index 372255a..aeddeb4 100644 --- a/ui/src/window.py +++ b/ui/src/window.py @@ -79,10 +79,10 @@ class BreezydesktopWindow(Gtk.ApplicationWindow): self.main_content.append(self.failed_verification) elif not self.state_manager.driver_running: self.main_content.append(self.no_driver) - elif not state_manager.connected_device_name: - self.main_content.append(self.no_device) elif not self.state_manager.license_present: self.main_content.append(self.no_license) + elif not state_manager.connected_device_name: + self.main_content.append(self.no_device) elif not ExtensionsManager.get_instance().is_installed(): self.main_content.append(self.no_extension) else: diff --git a/vulkan/bin/setup b/vulkan/bin/setup index 5d47841..87170fc 100755 --- a/vulkan/bin/setup +++ b/vulkan/bin/setup @@ -20,6 +20,10 @@ fi VULKAN_DATA_DIR="$XDG_DATA_HOME/vulkan" XR_DRIVER_DATA_DIR="$XDG_DATA_HOME/xr_driver" +GAMESCOPE_DATA_DIR="$XDG_DATA_HOME/gamescope" +GAMESCOPE_RESHADE_SHADERS_DIR="$GAMESCOPE_DATA_DIR/reshade/Shaders" +GAMESCOPE_RESHADE_TEXTURES_DIR="$GAMESCOPE_DATA_DIR/reshade/Textures" + if [ -z "$XDG_CONFIG_HOME" ]; then XDG_CONFIG_HOME="$USER_HOME/.config" fi @@ -127,14 +131,21 @@ sed -e "s|/path/to/reshade-shaders|${RESHADE_CONFIG_DIR}|" \ -e "s|/path/to/sombrero|${RESHADE_CONFIG_DIR}/Shaders/Sombrero.frag|" \ config/vkBasalt.conf > $VKBASALT_CONFIG_DIR/vkBasalt.conf -echo "Installing the Sombrero shaders and texture files to ${RESHADE_CONFIG_DIR}/{Shaders,Textures}" +echo "Installing the Sombrero shader and texture files to ${RESHADE_CONFIG_DIR}/{Shaders,Textures} and ${GAMESCOPE_DATA_DIR}/reshade/{Shaders,Textures}" cp *.frag $RESHADE_CONFIG_DIR/Shaders cp *.fx* $RESHADE_CONFIG_DIR/Shaders cp *.png $RESHADE_CONFIG_DIR/Textures +mkdir -p $GAMESCOPE_RESHADE_SHADERS_DIR +mkdir -p $GAMESCOPE_RESHADE_TEXTURES_DIR +cp *.frag $GAMESCOPE_RESHADE_SHADERS_DIR +cp *.fx* $GAMESCOPE_RESHADE_SHADERS_DIR +cp *.png $GAMESCOPE_RESHADE_TEXTURES_DIR + chown -R $USER:$GROUP $LIB_DIR chown -R $USER:$GROUP $LIB32_DIR chown -R $USER:$GROUP $DATA_DIR +chown -R $USER:$GROUP $GAMESCOPE_DATA_DIR chown -R $USER:$GROUP $VULKAN_DATA_DIR chown -R $USER:$GROUP $RESHADE_CONFIG_DIR chown -R $USER:$GROUP $VKBASALT_CONFIG_DIR From 0d81f664c2cf109342f765852abdf327d114f48f Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 12 Sep 2024 22:34:00 -0700 Subject: [PATCH 06/19] Update version in ui/meson.build --- ui/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/meson.build b/ui/meson.build index 20c4a6d..e851137 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -1,5 +1,5 @@ project('breezydesktop', - version: '0.12.0', + version: '1.0.0', meson_version: '>= 0.62.0', default_options: [ 'warning_level=2', 'werror=false', ], ) From 81ff0195be8650dc0143f6d862d53b26ac8e7189 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:08:54 -0700 Subject: [PATCH 07/19] Pull in latest XR driver and sombrero shader for gamescope support --- modules/XRLinuxDriver | 2 +- modules/sombrero | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index dd27242..0a2b6b5 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit dd272422d665ec2f6d7d7006f94837fad73e1553 +Subproject commit 0a2b6b5731b803b85703a825df655894eb8cf0af diff --git a/modules/sombrero b/modules/sombrero index f2b2531..89091d8 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit f2b2531d2cdeac7d65b91461c75ba98c1902bba9 +Subproject commit 89091d814a04855ba0cb29fbc150612ebf083d10 From b60fb9edf49a2edd421d6f0b2a6175d9213eae11 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 17 Sep 2024 10:43:12 -0700 Subject: [PATCH 08/19] Pull in driver with widescreen smooth follow updates --- modules/XRLinuxDriver | 2 +- modules/sombrero | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 0a2b6b5..c8dffd2 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 0a2b6b5731b803b85703a825df655894eb8cf0af +Subproject commit c8dffd2b739d987018361ca82dc8ca012a1ed117 diff --git a/modules/sombrero b/modules/sombrero index 89091d8..51e508c 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 89091d814a04855ba0cb29fbc150612ebf083d10 +Subproject commit 51e508ca9cb38fd3ff22e5a495a715979bc1f325 From 1bd81c62289058b3e92ba00f131120cf70f21df3 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:36:22 -0700 Subject: [PATCH 09/19] Pull in driver and sombrero fixes for sideview and smooth follow --- modules/XRLinuxDriver | 2 +- modules/sombrero | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index c8dffd2..70b9af0 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit c8dffd2b739d987018361ca82dc8ca012a1ed117 +Subproject commit 70b9af0a0f706430f70d5421ebb1179930c548c7 diff --git a/modules/sombrero b/modules/sombrero index 51e508c..88b4635 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 51e508ca9cb38fd3ff22e5a495a715979bc1f325 +Subproject commit 88b4635cc526a9b47eacb2bb2de6c082df6d6803 From e4265c75d14b8249b7816ff0b9bfabb810c5140f Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Fri, 20 Sep 2024 14:29:05 -0700 Subject: [PATCH 10/19] Add GNOME version 47 to the compatibility list --- gnome-44-max.patch | 2 +- gnome/src/metadata.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnome-44-max.patch b/gnome-44-max.patch index 584bdff..286d8bb 100644 --- a/gnome-44-max.patch +++ b/gnome-44-max.patch @@ -271,7 +271,7 @@ index b9b5ebf..c888f94 100644 "settings-schema": "com.xronlinux.BreezyDesktop", "session-modes": ["user", "unlock-dialog"], "shell-version": [ -- "45", "46" +- "45", "46", "47" + "42", "43", "44" ], "url": "https://github.com/wheaney/breezy-desktop" diff --git a/gnome/src/metadata.json b/gnome/src/metadata.json index b9b5ebf..125954e 100644 --- a/gnome/src/metadata.json +++ b/gnome/src/metadata.json @@ -5,7 +5,7 @@ "settings-schema": "com.xronlinux.BreezyDesktop", "session-modes": ["user", "unlock-dialog"], "shell-version": [ - "45", "46" + "45", "46", "47" ], "url": "https://github.com/wheaney/breezy-desktop" } \ No newline at end of file From 31693bdeceec985332f9d9eac65398d1b9927e36 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:58:18 -0700 Subject: [PATCH 11/19] Fix population and usage of uniform variables --- gnome/src/xrEffect.js | 17 ++++++++++++++--- modules/sombrero | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gnome/src/xrEffect.js b/gnome/src/xrEffect.js index aab805c..6b1421b 100644 --- a/gnome/src/xrEffect.js +++ b/gnome/src/xrEffect.js @@ -47,7 +47,7 @@ const DATA_VIEW_LENGTH = dataViewEnd(IMU_PARITY_BYTE); // cached after first retrieval const shaderUniformLocations = { - 'enabled': null, + 'virtual_display_enabled': null, 'show_banner': null, 'imu_quat_data': null, 'look_ahead_cfg': null, @@ -67,7 +67,13 @@ const shaderUniformLocations = { 'fov_widths': null, 'display_resolution': null, 'source_to_display_ratio': null, - 'curved_display': null + 'curved_display': null, + + // only used by the reshade integration, but needs to be set to a default value by this effect + 'frametime': null, + 'sideview_enabled': null, + 'sideview_position': null, + 'sideview_display_size': null }; function setUniformFloat(effect, locationName, dataViewInfo, value) { @@ -196,6 +202,11 @@ function setIntermittentUniformVariables() { setSingleFloat(this, 'show_banner', imuResetState ? 1.0 : 0.0); setSingleFloat(this, 'sbs_enabled', sbsEnabled ? 1.0 : 0.0); setSingleFloat(this, 'custom_banner_enabled', dataViewUint8(dataView, CUSTOM_BANNER_ENABLED) !== 0 ? 1.0 : 0.0); + setSingleFloat(this, 'frametime', 0.0); + + setSingleFloat(this, 'sideview_enabled', 0.0); + setSingleFloat(this, 'sideview_position', 0.0); + setSingleFloat(this, 'sideview_display_size', 1.0); this.set_uniform_float(shaderUniformLocations['display_resolution'], 2, displayRes); this.set_uniform_float(shaderUniformLocations['source_to_display_ratio'], 2, [this.target_monitor.width/displayRes[0], this.target_monitor.height/displayRes[1]]); @@ -347,7 +358,7 @@ export const XREffect = GObject.registerClass({ vfunc_build_pipeline() { const code = getShaderSource(`${Globals.extension_dir}/Sombrero.frag`); - const main = 'PS_Sombrero(true, false, source_to_display_ratio, show_banner, cogl_tex_coord_in[0].xy, cogl_color_out);'; + const main = 'PS_Sombrero(virtual_display_enabled, false, source_to_display_ratio, show_banner, cogl_tex_coord_in[0].xy, cogl_color_out);'; this.add_glsl_snippet(Shell.SnippetHook.FRAGMENT, code, main, false); } diff --git a/modules/sombrero b/modules/sombrero index 88b4635..4ff0de0 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 88b4635cc526a9b47eacb2bb2de6c082df6d6803 +Subproject commit 4ff0de0aa4cfc5b4fecdd5c7294eba09e3f5fde7 From 230f93466a0f5fedb0ae90d26019059aaa8a82b8 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 25 Sep 2024 14:42:18 -0700 Subject: [PATCH 12/19] Handle siblings added/removed from the stage --- gnome/src/extension.js | 28 +++++++++++++++++++++++++++- modules/sombrero | 2 +- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/gnome/src/extension.js b/gnome/src/extension.js index cd17162..5f62bfd 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -56,6 +56,8 @@ export default class BreezyDesktopExtension extends Extension { this._disable_anti_aliasing_binding = null; this._optimal_monitor_config_binding = null; this._headset_as_primary_binding = null; + this._actor_added_connection = null; + this._actor_removed_connection = null; if (!Globals.logger) { Globals.logger = new Logger({ @@ -263,8 +265,19 @@ export default class BreezyDesktopExtension extends Extension { this._overlay.set_child(overlayContent); - global.stage.insert_child_above(this._overlay, null); Shell.util_set_hidden_from_pick(this._overlay, true); + global.stage.add_child(this._overlay); + + // In GS 45, use of "actor" was renamed to "child". + const clutterContainer = Clutter.Container !== undefined; + this._actor_added_connection = global.stage.connect( + clutterContainer ? 'actor-added' : 'child-added', + this._handle_sibling_update.bind(this), + ); + this._actor_removed_connection = global.stage.connect( + clutterContainer ? 'actor-removed' : 'child-removed', + this._handle_sibling_update.bind(this), + ); this._xr_effect = new XREffect({ target_monitor: targetMonitor, @@ -310,6 +323,11 @@ export default class BreezyDesktopExtension extends Extension { } } + _handle_sibling_update() { + Globals.logger.log_debug('BreezyDesktopExtension _handle_sibling_update()'); + global.stage.set_child_above_sibling(this._overlay, null); + } + _add_settings_keybinding(settings_key, bind_to_function) { try { Main.wm.addKeybinding( @@ -494,6 +512,14 @@ export default class BreezyDesktopExtension extends Extension { Main.wm.removeKeybinding('toggle-follow-shortcut'); Meta.enable_unredirect_for_display(global.display); + if (this._actor_added_connection) { + global.stage.disconnect(this._actor_added_connection); + this._actor_added_connection = null; + } + if (this._actor_removed_connection) { + global.stage.disconnect(this._actor_removed_connection); + this._actor_removed_connection = null; + } if (this._overlay) { if (this._xr_effect) this._xr_effect.cleanup(); this._overlay.remove_effect_by_name('xr-desktop'); diff --git a/modules/sombrero b/modules/sombrero index 4ff0de0..1d0ead1 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 4ff0de0aa4cfc5b4fecdd5c7294eba09e3f5fde7 +Subproject commit 1d0ead14b293c58c661c5589cb8919cf8482b4de From e24fc43bd07386c3c81b4dc5d5a13770797bb527 Mon Sep 17 00:00:00 2001 From: Wayne Heaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:12:29 -0700 Subject: [PATCH 13/19] Add text scaling slider (#57) --- ui/po/breezydesktop.pot | 14 ++++-- ui/po/de.po | 29 +++++++----- ui/po/es.po | 75 ++++++++++++++++++++++--------- ui/po/fr.po | 80 ++++++++++++++++++++-------------- ui/po/it.po | 14 ++++-- ui/po/ja.po | 67 +++++++++++++++++++--------- ui/po/pl.po | 14 ++++-- ui/po/pt_BR.po | 44 +++++++++++-------- ui/po/ru.po | 31 ++++++++----- ui/po/sv.po | 68 +++++++++++++++++------------ ui/po/uk_UA.po | 76 +++++++++++++++++++++----------- ui/po/zh_CN.po | 14 ++++-- ui/src/connecteddevice.py | 4 ++ ui/src/gtk/connected-device.ui | 31 +++++++++++++ ui/src/settingsmanager.py | 1 + 15 files changed, 384 insertions(+), 178 deletions(-) diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 376f1b8..1bfe949 100644 --- a/ui/po/breezydesktop.pot +++ b/ui/po/breezydesktop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:36-0700\n" +"POT-Creation-Date: 2024-10-01 13:24-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,11 +27,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "" @@ -313,6 +313,14 @@ msgstr "" msgid "Default" msgstr "" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "" diff --git a/ui/po/de.po b/ui/po/de.po index b03812a..cbe688b 100644 --- a/ui/po/de.po +++ b/ui/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-16 08:38-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -29,11 +29,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "Diese Funktion wird von Ihrem Gerät derzeit nicht unterstützt." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Bezahlter Tarifstatus" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Funktionsverfügbarkeit" @@ -175,8 +175,7 @@ msgstr "Folgemodus" #: src/gtk/connected-device.ui:67 msgid "Keep the virtual display near the center of your view." -msgstr "" -"Halten Sie das virtuelle Display Nahe der Mitte Ihres Blickfelds." +msgstr "Halten Sie das virtuelle Display Nahe der Mitte Ihres Blickfelds." #: src/gtk/connected-device.ui:77 msgid "Curved display" @@ -325,15 +324,23 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"Wirkt Eingabeverzögerungen entgegen, indem die Kopfverfolgungsposition vor der " -"Renderzeit vorhergesagt wird. Bleiben Sie bei den Standardeinstellungen, es sei denn, das " -"virtuelle Display hängt hinter Ihren Kopfbewegungen hinterher, springt vor oder " -"ist sehr wackelig." +"Wirkt Eingabeverzögerungen entgegen, indem die Kopfverfolgungsposition vor " +"der Renderzeit vorhergesagt wird. Bleiben Sie bei den Standardeinstellungen, " +"es sei denn, das virtuelle Display hängt hinter Ihren Kopfbewegungen " +"hinterher, springt vor oder ist sehr wackelig." #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "Standard" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Ungültige Breezy Desktop GNOME-Installation" @@ -451,7 +458,9 @@ msgstr "Tastenkombination zuweisen" #: src/gtk/shortcut-dialog.ui:20 msgid "Press your keyboard shortcut or 'Backspace' to disable..." -msgstr "Drücken Sie Ihre Tastenkombination oder die 'Rücktaste', um sie zu deaktivieren..." +msgstr "" +"Drücken Sie Ihre Tastenkombination oder die 'Rücktaste', um sie zu " +"deaktivieren..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" diff --git a/ui/po/es.po b/ui/po/es.po index 3c2b3fb..f72cbce 100644 --- a/ui/po/es.po +++ b/ui/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:19-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -21,17 +21,18 @@ msgstr "" msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." -msgstr "Cambia tus gafas al modo lado a lado y duplica el ancho de la pantalla." +msgstr "" +"Cambia tus gafas al modo lado a lado y duplica el ancho de la pantalla." #: src/connecteddevice.py:17 msgid "This feature is not currently supported for your device." msgstr "Esta función no es compatible con tu dispositivo en este momento." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Estado del Nivel de Membresía Pagada" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Disponibilidad de Características" @@ -196,7 +197,8 @@ msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." msgstr "" -"Más cerca parece más grande, más lejos parece más pequeño. Controla la profundidad cuando está en modo de pantalla ancha." +"Más cerca parece más grande, más lejos parece más pequeño. Controla la " +"profundidad cuando está en modo de pantalla ancha." #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -207,7 +209,8 @@ msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." msgstr "" -"Combínalo con la distancia de la pantalla para lograr un nivel cómodo de profundidad y tamaño." +"Combínalo con la distancia de la pantalla para lograr un nivel cómodo de " +"profundidad y tamaño." #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" @@ -218,7 +221,8 @@ msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." msgstr "" -"Utilice los botones para capturar la distancia actual de la pantalla para su uso con el método abreviado de teclado." +"Utilice los botones para capturar la distancia actual de la pantalla para su " +"uso con el método abreviado de teclado." #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -274,7 +278,9 @@ msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -"Modifique automáticamente la configuración de pantalla de las gafas para obtener la máxima resolución y la mejor escalabilidad cuando estén enchufadas." +"Modifique automáticamente la configuración de pantalla de las gafas para " +"obtener la máxima resolución y la mejor escalabilidad cuando estén " +"enchufadas." #: src/gtk/connected-device.ui:332 msgid "Use highest refresh rate" @@ -282,7 +288,9 @@ msgstr "Utilizar la frecuencia de actualización más alta" #: src/gtk/connected-device.ui:333 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "La frecuencia de actualización puede afectar el rendimiento, deshabilite esto para configurarlo manualmente." +msgstr "" +"La frecuencia de actualización puede afectar el rendimiento, deshabilite " +"esto para configurarlo manualmente." #: src/gtk/connected-device.ui:343 msgid "Always primary display" @@ -290,7 +298,8 @@ msgstr "Siempre como pantalla principal" #: src/gtk/connected-device.ui:344 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "Automáticamente configurar las gafas como pantalla principal al enchufarse." +msgstr "" +"Automáticamente configurar las gafas como pantalla principal al enchufarse." #: src/gtk/connected-device.ui:354 msgid "Fast SBS mode switching" @@ -301,7 +310,9 @@ msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"Cambia las gafas al modo SBS (lado a lado) inmediatamente cuando se enchufan, si el modo de pantalla ancha está activado. Puede causar inestabilidad." +"Cambia las gafas al modo SBS (lado a lado) inmediatamente cuando se " +"enchufan, si el modo de pantalla ancha está activado. Puede causar " +"inestabilidad." #: src/gtk/connected-device.ui:365 msgid "Movement look-ahead" @@ -313,12 +324,23 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"Compensa el retraso de entrada al predecir la posición de seguimiento de la cabeza antes del tiempo de representación. Manténgase en el valor predeterminado a menos que la pantalla virtual se retrase detrás de los movimientos de la cabeza, se adelante o sea muy inestable." +"Compensa el retraso de entrada al predecir la posición de seguimiento de la " +"cabeza antes del tiempo de representación. Manténgase en el valor " +"predeterminado a menos que la pantalla virtual se retrase detrás de los " +"movimientos de la cabeza, se adelante o sea muy inestable." #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "Predeterminado" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Configuración inválida de Breezy Desktop GNOME" @@ -328,7 +350,8 @@ msgid "" "Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " "script. Report this issue if it persists." msgstr "" -"Su configuración de Breezy GNOME es inválida o incompleta. Vuelva a ejecutar el script de configuración. Informe sobre este problema si persiste." +"Su configuración de Breezy GNOME es inválida o incompleta. Vuelva a ejecutar " +"el script de configuración. Informe sobre este problema si persiste." #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:55 msgid "License Details" @@ -370,10 +393,12 @@ msgid "" " " msgstr "" "\n" -" Si instaló a través de AUR, asegúrese de haber ejecutado el comando de instalación recomendado:\n" +" Si instaló a través de AUR, asegúrese de haber ejecutado el comando de " +"instalación recomendado:\n" " systemctl --user enable --now xr-driver.service\n" "\n" -" De lo contrario, por favor informe sobre el problema en GitHub, o cree un nuevo hilo en el canal #troubleshooting de Discord.\n" +" De lo contrario, por favor informe sobre el problema en GitHub, o cree un " +"nuevo hilo en el canal #troubleshooting de Discord.\n" " " #: src/gtk/no-extension.ui:13 @@ -385,7 +410,9 @@ msgid "" "If you have just run the setup, then you may need to log out and back in to " "use it. Otherwise, please follow the Breezy GNOME setup instructions." msgstr "" -"Si acaba de ejecutar la configuración, es posible que deba cerrar sesión y volver a iniciar para usarla. De lo contrario, siga las instrucciones de configuración de Breezy GNOME." +"Si acaba de ejecutar la configuración, es posible que deba cerrar sesión y " +"volver a iniciar para usarla. De lo contrario, siga las instrucciones de " +"configuración de Breezy GNOME." #: src/gtk/no-license.ui:13 msgid "No license file was found" @@ -407,12 +434,16 @@ msgid "" " " msgstr "" "\n" -" La primera vez que use Breezy Desktop, se requiere una conexión a Internet para recuperar la licencia de su dispositivo.\n" +" La primera vez que use Breezy Desktop, se requiere una conexión a Internet " +"para recuperar la licencia de su dispositivo.\n" " \n" -" No se preocupe, no hay ninguna obligación de donar en este momento. Si no lo ha hecho, se le proporcionará una licencia de prueba para que pueda decidir si Breezy Desktop se ajusta a sus necesidades.\n" +" No se preocupe, no hay ninguna obligación de donar en este momento. Si no " +"lo ha hecho, se le proporcionará una licencia de prueba para que pueda " +"decidir si Breezy Desktop se ajusta a sus necesidades.\n" " \n" -" Una vez que obtenga una licencia, de prueba o de otro tipo, podrá utilizar Breezy Desktop sin conexión hasta que expiren las características (o indefinidamente, si ha elegido el acceso de por vida)." -" " +" Una vez que obtenga una licencia, de prueba o de otro tipo, podrá utilizar " +"Breezy Desktop sin conexión hasta que expiren las características (o " +"indefinidamente, si ha elegido el acceso de por vida). " #: src/gtk/no-license.ui:27 msgid "Try Again" @@ -424,7 +455,9 @@ msgstr "Asignar método abreviado de teclado" #: src/gtk/shortcut-dialog.ui:20 msgid "Press your keyboard shortcut or 'Backspace' to disable..." -msgstr "Presione su método abreviado de teclado o pulsa 'retroceso' para deshabilitar..." +msgstr "" +"Presione su método abreviado de teclado o pulsa 'retroceso' para " +"deshabilitar..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" diff --git a/ui/po/fr.po b/ui/po/fr.po index 295aee6..8a3c638 100644 --- a/ui/po/fr.po +++ b/ui/po/fr.po @@ -5,10 +5,9 @@ # msgid "" msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:19-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -23,17 +22,20 @@ msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -"Basculez vos lunettes en mode Side-By-Side (Côte-à-Côte) et doublez la largeur de l'écran." +"Basculez vos lunettes en mode Side-By-Side (Côte-à-Côte) et doublez la " +"largeur de l'écran." #: src/connecteddevice.py:17 msgid "This feature is not currently supported for your device." -msgstr "Cette fonctionnalité n'est actuellement pas prise en charge par votre appareil." +msgstr "" +"Cette fonctionnalité n'est actuellement pas prise en charge par votre " +"appareil." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Statut de l'abonnement payant" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Disponibilité des fonctionnalités" @@ -198,8 +200,8 @@ msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." msgstr "" -"Plus proche apparaît plus grand, plus éloigné apparaît plus petit. Contrôle la " -"profondeur lorsque vous êtes en mode grand écran." +"Plus proche apparaît plus grand, plus éloigné apparaît plus petit. Contrôle " +"la profondeur lorsque vous êtes en mode grand écran." #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -210,8 +212,8 @@ msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." msgstr "" -"Combinez avec la distance d'affichage pour obtenir un niveau de profondeur et " -"de taille confortable." +"Combinez avec la distance d'affichage pour obtenir un niveau de profondeur " +"et de taille confortable." #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" @@ -280,7 +282,8 @@ msgid "" "resolution and best scaling when plugged in." msgstr "" "Modifiez automatiquement la configuration d'affichage des lunettes pour une " -"résolution maximale et une meilleure mise à l'échelle lorsque elles sont branchées." +"résolution maximale et une meilleure mise à l'échelle lorsque elles sont " +"branchées." #: src/gtk/connected-device.ui:332 msgid "Use highest refresh rate" @@ -288,7 +291,9 @@ msgstr "Utiliser le taux de rafraîchissement le plus élevé" #: src/gtk/connected-device.ui:333 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "Un taux de rafraîchissement élevé peut affecter les performances, désactivez-le pour le définir manuellement." +msgstr "" +"Un taux de rafraîchissement élevé peut affecter les performances, désactivez-" +"le pour le définir manuellement." #: src/gtk/connected-device.ui:343 msgid "Always primary display" @@ -296,7 +301,9 @@ msgstr "Affichage principal en permanence" #: src/gtk/connected-device.ui:344 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "Définissez automatiquement les lunettes comme affichage principal lorsqu'elles sont branchées." +msgstr "" +"Définissez automatiquement les lunettes comme affichage principal " +"lorsqu'elles sont branchées." #: src/gtk/connected-device.ui:354 msgid "Fast SBS mode switching" @@ -307,8 +314,8 @@ msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"Bascule les lunettes vers le mode SBS immédiatement lorsqu'elles sont branchées " -"si le mode grand écran est activé. Peut provoquer des instabilités." +"Bascule les lunettes vers le mode SBS immédiatement lorsqu'elles sont " +"branchées si le mode grand écran est activé. Peut provoquer des instabilités." #: src/gtk/connected-device.ui:365 msgid "Movement look-ahead" @@ -321,13 +328,21 @@ msgid "" "movements, jumps ahead, or is very shaky." msgstr "" "Compense le lag d'entrée en prédisant la position de suivi de la tête avant " -"le temps de rendu. Restez sur la valeur par défaut à moins que l'affichage virtuel " -"ne soit lent, ne saute pas ou ne soit très instable." +"le temps de rendu. Restez sur la valeur par défaut à moins que l'affichage " +"virtuel ne soit lent, ne saute pas ou ne soit très instable." #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "Par défaut" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Configuration Breezy Desktop GNOME non valide" @@ -381,12 +396,12 @@ msgid "" " " msgstr "" "\n" -" Si vous avez installé via AUR, assurez-vous d'avoir exécuté la " -"commande de post-installation recommandée:\n" +" Si vous avez installé via AUR, assurez-vous d'avoir exécuté la commande de " +"post-installation recommandée:\n" " systemctl --user enable --now xr-driver.service\n" "\n" -" Sinon, veuillez signaler le problème sur GitHub, ou créer un nouveau " -"fil de discussion dans le canal #troubleshooting sur Discord.\n" +" Sinon, veuillez signaler le problème sur GitHub, ou créer un nouveau fil de " +"discussion dans le canal #troubleshooting sur Discord.\n" " " #: src/gtk/no-extension.ui:13 @@ -398,9 +413,9 @@ msgid "" "If you have just run the setup, then you may need to log out and back in to " "use it. Otherwise, please follow the Breezy GNOME setup instructions." msgstr "" -"Si vous venez d'exécuter la configuration, vous devrez peut-être vous déconnecter " -"et vous reconnecter pour l'utiliser. Sinon, veuillez suivre les instructions " -"d'installation de Breezy GNOME." +"Si vous venez d'exécuter la configuration, vous devrez peut-être vous " +"déconnecter et vous reconnecter pour l'utiliser. Sinon, veuillez suivre les " +"instructions d'installation de Breezy GNOME." #: src/gtk/no-license.ui:13 msgid "No license file was found" @@ -422,15 +437,15 @@ msgid "" " " msgstr "" "\n" -" La première fois que vous utilisez Breezy Desktop, une connexion " -"Internet est requise pour récupérer la licence de votre appareil.\n" +" La première fois que vous utilisez Breezy Desktop, une connexion Internet " +"est requise pour récupérer la licence de votre appareil.\n" " \n" -" Ne vous inquiétez pas, vous n'êtes pas obligé de faire un don à " -"ce stade. Si vous ne le faites pas, vous obtiendrez une licence d'essai pour " -"vous permettre de décider si Breezy Desktop répond à vos besoins.\n" +" Ne vous inquiétez pas, vous n'êtes pas obligé de faire un don à ce stade. " +"Si vous ne le faites pas, vous obtiendrez une licence d'essai pour vous " +"permettre de décider si Breezy Desktop répond à vos besoins.\n" " \n" -" Une fois que vous avez obtenu une licence, d'essai ou autre, vous " -"pouvez utiliser Breezy Desktop hors ligne jusqu'à l'expiration des fonctionnalités " +" Une fois que vous avez obtenu une licence, d'essai ou autre, vous pouvez " +"utiliser Breezy Desktop hors ligne jusqu'à l'expiration des fonctionnalités " "(ou indéfiniment, si vous avez choisi l'accès à vie).\n" " " @@ -444,7 +459,8 @@ msgstr "Attribuer un raccourci clavier" #: src/gtk/shortcut-dialog.ui:20 msgid "Press your keyboard shortcut or 'Backspace' to disable..." -msgstr "Appuyez sur votre raccourci clavier ou sur 'Backspace' pour désactiver..." +msgstr "" +"Appuyez sur votre raccourci clavier ou sur 'Backspace' pour désactiver..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" diff --git a/ui/po/it.po b/ui/po/it.po index fce982e..f3c95a4 100644 --- a/ui/po/it.po +++ b/ui/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:19-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -27,11 +27,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "" @@ -313,6 +313,14 @@ msgstr "" msgid "Default" msgstr "" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "" diff --git a/ui/po/ja.po b/ui/po/ja.po index 015ed58..2f7bb8d 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -4,14 +4,14 @@ # , 2024. # # Breezy DesktopやXR、GNOMEのような固有名詞はそのままの表記にしています。 -#「gaming」が「ゲーミング」なので「productivity」も「プロダクティビティ」とカナ表記にしました。 -#「glasses」は「XRエフェクト」から「XRメガネ」にしても良かったんですが、繰り返すのもくどいので「メガネ」にしてます。 -# +# 「gaming」が「ゲーミング」なので「productivity」も「プロダクティビティ」とカナ表記にしました。 +# 「glasses」は「XRエフェクト」から「XRメガネ」にしても良かったんですが、繰り返すのもくどいので「メガネ」にしてます。 +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:19-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -31,11 +31,11 @@ msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします msgid "This feature is not currently supported for your device." msgstr "この機能は現在接続されているデバイスではサポートされていません。" -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "有料ティアの状態" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "利用できる機能" @@ -212,7 +212,8 @@ msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." msgstr "" -"ディスプレイ距離と組み合わせて、\n快適な奥行きとサイズを実現します。" +"ディスプレイ距離と組み合わせて、\n" +"快適な奥行きとサイズを実現します。" #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" @@ -223,7 +224,8 @@ msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." msgstr "" -"2個のボタンを使用して、キーボードショートカットで使用する現在のディスプレイ距離をそれぞれ設定します。" +"2個のボタンを使用して、キーボードショートカットで使用する現在のディスプレイ距" +"離をそれぞれ設定します。" #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -279,7 +281,8 @@ msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -"メガネ接続時、最大解像度と最適なスケーリングのためにディスプレイ設定を自動的に変更します。" +"メガネ接続時、最大解像度と最適なスケーリングのためにディスプレイ設定を自動的" +"に変更します。" #: src/gtk/connected-device.ui:332 msgid "Use highest refresh rate" @@ -287,7 +290,9 @@ msgstr "最大のリフレッシュレートを使用する" #: src/gtk/connected-device.ui:333 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "リフレッシュレートはパフォーマンスに影響を与える可能性があります。手動で設定する場合は無効にしてください。" +msgstr "" +"リフレッシュレートはパフォーマンスに影響を与える可能性があります。手動で設定" +"する場合は無効にしてください。" #: src/gtk/connected-device.ui:343 msgid "Always primary display" @@ -306,7 +311,8 @@ msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"ワイドスクリーンモードがオンになっている場合、メガネ接続時にたたちにSBSモードに切り替えます。不安定になる可能性があります。" +"ワイドスクリーンモードがオンになっている場合、メガネ接続時にたたちにSBSモード" +"に切り替えます。不安定になる可能性があります。" #: src/gtk/connected-device.ui:365 msgid "Movement look-ahead" @@ -318,12 +324,22 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"入力遅延を相殺するために、レンダリング時間前にヘッドトラッキング位置を予測します。仮想ディスプレイが頭の動きに遅れたり、先に進んだり、非常に揺れたりする場合を除き、デフォルトのままで問題ありません。" +"入力遅延を相殺するために、レンダリング時間前にヘッドトラッキング位置を予測し" +"ます。仮想ディスプレイが頭の動きに遅れたり、先に進んだり、非常に揺れたりする" +"場合を除き、デフォルトのままで問題ありません。" #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "デフォルト" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Breezy Desktop GNOMEの無効なセットアップ" @@ -333,7 +349,8 @@ msgid "" "Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " "script. Report this issue if it persists." msgstr "" -"Breezy GNOMEのセットアップが無効または不完全です。セットアップスクリプトを再実行してください。問題が解決しない場合は、この問題を報告してください。" +"Breezy GNOMEのセットアップが無効または不完全です。セットアップスクリプトを再" +"実行してください。問題が解決しない場合は、この問題を報告してください。" #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:55 msgid "License Details" @@ -375,10 +392,12 @@ msgid "" " " msgstr "" "\n" -" AUR経由でインストールした場合は、推奨されるポストインストールコマンドを実行したことを確認してください:\n" +" AUR経由でインストールした場合は、推奨されるポストインストールコマン" +"ドを実行したことを確認してください:\n" " systemctl --user enable --now xr-driver.service\n" " \n" -" それ以外の場合は、GitHubで問題を報告するか、Discordの#troubleshootingチャンネルで新しいスレッドを作成してください。\n" +" それ以外の場合は、GitHubで問題を報告するか、Discordの" +"#troubleshootingチャンネルで新しいスレッドを作成してください。\n" " " #: src/gtk/no-extension.ui:13 @@ -390,7 +409,9 @@ msgid "" "If you have just run the setup, then you may need to log out and back in to " "use it. Otherwise, please follow the Breezy GNOME setup instructions." msgstr "" -"セットアップを実行した直後の場合は、使用する前にログアウトして再度ログインする必要があるかもしれません。それ以外の場合は、Breezy GNOMEのセットアップ手順に従ってください。" +"セットアップを実行した直後の場合は、使用する前にログアウトして再度ログインす" +"る必要があるかもしれません。それ以外の場合は、Breezy GNOMEのセットアップ手順" +"に従ってください。" #: src/gtk/no-license.ui:13 msgid "No license file was found" @@ -412,11 +433,16 @@ msgid "" " " msgstr "" "\n" -" Breezy Desktopを初めて使用する際は、デバイスライセンスを取得するためにインターネット接続が必要です。\n" +" Breezy Desktopを初めて使用する際は、デバイスライセンスを取得するた" +"めにインターネット接続が必要です。\n" " \n" -" ご安心ください。今すぐに寄付する必要はありません。寄付していない場合は、Breezy Desktopがニーズに合っているかどうかを判断できる試用ライセンスが提供されます。\n" +" ご安心ください。今すぐに寄付する必要はありません。寄付していない場" +"合は、Breezy Desktopがニーズに合っているかどうかを判断できる試用ライセンスが" +"提供されます。\n" " \n" -" ライセンスを取得したら、試用期間中であろうと期限切れるまではBreezy Desktopをオフラインで使用できます。(生涯アクセスを選択した場合は期限はありません。)\n" +" ライセンスを取得したら、試用期間中であろうと期限切れるまではBreezy " +"Desktopをオフラインで使用できます。(生涯アクセスを選択した場合は期限はありま" +"せん。)\n" " " #: src/gtk/no-license.ui:27 @@ -429,7 +455,8 @@ msgstr "キーボードショートカットを割り当てる" #: src/gtk/shortcut-dialog.ui:20 msgid "Press your keyboard shortcut or 'Backspace' to disable..." -msgstr "キーボードショートカットを押す、または「Backspace」を押して無効にします..." +msgstr "" +"キーボードショートカットを押す、または「Backspace」を押して無効にします..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" diff --git a/ui/po/pl.po b/ui/po/pl.po index 61cf4de..c570a94 100644 --- a/ui/po/pl.po +++ b/ui/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-16 10:26-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-16 10:26-0700\n" "Last-Translator: \n" "Language-Team: Polish \n" @@ -28,11 +28,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "" @@ -314,6 +314,14 @@ msgstr "" msgid "Default" msgstr "" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "" diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 543d965..5c37c82 100644 --- a/ui/po/pt_BR.po +++ b/ui/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-19 09:50-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese \n" "Language-Team: Russian \n" @@ -29,11 +29,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Статус платного уровня" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Статус функций" @@ -232,8 +232,7 @@ msgstr "Порог следования" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." msgstr "" -"Как далеко вы можете отвернуть взгляд, прежде чем дисплей последует за " -"вами." +"Как далеко вы можете отвернуть взгляд, прежде чем дисплей последует за вами." #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" @@ -335,6 +334,14 @@ msgstr "" msgid "Default" msgstr "По умолчанию" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Недействительная настройка Breezy Desktop GNOME" @@ -432,13 +439,13 @@ msgstr "" " При первом использовании Breezy Desktop требуется интернет-" "соединение для получения лицензии вашего устройства.\n" " \n" -" Не волнуйтесь, на данный момент нет обязательства донатить. " -"Если вы не сделали этого, вам будет предоставлена пробная " -"лицензия, чтобы вы могли решить, подходит ли вам Breezy Desktop.\n" +" Не волнуйтесь, на данный момент нет обязательства донатить. Если " +"вы не сделали этого, вам будет предоставлена пробная лицензия, чтобы вы " +"могли решить, подходит ли вам Breezy Desktop.\n" " \n" -" После получения лицензии, пробной или иной, вы можете " -"использовать Breezy Desktop офлайн до истечения срока " -"действия функций (или бессрочно, если вы выбрали пожизненный доступ).\n" +" После получения лицензии, пробной или иной, вы можете использовать " +"Breezy Desktop офлайн до истечения срока действия функций (или бессрочно, " +"если вы выбрали пожизненный доступ).\n" " " #: src/gtk/no-license.ui:27 @@ -479,4 +486,4 @@ msgstr "Сброс" #: src/gtk/window.ui:63 msgid "About BreezyDesktop" -msgstr "О BreezyDesktop" \ No newline at end of file +msgstr "О BreezyDesktop" diff --git a/ui/po/sv.po b/ui/po/sv.po index 2e4587f..b1d598d 100644 --- a/ui/po/sv.po +++ b/ui/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:36-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -22,18 +22,18 @@ msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -"Växlar dina glasögon till side-by-side-läget och dubblerar bredden " -"på visningen." +"Växlar dina glasögon till side-by-side-läget och dubblerar bredden på " +"visningen." #: src/connecteddevice.py:17 msgid "This feature is not currently supported for your device." msgstr "Din enhet stöder inte den här funktionen för tillfället." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Betalningsstatus" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Funktions tillgänglighet" @@ -198,8 +198,8 @@ msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." msgstr "" -"Närmare verkar större, längre verkar mindre. Kontrollerar djupet när du är " -"i bredbildsläge." +"Närmare verkar större, längre verkar mindre. Kontrollerar djupet när du är i " +"bredbildsläge." #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -209,7 +209,8 @@ msgstr "Skärmens storlek" msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "Kombinera med skärmens avstånd för att uppnå en bekväm nivå av djup och " +msgstr "" +"Kombinera med skärmens avstånd för att uppnå en bekväm nivå av djup och " "storlek." #: src/gtk/connected-device.ui:152 @@ -221,8 +222,8 @@ msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." msgstr "" -"Använd knapparna för att fanga nuvarande skärmavståndet för användning " -"med tangentbordsgenvägar." +"Använd knapparna för att fanga nuvarande skärmavståndet för användning med " +"tangentbordsgenvägar." #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -278,8 +279,8 @@ msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -"Ändrar automatisk glasögonens skärmkonfiguration för maximal " -"upplösning och bästa skälning när den är ansluten." +"Ändrar automatisk glasögonens skärmkonfiguration för maximal upplösning och " +"bästa skälning när den är ansluten." #: src/gtk/connected-device.ui:332 msgid "Use highest refresh rate" @@ -287,7 +288,9 @@ msgstr "Använd högsta uppdateringsfrekvens" #: src/gtk/connected-device.ui:333 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "Uppdateringsfrekvens kan påverka prestanda, inaktivera detta för att ställa in det manuellt." +msgstr "" +"Uppdateringsfrekvens kan påverka prestanda, inaktivera detta för att ställa " +"in det manuellt." #: src/gtk/connected-device.ui:343 msgid "Always primary display" @@ -306,8 +309,8 @@ msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"Växlar glasögon till SBS läge omedelbart när den är ansluten, om brevläge " -"är på. Kan orsaka instabilitet." +"Växlar glasögon till SBS läge omedelbart när den är ansluten, om brevläge är " +"på. Kan orsaka instabilitet." #: src/gtk/connected-device.ui:365 msgid "Movement look-ahead" @@ -319,14 +322,21 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"Motverkar ingångsfördröjning genom förutsägelse av huvudrörelser." -"Behåll standardinställningen om inte skärmen skakar mycket eller rör" -"sig konstigt." +"Motverkar ingångsfördröjning genom förutsägelse av huvudrörelser.Behåll " +"standardinställningen om inte skärmen skakar mycket eller rörsig konstigt." #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "Standard" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Breezy Desktop GNOME ogiltig inställning" @@ -336,8 +346,8 @@ msgid "" "Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " "script. Report this issue if it persists." msgstr "" -"Din Breezy GNOME inställning är ogiltig eller ofullständig. Var god " -"kör inställning skriptet igen. Rapportera detta problem om det fortsätter." +"Din Breezy GNOME inställning är ogiltig eller ofullständig. Var god kör " +"inställning skriptet igen. Rapportera detta problem om det fortsätter." #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:55 msgid "License Details" @@ -379,12 +389,12 @@ msgid "" " " msgstr "" "\n" -" Om du har installerat via AUR, kontrollerar du att du körde den rekommenderade post-" -"install kommandot:\n" +" Om du har installerat via AUR, kontrollerar du att du körde den " +"rekommenderade post-install kommandot:\n" " systemctl --user enable --now xr-driver.service\n" "\n" -" Annars, var god att filer ett problem på GitHub, eller skapa en ny tråd " -"i #troubleshooting kanal på Discord.\n" +" Annars, var god att filer ett problem på GitHub, eller skapa en ny " +"tråd i #troubleshooting kanal på Discord.\n" " " #: src/gtk/no-extension.ui:13 @@ -423,13 +433,13 @@ msgstr "" " Den första gången du använder Breezy Desktop, krävs en internet " "anslutning för att hämta din enhets licens.\n" " \n" -" Var inte bekymrad, det finns ingen förpliktelse att donera just nu. Om du " -"inte har, kommer du att få en försöks licens så du kan bestämma om Breezy Desktop " -"passar dina behov. \n" +" Var inte bekymrad, det finns ingen förpliktelse att donera just " +"nu. Om du inte har, kommer du att få en försöks licens så du kan bestämma om " +"Breezy Desktop passar dina behov. \n" " \n" " En gång du har fått en licens, försöks eller annat, kan du använda " -"Breezy Desktop offline tills funktioner upphör (eller oändligt, om du har valt " -"livstidsåtkomst).\n" +"Breezy Desktop offline tills funktioner upphör (eller oändligt, om du har " +"valt livstidsåtkomst).\n" " " #: src/gtk/no-license.ui:27 diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index 9cbecff..b5820d6 100644 --- a/ui/po/uk_UA.po +++ b/ui/po/uk_UA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:36-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -28,11 +28,11 @@ msgstr "Переключає окуляри в режим «бок о бок» msgid "This feature is not currently supported for your device." msgstr "Ця функція наразі не підтримується на вашому пристрої." -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "Статус платного рівня" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "Статус функцій" @@ -196,7 +196,8 @@ msgstr "Відстань дисплея" msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." -msgstr "Чим ближче, тим більший. Чим далі, тим менший. Керує глибиною при " +msgstr "" +"Чим ближче, тим більший. Чим далі, тим менший. Керує глибиною при " "використанні режиму широкого екрана." #: src/gtk/connected-device.ui:123 @@ -207,7 +208,9 @@ msgstr "Розмір дисплея" msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "Поєднуйте з відстанню дисплея, щоб досягти комфортного рівня глибини і розміру." +msgstr "" +"Поєднуйте з відстанню дисплея, щоб досягти комфортного рівня глибини і " +"розміру." #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" @@ -217,8 +220,9 @@ msgstr "Перемикання відстані дисплея" msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." -msgstr "Використовуйте кнопки, щоб зафіксувати поточну відстань дисплея для використання " -"з сполученням клавіш." +msgstr "" +"Використовуйте кнопки, щоб зафіксувати поточну відстань дисплея для " +"використання з сполученням клавіш." #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -226,7 +230,9 @@ msgstr "Поріг слідування" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." -msgstr "Як далеко ви можете відвернути ваш взор, перш ніж дисплей почне слідувати за вами." +msgstr "" +"Як далеко ви можете відвернути ваш взор, перш ніж дисплей почне слідувати за " +"вами." #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" @@ -273,8 +279,9 @@ msgstr "Знайти оптимальну конфігурацію диспле msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." -msgstr "Автоматично змінює конфігурацію дисплея окулярів для максимальної " -"роздільної здатності і найкращого масштабування при підключенні." +msgstr "" +"Автоматично змінює конфігурацію дисплея окулярів для максимальної роздільної " +"здатності і найкращого масштабування при підключенні." #: src/gtk/connected-device.ui:332 msgid "Use highest refresh rate" @@ -282,8 +289,9 @@ msgstr "Використовувати найвищу частоту оновл #: src/gtk/connected-device.ui:333 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "Частота оновлення може вплинути на продуктивність, вимкніть це, " -"щоб встановити її вручну." +msgstr "" +"Частота оновлення може вплинути на продуктивність, вимкніть це, щоб " +"встановити її вручну." #: src/gtk/connected-device.ui:343 msgid "Always primary display" @@ -301,7 +309,8 @@ msgstr "Швидке перемикання режиму SBS" msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." -msgstr "Переключає окуляри в режим SBS відразу після підключення, якщо режим " +msgstr "" +"Переключає окуляри в режим SBS відразу після підключення, якщо режим " "широкого екрана увімкнено. Може викликати нестабільність." #: src/gtk/connected-device.ui:365 @@ -314,14 +323,23 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"Компенсує затримку введення, передбачаючи позицію відстеження голови перед часом рендерингу. " -"Залишайтеся при налаштуваннях за замовчуванням, якщо віртуальний дисплей відстає від рухів вашої голови, " -"випереджає або дуже тремтить." +"Компенсує затримку введення, передбачаючи позицію відстеження голови перед " +"часом рендерингу. Залишайтеся при налаштуваннях за замовчуванням, якщо " +"віртуальний дисплей відстає від рухів вашої голови, випереджає або дуже " +"тремтить." #: src/gtk/connected-device.ui:384 msgid "Default" msgstr "За замовчуванням" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "Невірна настройка Breezy Desktop GNOME" @@ -331,8 +349,8 @@ msgid "" "Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " "script. Report this issue if it persists." msgstr "" -"Ваша настройка Breezy GNOME є невірною або неповною. Будь ласка, запустіть скрипт настройки повторно. " -"Повідомте про цю проблему, якщо вона не зникає." +"Ваша настройка Breezy GNOME є невірною або неповною. Будь ласка, запустіть " +"скрипт настройки повторно. Повідомте про цю проблему, якщо вона не зникає." #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:55 msgid "License Details" @@ -374,10 +392,12 @@ msgid "" " " msgstr "" "\n" -" Якщо ви встановили через AUR, переконайтеся, що ви запустили рекомендовану команду після встановлення:\n" +" Якщо ви встановили через AUR, переконайтеся, що ви запустили " +"рекомендовану команду після встановлення:\n" " systemctl --user enable --now xr-driver.service\n" "\n" -"В іншому випадку, будь ласка, створіть запит на GitHub або новий тред у каналі #troubleshooting на Discord.\n" +"В іншому випадку, будь ласка, створіть запит на GitHub або новий тред у " +"каналі #troubleshooting на Discord.\n" " " #: src/gtk/no-extension.ui:13 @@ -389,8 +409,9 @@ msgid "" "If you have just run the setup, then you may need to log out and back in to " "use it. Otherwise, please follow the Breezy GNOME setup instructions." msgstr "" -"Якщо ви тільки що запустили налаштування, можливо, вам потрібно вийти і знову увійти, щоб використовувати його. " -"В іншому випадку, будь ласка, дотримуйтесь інструкцій з налаштування Breezy GNOME." +"Якщо ви тільки що запустили налаштування, можливо, вам потрібно вийти і " +"знову увійти, щоб використовувати його. В іншому випадку, будь ласка, " +"дотримуйтесь інструкцій з налаштування Breezy GNOME." #: src/gtk/no-license.ui:13 msgid "No license file was found" @@ -412,11 +433,16 @@ msgid "" " " msgstr "" "\n" -"Під час першого запуску програми Breezy Desktop потрібне підключення до Інтернету для отримання ліцензії на пристрій.\n" +"Під час першого запуску програми Breezy Desktop потрібне підключення до " +"Інтернету для отримання ліцензії на пристрій.\n" " \n" -"Не хвилюйтеся, наразі немає обов'язку донатити. Якщо ви не зробили цього, вам буде надана пробна ліцензія, щоб ви могли вирішити, чи відповідає Breezy Desktop вашим потребам.\n" +"Не хвилюйтеся, наразі немає обов'язку донатити. Якщо ви не зробили цього, " +"вам буде надана пробна ліцензія, щоб ви могли вирішити, чи відповідає Breezy " +"Desktop вашим потребам.\n" " \n" -"Після отримання ліцензії, пробної або іншої, ви можете використовувати Breezy Desktop офлайн до закінчення терміну дії функції (або безстроково, якщо ви обрали довічний доступ).\n" +"Після отримання ліцензії, пробної або іншої, ви можете використовувати " +"Breezy Desktop офлайн до закінчення терміну дії функції (або безстроково, " +"якщо ви обрали довічний доступ).\n" " " #: src/gtk/no-license.ui:27 diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 610eb86..45e6462 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-08-15 15:19-0700\n" +"POT-Creation-Date: 2024-10-01 13:21-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -26,11 +26,11 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/licensedialog.py:49 +#: src/licensedialog.py:57 msgid "Paid Tier Status" msgstr "" -#: src/licensedialog.py:57 +#: src/licensedialog.py:63 msgid "Feature Availability" msgstr "" @@ -312,6 +312,14 @@ msgstr "" msgid "Default" msgstr "" +#: src/gtk/connected-device.ui:396 +msgid "Text Scaling" +msgstr "" + +#: src/gtk/connected-device.ui:397 +msgid "Scaling text below 1.0 will simulate a higher resolution display" +msgstr "" + #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" msgstr "" diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 471ac9a..a1883ba 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -42,6 +42,8 @@ class ConnectedDevice(Gtk.Box): fast_sbs_mode_switch = Gtk.Template.Child() movement_look_ahead_scale = Gtk.Template.Child() movement_look_ahead_adjustment = Gtk.Template.Child() + text_scaling_scale = Gtk.Template.Child() + text_scaling_adjustment = Gtk.Template.Child() def __init__(self): @@ -59,6 +61,7 @@ class ConnectedDevice(Gtk.Box): ] self.settings = SettingsManager.get_instance().settings + self.desktop_settings = SettingsManager.get_instance().desktop_settings self.ipc = XRDriverIPC.get_instance() self.extensions_manager = ExtensionsManager.get_instance() @@ -72,6 +75,7 @@ class ConnectedDevice(Gtk.Box): self.settings.bind('use-highest-refresh-rate', self.use_highest_refresh_rate_switch, 'active', Gio.SettingsBindFlags.DEFAULT) self.settings.bind('fast-sbs-mode-switching', self.fast_sbs_mode_switch, 'active', Gio.SettingsBindFlags.DEFAULT) self.settings.bind('look-ahead-override', self.movement_look_ahead_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT) + self.desktop_settings.bind('text-scaling-factor', self.text_scaling_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT) bind_shortcut_settings(self.get_parent(), [ [self.reassign_recenter_display_shortcut_button, self.recenter_display_shortcut_label], diff --git a/ui/src/gtk/connected-device.ui b/ui/src/gtk/connected-device.ui index 181ec11..3a73559 100644 --- a/ui/src/gtk/connected-device.ui +++ b/ui/src/gtk/connected-device.ui @@ -391,6 +391,37 @@ + + + Text Scaling + Scaling text below 1.0 will simulate a higher resolution display + + + 3 + false + 0 + 0 + 350 + false + + + 0.5 + 1.5 + 0.05 + 1.0 + + + + 0.5 + 0.75 + 1.0 + 1.25 + 1.5 + + + + + diff --git a/ui/src/settingsmanager.py b/ui/src/settingsmanager.py index c88ce68..ea6cd08 100644 --- a/ui/src/settingsmanager.py +++ b/ui/src/settingsmanager.py @@ -13,3 +13,4 @@ class SettingsManager: def __init__(self): self.settings = Gio.Settings.new_with_path("com.xronlinux.BreezyDesktop", "/com/xronlinux/BreezyDesktop/") + self.desktop_settings = Gio.Settings.new("org.gnome.desktop.interface") From b4727806aabed8d6cd8c941cc3453fc8a52efbc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz=20Mendes?= Date: Wed, 2 Oct 2024 16:39:10 -0300 Subject: [PATCH 14/19] Update translations for `text scaling` in `pt_BR.po` (#59) --- ui/po/pt_BR.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 5c37c82..9f116dd 100644 --- a/ui/po/pt_BR.po +++ b/ui/po/pt_BR.po @@ -335,11 +335,11 @@ msgstr "Padrão" #: src/gtk/connected-device.ui:396 msgid "Text Scaling" -msgstr "" +msgstr "Redimensionamento de Texto" #: src/gtk/connected-device.ui:397 msgid "Scaling text below 1.0 will simulate a higher resolution display" -msgstr "" +msgstr "Redimensionar o texto abaixo de 1.0 simulará uma tela de resolução mais alta" #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" From 3a49e9b2307025240869902ed3762303a74f2e40 Mon Sep 17 00:00:00 2001 From: 8796n Date: Thu, 3 Oct 2024 04:39:55 +0900 Subject: [PATCH 15/19] Update ja.po (#58) --- ui/po/ja.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/po/ja.po b/ui/po/ja.po index 2f7bb8d..c5ef84f 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -334,11 +334,11 @@ msgstr "デフォルト" #: src/gtk/connected-device.ui:396 msgid "Text Scaling" -msgstr "" +msgstr "テキストスケーリング" #: src/gtk/connected-device.ui:397 msgid "Scaling text below 1.0 will simulate a higher resolution display" -msgstr "" +msgstr "テキストを1.0未満にスケーリングすると、高解像度ディスプレイをシミュレートします。" #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" From 8b52feb37d7c18332dc1a56418d3470080887c57 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:46:19 -0700 Subject: [PATCH 16/19] WIP --- ui/bin/package | 55 +++++++++------ ui/build-aux/dconf-override.patch | 23 ------- ui/build-aux/start-breezy-desktop.sh | 69 ------------------- .../com.xronlinux.BreezyDesktop.desktop.in | 2 +- ui/docker-build/Dockerfile | 26 +++++++ ui/docker-build/init.sh | 22 ++++++ ui/docker-build/run-build.sh | 22 ++++++ ui/meson.build | 2 - 8 files changed, 105 insertions(+), 116 deletions(-) delete mode 100644 ui/build-aux/dconf-override.patch delete mode 100644 ui/build-aux/start-breezy-desktop.sh create mode 100644 ui/docker-build/Dockerfile create mode 100755 ui/docker-build/init.sh create mode 100755 ui/docker-build/run-build.sh diff --git a/ui/bin/package b/ui/bin/package index 6dbbae2..6dd6beb 100755 --- a/ui/bin/package +++ b/ui/bin/package @@ -6,30 +6,43 @@ set -e ARCH=${ARCH:-$(uname -m)} echo "Building Breezy UI for $ARCH" -check_command() { - if ! command -v "$1" &>/dev/null; then - echo "Please install \"$1\" and make sure it's available in your \$PATH" - exit 1 - fi -} +BUILD_PATH=build +UI_BUILD_PATH=$BUILD_PATH/ui +PACKAGE_DIR=$BUILD_PATH/breezy_ui +mkdir -p $UI_BUILD_PATH +mkdir -p $PACKAGE_DIR -check_command "flatpak" -check_command "flatpak-builder" +meson setup $UI_BUILD_PATH +pushd $UI_BUILD_PATH +meson compile +popd -# https://stackoverflow.com/a/246128 -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +PACKAGE_SRC_DIR=$PACKAGE_DIR/src +PACKAGE_BIN_DIR=$PACKAGE_DIR/bin +PACKAGE_ICONS_DIR=$PACKAGE_DIR/icons +mkdir -p $PACKAGE_SRC_DIR +mkdir -p $PACKAGE_BIN_DIR +mkdir -p $PACKAGE_ICONS_DIR -TMP_DIR=$(mktemp -d --tmpdir=$SCRIPT_DIR/.. -t .breezy-ui-flatpak-XXXXXXXXXX) -OUT_DIR=$SCRIPT_DIR/../out -mkdir -p $OUT_DIR +cp src/*.py $PACKAGE_SRC_DIR +cp -r po $BUILD_PATH +cp modules/PyXRLinuxDriverIPC/xrdriveripc.py $PACKAGE_SRC_DIR +cp $UI_BUILD_PATH/src/breezydesktop $PACKAGE_BIN_DIR +cp $UI_BUILD_PATH/src/breezydesktop.gresource $PACKAGE_DIR +cp $UI_BUILD_PATH/data/com.xronlinux.BreezyDesktop.desktop $PACKAGE_DIR -BUILD_ARTIFACT=$OUT_DIR/com.xronlinux.BreezyDesktop-$ARCH.flatpak -if [ -e "$BUILD_ARTIFACT" ]; then - rm $BUILD_ARTIFACT -fi +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_64.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_128.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_256.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_1024.png -flatpak-builder --arch $ARCH --disable-rofiles-fuse --disable-cache --force-clean --delete-build-dirs --user $TMP_DIR/build $SCRIPT_DIR/../com.xronlinux.BreezyDesktop.json -flatpak build-export --arch $ARCH $TMP_DIR/export $TMP_DIR/build -flatpak build-bundle --arch $ARCH $TMP_DIR/export $BUILD_ARTIFACT com.xronlinux.BreezyDesktop --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo +pushd $BUILD_PATH -rm -rf "$TMP_DIR" \ No newline at end of file +tar -zcvf breezyUI-$ARCH.tar.gz breezy_ui + +popd + +mkdir -p out +cp $BUILD_PATH/breezyUI-$ARCH.tar.gz out/ + +rm -rf $BUILD_PATH \ No newline at end of file diff --git a/ui/build-aux/dconf-override.patch b/ui/build-aux/dconf-override.patch deleted file mode 100644 index 2f6e38e..0000000 --- a/ui/build-aux/dconf-override.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/engine/dconf-engine-source-user.c b/engine/dconf-engine-source-user.c -index 1657875..e4f8786 100644 ---- a/engine/dconf-engine-source-user.c -+++ b/engine/dconf-engine-source-user.c -@@ -39,11 +39,17 @@ dconf_engine_source_user_open_gvdb (const gchar *name) - { - GvdbTable *table; - gchar *filename; -+ const gchar *override; -+ -+ override = g_getenv ("DCONF_USER_CONFIG_DIR"); -+ if (override == NULL) -+ filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL); -+ else -+ filename = g_build_filename (g_get_home_dir (), override, name, NULL); - - /* This can fail in the normal case of the user not having any - * settings. That's OK and it shouldn't be considered as an error. - */ -- filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL); - table = gvdb_table_new (filename, FALSE, NULL); - g_free (filename); - \ No newline at end of file diff --git a/ui/build-aux/start-breezy-desktop.sh b/ui/build-aux/start-breezy-desktop.sh deleted file mode 100644 index b82f292..0000000 --- a/ui/build-aux/start-breezy-desktop.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash - -# stolen from dconf-editor: -# https://gitlab.gnome.org/GNOME/dconf-editor/-/blob/master/build-aux/start-dconf-editor.sh - -IFS=: read -ra host_data_dirs < <(flatpak-spawn --host sh -c 'echo "$XDG_DATA_DIRS"') -IFS=: read -ra HOST_XDG_STATE_HOME < <(flatpak-spawn --host sh -c 'echo "$XDG_STATE_HOME"') -IFS=: read -ra HOST_XDG_CONFIG_HOME < <(flatpak-spawn --host sh -c 'echo "$XDG_CONFIG_HOME"') -IFS=: read -ra HOST_XDG_BIN_HOME < <(flatpak-spawn --host sh -c 'echo "$XDG_BIN_HOME"') -IFS=: read -ra HOST_XDG_DATA_HOME < <(flatpak-spawn --host sh -c 'echo "$XDG_DATA_HOME"') - -# To avoid potentially muddying up $XDG_DATA_DIRS too much, we link the schema paths -# into a temporary directory. -bridge_dir=$XDG_RUNTIME_DIR/dconf-bridge -mkdir -p "$bridge_dir" - -HOST_XDG_DATA_DIRS="" - -for dir in "${host_data_dirs[@]}"; do - if [[ "$dir" == /usr/* ]]; then - dir=/run/host/"$dir" - fi - - schemas="$dir/glib-2.0/schemas" - if [[ -d "$schemas" ]]; then - bridged=$(mktemp -d XXXXXXXXXX -p "$bridge_dir") - mkdir -p "$bridged"/glib-2.0 - ln -s "$schemas" "$bridged"/glib-2.0 - HOST_XDG_DATA_DIRS="${HOST_XDG_DATA_DIRS}:${bridged}" - fi -done - -# We MUST prepend the host's data dirs BEFORE the Flatpak environment's own dirs, -# otherwise data (such as default values) load in the wrong order and would then -# incorrectly prefer the Flatpak's internal defaults instead of the host's defaults! -if [[ ! -z "${HOST_XDG_DATA_DIRS}" ]]; then - XDG_DATA_DIRS="${HOST_XDG_DATA_DIRS:1}:${XDG_DATA_DIRS}" -fi - -if [[ ! -z "${HOST_XDG_BIN_HOME}" ]]; then - XDG_BIN_HOME="${HOST_XDG_BIN_HOME}" -else - XDG_BIN_HOME="$(realpath ~)/.local/bin" -fi - -if [[ ! -z "${HOST_XDG_STATE_HOME}" ]]; then - XDG_STATE_HOME="${HOST_XDG_STATE_HOME}" -else - XDG_STATE_HOME="$(realpath ~)/.local/state" -fi - -if [[ ! -z "${HOST_XDG_CONFIG_HOME}" ]]; then - XDG_CONFIG_HOME="${HOST_XDG_CONFIG_HOME}" -else - XDG_CONFIG_HOME="$(realpath ~)/.config" -fi - -if [[ ! -z "${HOST_XDG_DATA_HOME}" ]]; then - XDG_DATA_HOME="${HOST_XDG_DATA_HOME}" -else - XDG_DATA_HOME="$(realpath ~)/.local/share" -fi - -export XDG_DATA_DIRS -export XDG_BIN_HOME -export XDG_STATE_HOME -export XDG_CONFIG_HOME -export XDG_DATA_HOME -exec breezydesktop "$@" \ No newline at end of file diff --git a/ui/data/com.xronlinux.BreezyDesktop.desktop.in b/ui/data/com.xronlinux.BreezyDesktop.desktop.in index 3955dac..1264eef 100644 --- a/ui/data/com.xronlinux.BreezyDesktop.desktop.in +++ b/ui/data/com.xronlinux.BreezyDesktop.desktop.in @@ -1,6 +1,6 @@ [Desktop Entry] Name=Breezy Desktop -Exec=start-breezy-desktop +Exec=env LOCALE_DIR=/usr/local/share/breezydesktop/breezydesktop/po breezydesktop Icon=com.xronlinux.BreezyDesktop Terminal=false Type=Application diff --git a/ui/docker-build/Dockerfile b/ui/docker-build/Dockerfile new file mode 100644 index 0000000..8074855 --- /dev/null +++ b/ui/docker-build/Dockerfile @@ -0,0 +1,26 @@ +# To run the build from the package root: +# docker buildx build --platform linux/amd64,linux/arm64 -f ./docker-build/Dockerfile -t "breezy-ui" . +# docker run --rm -t -v ./:/source -v --platform linux/amd64 "breezy-ui:amd64" +# docker run --rm -t -v ./:/source -v --platform linux/arm64 "breezy-ui:arm64" + +FROM --platform=$TARGETPLATFORM debian:latest + +ARG TARGETPLATFORM +RUN echo "Target platform: $TARGETPLATFORM" + +RUN apt-get update && apt-get install -y \ + build-essential \ + meson \ + ninja-build \ + librsvg2-bin \ + libglib2.0-dev \ + libgtk-4-common \ + libgtk-4-bin \ + gtk-update-icon-cache \ + desktop-file-utils \ + gettext \ + appstream + +WORKDIR /source + +CMD bin/package \ No newline at end of file diff --git a/ui/docker-build/init.sh b/ui/docker-build/init.sh new file mode 100755 index 0000000..2d1d173 --- /dev/null +++ b/ui/docker-build/init.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# might be needed on a fresh docker setup: +# install qemu and qemu-user-static packages +# sudo docker context rm default +# docker run --privileged --rm tonistiigi/binfmt --install all +# sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes +# ls -l /proc/sys/fs/binfmt_misc/ # should contain qemu- files + +if [[ "$1" == "--init" || ! $(docker buildx inspect breezyuibuilder &>/dev/null; echo $?) -eq 0 ]]; then + # start fresh + echo "Creating new docker builder instance" + docker buildx rm breezyuibuilder 2>/dev/null || true + docker buildx create --use --name breezyuibuilder --driver docker-container --driver-opt image=moby/buildkit:latest +else + echo "Using existing docker builder instance" + docker buildx use breezyuibuilder +fi + +echo "Building docker image" +docker buildx build --platform linux/amd64 -f ./docker-build/Dockerfile -t "breezy-ui:amd64" --load . +docker buildx build --platform linux/arm64 -f ./docker-build/Dockerfile -t "breezy-ui:arm64" --load . \ No newline at end of file diff --git a/ui/docker-build/run-build.sh b/ui/docker-build/run-build.sh new file mode 100755 index 0000000..da29d78 --- /dev/null +++ b/ui/docker-build/run-build.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e + +USER=${SUDO_USER:-$USER} +GROUP=$(id -gn $USER) + +# Run containers for each architecture +if [[ "$1" == "x86_64" || -z "$1" ]]; then + sudo rm -rf build/ + docker run --rm -t -v ./:/source --platform linux/amd64 "breezy-ui:amd64" + sudo chown -R $USER:$GROUP out/ +fi + +if [[ "$1" == "aarch64" || -z "$1" ]]; then + sudo rm -rf build/ + docker run --rm -t -v ./:/source --platform linux/arm64 "breezy-ui:arm64" + sudo chown -R $USER:$GROUP out/ +fi + +# build directory structure is all owned by root because of docker, delete it all now +sudo rm -rf build/ \ No newline at end of file diff --git a/ui/meson.build b/ui/meson.build index e851137..4d147ed 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -7,8 +7,6 @@ project('breezydesktop', i18n = import('i18n') gnome = import('gnome') - - subdir('data') subdir('src') subdir('po') From 67d29c57fd5061036fa5597cfa17d96564da4819 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:31:03 -0700 Subject: [PATCH 17/19] Update package, setup, and uninstall --- bin/breezy_gnome_setup | 1 + bin/package_gnome | 10 +++-- gnome/bin/breezy_gnome_uninstall | 8 +++- gnome/bin/setup | 36 +++++++++------ ui/bin/package | 41 +++++++++++++----- ui/bin/update_pot_files | 2 +- .../com.xronlinux.BreezyDesktop.desktop.in | 2 +- ui/po/breezydesktop.pot | 2 +- .../{ => mo}/de/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/es/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/fr/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/it/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/ja/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/pl/LC_MESSAGES/breezydesktop.mo | Bin .../pt_BR/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/ru/LC_MESSAGES/breezydesktop.mo | Bin .../{ => mo}/sv/LC_MESSAGES/breezydesktop.mo | Bin .../uk_UA/LC_MESSAGES/breezydesktop.mo | Bin .../zh_CN/LC_MESSAGES/breezydesktop.mo | Bin ui/src/main.py | 7 +-- 20 files changed, 72 insertions(+), 37 deletions(-) rename ui/po/{ => mo}/de/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/es/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/fr/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/it/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/ja/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/pl/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/pt_BR/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/ru/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/sv/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/uk_UA/LC_MESSAGES/breezydesktop.mo (100%) rename ui/po/{ => mo}/zh_CN/LC_MESSAGES/breezydesktop.mo (100%) diff --git a/bin/breezy_gnome_setup b/bin/breezy_gnome_setup index 31fe60b..fc0c3a0 100755 --- a/bin/breezy_gnome_setup +++ b/bin/breezy_gnome_setup @@ -18,6 +18,7 @@ check_command() { fi } +check_command "curl" check_command "gnome-shell" ARCH=$(uname -m) diff --git a/bin/package_gnome b/bin/package_gnome index b0e6c29..ce388c3 100755 --- a/bin/package_gnome +++ b/bin/package_gnome @@ -92,11 +92,13 @@ pushd $GNOME_DIR/src GNOME_MANIFEST_LINE=$(find -L . -type f ! -name "*.compiled" -exec sha256sum {} \; | sort | sha256sum | sed 's/ .*//') popd -FLATPAK_BUILD_ARTIFACT=ui/out/com.xronlinux.BreezyDesktop-$ARCH.flatpak -if [ ! -e "$FLATPAK_BUILD_ARTIFACT" ] || [ "$1" == "--rebuild-flatpak" ] || [ "$1" == "--rebuild-all" ]; then - ui/bin/package $ARCH +UI_BUILD_ARTIFACT=ui/out/breezyUI-$ARCH.tar.gz +if [ ! -e "$UI_BUILD_ARTIFACT" ] || [ "$1" == "--rebuild-ui" ] || [ "$1" == "--rebuild-all" ]; then + pushd ui + bin/package $ARCH + popd fi -cp $FLATPAK_BUILD_ARTIFACT $PACKAGE_DIR/com.xronlinux.BreezyDesktop.flatpak +tar -xf $UI_BUILD_ARTIFACT -C $PACKAGE_DIR # create manifest file for verifying installed file checksums against the originally packaged versions # include any file that doesn't get modified during setup (e.g. vkBasalt.json files) diff --git a/gnome/bin/breezy_gnome_uninstall b/gnome/bin/breezy_gnome_uninstall index 199bc03..4545d2d 100755 --- a/gnome/bin/breezy_gnome_uninstall +++ b/gnome/bin/breezy_gnome_uninstall @@ -36,8 +36,12 @@ rm -rf $DATA_DIR [ "$for_install" -eq 0 ] && echo "Uninstalling the breezydesktop@xronlinux.com GNOME extension" gnome-extensions uninstall breezydesktop@xronlinux.com -[ "$for_install" -eq 0 ] && echo "Uninstalling the Breezy Desktop UI Flatpak" -flatpak uninstall --user --noninteractive --force-remove com.xronlinux.BreezyDesktop +[ "$for_install" -eq 0 ] && echo "Uninstalling the Breezy Desktop UI application" +rm -rf $XDG_DATA_HOME/breezydesktop +rm -f $XDG_DATA_HOME/applications/com.xronlinux.BreezyDesktop.desktop +rm -f $XDG_DATA_HOME/icons/hicolor/*/apps/com.xronlinux.BreezyDesktop.png +rm -f $XDG_DATA_HOME/locale/*/LC_MESSAGES/breezydesktop.mo +rm -f $XDG_BIN_HOME/breezydesktop [ "$for_install" -eq 0 ] && echo "Uninstalling XRLinuxDriver" # if for-install diff --git a/gnome/bin/setup b/gnome/bin/setup index 7ee291a..e34efb5 100755 --- a/gnome/bin/setup +++ b/gnome/bin/setup @@ -9,8 +9,10 @@ check_command() { fi } -check_command "flatpak" check_command "gnome-extensions" +check_command "glib-compile-schemas" +check_command "update-desktop-database" +check_command "gtk-update-icon-cache" # This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied # to a specific release of the code, and guarantees it will never run along-side newer or older binaries. @@ -22,12 +24,11 @@ if [ -z "$XDG_DATA_HOME" ]; then fi XR_DRIVER_DATA_DIR="$XDG_DATA_HOME/xr_driver" GNOME_SHELL_DATA_DIR="$XDG_DATA_HOME/gnome-shell" -DATA_DIR="$XDG_DATA_HOME/breezy_gnome" +BREEZY_GNOME_DATA_DIR="$XDG_DATA_HOME/breezy_gnome" if [ -z "$XDG_BIN_HOME" ]; then XDG_BIN_HOME="$USER_HOME/.local/bin" fi -BIN_DIR="$XDG_BIN_HOME" if [ -d "$XDG_BIN_HOME" ]; then # check ownership and permissions before doing chown and chmod @@ -59,31 +60,40 @@ UA_EVENT_VERSION="$1" #INJECT_UA_CALL # escaping sed replace: https://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-pattern -ESCAPED_BIN_DIR=$(printf '%s\n' "$BIN_DIR" | sed -e 's/[\/&]/\\&/g') -ESCAPED_DATA_DIR=$(printf '%s\n' "$DATA_DIR" | sed -e 's/[\/&]/\\&/g') +ESCAPED_XDG_BIN_HOME=$(printf '%s\n' "$XDG_BIN_HOME" | sed -e 's/[\/&]/\\&/g') +ESCAPED_BREEZY_GNOME_DATA_DIR=$(printf '%s\n' "$BREEZY_GNOME_DATA_DIR" | sed -e 's/[\/&]/\\&/g') ESCAPED_XR_DRIVER_DATA_DIR=$(printf '%s\n' "$XR_DRIVER_DATA_DIR" | sed -e 's/[\/&]/\\&/g') ESCAPED_GNOME_SHELL_DATA_DIR=$(printf '%s\n' "$GNOME_SHELL_DATA_DIR" | sed -e 's/[\/&]/\\&/g') echo "Copying the breezy_gnome scripts to ${XDG_BIN_HOME}" mkdir -p $XDG_BIN_HOME cp bin/breezy_gnome_uninstall $XDG_BIN_HOME -sed -i -e "s/{bin_dir}/$ESCAPED_BIN_DIR/g" \ - -e "s/{data_dir}/$ESCAPED_DATA_DIR/g" \ +sed -i -e "s/{bin_dir}/$ESCAPED_XDG_BIN_HOME/g" \ + -e "s/{data_dir}/$ESCAPED_BREEZY_GNOME_DATA_DIR/g" \ -e "s/{xr_driver_data_dir}/$ESCAPED_XR_DRIVER_DATA_DIR/g" \ -e "s/{gnome_shell_data_dir}/$ESCAPED_GNOME_SHELL_DATA_DIR/g" \ bin/breezy_gnome_verify cp bin/breezy_gnome_verify $XDG_BIN_HOME -echo "Copying the manifest file to ${DATA_DIR}" -mkdir -p $DATA_DIR -cp manifest $DATA_DIR +echo "Copying the manifest file to ${BREEZY_GNOME_DATA_DIR}" +mkdir -p $BREEZY_GNOME_DATA_DIR +cp manifest $BREEZY_GNOME_DATA_DIR echo "Installing the breezydesktop@xronlinux.com GNOME extension" gnome-extensions install --force breezydesktop@xronlinux.com.shell-extension.zip -echo "Installing the Breezy Desktop UI Flatpak (this may take a couple minutes the first time)" -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak install --user --noninteractive --reinstall com.xronlinux.BreezyDesktop.flatpak +echo "Installing the Breezy Desktop UI application" +cp -r breezy_ui/data/* $XDG_DATA_HOME +cp -r breezy_ui/bin/* $XDG_BIN_HOME + +# update copied files to use the local XDG paths +ESCAPED_XDG_DATA_HOME=$(printf '%s\n' "$XDG_DATA_HOME" | sed -e 's/[\/&]/\\&/g') +sed -i -e "s/\/usr\/local\/share/$ESCAPED_XDG_DATA_HOME/g" $XDG_BIN_HOME/breezydesktop +sed -i "/Exec/c\Exec=$XDG_BIN_HOME/breezydesktop" $XDG_DATA_HOME/applications/com.xronlinux.BreezyDesktop.desktop + +glib-compile-schemas $XDG_DATA_HOME/glib-2.0/schemas +update-desktop-database $XDG_DATA_HOME/applications +gtk-update-icon-cache # set up the XR driver using the local binary echo "Installing xrDriver" diff --git a/ui/bin/package b/ui/bin/package index 6dd6beb..71c13ab 100755 --- a/ui/bin/package +++ b/ui/bin/package @@ -17,24 +17,41 @@ pushd $UI_BUILD_PATH meson compile popd -PACKAGE_SRC_DIR=$PACKAGE_DIR/src +# mimick the XDG directory structure in our archive file so setup can just copy the directories and not individual files +PACKAGE_DATA_DIR=$PACKAGE_DIR/data PACKAGE_BIN_DIR=$PACKAGE_DIR/bin -PACKAGE_ICONS_DIR=$PACKAGE_DIR/icons -mkdir -p $PACKAGE_SRC_DIR + +# these are all subdirectories of XDG_DATA_HOME +PACKAGE_BREEZY_DIR=$PACKAGE_DATA_DIR/breezydesktop +PACKAGE_BREEZY_SRC_DIR=$PACKAGE_BREEZY_DIR/breezydesktop +PACKAGE_ICONS_DIR=$PACKAGE_DATA_DIR/icons/hicolor +PACKAGE_LOCALE_DIR=$PACKAGE_DATA_DIR/locale +PACKAGE_APPS_DIR=$PACKAGE_DATA_DIR/applications +PACKAGE_SCHEMAS_DIR=$PACKAGE_DATA_DIR/glib-2.0/schemas + mkdir -p $PACKAGE_BIN_DIR +mkdir -p $PACKAGE_BREEZY_SRC_DIR mkdir -p $PACKAGE_ICONS_DIR +mkdir -p $PACKAGE_LOCALE_DIR +mkdir -p $PACKAGE_APPS_DIR +mkdir -p $PACKAGE_SCHEMAS_DIR -cp src/*.py $PACKAGE_SRC_DIR -cp -r po $BUILD_PATH -cp modules/PyXRLinuxDriverIPC/xrdriveripc.py $PACKAGE_SRC_DIR +cp src/*.py $PACKAGE_BREEZY_SRC_DIR +cp -L modules/PyXRLinuxDriverIPC/xrdriveripc.py $PACKAGE_BREEZY_SRC_DIR +cp $UI_BUILD_PATH/src/breezydesktop.gresource $PACKAGE_BREEZY_DIR +cp -r po/mo/* $PACKAGE_LOCALE_DIR +cp data/com.xronlinux.BreezyDesktop.gschema.xml $PACKAGE_SCHEMAS_DIR cp $UI_BUILD_PATH/src/breezydesktop $PACKAGE_BIN_DIR -cp $UI_BUILD_PATH/src/breezydesktop.gresource $PACKAGE_DIR -cp $UI_BUILD_PATH/data/com.xronlinux.BreezyDesktop.desktop $PACKAGE_DIR +cp $UI_BUILD_PATH/data/com.xronlinux.BreezyDesktop.desktop $PACKAGE_APPS_DIR -rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_64.png -rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_128.png -rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_256.png -rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o $PACKAGE_ICONS_DIR/com.xronlinux.BreezyDesktop_1024.png +mkdir -p $PACKAGE_ICONS_DIR/64x64/apps +mkdir -p $PACKAGE_ICONS_DIR/128x128/apps +mkdir -p $PACKAGE_ICONS_DIR/256x256/apps +mkdir -p $PACKAGE_ICONS_DIR/1024x1024/apps +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o $PACKAGE_ICONS_DIR/64x64/apps/com.xronlinux.BreezyDesktop.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o $PACKAGE_ICONS_DIR/128x128/apps/com.xronlinux.BreezyDesktop.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o $PACKAGE_ICONS_DIR/256x256/apps/com.xronlinux.BreezyDesktop.png +rsvg-convert data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o $PACKAGE_ICONS_DIR/1024x1024/apps/com.xronlinux.BreezyDesktop.png pushd $BUILD_PATH diff --git a/ui/bin/update_pot_files b/ui/bin/update_pot_files index 68ec03e..a667bbd 100755 --- a/ui/bin/update_pot_files +++ b/ui/bin/update_pot_files @@ -13,7 +13,7 @@ for file in po/*.po; do msgmerge --update "po/$lang.po" po/breezydesktop.pot - outdir="po/$lang/LC_MESSAGES" + outdir="po/mo/$lang/LC_MESSAGES" mkdir -p "$outdir" msgfmt -o "$outdir/breezydesktop.mo" "$file" done diff --git a/ui/data/com.xronlinux.BreezyDesktop.desktop.in b/ui/data/com.xronlinux.BreezyDesktop.desktop.in index 1264eef..0cee462 100644 --- a/ui/data/com.xronlinux.BreezyDesktop.desktop.in +++ b/ui/data/com.xronlinux.BreezyDesktop.desktop.in @@ -1,6 +1,6 @@ [Desktop Entry] Name=Breezy Desktop -Exec=env LOCALE_DIR=/usr/local/share/breezydesktop/breezydesktop/po breezydesktop +Exec=breezydesktop Icon=com.xronlinux.BreezyDesktop Terminal=false Type=Application diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 1bfe949..e12cbf3 100644 --- a/ui/po/breezydesktop.pot +++ b/ui/po/breezydesktop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-01 13:24-0700\n" +"POT-Creation-Date: 2024-10-02 09:15-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/ui/po/de/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/de/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/de/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/de/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/es/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/es/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/es/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/es/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/fr/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/fr/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/fr/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/fr/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/it/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/it/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/it/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/it/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/ja/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/ja/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/pl/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/pl/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/pl/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/pl/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/pt_BR/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/pt_BR/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/pt_BR/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/pt_BR/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/ru/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/ru/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/ru/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/ru/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/sv/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/sv/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/sv/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/sv/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/uk_UA/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/uk_UA/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/uk_UA/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/uk_UA/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/zh_CN/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo similarity index 100% rename from ui/po/zh_CN/LC_MESSAGES/breezydesktop.mo rename to ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo diff --git a/ui/src/main.py b/ui/src/main.py index 4f4a1c1..710d3ce 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -32,15 +32,16 @@ gi.require_version('Adw', '1') gi.require_version('Gio', '2.0') gi.require_version('GLib', '2.0') -script_dir = os.path.dirname(os.path.abspath(__file__)) -po_dir = os.path.join(script_dir, 'po') -locale_dir = os.environ.get('LOCALE_DIR', '/app/share/locale') +user_home = os.path.expanduser('~') +xdg_data_home = os.environ.get('XDG_DATA_HOME') or os.path.join(user_home, '.local', 'share') +locale_dir = os.environ.get('LOCALE_DIR', os.path.join(xdg_data_home, 'locale')) locale.setlocale(locale.LC_ALL, locale.getdefaultlocale()) locale.bindtextdomain('breezydesktop', locale_dir) gettext.bindtextdomain('breezydesktop', locale_dir) gettext.textdomain('breezydesktop') + from gi.repository import Adw, Gtk, Gio from .licensedialog import LicenseDialog from .statemanager import StateManager From 7516cfc434277f8bb4ab29163eb7274f0e743dee Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:42:22 -0700 Subject: [PATCH 18/19] Pull in the latest sombrero --- modules/sombrero | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sombrero b/modules/sombrero index 1d0ead1..5a7ddc2 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 1d0ead14b293c58c661c5589cb8919cf8482b4de +Subproject commit 5a7ddc2c18df268476dd123b9af84091e3bf49bb From 7efc5323e6a4d9fc197c139380c401a7c89ec64b Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:57:40 -0700 Subject: [PATCH 19/19] Remove unused flatpak files --- .gitignore | 1 - ui/com.xronlinux.BreezyDesktop.json | 86 ----------------------------- ui/python3-pydbus.json | 14 ----- 3 files changed, 101 deletions(-) delete mode 100644 ui/com.xronlinux.BreezyDesktop.json delete mode 100644 ui/python3-pydbus.json diff --git a/.gitignore b/.gitignore index fc25d01..d50ac39 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ build/ __pycache__ *.zip gschemas.compiled -.flatpak-builder/ out/ *.po~ gnome-44-max/ diff --git a/ui/com.xronlinux.BreezyDesktop.json b/ui/com.xronlinux.BreezyDesktop.json deleted file mode 100644 index 5c87a57..0000000 --- a/ui/com.xronlinux.BreezyDesktop.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id" : "com.xronlinux.BreezyDesktop", - "runtime" : "org.gnome.Platform", - "runtime-version" : "46", - "sdk" : "org.gnome.Sdk", - "command" : "breezydesktop", - "finish-args" : [ - "--share=network", - "--share=ipc", - "--socket=fallback-x11", - "--device=dri", - "--socket=wayland", - "--device=shm", - "--talk-name=ca.desrt.dconf", - "--filesystem=xdg-run/dconf", - "--filesystem=host", - "--env=DCONF_USER_CONFIG_DIR=.config/dconf", - "--env=GIO_EXTRA_MODULES=/app/lib/gio/modules/", - "--talk-name=org.freedesktop.Flatpak", - "--talk-name=org.gnome.Shell.Extensions" - ], - "cleanup" : [ - "/include", - "/lib/pkgconfig", - "/man", - "/share/doc", - "/share/gtk-doc", - "/share/man", - "/share/pkgconfig", - "*.la", - "*.a" - ], - "modules" : [ - "python3-pydbus.json", - { - "name": "dconf", - "buildsystem": "meson", - "config-opts": [ - "-Dbash_completion=false", - "-Dman=false", - "-Dsystemduserunitdir=' '" - ], - "cleanup": [ - "/include", - "/lib/pkgconfig", - "/libexec", - "/share/dbus-1" - ], - "sources": [ - { - "type": "archive", - "url": "https://download.gnome.org/sources/dconf/0.40/dconf-0.40.0.tar.xz", - "sha256": "cf7f22a4c9200421d8d3325c5c1b8b93a36843650c9f95d6451e20f0bcb24533" - }, - { - "type": "patch", - "path": "build-aux/dconf-override.patch" - } - ] - }, - { - "name": "scripts", - "buildsystem": "simple", - "build-commands": [ - "install -Dm 755 start-breezy-desktop.sh /app/bin/start-breezy-desktop" - ], - "sources": [ - { - "type": "file", - "path": "build-aux/start-breezy-desktop.sh" - } - ] - }, - { - "name" : "breezydesktop", - "builddir" : true, - "buildsystem" : "meson", - "sources" : [ - { - "type" : "dir", - "path" : "." - } - ] - } - ] -} diff --git a/ui/python3-pydbus.json b/ui/python3-pydbus.json deleted file mode 100644 index 9fd19cd..0000000 --- a/ui/python3-pydbus.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "python3-pydbus", - "buildsystem": "simple", - "build-commands": [ - "pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pydbus\" --no-build-isolation" - ], - "sources": [ - { - "type": "file", - "url": "https://files.pythonhosted.org/packages/92/56/27148014c2f85ce70332f18612f921f682395c7d4e91ec103783be4fce00/pydbus-0.6.0-py2.py3-none-any.whl", - "sha256": "66b80106352a718d80d6c681dc2a82588048e30b75aab933e4020eb0660bf85e" - } - ] -} \ No newline at end of file