From 262a6fa0e5f36560677498f10fd1c1504962d615 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 29 Apr 2025 12:28:12 -0700 Subject: [PATCH 1/5] Pull in latest backport commits --- gnome/backports/gnome-44-max | 2 +- gnome/backports/gnome-45 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnome/backports/gnome-44-max b/gnome/backports/gnome-44-max index 3ca03b3..79a5d63 160000 --- a/gnome/backports/gnome-44-max +++ b/gnome/backports/gnome-44-max @@ -1 +1 @@ -Subproject commit 3ca03b3747a93b63a7604a83ad34bf9834344854 +Subproject commit 79a5d639b2ac6c7013a6c3364ef0c2ff40d881bd diff --git a/gnome/backports/gnome-45 b/gnome/backports/gnome-45 index 91bcd82..3aebbbb 160000 --- a/gnome/backports/gnome-45 +++ b/gnome/backports/gnome-45 @@ -1 +1 @@ -Subproject commit 91bcd82fc44a3bc44ec8e490b152fd77980c8e7b +Subproject commit 3aebbbbf2cea422244d3687877bb99b17a8d8133 From 87122b016007044847b355387b506fd16b653403 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 1 May 2025 14:10:09 -0700 Subject: [PATCH 2/5] Pull in the latest driver and shader changes, v2.1.3 --- VERSION | 2 +- modules/XRLinuxDriver | 2 +- modules/sombrero | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 8f9174b..abae0d9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.2 \ No newline at end of file +2.1.3 \ No newline at end of file diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 0d8e20d..36aed42 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 0d8e20d62bdfbf1edcce4927761b25aa234fcd75 +Subproject commit 36aed4237324d33f8dc8db749aa981d462f57b27 diff --git a/modules/sombrero b/modules/sombrero index 76cb6bb..712497b 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 76cb6bb65e90dfe2abf5bd2db8e280ae6e03d5c6 +Subproject commit 712497b4795dbcbaa4c6fdb60a82144cfde26086 From 39ba5f1358536efe8406523f6d16baa449160a80 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Fri, 2 May 2025 13:33:19 -0700 Subject: [PATCH 3/5] Pull in driver with RayNeo device detection fix, v2.1.4 --- VERSION | 2 +- modules/XRLinuxDriver | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index abae0d9..c346e7a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.3 \ No newline at end of file +2.1.4 \ No newline at end of file diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 36aed42..87b72e5 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 36aed4237324d33f8dc8db749aa981d462f57b27 +Subproject commit 87b72e56461645c8c78f945d9f521f0588ab8497 From 62eb3aa1d05eab1f08fb393755ec779c38688a36 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Fri, 2 May 2025 15:12:22 -0700 Subject: [PATCH 4/5] Pull in driver with RayNeo cleanup fix, v2.1.5 --- VERSION | 2 +- modules/XRLinuxDriver | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index c346e7a..c5864dc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.4 \ No newline at end of file +2.1.5 \ No newline at end of file diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 87b72e5..3891635 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 87b72e56461645c8c78f945d9f521f0588ab8497 +Subproject commit 3891635b1ef2e55ee61f6cca915eac9db7598d63 From 53afe9e71dba583277ca487a25b77a01164d6567 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 7 May 2025 12:43:42 -0700 Subject: [PATCH 5/5] Add better handling of pipewire GStreamer dependency missing case, in UI and setup, pull in the latest driver version --- VERSION | 2 +- gnome/bin/setup | 15 ++++++ modules/XRLinuxDriver | 2 +- ui/po/breezydesktop.pot | 6 +-- ui/po/de.po | 53 ++++++++++++------- ui/po/es.po | 13 +++-- ui/po/fr.po | 54 ++++++++++++++------ ui/po/it.po | 53 ++++++++++++++----- ui/po/ja.po | 11 ++-- ui/po/mo/de/LC_MESSAGES/breezydesktop.mo | Bin 15424 -> 15456 bytes ui/po/mo/es/LC_MESSAGES/breezydesktop.mo | Bin 15202 -> 15234 bytes ui/po/mo/fr/LC_MESSAGES/breezydesktop.mo | Bin 15638 -> 15670 bytes ui/po/mo/it/LC_MESSAGES/breezydesktop.mo | Bin 15608 -> 15640 bytes ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo | Bin 16208 -> 16240 bytes ui/po/mo/pt_BR/LC_MESSAGES/breezydesktop.mo | Bin 14877 -> 14909 bytes ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo | Bin 13491 -> 13523 bytes ui/po/pl.po | 6 +-- ui/po/pt_BR.po | 13 +++-- ui/po/ru.po | 6 +-- ui/po/sv.po | 6 +-- ui/po/uk_UA.po | 6 +-- ui/po/zh_CN.po | 11 ++-- ui/src/connecteddevice.py | 2 +- ui/src/virtualdisplay.in | 8 ++- ui/src/virtualdisplay.py | 26 +++++++--- 25 files changed, 205 insertions(+), 88 deletions(-) diff --git a/VERSION b/VERSION index c5864dc..b6da512 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.5 \ No newline at end of file +2.1.6 \ No newline at end of file diff --git a/gnome/bin/setup b/gnome/bin/setup index 549db4b..db438da 100755 --- a/gnome/bin/setup +++ b/gnome/bin/setup @@ -37,6 +37,21 @@ if ! { python3 -c "$PYTHON_GI_CHECK" 2>/dev/null || python -c "$PYTHON_GI_CHECK" fi fi +if ! gst-inspect-1.0 pipewiresrc &>/dev/null; then + if [ -z "$BREEZY_IGNORE_GST_ERRORS" ]; then + printf "\033[1;31mERROR:\033[0m Pipewire GStreamer plugin not found\n" + printf "Please install the required Pipewire GStreamer plugin:\n" + printf "\tFor Debian/Ubuntu: sudo apt install gstreamer1.0-pipewire\n" + printf "\tFor Fedora: sudo dnf install pipewire-gstreamer\n" + printf "\tFor Arch Linux: sudo pacman -S gst-plugin-pipewire\n" + printf "\nIf you continue to have issues, rerun the setup with BREEZY_IGNORE_GST_ERRORS=1 to skip this check.\n\n" + exit 1 + else + printf "\033[1;33mWARNING:\033[0m Ignoring GStreamer dependency failures. " + printf "Be aware that virtual display functionality may be disabled.\n\n" + fi +fi + if [ "$XDG_SESSION_TYPE" != "wayland" ]; then printf "\033[1;33mWARNING:\033[0m Windowing system is %s\n" "$XDG_SESSION_TYPE" printf "\033[1;33mWARNING:\033[0m Virtual display functionality requires GNOME on Wayland\n" diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 3891635..caca100 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 3891635b1ef2e55ee61f6cca915eac9db7598d63 +Subproject commit caca100752be8d5dec5e9d742bf5d2ae3e56b0fb diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index e1e7c9a..f956831 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:43-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -45,8 +45,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" #: src/connecteddevice.py:304 diff --git a/ui/po/de.po b/ui/po/de.po index 3aceedc..89b36af 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -35,8 +35,9 @@ msgstr "Setze fokussierte Bildschirmentfernung" #: src/connecteddevice.py:146 msgid "Use a closer value so the display zooms in when you look at it." -msgstr "Nutze einen Näher Wert um den Bildschirm zu vergößern, " -"wenn der Bildschirm angesehen wird." +msgstr "" +"Nutze einen Näher Wert um den Bildschirm zu vergößern, wenn der Bildschirm " +"angesehen wird." #: src/connecteddevice.py:153 msgid "Set All Displays Distance" @@ -44,12 +45,14 @@ msgstr "Setze alle Bildschirmentfernungen" #: src/connecteddevice.py:154 msgid "Use a farther value so the displays are zoomed out when you look away." -msgstr "Nutze einen Entfernter Wert um den Bildschirm zu verkleinern, wenn diese nicht angesehen werden." +msgstr "" +"Nutze einen Entfernter Wert um den Bildschirm zu verkleinern, wenn diese " +"nicht angesehen werden." #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" "Virtuelle Bildschirme können nicht hinzugefügt werden." "Wayland und xdg-desktop-portal werden benötigt" @@ -222,8 +225,8 @@ msgid "" " " msgstr "" "Bewege automatisch einen Bildschirm näher, wenn Sie ihn ansehen.\n" -"Setzen Sie Ihren bevorzugten fokussierten und nicht fokussierten Abstand " -"im Anpassungen Bereich.\n" +"Setzen Sie Ihren bevorzugten fokussierten und nicht fokussierten Abstand im " +"Anpassungen Bereich.\n" " " #: src/gtk/connected-device.ui:70 @@ -250,7 +253,8 @@ msgstr "Physische Bildschirme deaktivieren" msgid "" "Automatically disable all physical displays when the XR effect is enabled." msgstr "" -"Deaktiviere automatisch alle physikalischen Bildschirme, wenn der XR Effekt aktiviert ist." +"Deaktiviere automatisch alle physikalischen Bildschirme, wenn der XR Effekt " +"aktiviert ist." #: src/gtk/connected-device.ui:104 msgid "Virtual displays" @@ -310,8 +314,7 @@ msgstr "Bildschirmgröße" #: src/gtk/connected-device.ui:259 msgid "" "When there are multiple displays, choose how they should angle towards you." -msgstr "" -"Stelle ein, wie mehrere Bildschirme angewinkelt werden sollen." +msgstr "Stelle ein, wie mehrere Bildschirme angewinkelt werden sollen." #: src/gtk/connected-device.ui:273 msgid "Automatic" @@ -335,7 +338,8 @@ msgstr "Bildschirmgröße" #: src/gtk/connected-device.ui:287 msgid "Put empty space between displays, when there are multiple." -msgstr "Setze einen leeren Bereich zwischen Bildschirme, wenn mehrere vorhanden sind." +msgstr "" +"Setze einen leeren Bereich zwischen Bildschirme, wenn mehrere vorhanden sind." #: src/gtk/connected-device.ui:317 msgid "Viewport horizontal offset" @@ -363,7 +367,8 @@ msgstr "Vertikaler Anzeigebereich Ausgleich" #: src/gtk/connected-device.ui:348 msgid "Move the viewport up or down from its default position." -msgstr "Bewege den Anzeigebreich nach oberhalb oder unterhalb der Anfangsposition." +msgstr "" +"Bewege den Anzeigebreich nach oberhalb oder unterhalb der Anfangsposition." #: src/gtk/connected-device.ui:365 msgid "down" @@ -457,8 +462,8 @@ msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -"Zentriere den Anzeigebereich auf den Brillenbildschirm, selbst wenn der Bildschirm " -"nicht mittig ist." +"Zentriere den Anzeigebereich auf den Brillenbildschirm, selbst wenn der " +"Bildschirm nicht mittig ist." #: src/gtk/connected-device.ui:592 msgid "Always primary display" @@ -476,7 +481,9 @@ msgstr "Gebogener Bildschirm" #: src/gtk/connected-device.ui:604 msgid "Automatically remove virtual displays when the XR effect is disabled." -msgstr "Entferne virtuelle Bildschirme automatisch, wenn der XR Effekt deaktiviert ist." +msgstr "" +"Entferne virtuelle Bildschirme automatisch, wenn der XR Effekt deaktiviert " +"ist." #: src/gtk/connected-device.ui:614 msgid "Enable multi-tap detection" @@ -484,8 +491,9 @@ msgstr "Aktiviere Multi Tap Erkennung" #: src/gtk/connected-device.ui:615 msgid "Enables double-tap to recenter and triple-tap to recalibrate." -msgstr "Aktviert die Doppelberührung zum rezentrieren und Dreifach-" -"berührung zum Kalibrieren." +msgstr "" +"Aktviert die Doppelberührung zum rezentrieren und Dreifach-berührung zum " +"Kalibrieren." #: src/gtk/connected-device.ui:625 msgid "All displays follow mode" @@ -727,6 +735,13 @@ msgstr "Zurrücksetzung erwzingen" msgid "About BreezyDesktop" msgstr "Über BreezyDesktop" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "" +#~ "Virtuelle Bildschirme können nicht hinzugefügt werden.Wayland und xdg-" +#~ "desktop-portal werden benötigt" + #~ msgid "Fast SBS mode switching" #~ msgstr "Schnelles SBS-Modus-Wechseln" @@ -778,4 +793,4 @@ msgstr "Über BreezyDesktop" #~ msgstr "Im Breitbildmodus starten" #~ msgid "Widescreen mode is not supported for all glasses." -#~ msgstr "Breitbildmodus wird nicht für alle Gläsern unterstützt" \ No newline at end of file +#~ msgstr "Breitbildmodus wird nicht für alle Gläsern unterstützt" diff --git a/ui/po/es.po b/ui/po/es.po index 2b6ec5b..f3c91a0 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -49,8 +49,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" "No se pueden agregar pantallas virtuales en esta máquina. Se requiere " "Wayland y xdg-desktop-portal." @@ -728,6 +728,13 @@ msgstr "Reinicio forzoso" msgid "About BreezyDesktop" msgstr "Acerca de BreezyDesktop" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "" +#~ "No se pueden agregar pantallas virtuales en esta máquina. Se requiere " +#~ "Wayland y xdg-desktop-portal." + #~ msgid "Fast SBS mode switching" #~ msgstr "Cambio rápido de modo SBS" diff --git a/ui/po/fr.po b/ui/po/fr.po index 4048457..94bcb8b 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -37,7 +37,8 @@ msgstr "Définir la distance de l'écran cible" #: src/connecteddevice.py:146 msgid "Use a closer value so the display zooms in when you look at it." -msgstr "Utiliser une valeur plus proche pour que l'écran zoom lorsqu'on le regarde." +msgstr "" +"Utiliser une valeur plus proche pour que l'écran zoom lorsqu'on le regarde." #: src/connecteddevice.py:153 msgid "Set All Displays Distance" @@ -45,13 +46,14 @@ msgstr "Définir la distance d'affichage de tous les écrans" #: src/connecteddevice.py:154 msgid "Use a farther value so the displays are zoomed out when you look away." -msgstr "Utiliser une valeur plus éloignée afin que les écrans dézooment " -"lorsqu'on ne les regarde plus." +msgstr "" +"Utiliser une valeur plus éloignée afin que les écrans dézooment lorsqu'on ne " +"les regarde plus." #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "Impossible d'ajouter des écrans virtuels sur cet appareil. " "Wayland et xdg-desktop-portal sont nécessaires." @@ -222,8 +224,8 @@ msgid "" "section.\n" " " msgstr "" -"Fait automatiquement avancer l'écran lorsqu'on le regarde. " -"Réglez votre niveau de zoom et de dézoom dans la section Ajustements.\n" +"Fait automatiquement avancer l'écran lorsqu'on le regarde. Réglez votre " +"niveau de zoom et de dézoom dans la section Ajustements.\n" " " #: src/gtk/connected-device.ui:70 @@ -249,8 +251,9 @@ msgstr "Désactiver les écrans physiques" #: src/gtk/connected-device.ui:94 src/gtk/no-device.ui:35 msgid "" "Automatically disable all physical displays when the XR effect is enabled." -msgstr "Désactive automatiquement tous les écrans physiques lorsque " -"le mode XR est activé." +msgstr "" +"Désactive automatiquement tous les écrans physiques lorsque le mode XR est " +"activé." #: src/gtk/connected-device.ui:104 msgid "Virtual displays" @@ -311,7 +314,8 @@ msgstr "Orientation des écrans" msgid "" "When there are multiple displays, choose how they should angle towards you." msgstr "" -"Lorsqu'il y a plusieur sécrans, définissez comment ils devraient être orientés." +"Lorsqu'il y a plusieur sécrans, définissez comment ils devraient être " +"orientés." #: src/gtk/connected-device.ui:273 msgid "Automatic" @@ -343,7 +347,9 @@ msgstr "Décalage horizontal de l'affichage" #: src/gtk/connected-device.ui:318 msgid "Move the viewport to the left or right of its default position." -msgstr "Décale l'affichage des écrans vers la gauche ou la droite de la position par défaut." +msgstr "" +"Décale l'affichage des écrans vers la gauche ou la droite de la position par " +"défaut." #: src/gtk/connected-device.ui:335 msgid "left" @@ -363,7 +369,9 @@ msgstr "Décalage vertical de l'affichage" #: src/gtk/connected-device.ui:348 msgid "Move the viewport up or down from its default position." -msgstr "Décale l'affichage des écrans au dessus ou au dessous de la position par défaut." +msgstr "" +"Décale l'affichage des écrans au dessus ou au dessous de la position par " +"défaut." #: src/gtk/connected-device.ui:365 msgid "down" @@ -419,7 +427,8 @@ msgstr "Raccourci de téléportation de la souris" #: src/gtk/connected-device.ui:510 msgid "Bring the mouse cursor to the center of the focused display." -msgstr "Ramène automatiquement la souris au centre de l'écran que vous regardez." +msgstr "" +"Ramène automatiquement la souris au centre de l'écran que vous regardez." #: src/gtk/connected-device.ui:545 src/gtk/connected-device.ui:555 msgid "Advanced Settings" @@ -457,7 +466,8 @@ msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." msgstr "" -"Garde l'écran principal au centre de la vue, même si l'écran n'est pas au milieu." +"Garde l'écran principal au centre de la vue, même si l'écran n'est pas au " +"milieu." #: src/gtk/connected-device.ui:592 msgid "Always primary display" @@ -475,7 +485,9 @@ msgstr "Supprimer les écrans virtuels sur déconnection" #: src/gtk/connected-device.ui:604 msgid "Automatically remove virtual displays when the XR effect is disabled." -msgstr "Supprime automatiquement les écrans virtuels lorsque l'effet XR est désactivé." +msgstr "" +"Supprime automatiquement les écrans virtuels lorsque l'effet XR est " +"désactivé." #: src/gtk/connected-device.ui:614 msgid "Enable multi-tap detection" @@ -491,7 +503,8 @@ msgstr "Tous les écrans en mode suivi" #: src/gtk/connected-device.ui:626 msgid "Follow mode moves all displays, not just the focused one." -msgstr "Le mode suivi déplace tous les écrans, pas seulement celui que l'on regarde." +msgstr "" +"Le mode suivi déplace tous les écrans, pas seulement celui que l'on regarde." #: src/gtk/connected-device.ui:642 msgid "Follow mode movement tracking" @@ -724,6 +737,13 @@ msgstr "Réinitialiser" msgid "About BreezyDesktop" msgstr "À propos de BreezyDesktop" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "" +#~ "Impossible d'ajouter des écrans virtuels sur cet appareil. Wayland et xdg-" +#~ "desktop-portal sont nécessaires." + #~ msgid "Fast SBS mode switching" #~ msgstr "Bascule rapide vers le mode SBS" diff --git a/ui/po/it.po b/ui/po/it.po index bdf4336..a7131ab 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -35,7 +35,8 @@ msgstr "Distanza del display con focus" #: src/connecteddevice.py:146 msgid "Use a closer value so the display zooms in when you look at it." -msgstr "Usa un valore più vicino, così che il display si avvicini quando lo guardi." +msgstr "" +"Usa un valore più vicino, così che il display si avvicini quando lo guardi." #: src/connecteddevice.py:153 msgid "Set All Displays Distance" @@ -43,12 +44,14 @@ msgstr "Imposta la distanza di tutti i display" #: src/connecteddevice.py:154 msgid "Use a farther value so the displays are zoomed out when you look away." -msgstr "Usa un valore più distante così che i display si allontanino quando distogli lo sguardo." +msgstr "" +"Usa un valore più distante così che i display si allontanino quando distogli " +"lo sguardo." #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "Non è possibile aggiungere display virtuali su questo dispositivo. Sono richiesti Wayland e xdg-desktop-portal." #: src/connecteddevice.py:304 @@ -217,7 +220,9 @@ msgid "" "Set your preferred focused and unfocused distances in the Adjustments " "section.\n" " " -msgstr "Imposta la tua distanza preferita per i display con focus e non nella sezione Regolazioni." +msgstr "" +"Imposta la tua distanza preferita per i display con focus e non nella " +"sezione Regolazioni." #: src/gtk/connected-device.ui:70 msgid "Follow mode" @@ -242,7 +247,9 @@ msgstr "Disabilita display fisici" #: src/gtk/connected-device.ui:94 src/gtk/no-device.ui:35 msgid "" "Automatically disable all physical displays when the XR effect is enabled." -msgstr "Disabilita automaticamente tutti i display fisici quando l'effetto XR è abilitato." +msgstr "" +"Disabilita automaticamente tutti i display fisici quando l'effetto XR è " +"abilitato." #: src/gtk/connected-device.ui:104 msgid "Virtual displays" @@ -302,7 +309,9 @@ msgstr "Angolazione del display" #: src/gtk/connected-device.ui:259 msgid "" "When there are multiple displays, choose how they should angle towards you." -msgstr "Quando ci sonn display multipli, scegli come dovrebbero angolarsi davanti a te." +msgstr "" +"Quando ci sonn display multipli, scegli come dovrebbero angolarsi davanti a " +"te." #: src/gtk/connected-device.ui:273 msgid "Automatic" @@ -334,7 +343,9 @@ msgstr "Spostamento orizzontale della visuale" #: src/gtk/connected-device.ui:318 msgid "Move the viewport to the left or right of its default position." -msgstr "Muovi la visuale a sinistra o a destra rispetto alla sua posizione di default." +msgstr "" +"Muovi la visuale a sinistra o a destra rispetto alla sua posizione di " +"default." #: src/gtk/connected-device.ui:335 msgid "left" @@ -447,7 +458,9 @@ msgstr "Centra sui display degli occhiali" msgid "" "Center the viewport on the glasses' display, even if the display is not in " "the middle." -msgstr "Centra la visuale sul display degli occhiali, anche se il display non è nel mezzo." +msgstr "" +"Centra la visuale sul display degli occhiali, anche se il display non è nel " +"mezzo." #: src/gtk/connected-device.ui:592 msgid "Always primary display" @@ -465,7 +478,9 @@ msgstr "Rimuovi il display virtuale quando disabilitato" #: src/gtk/connected-device.ui:604 msgid "Automatically remove virtual displays when the XR effect is disabled." -msgstr "Rimuovi automaticamente i display virtuali quando l'effetto XR è disabilitato." +msgstr "" +"Rimuovi automaticamente i display virtuali quando l'effetto XR è " +"disabilitato." #: src/gtk/connected-device.ui:614 msgid "Enable multi-tap detection" @@ -473,7 +488,8 @@ msgstr "Abilita il riconoscimento del tocco multiplo" #: src/gtk/connected-device.ui:615 msgid "Enables double-tap to recenter and triple-tap to recalibrate." -msgstr "Abilita il doppio tocco per ricentrare e il triplo tocco per ricalibrare." +msgstr "" +"Abilita il doppio tocco per ricentrare e il triplo tocco per ricalibrare." #: src/gtk/connected-device.ui:625 msgid "All displays follow mode" @@ -481,7 +497,8 @@ msgstr "Modalità inseguimento su tutti i display" #: src/gtk/connected-device.ui:626 msgid "Follow mode moves all displays, not just the focused one." -msgstr "La modalità inseguimento muove tutti i display, non solo quello col focus." +msgstr "" +"La modalità inseguimento muove tutti i display, non solo quello col focus." #: src/gtk/connected-device.ui:642 msgid "Follow mode movement tracking" @@ -489,7 +506,8 @@ msgstr "Tracciamento del movimento nella modalità inseguimento" #: src/gtk/connected-device.ui:643 msgid "Choose which movements should be tracked in follow mode." -msgstr "Scegli quale movimento deve essere tracciato nella modalità inseguimento." +msgstr "" +"Scegli quale movimento deve essere tracciato nella modalità inseguimento." #: src/gtk/connected-device.ui:658 msgid "Horizontal" @@ -714,6 +732,13 @@ msgstr "Reset forzato" msgid "About BreezyDesktop" msgstr "Informazioni su BreezyDesktop" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "" +#~ "Non è possibile aggiungere display virtuali su questo dispositivo. Sono " +#~ "richiesti Wayland e xdg-desktop-portal." + #~ msgid "Fast SBS mode switching" #~ msgstr "Passaggio rapido alla modalità SBS" diff --git a/ui/po/ja.po b/ui/po/ja.po index 485f802..5667d44 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -49,8 +49,8 @@ msgstr "遠くに設定すると視線の外れたディスプレイがズーム #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "仮想ディスプレイが追加できません。" #: src/connecteddevice.py:304 @@ -719,6 +719,11 @@ msgstr "強制リセット" msgid "About BreezyDesktop" msgstr "Breezy Desktopについて" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "仮想ディスプレイが追加できません。" + #~ msgid "Fast SBS mode switching" #~ msgstr "高速SBSモード切り替え" diff --git a/ui/po/mo/de/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/de/LC_MESSAGES/breezydesktop.mo index fb1a2455d98a00d4c38778404a649c306a6d5418..0e78a3448cea4938b18293ab4dbf9678c7a7c31f 100644 GIT binary patch delta 1552 zcmXxkSxA&o6u|K_WiB&1sMD01%V%nuX^UDeY1v|eVhaXQv}ii0WI4H{Eih$-&_aSi z(L+%^ST9ku5R??OKtWL!1QIE<7*V!RF9p&6^xb^<-E+6^-gD1*r)#9^(%bQYJtA^C zQDh;;Cy6Y>^%#TaFdT1TC_XgtAjT07qt5$Bk}rN#VjQ zSezOV;qcNu&0cWUcmpHoe}d8Y3iU%@P&4t<#D9!I>Gp@6=wUnwb$%|oun-fl%vguI z|GoeXP2o}0h38Rka0@lX&y1hYA`Z#0H_X6w#CceQNAVzj#hbW$y2uL5&lFjMJ?O?^ z)C-ScHU``?M6zfUV+l54DfS~-k`Gvq;YNJoQiMIg~2oJ zr;0|MmulidWWRt^(g_v%EXEvsj4h}cD4AnhhGoQ6s2lfT1ooq@ zzlOTs9n=dwz@_*UE6|%mM)Rs zR^cl=g_(KwJ`ar_Q8VV6YhO4I1C4Z4(U^kQQQv3~JvfTx_#2aP$vhDXUVNC3hf$04 z9!BFZ>OS91zne)G@pRN8uRzWwb+{If=aYZE!8bZeQ3~u7E<%0t6~<1~d8aWFFJc4U z#toQWX#WZhU@Gx@)C0MwR4vLx)OG2Yh6Sj_y|IY=duepjp+#~6wHRNbR`F}pw{y(5 zbzwiT7xiriQ0Lz@kV=xBwKyyr7jt=7g zf0ZZ{%AYqk8%9Su#}u6$0cPWTIWzqI85 delta 1502 zcmXxkT};h!7{Kx8^mgi`R_B~vPD-bjBTgz5DM=(oEZIn2Mq%05YKv*z9O@!$Y=pUp zY*n)&e*fR=^LtJs4TBBcWB$H9BGNuj zWHrv>dMrp3iN$7|gKZd$oo3vFal`|t<33^pPGczsxJ3eSE4pw8hF~2AVI$V#DYy9k zbhMMAgrZ3S=JdV0x@B(g!PTY^RcoyH_L)^Vkqzq%cA{AJJ;W&VL z;bF``-xQ5SG~&}mR^di0!WK-y=Xek&(Te2^&c{lOAeEO;4}6Q&g0Tu93}Sy7rJ+yo4fTyJi;V@WSU_yYS6GIcfrKT79xNfwKwY>V!>|SQ z0GCnMyMcP4+qe$9aTCs8*kc#Ug8V5 z1^e+j+H#C_I!#}oW^4lW!p>#n|1gaV8guaqIDRdKuFjzPAB4?9gti%(!;3TEsd>_wgZ-y*5kGg%gJ6>=p%=pyXsa#wuHap^QeLV diff --git a/ui/po/mo/es/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/es/LC_MESSAGES/breezydesktop.mo index a216226e9fa1d8d547e0457a51159f823b21ec16..1071bc7a6422f71e657a2739173e851c46c6a178 100644 GIT binary patch delta 1528 zcmXZcZAg<*6u|Mb(y41@PFvcWPiC6sOv_xaRF+20veFWIm$p3%srd`d)O zXNj!FGgyj`FclNhMeLY?@whPhycDPLT!Ol8KTgKu=)nsZi-VYkLzsX+(28P+G((&r zVVTI_BrkO0eAG774OcJ*Z(^I3XAzl> zskkpA%mh0^b3|sc;L=?4#CLHj&wZ!|e203&FQ^Co8#Ok|3~Z0;Kn(VVm|J~Vr)f{BK@cz{)Tb5d4V~<15-%hHPp=9%QZjz5H*wi zsG0kW)A1K-FF0Lh&*Wn)@nxeqkP0M*Y)2cO#tqntTtWsg1OK1~OwXesF(3Jm>__c| zgQyt{Au;75mSQhz%5{_OccPW}lFdMyBk%tUYK3}$a$Jek*n{n;O<6{o;;{->;~vz& z9jGPjLM=@n>cIw3GxrA9<9l3%Sp{T<_~Kyuq8CT747V>eySo#)yo_QZW-l{K;B(XH= zJjOtiX#jOWJ4WFJwBcoRU^nXbK6GL~>Vd-;furccF-*jln1mm&!XmPW$yk;aVt^I3 z>qJtR(3)=C_&U1j529Z1G3pCnpuXU}=|{BE|7tpqdhk!w^|2d_`RS++$VP_5i+Zuc zA#)&rx}XD>V=rdnT_jpEf$Q-*>PuW3MV4X~9>GGa!<%>u=WzggHi_&CQGbzKt5mA=Jn{$5r?i zwH6joYbGJ*f8;`vVKgKUIYSE2fep9|n~_II7}M|_>VbbT4-;~Y6qKXZLKSKRYmu|0 z1*@lZMZ`V$+wXh`EQ8q-lPkc}l+h$GmBcFZJ9`fKoF8J40R+=-gP9@Nwf zq7}oaksHHGe1fGIy@kkdzEsj!jSZ*~=tQC__fU&v3Rxq+O|$YvYUtNvEDoWja2$2x zA9xA#wi>lFg4^l8Mh`lftdYpa&?y?bX=rFiQ7`ZYmtj*PTaA=>R(Mn~(Twu}Puvp#pW{0VF-rg^73{9rzUeIEj0( zV4G3hUC5(l3ggjMWTeQAG4wsC7sJvLD2#}L>Tlxe$%}C?wRj?=iYPg`A#?AYQFw)WcYxH z^w>p~VeV9sa`fXQ?878{i18SW#qV)4@ekB_HbZ1AI_RJE#zyQl zBrM4cre~QC@?(~uzOVvEVFkva3vE~(`@aUq5!azE*o-5v1;=A6rsG+hfY-3xA~JwZ zOmc)p3VEYwnn)%S{4>lQx1m;c5mT@qHQ{}<;yct0eMVjQd(1)9g8rbMQ2b2uxdU~+ z6L}=_F%7H3475@|>H>REkMaa^E7FNe`B#C$d zb>mlJ@gtl_97Qek7jh+GvCc7@YzoHnAP059e2l{_xEi;iCXB?M-$OmAuShN#LhY5D zx#kAuVlr_lX5(61kA6(S{$aWQ`wT|%M-;V5-k>f#h+4@IuEF?uB6rY*y3y46=DbW? zO6)*A0S{`PCbVKZ>c%=y^Pa^m*o9TBFTWXR^HnY|o30LZ$A{3sZk&PxScD&tS7dU& zc}10|m7c+c7{QhJ7LQ|g0bdwiMLnsfs7)w^oWI`5Oa?(*hC1;EQlz{kf5 zT{(%GU;x+RH`F{u#b#HpM?GQ>reXuq9&#A9*LqP4cvZ~(Z)K3owue7IbP>0q9(@$` zg-=M)GG>vvKpEPIH=`fjSc#9(gPA46#mPa`f^K30zQlC=h}vU+N;rRQDtjr(aXD6@ z3-zwLQ9qNbsCWJV^-iCmeqOII1NSX9|38Jg@pGsPMo@dJ2lYhyFbVIX=6SM;!8iub zV}E=>ZI&OXM>mKQFm8!?#CEh0|Nm7mIM#7Kq17TCS+*KWOUDu0B};RkGx2s>ajvni zc1K>Vw{d4^cOWmYI~a2Na}9TWtr4p88UbIxyVn==8f&UTL9ct4H)sU>O*?$`eShs4 F_J1Fw!BPMK delta 1536 zcmXxkSxA&o6u|K_PHHnQWn-F(I@)S#O^ZtwEn22IL{e5%h~`v+Ly8KS1S91Tl@vPB zi}g}SV2hCt`Wf+U0ScM6A7;V^wVR#msu+u3% ziJ}pjX8hnVO+=lLhBGh|!_kFy%s2asFow7Ub;Eraf>jucH8>YrFb>aSu|=c@Gw^%5 zPb7yKaSKF}7~o!HWL%4SvXdB%-KY!pVi-O~P3R@+#&1nWP!BYUdPC!8zjd)O-iCBZ z3_391M?+8QM%`dH>Q&YuuOcUqWTo4Thmc%l3?tC8M5F?v(1SI24PW79^k#^Zqird- zg8NYq^bmD@-)kC-kqOMk*i4Z^EW~Z-$NBgUcj0dg$I>j3jaZH!u?y#*mqjAbhnn~~ zGrooK#6i@9zDJ(KCtql2k^RM)XkTV*=s?{l54Ye3)CK+K@7Gap>NPS|#!zd;zT8M) z7Df>#VLE2uc64Jjc2CRu_tLP^5kxJLA=HgWP){<3TX7tppvz?>`U`d3B(6v63gZR} zQP-)!F!Z7()`U8~1@~YZ?qq-YKtqc!Yo$?iC8!x!qZ8XP8GA4npCMD^59$+Ttujt} z4D*ToScH%842G;0S%@8|H+2`a2tT1u-y}Roq!Ck52X-NclKZH|_6@5sn%$Wr4X6wB zU@5*qT_-NjsOn{?S6qm5upB85@u1dPC+YzP^LYPC8b9cm{`^RP2XQUx)dx{0yg&{s zKhc5dYmEN`x#%U{gl@cz2XPX~St<*R16@QL@dKQT&ryqdw1E59qMD*(7CP7RCg?(a zt9I1Sqyx1$Z=k;EJ=D)@5EF3kI-|c4HSy!98~Rae>jLVH1W=3pD(X6Yn`y+*7%)3t zp%%+9>eY>49Dc=koI(r!|0~l*;EL^(r8SUdud$pC`0dv$ZT%S$LymZ7^-+(r#d9Rv XbEv7VxxOL0p}w)X+S{L;nvn7jh_0~- diff --git a/ui/po/mo/it/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/it/LC_MESSAGES/breezydesktop.mo index d8c4ba5b161d35ba51325270118d348f52eac15c..9655c886215911c631179eed8a9672612ad1158b 100644 GIT binary patch delta 1568 zcmXxkZAepL6u|K_D|6FnX=X2ESIx?rnORw@DAS5swnT&yB9;yvS`A%PGnye;^rd7F zgRmDYA&W{Z{G@~+Q4E6uG3!$l^zuQ1pdh6FhkKK;-}CI==brPN=UjiEjfJ0lnh`lC zB9F60wxesQ$Zl-L1vr2y7{?@hXU#w2BIZ-5_c;uaIhcnYT#vJ`9T#FJ+VM6fVjs3* zzabHEGRV&{FO*oiQ5TfqO!VMvJctfFWc^-;bD1}y1`J~Yw&OhPz)Xzce0+p^Z6c#s zjA?lhkxi^9TPCuE8^X&)(shC51JneEF%9FWmH2=f@U!K2%O9wLf1y4vWrex1RjBKV zk&n3f(#jl*Fi2)_4mH!usDW-`0X{-u$s9S1K5Mt(aGXkyo+A^ zi&f}dC6bDFkW-h)69$D0USly%;|?rZEwTlJNVVi4YM?Pp#9WuiJ}kf#N*O|})CC@v zj8{>2cmuVEo?#Y_pjK!SIg*G>G0-ziTw|7W0rD)#Mmu_NFV-NNms_Y6c!5s*hI;>R z)Wq_O%$>PV6YyXu`q6{ksJ-wNox~SeYc5PhJ%UV}jjK_2Qi58E?Kq5Wn1pW1rIup_ z?nm8W7ixg}*7fJ8P5ct|xnp<$$8o2|&tGRQXvD?LBbGN%&u9>}nZ}XRk)Oy~Sz2Pg zu2ra&h#?>8<*OVgu@|$~69`996HVGcOsvF+o<%EzCcKPV+Mh^uBx|Etkv&+={0P$6 z(vO8z68AJoWlv4j12KG(n&X1yI+J?HLVJyQq z5<^lqi)7#~)KVVCAo{Qp-=KEA;TEACqz%)t54D$uP}jdeP3XOw`s-_DVi(x9bZES4x$Dg!EStoso1#H?4i@BJ#!wlH?E+beH8UAh@swp&$|A!!unwdwR_{3 zfNxQcW*oEdyEUJ&jbxes|I?1X6z#Tm*d&_csI#?4FFJZ`;emqWp^Q?Oai+eZu-@O= z6gn9!44!NW`I=pZ??k;3YV;eyK+u0W(Be1tREJvpzT^HDBiMYZA#h?~I{VL(e|*)x A_5c6? delta 1536 zcmX}sSx8i26u|K_+Nd+`dl}}qXKHF?E*0jISXLGmfl4WwSw?F5U`mZ)7FkGQWiLt? zCWUAuh}rTG1eFgG2=*csMO2hMMM7Zx5BJhA%CA&quFeV(8DArk zgI*CLg}576Vjp_pD0<){v;Q2!=+B})_YM8f)ge-hL1@KFT!po0!wz)AZfwS0hd9NX zhBeZ-5oj8QIv^5PU?RF>D%vsAyq=H#^ovjzEJGKp#2~E3U~I(@?7^KDkzq{3pHWUG zV?<<(NH`Ca#fb#y0Mjd|8yrMm97T=96VwG?n9i8KL0xzrb-wTDhW2=4oImoFFn%;L zc}^OhG%8ScT8FyOIZVJFWN$Ks(YSz7XjyASA_hz8r{Hny#GCj7%kTn|l;Atuk16X! zeDFMyb#Y#!kxXM8({KT|qi>?f7TkwKORl0WG=_R2mn4y0XhSbTc>pz1RZQlI4X7t< zN3Ee77>Yxv5t>F);*?n$n#0eiAzeb|l4Z1E;(Bt1>B!;5i5h_s^v2hy&%Z_8m^H;X znHTB?5-|gJU@@LWt%X9hpPM%3mzRw2ek2 zT9L0@4e@h&c79u99ZHu?o)=_jWXP0d9qje4v@4ecBf1o@4@7{A%b{WgrF-;27j zDb$V3qlVf>oI@}g`Ad*&vtNd~U=tEN=|=~?%pm>;X?*2^o;)Yh*l9UxZU-?JN0BvT z5d$$c%Lru_Hqy_Lpu*a*%Qiz;4u98bBRCg1Vu{*~DL8s}Ef8Lo10c!4T8| zwWudYAy|0D9Y{r_l1OW%O4)6&)#X|J|i>g%%Kv2;u%cs>mbbyS_IakSPPORhQE VT;I~rnB3TKx~1ymM0muX@P9n5t*!t7 diff --git a/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo index e3fd491205490b22a72fc8824c2fe31499d2ccf2..b755693e2edd7dbf6a397d284207bf49275cdfa4 100644 GIT binary patch delta 1528 zcmXZce`w5M9Ki9v=xk=lMLJ@8|opp~SbutryPZ zQ4yI~D6$5R;|9Ekd6-@#;>I~R87s_u8O~&0i@L5Ev#=fO@C;7G5zNOon2tYj5{f0V zAJQyI%2WnN210P%iCt;WT>FjtjQ253@C8+y1 z<0NcG%@aZ`>}1kB=s|7uRkPrh@hL7O{sos}(R`6&+=iO)FmA(R7{FI}3ah;$=kX!x z^BtukTktk!pmTu;KS}2BcRhpEScx6D75k92;x6O!pda4wZP|QK5phN z+NJ9%kk2f&7{?H50i&3Mzc7>gC+piH6y~c&Ok+~m#VG=X3oi=HL)3^?MPz!&H zdVs6S&Ns_gih7y-s0G&;TQP_8rP~CqV>$C-T!qfXcEYu&2Q;C!K7nBzKyB^(C3bv0 zHZwng{rDd1@G=)i3;m3m$LF{AHDK~Gfi?zuD>Ikb75ec1ffy&AF!M2_YvNgM7g~?n zi6f|Qcn)cTTtx1j3?lC$Kaihz`Hou9F4XgGuAu*o44x3s))ud{53WLO)ppdx9jM>( zENa4=xC!6kPOPL|8t=jae1Q5XM^W>BK;1uP%&)dPyRw@8Yl21sPP~H__F*=@L@nSG z4&!&!${($^5BO;Oif-aRQS&(YPFg@3>i!JWcpmCMJdc@|T4vxwZDl1+!&=P6rc^k+ z&f$<$@03o5Bc7^p|H<~3S@A%qJP_Q!C)O4zkF-T&Ev;o%%f5gW+a0tb;YjdMI2yDz YHpHUAmc7BK6=^*X3hzrb6pmZ}04$-o2LJ#7 delta 1496 zcmXZcTS!z<6oBD9-g3ko9rIGAj-{2=l%<(krd`MfqbN#H%QB~8x~Qb$K;j{Sf&}d< z*n>frhZ4#XO(95#s0b`5l>#YnKmsZ8Nl~ePu{Q|cUi+NA);jB)ajN-CbN9DE>!?yH zI7z7jJc)bp0mkER499?Er9#nx6362*OhdV^5F@b^i}5T5V;?TX*J#HP48dPmhZD)l zQj1xXyYvOGu@>b(BL?ART!dFK3|mq5J1`16Q3`fr0QTV$9KaYH!dUcUnN6uV?7)&0 zmQpR8m|CejZCa(Du-*6&9USaNhM@*g3jaiD$d6KZ(m0LFiDytI6th~N&%hAkLXBhtJFcf zi4i!C>(H8Jv4=$x(Ppf|BiN2yQj>TIZ_-9$5pf*O;&F6fDPxiZUfhLED2=~CDd0!Rw_ps* z)E{#kO2a9}edwgVYBU?y(M{Zo+i@Hvp({%l$VC}_1$wa)WwfDN^nNOyAokz@zQba) z_;94rPbiH>Y}My7(YnvZ0T%LA{zd69BF7X&A900=N0A|^d6Y)oxq1@iC_mR~W^1eqoKWd!Cc;bY7<}V4d@+pqD(1q<7g|AQ=_=v;!6{YhhJ9L2$ z#?L74d;}%WxY?gTIseD(&!GInn>TToix(;fBG8FWjK(yK#oQjRz1U{+_4J0d*len2 lXZT!HoU5|hoeIsY_aL{Rc2dv-1D| diff --git a/ui/po/mo/pt_BR/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/pt_BR/LC_MESSAGES/breezydesktop.mo index e49a76321c328f0663f2e62e63bb000cf0e4f7e4..1a0fe1c108a269f539c40604f8bd33f75acb2d3e 100644 GIT binary patch delta 1526 zcmXZbe`w5c7{Kx8{1~_0xt-X~4977u8{61+ls2WUP0Z3UW$Eh9?%HlUx6>BtlrF24 z6n~(Uk;2GyT9hC8XG-$xA3~%}r2I%EBHoYh=daiEeD3@C@qC`oolM?L4&R@c+9x7c z=ZMr|#axkk+=U*zh7Np;Q}LC_-(dmyH`MQ3^F(s77}w(}oQ!Flg#&2EvzUdKu?I)y zNlKgqC0^?Xzp)l|LOo8xO*jPun2l|y;}LXY40Xd4PQWzIze1BUcxEpS}O7r^D!IUrPg>M&L&@o4y;4Hu?;vK z+e{uuZQXvH%>I%l;62Cy>ViX9k0VGC@&|R{MP=3_T#Gv1ge)Kl)D8Mjdpv-2Q%>VL z97X*;XPI@AD^TY(VjlZTGeH&uJ5di1!#eE4Yj_>?^(U5FmF~q={0j~LftFe&%Wt2cG97DPwe^GnBq(X$^r53eComhvb(1~x*kDtwW zaU~CnJc<-8FN}63d&z6ig{`OuiePF!!5soU`50zAuo a>}}YbOoW56aKan!+}$4S%1oF$yYL_CW4JT` delta 1494 zcmXZbTS$~a6u|Mbt(vZyu6bGStC6K7gfnVEgq*4sAt!s@FRk-Lc^ zg=kL_DaC4Z;3W*fAq>PvWNhx z0-MwL!C{(=Iw1}Ha0Sjs7uv7@b-WzySc$q}1I|MaM&d4v!owJiUAV_0auegwk?Iqv zXGZQK5e`AlFE%rg)B>k445!f_|DtwcO*3+vX*lY}(Wo0|n&ZW&4VB>%tTyw5 zJ_7CR80wLBqITGCI)u8=1M~N{s0&SFFwWs7w6dxjx8ezWj5n}+DW`+8xE2f3MHb*G zu>~nFc539jZU{=KKV}6jeAk=d=Pd1Q`8RM zpsqWKb@&l$(Zw;@xYZL z`^YPhW@Xg$D>}(zSR@SdPzx$YUkX7VfmS|-5%>zL@UxlctTM(+kiBFxYJn$F7rcfJ zyp8%VdWJj)`GUMpiEuFo^HDp$fW>&r#ra1P{9r&UwyrkJ!Eo{h(-y2H@4#w&j~g(3 zjqym^Q46_>dQ}4$g7=UfWE{2dU#N{{aBRAsE06QnSKY~gR@#L@cpvp~jpJo}j#{XP zi`P3ngt|}%>i4Hnzwb83ub5s(E$9x~aTImGm#A-K(m@bK@WJ#aMw15&ZwV^1SPpdc w*}N7R4h^odSS}844>@a(aW?LCJKNn&S#D3Ox2?G)tEG8=TjTEG)TH=?f2g9UO8@`> diff --git a/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo index 97945008bd5f3f094339bd88df5335a1dffdc77c..255bb9e52e85dd74ced2fc72ac573dfedc3f1554 100644 GIT binary patch delta 1528 zcmXZcYiP}J9LMqRvF+H_*o_%7{|z&2w%L(2BIdr*iU)|=$&NY9cG?beKa$jtcp!-s zWlvA|l8INH8M3TjGSc5NcCScx6ir zr$L{EkgC`ktiwI1O#5&tzQ7=knPf(hY&_n;C8)$xC;Q{MsDukqHxHr4XFD6*_)28I zgvI@a?L-~854G?VD&zB5f^Se8{Y52`F~y&sgNi3%9#)~|)w{S6=Mk?%Rkp{CU&SEj z+kMyZ_SEA;vMpbGn zCKk}>rlA9$IX|Ng4pjLS7>ZiB4E2p{ME>kBKiPN-HUBAUpSR9m&MdN30uxXbYeXfm zznc2%Mknad&F`QNdWGu$iQ0H1pSUc=daOZ;VO`GisP+A*d0(8rF^@QfQ}wkMIH#lL zt*D{?$|%f_-t0K)Kig?kX|K8dySSV95o*JQAvVQT&b6rdVHa<5wxjm#bny<<`aLc_ z=DEgkR7NLp81~=@yqSzcypnk+5ZIQSoAoDmM!C1Gxuv2x(zz+#9;=A8cf`Z3 qS>{W77@m!UdXP z{>;pn)>&B%m*(GWmbr3K)1=Le8Dqx0KYq`4c3#i-d7j_%{XXB{Z#bTe_r6I@>@+if zzS&xA#!Yw~b8!OGF{Qw4GKNrbF6Ln|YTr7{!aA(Mz39gQoP`fDh;K1~BiM%H1(vW3 z2K5ndA?|EJJimkT*jMa18I?GMDkzM8oZ~D+b)p27cqQs0wWxFIP#tS@9!a=` zbEww#pbEH!I$!{2<4YHRMBVH!>cDC9&6Z&vZotjhi07~yzu^)*wZLpS_F*P|K;Et; zzBAxw;S#gCxEfbs1FF&-&SQR^#^ z{R!LZ4XhrOuo?B>QB=jJu@DDQiQb_SO`!IFadEKJEQdG?wXevq#a>|-o!3zX-bEcef_i0NPz46cJTshOq*j~l+=S`m zw^jx^-~{S`Zq&_gY6Ct(wd^_SReivvm|5->v<|gije0e^aSxtx^WRX3LwpF@w+hv% zZJ5}|AkIJu?>nEO5|5%f@EP@BdDQzxs*#`V=P!hpQTy+q&KYtJJ3pZc@Kd!q7DW{h zTT1_RqfRDt^Q)*t{iylZsDpnw1AOXL#M6)_*mmb>)bmNy{%6j&m_z&?^|k+SPNxd( zt5{C|RZ%5>dS@M&hsRJK;RQE;4UZGwMjbf6!Ymb6I@h4~SGu^yS&KS%i;H)lo^Nn* zYs3vYP!%1)Fm~Zgyp)UwYka=L$^I#4d_GH7rvJ{K8EHBYiyV&aDU0oD+t+@urL5)P Oq4uWz$+rB)8UFw@NTON* diff --git a/ui/po/pl.po b/ui/po/pl.po index 324037e..c831c8a 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-16 10:26-0700\n" "Last-Translator: \n" "Language-Team: Polish \n" @@ -46,8 +46,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" #: src/connecteddevice.py:304 diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 3d6382f..e3d2333 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese \n" "Language-Team: Russian \n" @@ -49,8 +49,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" #: src/connecteddevice.py:304 diff --git a/ui/po/sv.po b/ui/po/sv.po index bc7a21c..17d5248 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -49,8 +49,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" #: src/connecteddevice.py:304 diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index 3169130..8c0044f 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -48,8 +48,8 @@ msgstr "" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "" #: src/connecteddevice.py:304 diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 2dc7d4b..2bdfd1f 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-16 22:26-0700\n" +"POT-Creation-Date: 2025-05-07 12:40-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -44,8 +44,8 @@ msgstr "远的数值会将您所看向的屏幕缩小" #: src/connecteddevice.py:270 msgid "" -"Unable to add virtual displays on this machine. Wayland and xdg-desktop-" -"portal are required." +"Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, " +"and the pipewire GStreamer plugin are required." msgstr "无法增加模拟显示。需要安装xdg-desktop-portal和Wayland" #: src/connecteddevice.py:304 @@ -692,6 +692,11 @@ msgstr "强制重置" msgid "About BreezyDesktop" msgstr "关于 Breezy Desktop" +#~ msgid "" +#~ "Unable to add virtual displays on this machine. Wayland and xdg-desktop-" +#~ "portal are required." +#~ msgstr "无法增加模拟显示。需要安装xdg-desktop-portal和Wayland" + #~ msgid "" #~ "Unable to add virtual displays on this machine. xdg-desktop-portal is " #~ "required." diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index ff4026a..01f3f71 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -267,7 +267,7 @@ class ConnectedDevice(Gtk.Box): if not is_screencast_available() or not self.is_wayland: self.virtual_displays_row.set_subtitle( - _("Unable to add virtual displays on this machine. Wayland and xdg-desktop-portal are required.")) + _("Unable to add virtual displays on this machine. Wayland, xdg-desktop-portal, and the pipewire GStreamer plugin are required.")) self.add_virtual_display_button.set_sensitive(False) self.add_virtual_display_menu.set_sensitive(False) diff --git a/ui/src/virtualdisplay.in b/ui/src/virtualdisplay.in index 7630de6..a84e98b 100755 --- a/ui/src/virtualdisplay.in +++ b/ui/src/virtualdisplay.in @@ -77,8 +77,12 @@ def _on_display_closed(): def create_display(width, height, framerate): global virtual_display_instance - virtual_display_instance = VirtualDisplay(width, height, framerate, _on_display_closed) - virtual_display_instance.create() + try: + virtual_display_instance = VirtualDisplay(width, height, framerate, _on_display_closed) + virtual_display_instance.create() + except Exception as e: + logger.error(f"Error creating virtual display: {e}") + sys.exit(1) if __name__ == "__main__": from breezydesktop import virtualdisplay diff --git a/ui/src/virtualdisplay.py b/ui/src/virtualdisplay.py index 4ffd3f2..53985cd 100644 --- a/ui/src/virtualdisplay.py +++ b/ui/src/virtualdisplay.py @@ -81,20 +81,34 @@ class VirtualDisplay: self.terminate() def _on_pipewire_stream_added(self, node_id): - self.pipeline = Gst.parse_launch(gst_pipeline_format % (node_id, self.framerate, self.width, self.height)) - self.pipeline.set_state(Gst.State.PLAYING) - self.pipeline.get_bus().connect('message', self._on_message) - self.pipeline.set_state(Gst.State.PAUSED) + try: + self.pipeline = Gst.parse_launch(gst_pipeline_format % (node_id, self.framerate, self.width, self.height)) + self.pipeline.set_state(Gst.State.PLAYING) + self.pipeline.get_bus().connect('message', self._on_message) + self.pipeline.set_state(Gst.State.PAUSED) + except Exception as e: + logger.error("Failed to create pipeline: %s" % e) + self.terminate() def is_screencast_available(): try: bus = pydbus.SessionBus() - # Try to get the ScreenCast interface screen_cast = bus.get(screen_cast_iface, '/org/gnome/Mutter/ScreenCast') - return True except Exception as e: logger.warning(f"ScreenCast portal not available: {e}") return False + + try: + Gst.init(None) + element = Gst.ElementFactory.make("pipewiresrc", "test-pipewire") + if element is None: + logger.warning("pipewiresrc GStreamer element not available") + return False + except Exception as e: + logger.warning(f"Failed to check pipewiresrc element: {e}") + return False + + return True