diff --git a/VERSION b/VERSION index 26e3379..b9d2bdf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.4 \ No newline at end of file +2.0.5 \ No newline at end of file diff --git a/gnome/src/devicedatastream.js b/gnome/src/devicedatastream.js index db84d68..e396403 100644 --- a/gnome/src/devicedatastream.js +++ b/gnome/src/devicedatastream.js @@ -168,6 +168,12 @@ export const DeviceDataStream = GObject.registerClass({ } } + _ipc_file_exists() { + if (!this._ipc_file_exists_cached) this._ipc_file_exists_cached = this._ipc_file.query_exists(null); + + return this._ipc_file_exists_cached; + } + // Refresh the data from the IPC file. if keepalive_only is true, we'll only check and update breezy_desktop_running if it // hasn't been checked within KEEPALIVE_REFRESH_INTERVAL_SEC. refresh_data(keepalive_only = false) { @@ -181,13 +187,20 @@ export const DeviceDataStream = GObject.registerClass({ } } - if (this._ipc_file.query_exists(null) && ( + if (this._ipc_file_exists() && ( !this.device_data?.imuData || !keepalive_only || getEpochSec() - toSec(this.device_data?.imuDateMs ?? 0) > KEEPALIVE_REFRESH_INTERVAL_SEC )) { - let data = this._ipc_file.load_contents(null); - if (data[0]) { + let data; + let data_success = false; + try { + data = this._ipc_file.load_contents(null); + data_success = data[0]; + } catch (e) { + Globals.logger.log_debug(`Error loading contents from IPC file: ${e.message}\n${e.stack}`); + } + if (data_success) { let buffer = new Uint8Array(data[1]).buffer; let dataView = new DataView(buffer); if (dataView.byteLength === DATA_VIEW_LENGTH) { @@ -275,6 +288,7 @@ export const DeviceDataStream = GObject.registerClass({ this.breezy_desktop_actually_running = false; } } else { + this._ipc_file_exists_cached = false; this.breezy_desktop_actually_running = false; } } diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index a66c9ae..1cc7520 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit a66c9aee82989ea7e98da5a05fde621ffb47af83 +Subproject commit 1cc7520d725df7f568ac78d9d19eb6f0881f1680 diff --git a/ui/modules/PyXRLinuxDriverIPC b/ui/modules/PyXRLinuxDriverIPC index 5ae87f3..cfe4c91 160000 --- a/ui/modules/PyXRLinuxDriverIPC +++ b/ui/modules/PyXRLinuxDriverIPC @@ -1 +1 @@ -Subproject commit 5ae87f35970486f12d3896fb6582a0b2d5ab15b2 +Subproject commit cfe4c918e2d23b56bf77de62d0d469cc4e5a7c2c diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 98583e2..eff990c 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,33 +27,33 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 msgid "Set Focused Display Distance" msgstr "" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 msgid "Set All Displays Distance" msgstr "" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 msgid "Focused display" msgstr "" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 msgid "All displays" msgstr "" @@ -366,90 +366,110 @@ msgstr "" msgid "Quickly toggle follow mode." msgstr "" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 msgid "Remove virtual displays on disable" msgstr "" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 msgid "All displays follow mode" msgstr "" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" diff --git a/ui/po/de.po b/ui/po/de.po index df16f00..a05b830 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -29,36 +29,36 @@ msgstr "" 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:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Display-Entfernung" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Display-Entfernung" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Display-Entfernung" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Gebogenes Display" @@ -383,15 +383,15 @@ msgstr "Folgemodus-Tastenkombination umschalten" msgid "Quickly toggle follow mode." msgstr "Schnell den Folgemodus wechseln." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Erweiterte Einstellungen" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Optimale Display-Konfiguration finden" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -399,67 +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:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Höchste Bildwiederholrate verwenden" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 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:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Immer primäres Display" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 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:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Gebogenes Display" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Gebogenes Display" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Bewegungsvorausschau" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -470,15 +490,15 @@ msgstr "" "es sei denn, das virtuelle Display hängt hinter Ihren Kopfbewegungen " "hinterher, springt vor oder ist sehr wackelig." -#: src/gtk/connected-device.ui:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "Standard" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "Textskalierung" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 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" diff --git a/ui/po/es.po b/ui/po/es.po index 0234df9..c468cb7 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -28,36 +28,36 @@ msgstr "" 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:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Distancia de la pantalla" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Pantalla curvada" @@ -381,15 +381,15 @@ msgstr "Atajo para alternar el modo de seguimiento" msgid "Quickly toggle follow mode." msgstr "Activar el modo de seguimiento." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Configuración Avanzada" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Encuentre la configuración de pantalla óptima" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -398,66 +398,86 @@ msgstr "" "obtener la máxima resolución y la mejor escalabilidad cuando estén " "enchufadas." -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Utilizar la frecuencia de actualización más alta" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 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:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Siempre como pantalla principal" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 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:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Pantalla curvada" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Pantalla curvada" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Anticipación de movimiento" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -468,15 +488,15 @@ 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "Predeterminado" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "Escalado de Texto" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 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 " diff --git a/ui/po/fr.po b/ui/po/fr.po index 1c22cba..92d6488 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -31,36 +31,36 @@ msgstr "" "Cette fonctionnalité n'est actuellement pas prise en charge par votre " "appareil." -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distance d'affichage" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Distance d'affichage" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Distance d'affichage" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Affichage incurvé" @@ -384,15 +384,15 @@ msgstr "Raccourci de basculement du mode de suivi" msgid "Quickly toggle follow mode." msgstr "Basculer rapidement le mode de suivi." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Paramètres avancés" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Trouver la configuration d'affichage optimale" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -401,67 +401,87 @@ msgstr "" "résolution maximale et une meilleure mise à l'échelle lorsque elles sont " "branchées." -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Utiliser le taux de rafraîchissement le plus élevé" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 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:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Affichage principal en permanence" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 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:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Affichage incurvé" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Affichage incurvé" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Prédiction de mouvement" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -471,15 +491,15 @@ 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "Par défaut" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "Mise à l'échelle du texte" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 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 " diff --git a/ui/po/it.po b/ui/po/it.po index 6669921..a95f3be 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -29,36 +29,36 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "Questa funzione non è attualmente supportata sul tuo dispositivo." -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Distanza del display" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Distanza del display" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Distanza del display" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Display curvo" @@ -383,15 +383,15 @@ msgstr "Scorciatoia per attivare/disattivare la modalità di inseguimento" msgid "Quickly toggle follow mode." msgstr "Attivazione/disattivazione rapida della modalità di inseguimento." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Impostazioni avanzate" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Trova la configurazione ottimale del display" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -399,67 +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:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Usa la frequenza di aggiornamento più elevata" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 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:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Imposta sempre come display primario" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 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:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Display curvo" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Display curvo" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Anticipo del movimento" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -470,15 +490,15 @@ 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "Predefinito" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "Ridimensionamento del testo" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 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 " diff --git a/ui/po/ja.po b/ui/po/ja.po index 29b54d9..7e70021 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -31,36 +31,36 @@ msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします msgid "This feature is not currently supported for your device." msgstr "現在接続されているデバイスはこの機能に対応していません。" -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "ディスプレイ距離" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "曲面ディスプレイ" @@ -384,15 +384,15 @@ msgstr "フォローモードの切り替え" msgid "Quickly toggle follow mode." msgstr "フォローモードのオン/オフをすばやく切り替えます。" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "詳細設定" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "ディスプレイ設定を最適化する" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -400,65 +400,85 @@ msgstr "" "メガネ接続時、最大解像度と最適なスケーリングのためにディスプレイ設定を自動的" "に変更します。" -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "最大のリフレッシュレートを使用する" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "リフレッシュレートはパフォーマンスに影響を与える可能性があります。手動で設定" "する場合は無効にしてください。" -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "常にプライマリディスプレイにする" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "メガネ接続時、自動的にプライマリディスプレイにします。" -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "曲面ディスプレイ" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "曲面ディスプレイ" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "動きの先読み" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -468,15 +488,15 @@ msgstr "" "ます。仮想ディスプレイが頭の動きに遅れたり、先に進んだり、非常に揺れたりする" "場合を除き、デフォルトのままで問題ありません。" -#: src/gtk/connected-device.ui:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "デフォルト" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "テキストスケーリング" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" "テキストを1.0未満にスケーリングすると、高解像度ディスプレイをシミュレートしま" diff --git a/ui/po/pl.po b/ui/po/pl.po index ff47da7..6014453 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-16 10:26-0700\n" "Last-Translator: \n" "Language-Team: Polish \n" @@ -28,33 +28,33 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "" -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 msgid "Set Focused Display Distance" msgstr "" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 msgid "Set All Displays Distance" msgstr "" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 msgid "Focused display" msgstr "" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 msgid "All displays" msgstr "" @@ -367,90 +367,110 @@ msgstr "" msgid "Quickly toggle follow mode." msgstr "" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "" -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 msgid "Remove virtual displays on disable" msgstr "" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 msgid "All displays follow mode" msgstr "" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 4cd6055..2650175 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese \n" "Language-Team: Russian \n" @@ -29,36 +29,36 @@ msgstr "" msgid "This feature is not currently supported for your device." msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Расстояние дисплея" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Изогнутый дисплей" @@ -381,15 +381,15 @@ msgstr "Сочетание клавиш для переключения режи msgid "Quickly toggle follow mode." msgstr "Быстро переключать режим следования." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Дополнительные настройки" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Найти оптимальную конфигурацию дисплея" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -397,67 +397,87 @@ msgstr "" "Автоматически изменять конфигурацию дисплея очков для максимального " "разрешения и лучшей масштабирования при подключении." -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Использовать высшую частоту обновления" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "Частота обновления может повлиять на производительность, отключите это, " "чтобы установить ее вручную." -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Всегда основной дисплей" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "" "Автоматически устанавливать очки в качестве основного дисплея при " "подключении." -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Изогнутый дисплей" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Изогнутый дисплей" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Прогнозирование движения" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -468,15 +488,15 @@ msgstr "" "виртуальный дисплей не отстает от движений вашей головы, не опережает или не " "очень трясётся." -#: src/gtk/connected-device.ui:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "По умолчанию" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" diff --git a/ui/po/sv.po b/ui/po/sv.po index 6e523ec..69a9d3d 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -29,36 +29,36 @@ msgstr "" 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:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Avstånd till skärmen" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Böjd skärm" @@ -382,15 +382,15 @@ msgstr "Växla följ läge kort" msgid "Quickly toggle follow mode." msgstr "Växla snabbt följ läge." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Avancerade inställningar" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Hitta optimal konfiguration till skärmen" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -398,65 +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:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Använd högsta uppdateringsfrekvens" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 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:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Alltid primär skärm" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 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:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Böjd skärm" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Böjd skärm" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Rörs förväntning" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -465,15 +485,15 @@ 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:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "Standard" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "Textskalning" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 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" diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index 456140c..738d61a 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -28,36 +28,36 @@ msgstr "Переключає окуляри в режим «бок о бок» msgid "This feature is not currently supported for your device." msgstr "Ця функція наразі не підтримується на вашому пристрої." -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "Відстань дисплея" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "Відстань дисплея" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "Відстань дисплея" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "Викривлений дисплей" @@ -381,15 +381,15 @@ msgstr "Сполучення клавіш для перемикання режи msgid "Quickly toggle follow mode." msgstr "Швидко перемикати режим слідування." -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "Додаткові налаштування" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "Знайти оптимальну конфігурацію дисплея" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." @@ -397,65 +397,85 @@ msgstr "" "Автоматично змінює конфігурацію дисплея окулярів для максимальної роздільної " "здатності і найкращого масштабування при підключенні." -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "Використовувати найвищу частоту оновлення" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "" "Частота оновлення може вплинути на продуктивність, вимкніть це, щоб " "встановити її вручну." -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "Завжди основний дисплей" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "Автоматично встановлює окуляри як основний дисплей при підключенні." -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "Викривлений дисплей" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "Викривлений дисплей" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "Прогнозування руху" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -466,15 +486,15 @@ msgstr "" "віртуальний дисплей відстає від рухів вашої голови, випереджає або дуже " "тремтить." -#: src/gtk/connected-device.ui:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "За замовчуванням" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "" diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index f285ebe..6948f3a 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 11:00-0800\n" +"POT-Creation-Date: 2025-03-07 15:10-0800\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -26,36 +26,36 @@ msgstr "切换到并排模式,并将显示宽度翻倍。" msgid "This feature is not currently supported for your device." msgstr "您的设备目前不支援此功能。" -#: src/connecteddevice.py:131 +#: src/connecteddevice.py:134 #, fuzzy msgid "Set Focused Display Distance" msgstr "显示距离" -#: src/connecteddevice.py:132 +#: src/connecteddevice.py:135 msgid "Use a closer value so the display zooms in when you look at it." msgstr "" -#: src/connecteddevice.py:139 +#: src/connecteddevice.py:142 #, fuzzy msgid "Set All Displays Distance" msgstr "显示距离" -#: src/connecteddevice.py:140 +#: src/connecteddevice.py:143 msgid "Use a farther value so the displays are zoomed out when you look away." msgstr "" -#: src/connecteddevice.py:238 +#: src/connecteddevice.py:248 msgid "" "Unable to add virtual displays on this machine. xdg-desktop-portal is " "required." msgstr "" -#: src/connecteddevice.py:272 +#: src/connecteddevice.py:282 #, fuzzy msgid "Focused display" msgstr "显示距离" -#: src/connecteddevice.py:278 +#: src/connecteddevice.py:288 #, fuzzy msgid "All displays" msgstr "曲面显示" @@ -377,77 +377,97 @@ msgstr "切换跟随模式快捷键" msgid "Quickly toggle follow mode." msgstr "快速切换跟随模式。" -#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:497 +#: src/gtk/connected-device.ui:491 src/gtk/connected-device.ui:501 msgid "Advanced Settings" msgstr "高级设定" -#: src/gtk/connected-device.ui:500 +#: src/gtk/connected-device.ui:505 msgid "Find optimal display config" msgstr "寻找最佳显示设定" -#: src/gtk/connected-device.ui:501 +#: src/gtk/connected-device.ui:506 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。" -#: src/gtk/connected-device.ui:511 +#: src/gtk/connected-device.ui:516 msgid "Use highest refresh rate" msgstr "使用最高刷新率" -#: src/gtk/connected-device.ui:512 +#: src/gtk/connected-device.ui:517 msgid "Refresh rate may affect performance, disable this to set it manually." msgstr "刷新率可能会影响性能,禁用此功能即可手动设置。" -#: src/gtk/connected-device.ui:522 +#: src/gtk/connected-device.ui:527 msgid "Center on glasses' display" msgstr "" -#: src/gtk/connected-device.ui:523 +#: src/gtk/connected-device.ui:528 msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -#: src/gtk/connected-device.ui:533 +#: src/gtk/connected-device.ui:538 msgid "Always primary display" msgstr "每次设置为主要显示" -#: src/gtk/connected-device.ui:534 +#: src/gtk/connected-device.ui:539 msgid "Automatically set the glasses as the primary display when plugged in." msgstr "连接时,自动将眼镜设置为主要显示。" -#: src/gtk/connected-device.ui:544 +#: src/gtk/connected-device.ui:549 #, fuzzy msgid "Remove virtual displays on disable" msgstr "曲面显示" -#: src/gtk/connected-device.ui:545 +#: src/gtk/connected-device.ui:550 msgid "Automatically remove virtual displays when the XR effect is disabled." msgstr "" -#: src/gtk/connected-device.ui:555 +#: src/gtk/connected-device.ui:560 msgid "Enable multi-tap detection" msgstr "" -#: src/gtk/connected-device.ui:556 +#: src/gtk/connected-device.ui:561 msgid "Enables double-tap to recenter and triple-tap to recalibrate." msgstr "" -#: src/gtk/connected-device.ui:566 +#: src/gtk/connected-device.ui:571 #, fuzzy msgid "All displays follow mode" msgstr "曲面显示" -#: src/gtk/connected-device.ui:567 +#: src/gtk/connected-device.ui:572 msgid "Follow mode moves all displays, not just the focused one." msgstr "" -#: src/gtk/connected-device.ui:577 +#: src/gtk/connected-device.ui:588 +msgid "Follow mode movement tracking" +msgstr "" + +#: src/gtk/connected-device.ui:589 +msgid "Choose which movements should be tracked in follow mode." +msgstr "" + +#: src/gtk/connected-device.ui:604 +msgid "Horizontal" +msgstr "" + +#: src/gtk/connected-device.ui:624 +msgid "Vertical" +msgstr "" + +#: src/gtk/connected-device.ui:644 +msgid "Tilt/roll" +msgstr "" + +#: src/gtk/connected-device.ui:662 msgid "Movement look-ahead" msgstr "移动预测" -#: src/gtk/connected-device.ui:578 +#: src/gtk/connected-device.ui:663 msgid "" "Counteracts input lag by predicting head-tracking position ahead of render " "time. Stick with default unless virtual display drags behind your head " @@ -456,15 +476,15 @@ msgstr "" "透过预测头部追踪位置,提前于渲染时间进行预测来抵消输入延迟。除非虚拟显示滞后" "于头部,提前跳动或非常抖动,请尽量使用默认设置。" -#: src/gtk/connected-device.ui:596 +#: src/gtk/connected-device.ui:681 msgid "Default" msgstr "默认" -#: src/gtk/connected-device.ui:608 +#: src/gtk/connected-device.ui:693 msgid "Text Scaling" msgstr "字体大小比例" -#: src/gtk/connected-device.ui:609 +#: src/gtk/connected-device.ui:694 msgid "Scaling text below 1.0 will simulate a higher resolution display" msgstr "字体缩放小于1.0,将模拟解析度更高的显示效果" diff --git a/ui/src/configmanager.py b/ui/src/configmanager.py index 983d4bc..0324d35 100644 --- a/ui/src/configmanager.py +++ b/ui/src/configmanager.py @@ -7,6 +7,9 @@ class ConfigManager(GObject.GObject): __gproperties__ = { 'breezy-desktop-enabled': (bool, 'Breezy Desktop Enabled', 'Whether Breezy Desktop is enabled', False, GObject.ParamFlags.READWRITE), 'multi-tap-enabled': (bool, 'Multi-Tap Enabled', 'Whether Multi-Tap is enabled', False, GObject.ParamFlags.READWRITE), + 'follow-track-roll': (bool, 'Follow Track Roll', 'Whether to follow on the roll axis', False, GObject.ParamFlags.READWRITE), + 'follow-track-pitch': (bool, 'Follow Track Pitch', 'Whether to follow on the pitch axis', True, GObject.ParamFlags.READWRITE), + 'follow-track-yaw': (bool, 'Follow Track Yaw', 'Whether to follow on the yaw axis', True, GObject.ParamFlags.READWRITE) } _instance = None @@ -29,6 +32,9 @@ class ConfigManager(GObject.GObject): self.ipc = XRDriverIPC.get_instance() self.breezy_desktop_enabled = None self.multi_tap_enabled = None + self.follow_track_roll = None + self.follow_track_pitch = None + self.follow_track_yaw = None self._running = True self._refresh_config() @@ -43,6 +49,15 @@ class ConfigManager(GObject.GObject): if self.config['multi_tap_enabled'] != self.multi_tap_enabled: self.set_property('multi-tap-enabled', self.config['multi_tap_enabled']) + if self.config['smooth_follow_track_roll'] != self.follow_track_roll: + self.set_property('follow-track-roll', self.config['smooth_follow_track_roll']) + + if self.config['smooth_follow_track_pitch'] != self.follow_track_pitch: + self.set_property('follow-track-pitch', self.config['smooth_follow_track_pitch']) + + if self.config['smooth_follow_track_yaw'] != self.follow_track_yaw: + self.set_property('follow-track-yaw', self.config['smooth_follow_track_yaw']) + if self._running: threading.Timer(1.0, self._refresh_config).start() def _is_breezy_desktop_enabled(self): @@ -65,14 +80,44 @@ class ConfigManager(GObject.GObject): self.ipc.write_config(self.config) self.multi_tap_enabled = value + def _set_follow_track_roll(self, value): + if self.follow_track_roll != value: + self.config['smooth_follow_track_roll'] = value + self.ipc.write_config(self.config) + self.follow_track_roll = value + + def _set_follow_track_pitch(self, value): + if self.follow_track_pitch != value: + self.config['smooth_follow_track_pitch'] = value + self.ipc.write_config(self.config) + self.follow_track_pitch = value + + def _set_follow_track_yaw(self, value): + if self.follow_track_yaw != value: + self.config['smooth_follow_track_yaw'] = value + self.ipc.write_config(self.config) + self.follow_track_yaw = value + def do_set_property(self, prop, value): if prop.name == 'breezy-desktop-enabled': self._set_breezy_desktop_enabled(value) elif prop.name == 'multi-tap-enabled': self._set_multi_tap_enabled(value) + elif prop.name == 'follow-track-roll': + self._set_follow_track_roll(value) + elif prop.name == 'follow-track-pitch': + self._set_follow_track_pitch(value) + elif prop.name == 'follow-track-yaw': + self._set_follow_track_yaw(value) def do_get_property(self, prop): if prop.name == 'breezy-desktop-enabled': return self.breezy_desktop_enabled elif prop.name == 'multi-tap-enabled': - return self.multi_tap_enabled \ No newline at end of file + return self.multi_tap_enabled + elif prop.name == 'follow-track-roll': + return self.follow_track_roll + elif prop.name == 'follow-track-pitch': + return self.follow_track_pitch + elif prop.name == 'follow-track-yaw': + return self.follow_track_yaw \ No newline at end of file diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 52cce72..396653e 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -59,6 +59,9 @@ class ConnectedDevice(Gtk.Box): text_scaling_adjustment = Gtk.Template.Child() enable_multi_tap_switch = Gtk.Template.Child() legacy_follow_mode_switch = Gtk.Template.Child() + follow_track_yaw_switch = Gtk.Template.Child() + follow_track_pitch_switch = Gtk.Template.Child() + follow_track_roll_switch = Gtk.Template.Child() monitor_wrapping_scheme_menu = Gtk.Template.Child() monitor_spacing_scale = Gtk.Template.Child() monitor_spacing_adjustment = Gtk.Template.Child() @@ -158,8 +161,10 @@ class ConnectedDevice(Gtk.Box): self.config_manager = ConfigManager.get_instance() self.config_manager.connect('notify::breezy-desktop-enabled', self._handle_enabled_config) - self.config_manager.bind_property('multi-tap-enabled', self.enable_multi_tap_switch, 'active', Gio.SettingsBindFlags.DEFAULT) - self.enable_multi_tap_switch.connect('notify::active', lambda widget, param: self.config_manager.set_property('multi-tap-enabled', widget.get_active())) + self._bind_switch_to_config(self.enable_multi_tap_switch, 'multi-tap-enabled') + self._bind_switch_to_config(self.follow_track_roll_switch, 'follow-track-roll') + self._bind_switch_to_config(self.follow_track_pitch_switch, 'follow-track-pitch') + self._bind_switch_to_config(self.follow_track_yaw_switch, 'follow-track-yaw') self.use_optimal_monitor_config_switch.connect('notify::active', self._refresh_use_optimal_monitor_config) @@ -182,6 +187,11 @@ class ConnectedDevice(Gtk.Box): if appinfo.get_id() == 'gnome-display-panel.desktop': self._settings_displays_app_info = appinfo break + + 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)) + switch.connect('notify::active', lambda widget, param: self.config_manager.set_property(config_key, widget.get_active())) def _handle_zoom_on_focus_switch_changed(self, widget, param): display_distance = self.settings.get_double('display-distance') diff --git a/ui/src/gtk/connected-device.ui b/ui/src/gtk/connected-device.ui index 084c810..ae6c347 100644 --- a/ui/src/gtk/connected-device.ui +++ b/ui/src/gtk/connected-device.ui @@ -492,9 +492,14 @@ applications-system-symbolic + 2 + 20 + 20 + 20 Advanced Settings + 450 Find optimal display config @@ -572,6 +577,86 @@ + + + + + + 700 + + + Follow mode movement tracking + Choose which movements should be tracked in follow mode. + + + 30 + 20 + 20 + start + + + vertical + 10 + center + 80 + + + Horizontal + 3 + + + + + 3 + center + + + + + + + vertical + 10 + center + 80 + + + Vertical + 3 + + + + + 3 + center + + + + + + + vertical + 10 + center + 80 + + + Tilt/roll + 3 + + + + + 3 + center + + + + + + + + Movement look-ahead