From 12664762b5a100391eb03ba56c527d14578e8a3b Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:46:56 -0700 Subject: [PATCH] Add support for custom display resolutions, v2.0.10 --- VERSION | 2 +- gnome/src/extension.js | 16 +- gnome/src/metadata.json | 2 +- gnome/src/virtualdisplayeffect.js | 84 +++++----- ui/po/breezydesktop.pot | 148 ++++++++++-------- ui/po/de.po | 148 ++++++++++-------- ui/po/es.po | 148 ++++++++++-------- ui/po/fr.po | 148 ++++++++++-------- ui/po/it.po | 148 ++++++++++-------- ui/po/ja.po | 148 ++++++++++-------- ui/po/pl.po | 148 ++++++++++-------- ui/po/pt_BR.po | 148 ++++++++++-------- ui/po/ru.po | 148 ++++++++++-------- ui/po/sv.po | 148 ++++++++++-------- ui/po/uk_UA.po | 148 ++++++++++-------- ui/po/zh_CN.po | 148 ++++++++++-------- ui/src/breezydesktop.gresource.xml | 2 + ui/src/connecteddevice.py | 92 +++++++++-- ui/src/customresolutiondialog.py | 21 +++ ui/src/customresolutiondialogcontent.py | 27 ++++ ui/src/files.py | 22 +++ ui/src/gtk/connected-device.ui | 16 +- .../gtk/custom-resolution-dialog-content.ui | 74 +++++++++ ui/src/gtk/custom-resolution-dialog.ui | 18 +++ ui/src/main.py | 10 +- ui/src/meson.build | 3 + ui/src/verify.py | 15 +- ui/src/virtualdisplaymanager.py | 4 +- 28 files changed, 1335 insertions(+), 849 deletions(-) create mode 100644 ui/src/customresolutiondialog.py create mode 100644 ui/src/customresolutiondialogcontent.py create mode 100644 ui/src/files.py create mode 100644 ui/src/gtk/custom-resolution-dialog-content.ui create mode 100644 ui/src/gtk/custom-resolution-dialog.ui diff --git a/VERSION b/VERSION index ed35d09..fee3c92 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.9 \ No newline at end of file +2.0.10 \ No newline at end of file diff --git a/gnome/src/extension.js b/gnome/src/extension.js index 26a37dc..b3363d5 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -39,6 +39,9 @@ export default class BreezyDesktopExtension extends Extension { this._follow_threshold_connection = null; this._breezy_desktop_running_connection = null; + // "fresh" means the effect hasn't been enabled since breezy-desktop-running became true + this._fresh_session = true; + if (!Globals.logger) { Globals.logger = new Logger({ title: 'breezydesktop', @@ -270,7 +273,7 @@ export default class BreezyDesktopExtension extends Extension { this._show_banner_connection = Globals.data_stream.connect('notify::show-banner', this._handle_show_banner_update.bind(this)); this._was_show_banner = Globals.data_stream.show_banner; - if (!this._was_show_banner) this._recenter_display(); + if (!this._was_show_banner && this._fresh_session) this._recenter_display(); this._effect_settings_bindings = [ 'monitor-wrapping-scheme', @@ -295,8 +298,8 @@ export default class BreezyDesktopExtension extends Extension { this._virtual_displays_actor.connect('notify::focused-monitor-details', this._update_display_distance.bind(this)); this._follow_threshold_connection = this.settings.connect('changed::follow-threshold', this._update_follow_threshold.bind(this)); - if (Meta.Compositor?.disable_unredirect) { - Meta.Compositor.disable_unredirect(); + if (global.compositor?.disable_unredirect) { + global.compositor.disable_unredirect(); } else { Meta.disable_unredirect_for_display(global.display); } @@ -305,6 +308,8 @@ export default class BreezyDesktopExtension extends Extension { this._add_settings_keybinding('recenter-display-shortcut', this._recenter_display.bind(this)); this._add_settings_keybinding('toggle-display-distance-shortcut', this._virtual_displays_actor._change_distance.bind(this._virtual_displays_actor)); this._add_settings_keybinding('toggle-follow-shortcut', this._toggle_follow_mode.bind(this)); + + this._fresh_session = false; } catch (e) { Globals.logger.log(`[ERROR] BreezyDesktopExtension _effect_enable ${e.message}\n${e.stack}`); Globals.logger.log(`[ERROR] BreezyDesktopExtension _effect_enable ${e.message}\n${e.stack}`); @@ -478,6 +483,7 @@ export default class BreezyDesktopExtension extends Extension { if (datastream.breezy_desktop_running !== this._is_effect_running) { if (!datastream.breezy_desktop_running) Globals.logger.log('Breezy desktop disabled'); + this._fresh_session = datastream.breezy_desktop_running; this._setup(!datastream.breezy_desktop_running); } } @@ -543,8 +549,8 @@ export default class BreezyDesktopExtension extends Extension { Main.wm.removeKeybinding('toggle-display-distance-shortcut'); Main.wm.removeKeybinding('toggle-follow-shortcut'); - if (Meta.Compositor?.enable_unredirect) { - Meta.Compositor.enable_unredirect(); + if (global.compositor?.enable_unredirect) { + global.compositor.enable_unredirect(); } else { Meta.enable_unredirect_for_display(global.display); } diff --git a/gnome/src/metadata.json b/gnome/src/metadata.json index 125954e..0f8073b 100644 --- a/gnome/src/metadata.json +++ b/gnome/src/metadata.json @@ -3,7 +3,7 @@ "name": "Breezy GNOME XR Desktop", "description": "XR virtual desktop for GNOME.", "settings-schema": "com.xronlinux.BreezyDesktop", - "session-modes": ["user", "unlock-dialog"], + "session-modes": ["user"], "shell-version": [ "45", "46", "47" ], diff --git a/gnome/src/virtualdisplayeffect.js b/gnome/src/virtualdisplayeffect.js index 6abb50f..26be71e 100644 --- a/gnome/src/virtualdisplayeffect.js +++ b/gnome/src/virtualdisplayeffect.js @@ -473,49 +473,51 @@ export const VirtualDisplayEffect = GObject.registerClass({ } vfunc_paint_target(node, paintContext) { - if (!this._initialized) { - const aspect = this.target_monitor.width / this.target_monitor.height; - const fovRadians = diagonalToCrossFOVs(degreeToRadian(Globals.data_stream.device_data.displayFov), aspect); - const projection_matrix = this.perspective( - fovRadians.horizontal, - aspect, - 0.0001, - 1000.0 - ); - this.set_uniform_matrix(this.get_uniform_location("u_projection_matrix"), false, 4, projection_matrix); - this.set_uniform_float(this.get_uniform_location("u_fov_vertical_radians"), 1, [fovRadians.vertical]); - this.set_uniform_float(this.get_uniform_location("u_display_resolution"), 2, [this.target_monitor.width, this.target_monitor.height]); - this.set_uniform_float(this.get_uniform_location("u_look_ahead_cfg"), 4, Globals.data_stream.device_data.lookAheadCfg); - this.set_uniform_float(this.get_uniform_location("u_actor_to_display_ratios"), 2, this.actor_to_display_ratios); - this.set_uniform_float(this.get_uniform_location("u_actor_to_display_offsets"), 2, this.actor_to_display_offsets); - this.set_uniform_float(this.get_uniform_location("u_lens_vector"), 3, this.lens_vector); - this._update_display_position_uniforms(); - this._handle_banner_update(); - this._initialized = true; - } - - let lookAheadSet = false; - if (!this._use_smooth_follow_origin && (!this.smooth_follow_enabled || this._is_focused() || this._current_follow_ease_progress > 0.0)) { - if (this._current_follow_ease_progress > 0.0 && this._current_follow_ease_progress < 1.0) { - // don't apply look-ahead while the display is slerping - this.set_uniform_float(this.get_uniform_location('u_look_ahead_ms'), 1, [0.0]); - lookAheadSet = true; + if (this.imu_snapshots) { + if (!this._initialized) { + const aspect = this.target_monitor.width / this.target_monitor.height; + const fovRadians = diagonalToCrossFOVs(degreeToRadian(Globals.data_stream.device_data.displayFov), aspect); + const projection_matrix = this.perspective( + fovRadians.horizontal, + aspect, + 0.0001, + 1000.0 + ); + this.set_uniform_matrix(this.get_uniform_location("u_projection_matrix"), false, 4, projection_matrix); + this.set_uniform_float(this.get_uniform_location("u_fov_vertical_radians"), 1, [fovRadians.vertical]); + this.set_uniform_float(this.get_uniform_location("u_display_resolution"), 2, [this.target_monitor.width, this.target_monitor.height]); + this.set_uniform_float(this.get_uniform_location("u_look_ahead_cfg"), 4, Globals.data_stream.device_data.lookAheadCfg); + this.set_uniform_float(this.get_uniform_location("u_actor_to_display_ratios"), 2, this.actor_to_display_ratios); + this.set_uniform_float(this.get_uniform_location("u_actor_to_display_offsets"), 2, this.actor_to_display_offsets); + this.set_uniform_float(this.get_uniform_location("u_lens_vector"), 3, this.lens_vector); + this._update_display_position_uniforms(); + this._handle_banner_update(); + this._initialized = true; } - this.set_uniform_matrix(this.get_uniform_location("u_imu_data"), false, 4, this.imu_snapshots.imu_data); - } else { - this.set_uniform_matrix(this.get_uniform_location("u_imu_data"), false, 4, this.imu_snapshots.smooth_follow_origin); - } - if (!lookAheadSet) { - this.set_uniform_float(this.get_uniform_location('u_look_ahead_ms'), 1, [lookAheadMS(this.imu_snapshots.timestamp_ms, Globals.data_stream.device_data.lookAheadCfg, this.look_ahead_override)]); - } - if (!this.disable_anti_aliasing) { - // improves sampling quality for smooth text and edges - this.get_pipeline().set_layer_filters( - 0, - Cogl.PipelineFilter.LINEAR_MIPMAP_LINEAR, - Cogl.PipelineFilter.LINEAR - ); + let lookAheadSet = false; + if (!this._use_smooth_follow_origin && (!this.smooth_follow_enabled || this._is_focused() || this._current_follow_ease_progress > 0.0)) { + if (this._current_follow_ease_progress > 0.0 && this._current_follow_ease_progress < 1.0) { + // don't apply look-ahead while the display is slerping + this.set_uniform_float(this.get_uniform_location('u_look_ahead_ms'), 1, [0.0]); + lookAheadSet = true; + } + this.set_uniform_matrix(this.get_uniform_location("u_imu_data"), false, 4, this.imu_snapshots.imu_data); + } else { + this.set_uniform_matrix(this.get_uniform_location("u_imu_data"), false, 4, this.imu_snapshots.smooth_follow_origin); + } + if (!lookAheadSet) { + this.set_uniform_float(this.get_uniform_location('u_look_ahead_ms'), 1, [lookAheadMS(this.imu_snapshots.timestamp_ms, Globals.data_stream.device_data.lookAheadCfg, this.look_ahead_override)]); + } + + if (!this.disable_anti_aliasing) { + // improves sampling quality for smooth text and edges + this.get_pipeline().set_layer_filters( + 0, + Cogl.PipelineFilter.LINEAR_MIPMAP_LINEAR, + Cogl.PipelineFilter.LINEAR + ); + } } super.vfunc_paint_target(node, paintContext); diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index f978b62..e432c1b 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,43 +17,43 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "" -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 msgid "Set Focused Display Distance" msgstr "" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 msgid "Set All Displays Distance" msgstr "" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 msgid "Focused display" msgstr "" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 msgid "All displays" msgstr "" @@ -246,229 +246,249 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 msgid "Rearrange displays" msgstr "" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 msgid "Display distances" msgstr "" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "" -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 msgid "Display angling" msgstr "" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 msgid "Display spacing" msgstr "" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "" -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 msgid "Toggle zoom on focus shortcut" msgstr "" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 msgid "Quickly toggle zoom on focus mode." msgstr "" -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 msgid "Remove virtual displays on disable" msgstr "" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 msgid "All displays follow mode" msgstr "" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/de.po b/ui/po/de.po index 7575eab..b1e6ef1 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,40 +25,40 @@ msgstr "" "Schaltet Ihre Brille in den Side-by-Side-Modus und verdoppelt die Breite des " "Displays." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Diese Funktion wird von Ihrem Gerät derzeit nicht unterstützt." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Display-Entfernung" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Display-Entfernung" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Display-Entfernung" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Gebogenes Display" @@ -254,92 +254,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Gebogenes Display" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Einstellungen" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Display-Entfernung" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Folgemodus-Schwelle" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Wie weit Sie wegschauen können, bevor das Display folgt." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Display-Größe" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Display-Größe" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Tastenkombinationen" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "XR-Effekt an/aus Tastenkombination" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -348,46 +352,46 @@ msgstr "" "Effekt einmalig manuell aktiviert werden, um die Tastenkombination zu " "aktivieren." -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Ändern" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Display-Zentrierung-Tastenkombination" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Heften Sie das virtuelle Display an die aktuelle Position an." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Folgemodus-Tastenkombination umschalten" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Schnell den Folgemodus wechseln." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Folgemodus-Tastenkombination umschalten" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Schnell den Folgemodus wechseln." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Erweiterte Einstellungen" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Optimale Display-Konfiguration finden" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -395,87 +399,87 @@ msgstr "" "Ändern Sie die Display-Konfiguration der Brille automatisch zur maximalen " "Auflösung und besten Skalierung, wenn sie angeschlossen ist." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Höchste Bildwiederholrate verwenden" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "Die Bildwiederholrate kann die Leistung beeinflussen, deaktivieren Sie dies, " "um sie manuell festzulegen." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Immer primäres Display" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Setzen Sie die Brille automatisch als primäres Display, wenn sie " "angeschlossen ist." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Gebogenes Display" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Gebogenes Display" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Bewegungsvorausschau" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -486,18 +490,34 @@ msgstr "" "es sei denn, das virtuelle Display hängt hinter Ihren Kopfbewegungen " "hinterher, springt vor oder ist sehr wackelig." -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Standard" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Textskalierung" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "Text unter 1.0 skalieren simuliert ein höher aufgelöstes Display" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/es.po b/ui/po/es.po index b987082..7f7b4c5 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -17,47 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 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." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Esta función no es compatible con tu dispositivo en este momento." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Pantalla curvada" @@ -253,92 +253,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Pantalla curvada" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Ajustes" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Distancia de la pantalla" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Umbral de seguimiento" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Hasta qué punto puedes mirar antes de que la pantalla siga." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Tamaño de la pantalla" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Tamaño de la pantalla" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Atajos de teclado" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "Atajo encendido/apagado Efecto XR" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -346,46 +350,46 @@ msgstr "" "Activa o desactiva rápidamente el Efecto XR. Es posible que necesites " "activar el efecto manualmente una vez para habilitar el atajo." -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Cambiar" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Atajo para recentrar la pantalla" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Fije la pantalla virtual en la posición actual." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Atajo para alternar el modo de seguimiento" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Activar el modo de seguimiento." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Atajo para alternar el modo de seguimiento" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Activar el modo de seguimiento." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Configuración Avanzada" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Encuentre la configuración de pantalla óptima" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -394,86 +398,86 @@ msgstr "" "obtener la máxima resolución y la mejor escalabilidad cuando estén " "enchufadas." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Utilizar la frecuencia de actualización más alta" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 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." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Siempre como pantalla principal" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Automáticamente configurar las gafas como pantalla principal al enchufarse." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Pantalla curvada" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Pantalla curvada" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Anticipación de movimiento" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -484,20 +488,36 @@ msgstr "" "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:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Predeterminado" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Escalado de Texto" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "Escalando el texto por debajo de 1.0 simulará una pantalla de mayor " "resolución" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/fr.po b/ui/po/fr.po index 5838c06..4e469f1 100644 --- a/ui/po/fr.po +++ b/ui/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,42 +25,42 @@ msgstr "" "Basculez vos lunettes en mode Side-By-Side (Côte-à-Côte) et doublez la " "largeur de l'écran." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "" "Cette fonctionnalité n'est actuellement pas prise en charge par votre " "appareil." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distance d'affichage" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Distance d'affichage" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Distance d'affichage" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Affichage incurvé" @@ -256,92 +256,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Affichage incurvé" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Réglages" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Distance d'affichage" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Seuil de suivi" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Distance jusqu'où vous pouvez regarder avant que l'affichage ne suive." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Taille de l'affichage" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Taille de l'affichage" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Raccourcis clavier" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "Raccourci on/off de l'effet XR" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -349,46 +353,46 @@ msgstr "" "Activez ou désactivez rapidement l'effet XR. Il se peut que vous deviez " "activer l'effet manuellement une fois pour activer le raccourci." -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Changer" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Raccourci de recentrage de l'affichage" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Fixez l'affichage virtuel à la position actuelle." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Raccourci de basculement du mode de suivi" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Basculer rapidement le mode de suivi." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Raccourci de basculement du mode de suivi" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Basculer rapidement le mode de suivi." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Paramètres avancés" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Trouver la configuration d'affichage optimale" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -397,87 +401,87 @@ msgstr "" "résolution maximale et une meilleure mise à l'échelle lorsque elles sont " "branchées." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Utiliser le taux de rafraîchissement le plus élevé" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 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." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Affichage principal en permanence" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 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." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Affichage incurvé" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Affichage incurvé" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Prédiction de mouvement" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -487,20 +491,36 @@ msgstr "" "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:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Par défaut" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Mise à l'échelle du texte" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "Une mise à l'échelle du texte en dessous de 1.0 simulera un affichage de " "plus haute résolution" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/it.po b/ui/po/it.po index 82567bd..26c89f8 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,40 +25,40 @@ msgstr "" "Passa i tuoi occhiali in modalità side-by-side e raddoppia la larghezza del " "display." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Questa funzione non è attualmente supportata sul tuo dispositivo." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distanza del display" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Distanza del display" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Distanza del display" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Display curvo" @@ -254,92 +254,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Display curvo" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Regolazioni" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Distanza del display" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Soglia di inseguimento" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Quanto lontano puoi guardare prima che il display ti segua." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Dimensione del display" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Dimensione del display" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Scorciatoie da tastiera" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "Scorciatoia per on/off dell'effetto XR" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -348,46 +352,46 @@ msgstr "" "abilitare l'effetto manualmente almeno una volta per abilitare la " "scorciatoia da tastiera." -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Cambia" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Scorciatoia per ricentrare il display" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Fissa il display virtuale alla posizione attuale." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Scorciatoia per attivare/disattivare la modalità di inseguimento" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Attivazione/disattivazione rapida della modalità di inseguimento." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Scorciatoia per attivare/disattivare la modalità di inseguimento" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Attivazione/disattivazione rapida della modalità di inseguimento." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Impostazioni avanzate" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Trova la configurazione ottimale del display" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -395,87 +399,87 @@ msgstr "" "Modifica automaticamente la configurazione del display degli occhiali per " "ottenere la massima risoluzione e la migliore scalabilità quando collegati." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Usa la frequenza di aggiornamento più elevata" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "La frequenza di aggiornamento potrebbe influire sulle prestazioni, " "disabilitala per impostarla manualmente." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Imposta sempre come display primario" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Imposta automaticamente gli occhiali come display primario quando sono " "collegati." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Display curvo" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Display curvo" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Anticipo del movimento" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -486,20 +490,36 @@ msgstr "" "che il display virtuale non rimanga indietro rispetto ai tuoi movimenti, non " "salti in avanti o sia molto tremolante." -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Predefinito" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Ridimensionamento del testo" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "Ridimensionando il testo sotto a 1.0 si simula una maggiore risoluzione del " "display" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/ja.po b/ui/po/ja.po index 156f3f4..cbb7bb9 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -21,46 +21,46 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします。" -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "現在接続されているデバイスはこの機能に対応していません。" -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "曲面ディスプレイ" @@ -256,92 +256,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "曲面ディスプレイ" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "調整" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "ディスプレイ距離" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "フォローしきい値" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "ディスプレイがフォロー(追従)を開始するまでの距離" -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "ディスプレイサイズ" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "ディスプレイサイズ" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "キーボードショートカット" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "XRエフェクトの切り替え" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -349,46 +353,46 @@ msgstr "" "XRエフェクトの有効・無効を切り替えます。このショートカットを有効にするために" "手動で1回XRエフェクトを有効にする必要があります。" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "変更" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "ディスプレイを中央へ移動" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "仮想ディスプレイを現在の視点に固定します。" -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "フォローモードの切り替え" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "フォローモードのオン/オフをすばやく切り替えます。" -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "フォローモードの切り替え" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "フォローモードのオン/オフをすばやく切り替えます。" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "詳細設定" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "ディスプレイ設定を最適化する" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -396,85 +400,85 @@ msgstr "" "メガネ接続時、最大解像度と最適なスケーリングのためにディスプレイ設定を自動的" "に変更します。" -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "最大のリフレッシュレートを使用する" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "リフレッシュレートはパフォーマンスに影響を与える可能性があります。手動で設定" "する場合は無効にしてください。" -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "常にプライマリディスプレイにする" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "メガネ接続時、自動的にプライマリディスプレイにします。" -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "曲面ディスプレイ" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "曲面ディスプレイ" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "動きの先読み" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -484,20 +488,36 @@ msgstr "" "ます。仮想ディスプレイが頭の動きに遅れたり、先に進んだり、非常に揺れたりする" "場合を除き、デフォルトのままで問題ありません。" -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "デフォルト" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "テキストスケーリング" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "テキストを1.0未満にスケーリングすると、高解像度ディスプレイをシミュレートしま" "す。" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/pl.po b/ui/po/pl.po index 385779a..70cf7d7 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-16 10:26-0700\n" "Last-Translator: \n" "Language-Team: Polish \n" @@ -18,43 +18,43 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "" -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 msgid "Set Focused Display Distance" msgstr "" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 msgid "Set All Displays Distance" msgstr "" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 msgid "Focused display" msgstr "" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 msgid "All displays" msgstr "" @@ -247,229 +247,249 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 msgid "Rearrange displays" msgstr "" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 msgid "Display distances" msgstr "" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "" -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 msgid "Display angling" msgstr "" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 msgid "Display spacing" msgstr "" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "" -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 msgid "Toggle zoom on focus shortcut" msgstr "" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 msgid "Quickly toggle zoom on focus mode." msgstr "" -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 msgid "Remove virtual displays on disable" msgstr "" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 msgid "All displays follow mode" msgstr "" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 8814839..9a3299e 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -26,40 +26,40 @@ msgstr "" "Altera o modo dos óculos para lado a lado (SBS) e dobra a largura da tela " "(ultrawide)." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Este recurso não é atualmente suportado para o seu dispositivo." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distância da tela" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Distância da tela" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Distância da tela" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Tela curva" @@ -255,137 +255,141 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Tela curva" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Ajustes" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Distância da tela" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Sensibilidade do modo de acompanhamento" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Quanto você pode mover a cabeça antes que a tela te acompanhe." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Tamanho da tela" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Tamanho da tela" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Atalhos de teclado" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Alterar" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Atalho para recentralizar a tela" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Traga a tela virtual para onde você está olhando." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Atalho para alternar o modo de acompanhamento" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Alterne rapidamente o modo de acompanhamento." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Atalho para alternar o modo de acompanhamento" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Alterne rapidamente o modo de acompanhamento." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Configurações Avançadas" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Encontre a configuração de tela ideal" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -393,86 +397,86 @@ msgstr "" "Modifique automaticamente a configuração de exibição dos óculos para máxima " "resolução e melhor dimensionamento quando conectado." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Use a taxa de atualização mais alta" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "A taxa de atualização pode afetar o desempenho, desative-a para defini-la " "manualmente." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Sempre tela principal" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Defina automaticamente os óculos como a tela primária quando conectados." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Tela curva" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Tela curva" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Antecipação de movimento" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -483,19 +487,35 @@ msgstr "" "virtual tenha atrasos, avance ou seja muito instável em relação aos " "movimentos da cabeça " -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Padrão" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Redimensionamento de Texto" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "Redimensionar o texto abaixo de 1.0 simulará uma tela de resolução mais alta" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/ru.po b/ui/po/ru.po index f81502f..eee7528 100644 --- a/ui/po/ru.po +++ b/ui/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-17 09:39-0700\n" "Last-Translator: \n" "Language-Team: Russian \n" @@ -18,47 +18,47 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" "Переключает очки в режим «сторона к стороне» и удваивает ширину дисплея." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Изогнутый дисплей" @@ -254,138 +254,142 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Изогнутый дисплей" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Настройки" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Расстояние дисплея" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Порог следования" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "" "Как далеко вы можете отвернуть взгляд, прежде чем дисплей последует за вами." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Размер дисплея" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Размер дисплея" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Сочетания клавиш" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Изменить" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Сочетание клавиш для перецентровки дисплея" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Фиксировать виртуальный дисплей в текущем положении." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Сочетание клавиш для переключения режима следования" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Быстро переключать режим следования." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Сочетание клавиш для переключения режима следования" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Быстро переключать режим следования." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Дополнительные настройки" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Найти оптимальную конфигурацию дисплея" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -393,87 +397,87 @@ msgstr "" "Автоматически изменять конфигурацию дисплея очков для максимального " "разрешения и лучшей масштабирования при подключении." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Использовать высшую частоту обновления" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "Частота обновления может повлиять на производительность, отключите это, " "чтобы установить ее вручную." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Всегда основной дисплей" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Автоматически устанавливать очки в качестве основного дисплея при " "подключении." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Изогнутый дисплей" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Изогнутый дисплей" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Прогнозирование движения" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -484,18 +488,34 @@ msgstr "" "виртуальный дисплей не отстает от движений вашей головы, не опережает или не " "очень трясётся." -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "По умолчанию" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/sv.po b/ui/po/sv.po index fdb9fbd..af319ef 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,40 +25,40 @@ msgstr "" "Växlar dina glasögon till side-by-side-läget och dubblerar bredden på " "visningen." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 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/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Böjd skärm" @@ -254,92 +254,96 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Böjd skärm" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Justeringar" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Avstånd till skärmen" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Automatisk följtröskel" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "Huvudrörelsetröskel för automatisk efterföljning." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Skärmens storlek" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Skärmens storlek" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Tangentbordsgenvägar" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "XR-Effekt genväg på/av" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." @@ -347,46 +351,46 @@ msgstr "" "Skifta snabbt mellan att slå av eller på XR-Effekt. Du kan behöva slå på den " "manuellt en gång för att genvägen ska fungera." -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Ändra" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Om-centrering tangentbordsgenväg" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Fäst den virtuella skärmen i den nuvarande positionen." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Växla följ läge kort" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Växla snabbt följ läge." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Växla följ läge kort" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Växla snabbt följ läge." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Avancerade inställningar" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Hitta optimal konfiguration till skärmen" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -394,85 +398,85 @@ msgstr "" "Ä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:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Använd högsta uppdateringsfrekvens" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 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." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Alltid primär skärm" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "Ställer automatisk glasögon som primär skärm när den är ansluten." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Böjd skärm" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Böjd skärm" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Rörs förväntning" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -481,18 +485,34 @@ 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örsig konstigt." -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "Standard" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "Textskalning" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "Textskalning under 1.0 kommer att simulera en högre skärmupplösning" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index 00ca912..4261266 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -18,46 +18,46 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "Переключає окуляри в режим «бок о бок» і подвоює ширину дисплея." -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "Ця функція наразі не підтримується на вашому пристрої." -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "Відстань дисплея" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "Відстань дисплея" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "Відстань дисплея" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "Викривлений дисплей" @@ -253,139 +253,143 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "Викривлений дисплей" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "Налаштування" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "Відстань дисплея" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "Поріг слідування" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "" "Як далеко ви можете відвернути ваш взор, перш ніж дисплей почне слідувати за " "вами." -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "Розмір дисплея" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "Розмір дисплея" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "Сполучення клавіш" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "Змінити" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "Сполучення клавіш для центрування дисплея" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "Фіксувати віртуальний дисплей у поточній позиції." -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "Сполучення клавіш для перемикання режиму слідування" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "Швидко перемикати режим слідування." -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "Сполучення клавіш для перемикання режиму слідування" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "Швидко перемикати режим слідування." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "Додаткові налаштування" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "Знайти оптимальну конфігурацію дисплея" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -393,85 +397,85 @@ msgstr "" "Автоматично змінює конфігурацію дисплея окулярів для максимальної роздільної " "здатності і найкращого масштабування при підключенні." -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "Використовувати найвищу частоту оновлення" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "Частота оновлення може вплинути на продуктивність, вимкніть це, щоб " "встановити її вручну." -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "Завжди основний дисплей" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "Автоматично встановлює окуляри як основний дисплей при підключенні." -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Викривлений дисплей" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "Викривлений дисплей" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "Прогнозування руху" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -482,18 +486,34 @@ msgstr "" "віртуальний дисплей відстає від рухів вашої голови, випереджає або дуже " "тремтить." -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "За замовчуванням" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index d32b7c1..930a229 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: 2025-03-07 20:36-0800\n" +"POT-Creation-Date: 2025-03-10 15:46-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -16,46 +16,46 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:23 +#: src/connecteddevice.py:29 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "切换到并排模式,并将显示宽度翻倍。" -#: src/connecteddevice.py:24 +#: src/connecteddevice.py:30 msgid "This feature is not currently supported for your device." msgstr "您的设备目前不支援此功能。" -#: src/connecteddevice.py:134 +#: src/connecteddevice.py:141 #, fuzzy msgid "Set Focused Display Distance" msgstr "显示距离" -#: src/connecteddevice.py:135 +#: src/connecteddevice.py:142 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:142 +#: src/connecteddevice.py:149 #, fuzzy msgid "Set All Displays Distance" msgstr "显示距离" -#: src/connecteddevice.py:143 +#: src/connecteddevice.py:150 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:248 +#: src/connecteddevice.py:263 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:282 +#: src/connecteddevice.py:297 #, fuzzy msgid "Focused display" msgstr "显示距离" -#: src/connecteddevice.py:288 +#: src/connecteddevice.py:303 #, fuzzy msgid "All displays" msgstr "曲面显示" @@ -251,219 +251,223 @@ msgstr "" msgid "1440p" msgstr "" -#: src/gtk/connected-device.ui:131 +#: src/gtk/connected-device.ui:110 +msgid "Add custom" +msgstr "" + +#: src/gtk/connected-device.ui:143 #, fuzzy msgid "Rearrange displays" msgstr "曲面显示" -#: src/gtk/connected-device.ui:149 +#: src/gtk/connected-device.ui:161 msgid "Adjustments" msgstr "调整" -#: src/gtk/connected-device.ui:153 +#: src/gtk/connected-device.ui:165 #, fuzzy msgid "Display distances" msgstr "显示距离" -#: src/gtk/connected-device.ui:154 +#: src/gtk/connected-device.ui:166 msgid "Set how close you want displays to appear." msgstr "" -#: src/gtk/connected-device.ui:209 +#: src/gtk/connected-device.ui:221 msgid "Follow threshold" msgstr "跟随触发值" -#: src/gtk/connected-device.ui:210 +#: src/gtk/connected-device.ui:222 msgid "How far away you can look before the display follows." msgstr "在显示内容跟随前您可以看多远。" -#: src/gtk/connected-device.ui:233 +#: src/gtk/connected-device.ui:245 #, fuzzy msgid "Display angling" msgstr "显示大小" -#: src/gtk/connected-device.ui:234 +#: src/gtk/connected-device.ui:246 msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -#: src/gtk/connected-device.ui:248 +#: src/gtk/connected-device.ui:260 msgid "Automatic" msgstr "" -#: src/gtk/connected-device.ui:249 +#: src/gtk/connected-device.ui:261 msgid "Side-angled" msgstr "" -#: src/gtk/connected-device.ui:250 +#: src/gtk/connected-device.ui:262 msgid "Top-angled" msgstr "" -#: src/gtk/connected-device.ui:251 +#: src/gtk/connected-device.ui:263 msgid "Flat" msgstr "" -#: src/gtk/connected-device.ui:261 +#: src/gtk/connected-device.ui:273 #, fuzzy msgid "Display spacing" msgstr "显示大小" -#: src/gtk/connected-device.ui:262 +#: src/gtk/connected-device.ui:274 msgid "Put empty space between displays, when there are multiple." msgstr "" -#: src/gtk/connected-device.ui:292 +#: src/gtk/connected-device.ui:304 msgid "Viewport horizontal offset" msgstr "" -#: src/gtk/connected-device.ui:293 +#: src/gtk/connected-device.ui:305 msgid "Move the viewport to the left or right of its default position." msgstr "" -#: src/gtk/connected-device.ui:322 +#: src/gtk/connected-device.ui:334 msgid "Viewport vertical offset" msgstr "" -#: src/gtk/connected-device.ui:323 +#: src/gtk/connected-device.ui:335 msgid "Move the viewport up or down from its default position." msgstr "" -#: src/gtk/connected-device.ui:359 src/gtk/connected-device.ui:365 +#: src/gtk/connected-device.ui:371 src/gtk/connected-device.ui:377 msgid "Keyboard Shortcuts" msgstr "键盘快捷键" -#: src/gtk/connected-device.ui:368 +#: src/gtk/connected-device.ui:380 msgid "XR Effect on/off shortcut" msgstr "XR效果 开/关 快捷键" -#: src/gtk/connected-device.ui:369 +#: src/gtk/connected-device.ui:381 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "快速启用或禁用 XR 效果。您可能需要先手动启用一次该效果,才能设此快捷键" -#: src/gtk/connected-device.ui:388 src/gtk/connected-device.ui:417 -#: src/gtk/connected-device.ui:446 src/gtk/connected-device.ui:475 +#: src/gtk/connected-device.ui:400 src/gtk/connected-device.ui:429 +#: src/gtk/connected-device.ui:458 src/gtk/connected-device.ui:487 msgid "Change" msgstr "更改" -#: src/gtk/connected-device.ui:397 +#: src/gtk/connected-device.ui:409 msgid "Re-center display shortcut" msgstr "重新居中显示快捷键" -#: src/gtk/connected-device.ui:398 +#: src/gtk/connected-device.ui:410 msgid "Pin the virtual display to the current position." msgstr "将虚拟显示固定在当前位置。" -#: src/gtk/connected-device.ui:426 +#: src/gtk/connected-device.ui:438 #, fuzzy msgid "Toggle zoom on focus shortcut" msgstr "切换跟随模式快捷键" -#: src/gtk/connected-device.ui:427 +#: src/gtk/connected-device.ui:439 #, fuzzy msgid "Quickly toggle zoom on focus mode." msgstr "快速切换跟随模式。" -#: src/gtk/connected-device.ui:455 +#: src/gtk/connected-device.ui:467 msgid "Toggle follow mode shortcut" msgstr "切换跟随模式快捷键" -#: src/gtk/connected-device.ui:456 +#: src/gtk/connected-device.ui:468 msgid "Quickly toggle follow mode." msgstr "快速切换跟随模式。" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:503 src/gtk/connected-device.ui:513 msgid "Advanced Settings" msgstr "高级设定" -#: src/gtk/connected-device.ui:505 +#: src/gtk/connected-device.ui:517 msgid "Find optimal display config" msgstr "寻找最佳显示设定" -#: src/gtk/connected-device.ui:506 +#: src/gtk/connected-device.ui:518 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。" -#: src/gtk/connected-device.ui:516 +#: src/gtk/connected-device.ui:528 msgid "Use highest refresh rate" msgstr "使用最高刷新率" -#: src/gtk/connected-device.ui:517 +#: src/gtk/connected-device.ui:529 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "刷新率可能会影响性能,禁用此功能即可手动设置。" -#: src/gtk/connected-device.ui:527 +#: src/gtk/connected-device.ui:539 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:528 +#: src/gtk/connected-device.ui:540 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:538 +#: src/gtk/connected-device.ui:550 msgid "Always primary display" msgstr "每次设置为主要显示" -#: src/gtk/connected-device.ui:539 +#: src/gtk/connected-device.ui:551 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "连接时,自动将眼镜设置为主要显示。" -#: src/gtk/connected-device.ui:549 +#: src/gtk/connected-device.ui:561 #, fuzzy msgid "Remove virtual displays on disable" msgstr "曲面显示" -#: src/gtk/connected-device.ui:550 +#: src/gtk/connected-device.ui:562 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:560 +#: src/gtk/connected-device.ui:572 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:561 +#: src/gtk/connected-device.ui:573 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:571 +#: src/gtk/connected-device.ui:583 #, fuzzy msgid "All displays follow mode" msgstr "曲面显示" -#: src/gtk/connected-device.ui:572 +#: src/gtk/connected-device.ui:584 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:588 +#: src/gtk/connected-device.ui:600 msgid "Follow mode movement tracking" msgstr "" -#: src/gtk/connected-device.ui:589 +#: src/gtk/connected-device.ui:601 msgid "Choose which movements should be tracked in follow mode." msgstr "" -#: src/gtk/connected-device.ui:604 +#: src/gtk/connected-device.ui:616 msgid "Horizontal" msgstr "" -#: src/gtk/connected-device.ui:624 +#: src/gtk/connected-device.ui:636 msgid "Vertical" msgstr "" -#: src/gtk/connected-device.ui:644 +#: src/gtk/connected-device.ui:656 msgid "Tilt/roll" msgstr "" -#: src/gtk/connected-device.ui:662 +#: src/gtk/connected-device.ui:674 msgid "Movement look-ahead" msgstr "移动预测" -#: src/gtk/connected-device.ui:663 +#: src/gtk/connected-device.ui:675 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -472,18 +476,34 @@ msgstr "" "透过预测头部追踪位置,提前于渲染时间进行预测来抵消输入延迟。除非虚拟显示滞后" "于头部,提前跳动或非常抖动,请尽量使用默认设置。" -#: src/gtk/connected-device.ui:681 +#: src/gtk/connected-device.ui:693 msgid "Default" msgstr "默认" -#: src/gtk/connected-device.ui:693 +#: src/gtk/connected-device.ui:705 msgid "Text Scaling" msgstr "字体大小比例" -#: src/gtk/connected-device.ui:694 +#: src/gtk/connected-device.ui:706 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "字体缩放小于1.0,将模拟解析度更高的显示效果" +#: src/gtk/custom-resolution-dialog-content.ui:9 +msgid "Width" +msgstr "" + +#: src/gtk/custom-resolution-dialog-content.ui:42 +msgid "Height" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:5 +msgid "Add a Custom Resolution" +msgstr "" + +#: src/gtk/custom-resolution-dialog.ui:10 +msgid "Add" +msgstr "" + #: src/gtk/display-distance-dialog.ui:9 msgid "Show full range" msgstr "" diff --git a/ui/src/breezydesktop.gresource.xml b/ui/src/breezydesktop.gresource.xml index 37c33ba..4b17392 100644 --- a/ui/src/breezydesktop.gresource.xml +++ b/ui/src/breezydesktop.gresource.xml @@ -2,6 +2,8 @@ gtk/connected-device.ui + gtk/custom-resolution-dialog.ui + gtk/custom-resolution-dialog-content.ui gtk/display-distance-dialog.ui gtk/display-distance-dialog-content.ui gtk/failed-verification.ui diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index f9e6593..eafc384 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -1,7 +1,9 @@ from gi.repository import Gio, GLib, Gtk, GObject from .configmanager import ConfigManager -from .extensionsmanager import ExtensionsManager +from .customresolutiondialog import CustomResolutionDialog from .displaydistancedialog import DisplayDistanceDialog +from .extensionsmanager import ExtensionsManager +from .files import get_state_dir from .license import BREEZY_GNOME_FEATURES from .settingsmanager import SettingsManager from .shortcutdialog import bind_shortcut_settings @@ -10,8 +12,12 @@ from .virtualdisplaymanager import VirtualDisplayManager from .virtualdisplay import is_screencast_available from .virtualdisplayrow import VirtualDisplayRow from .xrdriveripc import XRDriverIPC + import gettext +import json import logging +import os +from pathlib import Path _ = gettext.gettext logger = logging.getLogger('breezy_ui') @@ -34,6 +40,7 @@ class ConnectedDevice(Gtk.Box): virtual_displays_row = Gtk.Template.Child() add_virtual_display_menu = Gtk.Template.Child() add_virtual_display_button = Gtk.Template.Child() + remove_custom_resolution_button = Gtk.Template.Child() launch_display_settings_row = Gtk.Template.Child() launch_display_settings_button = Gtk.Template.Child() all_displays_distance_label = Gtk.Template.Child() @@ -146,7 +153,7 @@ class ConnectedDevice(Gtk.Box): self._set_all_displays_distance(self.settings.get_double('toggle-display-distance-end')) self._set_focused_display_distance(self.settings.get_double('toggle-display-distance-start')) - self.add_virtual_display_menu.set_active_id('1080p') + self.add_virtual_display_menu.set_active_id('create_1080p_display') self.add_virtual_display_button.connect('clicked', self._on_add_virtual_display) self.launch_display_settings_button.connect('clicked', self._launch_display_settings) @@ -176,11 +183,6 @@ class ConnectedDevice(Gtk.Box): self._refresh_use_optimal_monitor_config(self.use_optimal_monitor_config_switch, None) self.extensions_manager.connect('notify::breezy-enabled', self._handle_enabled_config) - self.virtual_display_manager.connect('notify::displays', self._on_virtual_displays_update) - self._on_virtual_displays_update(self.virtual_display_manager, None) - - self.virtual_displays_by_pid = {} - self._settings_displays_app_info = None for appinfo in Gio.AppInfo.get_all(): @@ -188,6 +190,19 @@ class ConnectedDevice(Gtk.Box): self._settings_displays_app_info = appinfo break + self.virtual_display_manager.connect('notify::displays', self._on_virtual_displays_update) + self.add_virtual_display_menu.connect('changed', self._on_add_virtual_display_menu_changed) + self.remove_custom_resolution_button.connect('clicked', self._on_custom_resolution_option_remove) + self._on_virtual_displays_update(self.virtual_display_manager, None) + self.virtual_displays_by_pid = {} + + self._default_resolution_options_count = 2 + self._custom_resolution_options = [] + self._custom_resolutions_file_path = Path(os.path.join(get_state_dir(), 'custom_resolutions.json')) + self._load_custom_resolutions() + for id in self._custom_resolution_options: + self.add_virtual_display_menu.insert(self._default_resolution_options_count, id, id) + def _bind_switch_to_config(self, switch, config_key): self.config_manager.bind_property(config_key, switch, 'active', Gio.SettingsBindFlags.DEFAULT) switch.set_active(self.config_manager.get_property(config_key)) @@ -314,18 +329,73 @@ class ConnectedDevice(Gtk.Box): self._set_focused_display_distance(distance) + def _save_custom_resolutions(self): + with open(self._custom_resolutions_file_path, 'w') as f: + json.dump(self._custom_resolution_options, f) + + def _load_custom_resolutions(self): + if self._custom_resolutions_file_path.exists(): + try: + with open(self._custom_resolutions_file_path, 'r') as f: + self._custom_resolution_options = json.load(f) + except Exception: + self._custom_resolution_options = [] + def _on_add_virtual_display(self, *args): resolution = self.add_virtual_display_menu.get_active_id() - logger.info(f"Adding virtual display {resolution}") - width = 1920 - height = 1080 - if resolution == '1440p': + if resolution == 'create_1080p_display': + width = 1920 + height = 1080 + elif resolution == 'create_1440p_display': width = 2560 height = 1440 + elif resolution == 'add_custom_resolution': + dialog = CustomResolutionDialog(self._on_custom_resolution_dialog_add) + dialog.set_transient_for(self.get_ancestor(Gtk.Window)) + dialog.present() + return + else: + width, height = resolution.split('x') + width = int(width) + height = int(height) + logger.info(f"Adding virtual display {resolution}") self.virtual_display_manager.create_virtual_display(width, height, 60) + def _on_custom_resolution_dialog_add(self, width, height): + width = int(round(width)) + height = int(round(height)) + + id = f"{width}x{height}" + self._custom_resolution_options.append(id) + self._save_custom_resolutions() + + self.add_virtual_display_menu.insert(self._default_resolution_options_count, id, id) + self.add_virtual_display_menu.set_active_id(id) + self._on_add_virtual_display_menu_changed(self.add_virtual_display_menu) + + self.virtual_display_manager.create_virtual_display(width, height, 60) + + def _on_add_virtual_display_menu_changed(self, widget): + resolution = widget.get_active_id() + self.remove_custom_resolution_button.set_visible(resolution in self._custom_resolution_options) + + def _on_custom_resolution_option_remove(self, *args): + resolution = self.add_virtual_display_menu.get_active_id() + + for custom_resolution_option in self._custom_resolution_options: + self.add_virtual_display_menu.remove(self._default_resolution_options_count) + + self._custom_resolution_options.remove(resolution) + self._save_custom_resolutions() + + for id in self._custom_resolution_options: + self.add_virtual_display_menu.insert(self._default_resolution_options_count, id, id) + + self.add_virtual_display_menu.set_active_id('create_1080p_display') + self._on_add_virtual_display_menu_changed(self.add_virtual_display_menu) + def _on_virtual_displays_update(self, virtual_display_manager, val): GLib.idle_add(self._on_virtual_displays_update_gui, virtual_display_manager) diff --git a/ui/src/customresolutiondialog.py b/ui/src/customresolutiondialog.py new file mode 100644 index 0000000..98ae0ef --- /dev/null +++ b/ui/src/customresolutiondialog.py @@ -0,0 +1,21 @@ +from gi.repository import Gtk, Gio +from .customresolutiondialogcontent import CustomResolutionDialogContent + +@Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/custom-resolution-dialog.ui') +class CustomResolutionDialog(Gtk.Dialog): + __gtype_name__ = 'CustomResolutionDialog' + + add_button = Gtk.Template.Child() + + def __init__(self, on_add_callback): + super(Gtk.Dialog, self).__init__() + self.init_template() + + self.on_add_callback = on_add_callback + + self.content = CustomResolutionDialogContent(self.add_button, self._on_add_callback) + self.get_content_area().append(self.content) + + def _on_add_callback(self, width, height): + self.on_add_callback(width, height) + self.close() \ No newline at end of file diff --git a/ui/src/customresolutiondialogcontent.py b/ui/src/customresolutiondialogcontent.py new file mode 100644 index 0000000..5529957 --- /dev/null +++ b/ui/src/customresolutiondialogcontent.py @@ -0,0 +1,27 @@ +from gi.repository import Gtk, Gio +from .settingsmanager import SettingsManager + +import gettext + +_ = gettext.gettext + + +@Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/custom-resolution-dialog-content.ui') +class CustomResolutionDialogContent(Gtk.Box): + __gtype_name__ = 'CustomResolutionDialogContent' + + custom_resolution_width_scale = Gtk.Template.Child() + custom_resolution_width_adjustment = Gtk.Template.Child() + custom_resolution_height_scale = Gtk.Template.Child() + custom_resolution_height_adjustment = Gtk.Template.Child() + + def __init__(self, add_button, on_add_callback): + super(Gtk.Box, self).__init__() + self.init_template() + + self.on_add_callback = on_add_callback + + add_button.connect('clicked', self._on_add_button_clicked) + + def _on_add_button_clicked(self, button): + self.on_add_callback(self.custom_resolution_width_adjustment.get_value(), self.custom_resolution_height_adjustment.get_value()) \ No newline at end of file diff --git a/ui/src/files.py b/ui/src/files.py new file mode 100644 index 0000000..109deb0 --- /dev/null +++ b/ui/src/files.py @@ -0,0 +1,22 @@ + + +import os + +def get_user_home(): + return os.path.expanduser('~') + +def get_config_dir(): + config_home = os.environ.get('XDG_CONFIG_HOME', '~/.config') + return os.path.expanduser(config_home) + +def get_state_dir(): + state_home = os.environ.get('XDG_STATE_HOME', '~/.local/state') + return os.path.join(os.path.expanduser(state_home), 'breezy_gnome') + +def get_data_home(): + data_home = os.environ.get('XDG_DATA_HOME', '~/.local/share') + return os.path.expanduser(data_home) + +def get_bin_home(): + bin_home = os.environ.get('XDG_BIN_HOME', '~/.local/bin') + return os.path.expanduser(bin_home) \ No newline at end of file diff --git a/ui/src/gtk/connected-device.ui b/ui/src/gtk/connected-device.ui index 5511598..e0cac07 100644 --- a/ui/src/gtk/connected-device.ui +++ b/ui/src/gtk/connected-device.ui @@ -105,8 +105,9 @@ - 1080p - 1440p + 1080p + 1440p + Add custom @@ -114,6 +115,17 @@ + + + remove-custom-resolution + list-remove-symbolic + 3 + 0 + + + add-virtual-display diff --git a/ui/src/gtk/custom-resolution-dialog-content.ui b/ui/src/gtk/custom-resolution-dialog-content.ui new file mode 100644 index 0000000..44e2bba --- /dev/null +++ b/ui/src/gtk/custom-resolution-dialog-content.ui @@ -0,0 +1,74 @@ + + + + + \ No newline at end of file diff --git a/ui/src/gtk/custom-resolution-dialog.ui b/ui/src/gtk/custom-resolution-dialog.ui new file mode 100644 index 0000000..44408c3 --- /dev/null +++ b/ui/src/gtk/custom-resolution-dialog.ui @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/ui/src/main.py b/ui/src/main.py index e415388..e96cdcf 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -36,17 +36,13 @@ gi.require_version('GLib', '2.0') from gi.repository import Adw, Gtk, Gio, GLib from .configmanager import ConfigManager +from .files import get_config_dir, get_state_dir from .licensedialog import LicenseDialog from .statemanager import StateManager from .window import BreezydesktopWindow from .xrdriveripc import XRDriverIPC -config_home = os.environ.get('XDG_CONFIG_HOME', '~/.config') -config_dir = os.path.expanduser(config_home) -state_home = os.environ.get('XDG_STATE_HOME', '~/.local/state') -state_dir = os.path.expanduser(state_home) -breezy_state_dir = os.path.join(state_dir, 'breezy_gnome') -log_dir = os.path.join(breezy_state_dir, 'logs/ui') +log_dir = os.path.join(get_state_dir(), 'logs/ui') os.makedirs(log_dir, exist_ok=True) logger = logging.getLogger('breezy_ui') @@ -63,7 +59,7 @@ def excepthook(exc_type, exc_value, exc_traceback): sys.excepthook = excepthook -XRDriverIPC.set_instance(XRDriverIPC(logger, config_dir)) +XRDriverIPC.set_instance(XRDriverIPC(logger, get_config_dir())) if GLib.MAJOR_VERSION * 100 + GLib.MINOR_VERSION >= 274: APPLICATION_FLAGS = Gio.ApplicationFlags.DEFAULT_FLAGS diff --git a/ui/src/meson.build b/ui/src/meson.build index 447c0d6..22b16d3 100644 --- a/ui/src/meson.build +++ b/ui/src/meson.build @@ -40,10 +40,13 @@ breezydesktop_sources = [ '__init__.py', 'configmanager.py', 'connecteddevice.py', + 'customresolutiondialog.py', + 'customresolutiondialogcontent.py', 'extensionsmanager.py', 'displaydistancedialog.py', 'displaydistancedialogcontent.py', 'failedverification.py', + 'files.py', 'license.py', 'licensedialog.py', 'licensedialogcontent.py', diff --git a/ui/src/verify.py b/ui/src/verify.py index 3eb90cd..8e03dd1 100644 --- a/ui/src/verify.py +++ b/ui/src/verify.py @@ -2,26 +2,19 @@ import logging import os import subprocess +from .files import get_bin_home, get_data_home + logger = logging.getLogger('breezy_ui') -user_home = os.path.expanduser('~') def verify_installation(): - xdg_bin_home = os.environ.get('XDG_BIN_HOME') - if not xdg_bin_home or xdg_bin_home.startswith('/app') or xdg_bin_home.startswith(os.path.join(user_home, '.var/app')): - xdg_bin_home = os.path.join(user_home, '.local', 'bin') - verify_installation_path = os.path.join(xdg_bin_home, 'breezy_gnome_verify') + verify_installation_path = os.path.join(get_bin_home(), 'breezy_gnome_verify') if not os.path.exists(verify_installation_path): logger.error(f"Could not verify your Breezy GNOME installation. Please ensure that Breezy GNOME is installed.") exit(1) - env_copy = os.environ.copy() - xdg_data_home = os.environ.get('XDG_DATA_HOME') - if not xdg_data_home or xdg_data_home.startswith('/app') or xdg_data_home.startswith(os.path.join(user_home, '.var/app')): - xdg_data_home = os.path.join(user_home, '.local', 'share') - env_copy["XDG_DATA_HOME"] = xdg_data_home try: - verify_output = subprocess.check_output([verify_installation_path], stderr=subprocess.STDOUT, env=env_copy).strip() + verify_output = subprocess.check_output([verify_installation_path], stderr=subprocess.STDOUT).strip() success = verify_output == b"Verification succeeded" if not success: logger.error(f"Could not verify your Breezy GNOME installation. Please ensure that Breezy GNOME is installed.") diff --git a/ui/src/virtualdisplaymanager.py b/ui/src/virtualdisplaymanager.py index dd02bc1..34a9031 100644 --- a/ui/src/virtualdisplaymanager.py +++ b/ui/src/virtualdisplaymanager.py @@ -61,7 +61,7 @@ class VirtualDisplayManager(GObject.GObject): def create_virtual_display(self, width, height, framerate): try: process = subprocess.Popen( - [f"{bindir}/virtualdisplay", "--width", str(width), "--height", str(height), "--framerate", str(framerate)], + [f"{bindir}/virtualdisplay", "--width", str(int(round(width))), "--height", str(int(round(height))), "--framerate", str(framerate)], start_new_session=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, @@ -95,7 +95,7 @@ class VirtualDisplayManager(GObject.GObject): self._save_processes() return True except Exception as e: - print(f"Failed to kill process {pid}: {e}") + logger.error(f"Failed to kill process {pid}: {e}") return False def _save_processes(self):