From 8fedb80f0a2575551dea78fa51d9a575d8b84298 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Sun, 20 Oct 2024 14:41:27 -0700 Subject: [PATCH 01/25] Update gnome-44-max.patch --- gnome-44-max.patch | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnome-44-max.patch b/gnome-44-max.patch index 1dc9633..526ae87 100644 --- a/gnome-44-max.patch +++ b/gnome-44-max.patch @@ -61,7 +61,7 @@ index 52d1341..86d8a76 100644 this._overlay = overlay; this._refreshRate = refreshRate; diff --git a/gnome-44-max/src/extension.js b/gnome-44-max/src/extension.js -index 7074ceb..257c139 100644 +index c8b390d..22dbe2f 100644 --- a/gnome-44-max/src/extension.js +++ b/gnome-44-max/src/extension.js @@ -1,19 +1,21 @@ @@ -366,7 +366,7 @@ index cf7a3bb..cbf0a75 100644 }, class SystemBackground extends Meta.BackgroundActor { _init() { diff --git a/gnome-44-max/src/time.js b/gnome-44-max/src/time.js -index 7883b9b..5478d2a 100644 +index 017994a..3aa97d9 100644 --- a/gnome-44-max/src/time.js +++ b/gnome-44-max/src/time.js @@ -1,11 +1,11 @@ @@ -380,9 +380,9 @@ index 7883b9b..5478d2a 100644 return Math.floor(milliseconds / 1000); } --export function isValidKeepAlive(dateSec, strictCheck = false) { -+function isValidKeepAlive(dateSec, strictCheck = false) { - return Math.abs(toSec(Date.now()) - dateSec) <= (strictCheck ? 1 : 5); +-export function isValidKeepAlive(dateSec) { ++function isValidKeepAlive(dateSec) { + return Math.abs(toSec(Date.now()) - dateSec) <= 1; } \ No newline at end of file diff --git a/gnome-44-max/src/xrEffect.js b/gnome-44-max/src/xrEffect.js From d4d3bd9ca0cf43c150372f39ba7c55d326903f4a Mon Sep 17 00:00:00 2001 From: 8796n Date: Tue, 22 Oct 2024 01:47:52 +0900 Subject: [PATCH 02/25] Update ja.po (#64) XR Effect keyboard shortcut --- ui/po/ja.po | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/po/ja.po b/ui/po/ja.po index 7948bf6..cce7390 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -241,13 +241,15 @@ msgstr "キーボードショートカット" #: src/gtk/connected-device.ui:218 msgid "XR Effect on/off shortcut" -msgstr "" +msgstr "XRエフェクトの切り替え" #: src/gtk/connected-device.ui:219 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" +"XRエフェクトの有効・無効を切り替えます。" +"このショートカットを有効にするために手動で1回XRエフェクトを有効にする必要があります。" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 From 5a5c9ab2d60f9f62b3585f3db7fb17d2f2ac42b4 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:59:48 -0700 Subject: [PATCH 03/25] Update breezy setup to check for the presence of python --- gnome/bin/setup | 1 + 1 file changed, 1 insertion(+) diff --git a/gnome/bin/setup b/gnome/bin/setup index e34efb5..bb97149 100755 --- a/gnome/bin/setup +++ b/gnome/bin/setup @@ -13,6 +13,7 @@ check_command "gnome-extensions" check_command "glib-compile-schemas" check_command "update-desktop-database" check_command "gtk-update-icon-cache" +check_command "python" # This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied # to a specific release of the code, and guarantees it will never run along-side newer or older binaries. From 5e47386d237b1e2fa35ff9b9686fbb1ee8ca8d5d Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:39:35 -0700 Subject: [PATCH 04/25] Add error handling on extensions service call during shutdown, add GLib version check for deprecated flags constant --- VERSION | 2 +- ui/po/breezydesktop.pot | 6 +++--- ui/po/de.po | 6 +++--- ui/po/es.po | 6 +++--- ui/po/fr.po | 6 +++--- ui/po/it.po | 6 +++--- ui/po/ja.po | 10 +++++----- ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo | Bin 11801 -> 12200 bytes ui/po/pl.po | 6 +++--- ui/po/pt_BR.po | 6 +++--- ui/po/ru.po | 6 +++--- ui/po/sv.po | 6 +++--- ui/po/uk_UA.po | 6 +++--- ui/po/zh_CN.po | 6 +++--- ui/src/connecteddevice.py | 19 ++++++++++++++----- ui/src/main.py | 11 +++++++++-- 16 files changed, 62 insertions(+), 46 deletions(-) diff --git a/VERSION b/VERSION index 9084fa2..781dcb0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.0 +1.1.3 diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 36933f0..7f853e4 100644 --- a/ui/po/breezydesktop.pot +++ b/ui/po/breezydesktop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 13:39-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,13 +17,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "" diff --git a/ui/po/de.po b/ui/po/de.po index e6409d3..b82a330 100644 --- a/ui/po/de.po +++ b/ui/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Schaltet Ihre Brille in den Side-by-Side-Modus und verdoppelt die Breite des " "Displays." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Diese Funktion wird von Ihrem Gerät derzeit nicht unterstützt." diff --git a/ui/po/es.po b/ui/po/es.po index 5e104ce..3fcbba8 100644 --- a/ui/po/es.po +++ b/ui/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -17,14 +17,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" "Cambia tus gafas al modo lado a lado y duplica el ancho de la pantalla." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Esta función no es compatible con tu dispositivo en este momento." diff --git a/ui/po/fr.po b/ui/po/fr.po index 9bd381a..59e4ec4 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: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Basculez vos lunettes en mode Side-By-Side (Côte-à-Côte) et doublez la " "largeur de l'écran." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "" "Cette fonctionnalité n'est actuellement pas prise en charge par votre " diff --git a/ui/po/it.po b/ui/po/it.po index 1ec6e0d..f913be5 100644 --- a/ui/po/it.po +++ b/ui/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -17,13 +17,13 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "" diff --git a/ui/po/ja.po b/ui/po/ja.po index cce7390..21fac02 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: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -21,13 +21,13 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします。" -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "この機能は現在接続されているデバイスではサポートされていません。" @@ -248,8 +248,8 @@ msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" -"XRエフェクトの有効・無効を切り替えます。" -"このショートカットを有効にするために手動で1回XRエフェクトを有効にする必要があります。" +"XRエフェクトの有効・無効を切り替えます。このショートカットを有効にするために" +"手動で1回XRエフェクトを有効にする必要があります。" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 diff --git a/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo index 69a3de7737ddb3e1b56fa766ecc61e9fe34a5429..2565915620478e0aec64eecad0113eb4a4dc33b7 100644 GIT binary patch delta 2248 zcmZY9ZBSHI9LMp42ndKIDuGX2@ew6~OihA(BosvxQ9yj+VNnd(29`#gXxm*Id9YF2 zVH%($r%9c$bQ)~T(aBdmO;ghwUoev;X@!_ug~<=iGDd z*}gp&_j~WAjPErZwZu#!JKC547Q}Mm*f_zMv?yaX;TYD&8#9ahn-h(hf{mDh9mped z8u^)iPBC~MmFi=hibJS&-$d?v%^eE-jLm5>{)(v>HIa@n4c(ZBMR*P;;V5b#f8ZjV znq*8S7GfbDKy`c;EAS)ShX3FVEG5Y#<7L#z#>86nl7VaibhszD__ zhHB@-`PhX|;}z7KevQg^2WMai^`cQESNJ7i5Kp*BlTKEWaF@@}_a6M`U zI#5&GjqUges@_7f>kTV$I(kq`bqY1G+qecp&hrIKkCu4tROVj;sN}{XY{A1gfMpmv zEz)rnKF@Uns-r>F$94m?Bwu1R-bD>GpX{<2HGpzdKlP|~Z=hzpGnM&orEto55X}Pe z@+JuxgULX0n&*%zrUZAh3u>?rZ_<0uIAeD4+UnqEwvamh+cBOmR0BxG*|-3;G)1VT zDe+R!wktzTog3Al8#TgyRKjzpslJRW@E)GPRI+Zzv#4G18!o|raRV;NFy>i&75CwX zsJ!DW29Dl%3iT9vF^f0)3pJ(lSZEET5Y?a*b-x@J;t|wR^g7p{qUsGh-p72dN0G6Z z%(;=7T#Kq#fs5(i>~kJ;p*k2uzAN)NY5?D%W?%%1aSZ>&+6SKgWXD}BFa33nc04m{CT#duni0Mp&W*~sNKZw`y z9iQubrGGPp-nB+2k$dJAF2i4N70zNouVDo$VRCk4N~`ez z*T+x^M{o}6Ez~{}-^E?1fj&gdXu{G+z3EtLaif5OzWTiwk8Zq;?Kly)<**}g4{E9p zBU{;YpmxO>~t3O@$9?c%(@=lPvgp)E zU$oD0H#As}s}6lTt#3$g7{>8;x=a_!GOZSDg`w1;tZXK7e7=b7!3Pkd0E|XO}5_cn#BW3YXzL_MtDutQPm{O3~nk%ryqA#Yo;7d7A|T#MhJ z28w^s*<@L$r3m5+ScAI%xa%-#0vA!6@@rIvf52DphTGnhPX2jG+s?EY!}cK8Y!Efm zBNXlI`eBSkSI|WHj(**A~>kJ8=cRj9Q8z)KVNles+{X85s#t(E}5x z8UBXqa1NE?f3OULZ1wkWCpO~@>MPj5C_!w%8hj1c;3#(D@2Gwo{Y)HNa2HNt9xoKC zTj`{-Kg*fO`=|#Zs1zT^9Q+cs1XJ$$UDSO6HiXQ_by$pyY5P!_Jmg+Kg^zN6)@{Fz z^dGWWD(n}F%XTKP6qSJ-tj7|(g9GmMS08ciKY-P=N06WWOrZ&T_!jkihHDOL50s$B z*@T)%GZyIkAE2^^DL_48R z+QJnH{+7*D77#H+2eF-~BQ_E12_5=8x>e!Or%^>HZGNJG&{6qc>EypFJe*Kex|Npa zh{uT*VjJ=Qp;c{iPj\n" "Language-Team: Polish \n" @@ -18,13 +18,13 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "" diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index d508026..7127362 100644 --- a/ui/po/pt_BR.po +++ b/ui/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -26,7 +26,7 @@ msgstr "" "Altera o modo dos óculos para lado a lado (SBS) e dobra a largura da tela " "(ultrawide)." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Este recurso não é atualmente suportado para o seu dispositivo." diff --git a/ui/po/ru.po b/ui/po/ru.po index d1649f4..4880c92 100644 --- a/ui/po/ru.po +++ b/ui/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-17 09:39-0700\n" "Last-Translator: \n" "Language-Team: Russian \n" @@ -18,14 +18,14 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" "Переключает очки в режим «сторона к стороне» и удваивает ширину дисплея." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." diff --git a/ui/po/sv.po b/ui/po/sv.po index ba37c96..9067a68 100644 --- a/ui/po/sv.po +++ b/ui/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Växlar dina glasögon till side-by-side-läget och dubblerar bredden på " "visningen." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Din enhet stöder inte den här funktionen för tillfället." diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index f03b93c..e883c11 100644 --- a/ui/po/uk_UA.po +++ b/ui/po/uk_UA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -18,13 +18,13 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "Переключає окуляри в режим «бок о бок» і подвоює ширину дисплея." -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "Ця функція наразі не підтримується на вашому пристрої." diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index f40dc97..ad5855f 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 11:45-0700\n" +"POT-Creation-Date: 2024-10-21 12:23-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -16,13 +16,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:17 +#: src/connecteddevice.py:20 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:18 +#: src/connecteddevice.py:21 msgid "This feature is not currently supported for your device." msgstr "" diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 9554dcd..9671b77 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -6,10 +6,13 @@ from .shortcutdialog import bind_shortcut_settings from .statemanager import StateManager from .xrdriveripc import XRDriverIPC import gettext +import logging import threading _ = gettext.gettext +logger = logging.getLogger('breezy_ui') + @Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/connected-device.ui') class ConnectedDevice(Gtk.Box): __gtype_name__ = "ConnectedDevice" @@ -101,6 +104,7 @@ class ConnectedDevice(Gtk.Box): self.follow_mode_switch.set_active(self.state_manager.get_property('follow-mode')) self.follow_mode_switch.connect('notify::active', self._refresh_follow_mode) + self._refresh_enabled_state_thread = None self._refresh_enabled_state(); self.effect_enable_switch.connect('notify::active', self._handle_enabled_state) @@ -128,11 +132,14 @@ class ConnectedDevice(Gtk.Box): self.widescreen_mode_row.set_subtitle(subtitle) def _refresh_enabled_state(self): - enabled = self._is_config_enabled(self.ipc.retrieve_config()) and self.extensions_manager.is_enabled() - if enabled != self.effect_enable_switch.get_active(): - self.effect_enable_switch.set_active(enabled) + try: + enabled = self._is_config_enabled(self.ipc.retrieve_config()) and self.extensions_manager.is_enabled() + if enabled != self.effect_enable_switch.get_active(): + self.effect_enable_switch.set_active(enabled) - if self.active: threading.Timer(1.0, self._refresh_enabled_state).start() + self._refresh_enabled_state_thread = threading.Timer(1.0, self._refresh_enabled_state).start() + except Exception as e: + logger.error(f"_refresh_enabled_state {e}") def _is_config_enabled(self, config): return config.get('disabled') == False and 'breezy_desktop' in config.get('external_mode', []) @@ -182,7 +189,9 @@ class ConnectedDevice(Gtk.Box): reload_display_distance_toggle_button(widget) def _on_widget_destroy(self, widget): - self.active = False + if self._refresh_enabled_state_thread: + self._refresh_enabled_state_thread.cancel() + self.state_manager.unbind_property('follow-mode', self.follow_mode_switch, 'active') self.settings.unbind('display-distance', self.display_distance_adjustment, 'value') self.settings.unbind('display-size', self.display_size_adjustment, 'value') diff --git a/ui/src/main.py b/ui/src/main.py index d6543e4..248b558 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -34,7 +34,7 @@ gi.require_version('Adw', '1') gi.require_version('Gio', '2.0') gi.require_version('GLib', '2.0') -from gi.repository import Adw, Gtk, Gio +from gi.repository import Adw, Gtk, Gio, GLib from .licensedialog import LicenseDialog from .statemanager import StateManager from .window import BreezydesktopWindow @@ -64,12 +64,19 @@ sys.excepthook = excepthook XRDriverIPC.set_instance(XRDriverIPC(logger, config_dir)) +if GLib.MAJOR_VERSION * 100 + GLib.MINOR_VERSION >= 274: + APPLICATION_FLAGS = Gio.ApplicationFlags.DEFAULT_FLAGS +else: + # deprecated after Gio version 2.74 + APPLICATION_FLAGS = Gio.ApplicationFlags.FLAGS_NONE + + class BreezydesktopApplication(Adw.Application): """The main application singleton class.""" def __init__(self, version, skip_verification): super().__init__(application_id='com.xronlinux.BreezyDesktop', - flags=Gio.ApplicationFlags.DEFAULT_FLAGS) + flags=APPLICATION_FLAGS) self.version = version self.create_action('quit', self.on_quit_action, ['q']) From 94c24fdb4995ca58177145a9f5826a9e98e1b0a3 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:54:15 -0700 Subject: [PATCH 05/25] Update how we're checking for python3 during setup, update the python script's shebang --- gnome/bin/setup | 14 +++++++++----- ui/src/breezydesktop.in | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gnome/bin/setup b/gnome/bin/setup index bb97149..1bf0fb2 100755 --- a/gnome/bin/setup +++ b/gnome/bin/setup @@ -3,17 +3,21 @@ set -e check_command() { - if ! command -v "$1" &>/dev/null; then - echo "Please install \"$1\" and make sure it's available in your \$PATH, then rerun the setup." - exit 1 - fi + for cmd in "$@"; do + if command -v "$cmd" &>/dev/null; then + return + fi + done + + echo "Please install one of the following: ${*}, and make sure it's available in your \$PATH, then rerun the setup." + exit 1 } check_command "gnome-extensions" check_command "glib-compile-schemas" check_command "update-desktop-database" check_command "gtk-update-icon-cache" -check_command "python" +check_command "python" "python3" # This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied # to a specific release of the code, and guarantees it will never run along-side newer or older binaries. diff --git a/ui/src/breezydesktop.in b/ui/src/breezydesktop.in index bbd44d3..2729644 100755 --- a/ui/src/breezydesktop.in +++ b/ui/src/breezydesktop.in @@ -1,4 +1,4 @@ -#!@PYTHON@ +#!/usr/bin/env python3 # breezydesktop.in # From 1c4fc949996ab941a8b67fd4d2b715a4530dd1b7 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 22 Oct 2024 09:49:20 -0700 Subject: [PATCH 06/25] Fix threading usage in the connectedevice widget --- VERSION | 2 +- gnome/bin/setup | 3 +++ modules/XRLinuxDriver | 2 +- ui/modules/PyXRLinuxDriverIPC | 2 +- ui/src/connecteddevice.py | 3 ++- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index 781dcb0..1b87bcd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.3 +1.1.4 \ No newline at end of file diff --git a/gnome/bin/setup b/gnome/bin/setup index 1bf0fb2..bd4c8b5 100755 --- a/gnome/bin/setup +++ b/gnome/bin/setup @@ -100,6 +100,9 @@ glib-compile-schemas $XDG_DATA_HOME/glib-2.0/schemas update-desktop-database $XDG_DATA_HOME/applications gtk-update-icon-cache +# refresh bash session so new commands in the PATH are available +hash -r + # set up the XR driver using the local binary echo "Installing xrDriver" echo "BEGIN - xr_driver_setup" diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 91a5d65..4ab77f0 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 91a5d65c57a63a8003ef4f8a2c36bc519104d54c +Subproject commit 4ab77f09b1ac574e9dfa7f9bf29c9ba478b721d9 diff --git a/ui/modules/PyXRLinuxDriverIPC b/ui/modules/PyXRLinuxDriverIPC index e6ec3e3..c3b0dda 160000 --- a/ui/modules/PyXRLinuxDriverIPC +++ b/ui/modules/PyXRLinuxDriverIPC @@ -1 +1 @@ -Subproject commit e6ec3e309e63608552becff694e5f3c9d1e5bcc3 +Subproject commit c3b0ddab302e11e517b57b621ff334faf03173de diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 9671b77..1488e12 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -137,7 +137,8 @@ class ConnectedDevice(Gtk.Box): if enabled != self.effect_enable_switch.get_active(): self.effect_enable_switch.set_active(enabled) - self._refresh_enabled_state_thread = threading.Timer(1.0, self._refresh_enabled_state).start() + self._refresh_enabled_state_thread = threading.Timer(1.0, self._refresh_enabled_state) + self._refresh_enabled_state_thread.start() except Exception as e: logger.error(f"_refresh_enabled_state {e}") From b0e2b5cca318a2f7bc6737cc4c37852242adfc46 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:27:40 -0700 Subject: [PATCH 07/25] Move config interactions to new ConfigManager class, add enable and widescreen switches when device isn't connected --- ui/po/breezydesktop.pot | 24 ++++++++++++-- ui/po/de.po | 26 +++++++++++++-- ui/po/es.po | 26 +++++++++++++-- ui/po/fr.po | 26 +++++++++++++-- ui/po/it.po | 24 ++++++++++++-- ui/po/ja.po | 26 +++++++++++++-- ui/po/pl.po | 24 ++++++++++++-- ui/po/pt_BR.po | 26 +++++++++++++-- ui/po/ru.po | 26 +++++++++++++-- ui/po/sv.po | 26 +++++++++++++-- ui/po/uk_UA.po | 26 +++++++++++++-- ui/po/zh_CN.po | 24 ++++++++++++-- ui/src/configmanager.py | 66 +++++++++++++++++++++++++++++++++++++ ui/src/connecteddevice.py | 49 +++++++++------------------ ui/src/extensionsmanager.py | 2 +- ui/src/gtk/no-device.ui | 30 ++++++++++++++++- ui/src/gtk/no-driver.ui | 2 +- ui/src/gtk/no-extension.ui | 2 +- ui/src/gtk/no-license.ui | 2 +- ui/src/main.py | 2 ++ ui/src/meson.build | 1 + ui/src/nodevice.py | 42 ++++++++++++++++++++++- ui/src/statemanager.py | 17 ++-------- 23 files changed, 429 insertions(+), 90 deletions(-) create mode 100644 ui/src/configmanager.py diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 7f853e4..2c451ec 100644 --- a/ui/po/breezydesktop.pot +++ b/ui/po/breezydesktop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 13:39-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,13 +17,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "" @@ -365,6 +365,24 @@ msgstr "" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "" +#: src/gtk/no-device.ui:23 +msgid "Auto-enable XR effect" +msgstr "" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +msgid "Start in widescreen mode" +msgstr "" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "" diff --git a/ui/po/de.po b/ui/po/de.po index b82a330..415ed1f 100644 --- a/ui/po/de.po +++ b/ui/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: German \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Schaltet Ihre Brille in den Side-by-Side-Modus und verdoppelt die Breite des " "Displays." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Diese Funktion wird von Ihrem Gerät derzeit nicht unterstützt." @@ -388,6 +388,26 @@ msgstr "Kein Gerät verbunden" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop konnte kein unterstütztes XR-Gerät erkennen." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "XR-Effekt" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Breitbildmodus" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Kein Treiber wird ausgeführt" diff --git a/ui/po/es.po b/ui/po/es.po index 3fcbba8..e941058 100644 --- a/ui/po/es.po +++ b/ui/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Spanish \n" @@ -17,14 +17,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" "Cambia tus gafas al modo lado a lado y duplica el ancho de la pantalla." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Esta función no es compatible con tu dispositivo en este momento." @@ -387,6 +387,26 @@ msgstr "No hay dispositivo conectado" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop no pudo detectar ningún dispositivo XR compatible." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "Efecto XR" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Modo pantalla ancha" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "No se está ejecutando ningún controlador" diff --git a/ui/po/fr.po b/ui/po/fr.po index 59e4ec4..1b1c543 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: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 20:54-0700\n" "Last-Translator: \n" "Language-Team: French \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Basculez vos lunettes en mode Side-By-Side (Côte-à-Côte) et doublez la " "largeur de l'écran." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "" "Cette fonctionnalité n'est actuellement pas prise en charge par votre " @@ -392,6 +392,26 @@ msgstr "Aucun appareil connecté" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop n'a pas pu détecter d'appareils XR pris en charge." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "Effet XR" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Mode grand écran" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Aucun pilote en cours d'exécution" diff --git a/ui/po/it.po b/ui/po/it.po index f913be5..953e96c 100644 --- a/ui/po/it.po +++ b/ui/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 21:14-0700\n" "Last-Translator: \n" "Language-Team: Italian \n" @@ -17,13 +17,13 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "" @@ -365,6 +365,24 @@ msgstr "" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "" +#: src/gtk/no-device.ui:23 +msgid "Auto-enable XR effect" +msgstr "" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +msgid "Start in widescreen mode" +msgstr "" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "" diff --git a/ui/po/ja.po b/ui/po/ja.po index 21fac02..852bcbd 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: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Japanese \n" @@ -21,13 +21,13 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします。" -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "この機能は現在接続されているデバイスではサポートされていません。" @@ -390,6 +390,26 @@ msgstr "デバイスが接続されていません" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy DesktopはサポートされているXRデバイスを検出できませんでした。" +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "XRエフェクト" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "ワイドスクリーンモード" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "ドライバーが実行されていません" diff --git a/ui/po/pl.po b/ui/po/pl.po index c314dba..0b599c8 100644 --- a/ui/po/pl.po +++ b/ui/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-16 10:26-0700\n" "Last-Translator: \n" "Language-Team: Polish \n" @@ -18,13 +18,13 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "" @@ -366,6 +366,24 @@ msgstr "" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "" +#: src/gtk/no-device.ui:23 +msgid "Auto-enable XR effect" +msgstr "" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +msgid "Start in widescreen mode" +msgstr "" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "" diff --git a/ui/po/pt_BR.po b/ui/po/pt_BR.po index 7127362..1ca89cc 100644 --- a/ui/po/pt_BR.po +++ b/ui/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-19 09:39-0700\n" "Last-Translator: \n" "Language-Team: Brazilian Portuguese 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -26,7 +26,7 @@ msgstr "" "Altera o modo dos óculos para lado a lado (SBS) e dobra a largura da tela " "(ultrawide)." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Este recurso não é atualmente suportado para o seu dispositivo." @@ -390,6 +390,26 @@ msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "" "O Breezy Desktop não conseguiu detectar nenhum dispositivo XR suportado." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "Efeito XR" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Modo Ultrawide" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Nenhum driver em execução" diff --git a/ui/po/ru.po b/ui/po/ru.po index 4880c92..da7815e 100644 --- a/ui/po/ru.po +++ b/ui/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-17 09:39-0700\n" "Last-Translator: \n" "Language-Team: Russian \n" @@ -18,14 +18,14 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" "Переключает очки в режим «сторона к стороне» и удваивает ширину дисплея." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." @@ -389,6 +389,26 @@ msgstr "Устройство не подключено" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop не смог обнаружить никаких поддерживаемых устройств XR." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "Эффект XR" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Режим широкого экрана" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Драйвер не запущен" diff --git a/ui/po/sv.po b/ui/po/sv.po index 9067a68..2fbe58b 100644 --- a/ui/po/sv.po +++ b/ui/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-16 10:31-0700\n" "Last-Translator: \n" "Language-Team: Swedish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." @@ -25,7 +25,7 @@ msgstr "" "Växlar dina glasögon till side-by-side-läget och dubblerar bredden på " "visningen." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Din enhet stöder inte den här funktionen för tillfället." @@ -383,6 +383,26 @@ msgstr "Inget enhet ansluten" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop kunde inte upptäcka enheter som stöder XR." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "XR-effekt" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Bredbildsläge" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Inget drivrutin köres" diff --git a/ui/po/uk_UA.po b/ui/po/uk_UA.po index e883c11..4189b2f 100644 --- a/ui/po/uk_UA.po +++ b/ui/po/uk_UA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-17 10:08-0700\n" "Last-Translator: \n" "Language-Team: Ukrainian \n" @@ -18,13 +18,13 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "Переключає окуляри в режим «бок о бок» і подвоює ширину дисплея." -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "Ця функція наразі не підтримується на вашому пристрої." @@ -386,6 +386,26 @@ msgstr "Жоден пристрій не підключено" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop не зміг виявити жодного підтримуваного XR пристрою." +#: src/gtk/no-device.ui:23 +#, fuzzy +msgid "Auto-enable XR effect" +msgstr "Ефект XR" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +#, fuzzy +msgid "Start in widescreen mode" +msgstr "Режим широкого екрану" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "Жоден драйвер не запущений" diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index ad5855f..e97586d 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-21 12:23-0700\n" +"POT-Creation-Date: 2024-10-22 13:27-0700\n" "PO-Revision-Date: 2024-08-02 20:55-0700\n" "Last-Translator: \n" "Language-Team: Chinese (simplified) \n" @@ -16,13 +16,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/connecteddevice.py:20 +#: src/connecteddevice.py:17 msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." msgstr "" -#: src/connecteddevice.py:21 +#: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." msgstr "" @@ -364,6 +364,24 @@ msgstr "" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "" +#: src/gtk/no-device.ui:23 +msgid "Auto-enable XR effect" +msgstr "" + +#: src/gtk/no-device.ui:24 +msgid "" +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +msgid "Start in widescreen mode" +msgstr "" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "" diff --git a/ui/src/configmanager.py b/ui/src/configmanager.py new file mode 100644 index 0000000..b328b16 --- /dev/null +++ b/ui/src/configmanager.py @@ -0,0 +1,66 @@ +import sys +import threading +from gi.repository import GObject +from .time import LICENSE_WARN_SECONDS +from .xrdriveripc import XRDriverIPC + +class ConfigManager(GObject.GObject): + __gproperties__ = { + 'breezy-desktop-enabled': (bool, 'Breezy Desktop Enabled', 'Whether Breezy Desktop is enabled', False, GObject.ParamFlags.READWRITE), + } + + _instance = None + + @staticmethod + def get_instance(): + if not ConfigManager._instance: + ConfigManager._instance = ConfigManager() + + return ConfigManager._instance + + @staticmethod + def destroy_instance(): + if ConfigManager._instance: + ConfigManager._instance.stop() + ConfigManager._instance = None + + def __init__(self): + GObject.GObject.__init__(self) + self.ipc = XRDriverIPC.get_instance() + self.breezy_desktop_enabled = None + self._running = True + self._refresh_config() + + def stop(self): + self._running = False + + def _refresh_config(self): + self.config = self.ipc.retrieve_config(False) + if self._is_breezy_desktop_enabled() != self.breezy_desktop_enabled: + self.set_property('breezy-desktop-enabled', self._is_breezy_desktop_enabled()) + + if self._running: threading.Timer(1.0, self._refresh_config).start() + + def _is_breezy_desktop_enabled(self): + return self.config.get('disabled') == False and 'breezy_desktop' in self.config.get('external_mode', []) + + def _set_breezy_desktop_enabled(self, value): + if value: + self.config['disabled'] = False + self.config['output_mode'] = 'external_only' + self.config['external_mode'] = ['breezy_desktop'] + self.ipc.write_config(self.config) + else: + self.config['external_mode'] = [] + self.ipc.write_config(self.config) + + self.breezy_desktop_enabled = value + + def do_set_property(self, prop, value): + logging.info(f"Setting property {prop.name} to {value}") + if prop.name == 'breezy-desktop-enabled': + self._set_breezy_desktop_enabled(value) + + def do_get_property(self, prop): + if prop.name == 'breezy-desktop-enabled': + return self.breezy_desktop_enabled \ No newline at end of file diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 1488e12..efe638e 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -1,4 +1,5 @@ from gi.repository import Gio, Gtk, GObject +from .configmanager import ConfigManager from .extensionsmanager import ExtensionsManager from .license import BREEZY_GNOME_FEATURES from .settingsmanager import SettingsManager @@ -6,13 +7,9 @@ from .shortcutdialog import bind_shortcut_settings from .statemanager import StateManager from .xrdriveripc import XRDriverIPC import gettext -import logging -import threading _ = gettext.gettext -logger = logging.getLogger('breezy_ui') - @Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/connected-device.ui') class ConnectedDevice(Gtk.Box): __gtype_name__ = "ConnectedDevice" @@ -103,17 +100,18 @@ class ConnectedDevice(Gtk.Box): self.follow_mode_switch.set_active(self.state_manager.get_property('follow-mode')) self.follow_mode_switch.connect('notify::active', self._refresh_follow_mode) + self.effect_enable_switch.connect('notify::active', self._handle_switch_enabled_state) - self._refresh_enabled_state_thread = None - self._refresh_enabled_state(); - self.effect_enable_switch.connect('notify::active', self._handle_enabled_state) + self.config_manager = ConfigManager.get_instance() + self.config_manager.connect('notify::breezy-desktop-enabled', self._handle_enabled_config) self.use_optimal_monitor_config_switch.connect('notify::active', self._refresh_use_optimal_monitor_config) self._handle_enabled_features(self.state_manager, None) self._handle_device_supports_sbs(self.state_manager, None) - self._handle_enabled_state(self.effect_enable_switch, None) + self._handle_enabled_config(None, None) self._refresh_use_optimal_monitor_config(self.use_optimal_monitor_config_switch, None) + self.extensions_manager.connect('notify::breezy-enabled', self._handle_enabled_config) self.connect("destroy", self._on_widget_destroy) @@ -130,34 +128,20 @@ class ConnectedDevice(Gtk.Box): self.widescreen_mode_switch.set_sensitive(state_manager.get_property('device-supports-sbs')) subtitle = self.widescreen_mode_subtitle if state_manager.get_property('device-supports-sbs') else self.widescreen_mode_not_supported_subtitle self.widescreen_mode_row.set_subtitle(subtitle) - - def _refresh_enabled_state(self): - try: - enabled = self._is_config_enabled(self.ipc.retrieve_config()) and self.extensions_manager.is_enabled() - if enabled != self.effect_enable_switch.get_active(): - self.effect_enable_switch.set_active(enabled) - self._refresh_enabled_state_thread = threading.Timer(1.0, self._refresh_enabled_state) - self._refresh_enabled_state_thread.start() - except Exception as e: - logger.error(f"_refresh_enabled_state {e}") - - def _is_config_enabled(self, config): - return config.get('disabled') == False and 'breezy_desktop' in config.get('external_mode', []) + def _handle_enabled_config(self, object, val): + enabled = self.config_manager.get_property('breezy-desktop-enabled') and self.extensions_manager.get_property('breezy-enabled') + if enabled != self.effect_enable_switch.get_active(): + self.effect_enable_switch.set_active(enabled) - def _handle_enabled_state(self, switch, param): + def _handle_switch_enabled_state(self, switch, param): requesting_enabled = switch.get_active() - config = self.ipc.retrieve_config(False) + + # never turn off the extension, disabling the effect is done via configs only if requesting_enabled: self.extensions_manager.set_property('breezy-enabled', True) - if not self._is_config_enabled(config): - config['disabled'] = False - config['output_mode'] = 'external_only' - config['external_mode'] = ['breezy_desktop'] - self.ipc.write_config(config) - else: - config['external_mode'] = [] - self.ipc.write_config(config) + + self.config_manager.set_property('breezy-desktop-enabled', requesting_enabled) for widget in self.all_enabled_state_inputs: widget.set_sensitive(requesting_enabled) @@ -190,9 +174,6 @@ class ConnectedDevice(Gtk.Box): reload_display_distance_toggle_button(widget) def _on_widget_destroy(self, widget): - if self._refresh_enabled_state_thread: - self._refresh_enabled_state_thread.cancel() - self.state_manager.unbind_property('follow-mode', self.follow_mode_switch, 'active') self.settings.unbind('display-distance', self.display_distance_adjustment, 'value') self.settings.unbind('display-size', self.display_size_adjustment, 'value') diff --git a/ui/src/extensionsmanager.py b/ui/src/extensionsmanager.py index 0c1d54c..397686a 100644 --- a/ui/src/extensionsmanager.py +++ b/ui/src/extensionsmanager.py @@ -24,7 +24,7 @@ class ExtensionsManager(GObject.GObject): self.gnome_shell_extensions = self.bus.get("org.gnome.Shell.Extensions") self.gnome_shell_extensions.ExtensionStateChanged.connect(self._handle_extension_state_change) - self.remote_extension_state = None + self.remote_extension_state = self.is_enabled() def _handle_extension_state_change(self, extension_uuid, state): if extension_uuid == BREEZY_DESKTOP_UUID: diff --git a/ui/src/gtk/no-device.ui b/ui/src/gtk/no-device.ui index ecc6d51..c7d6cad 100644 --- a/ui/src/gtk/no-device.ui +++ b/ui/src/gtk/no-device.ui @@ -12,7 +12,35 @@ No device connected Breezy Desktop was unable to detect any supported XR devices. - 650 + 800 + 150 + + + + + + + Auto-enable XR effect + Automatically enable the Breezy Desktop XR effect when supported glasses are connected. + + + 3 + + + + + + + Start in widescreen mode + Widescreen mode is not supported for all glasses. + 2 + + + 3 + + + + diff --git a/ui/src/gtk/no-driver.ui b/ui/src/gtk/no-driver.ui index b0f6a29..bd9bba5 100644 --- a/ui/src/gtk/no-driver.ui +++ b/ui/src/gtk/no-driver.ui @@ -17,7 +17,7 @@ Otherwise, please file an issue on GitHub, or create a new thread in the #troubleshooting channel on Discord. - 650 + 800 diff --git a/ui/src/gtk/no-extension.ui b/ui/src/gtk/no-extension.ui index ad126bb..bc5fe43 100644 --- a/ui/src/gtk/no-extension.ui +++ b/ui/src/gtk/no-extension.ui @@ -12,7 +12,7 @@ Breezy Desktop GNOME extension not ready If you have just run the setup, then you may need to log out and back in to use it. Otherwise, please follow the Breezy GNOME setup instructions. - 650 + 800 diff --git a/ui/src/gtk/no-license.ui b/ui/src/gtk/no-license.ui index 7a5a9db..7525017 100644 --- a/ui/src/gtk/no-license.ui +++ b/ui/src/gtk/no-license.ui @@ -18,7 +18,7 @@ Once you obtain a license, trial or otherwise, you can use Breezy Desktop offline until features expire (or indefinitely, if you've chosen lifetime access). - 650 + 800 400 diff --git a/ui/src/main.py b/ui/src/main.py index 248b558..c1472b7 100644 --- a/ui/src/main.py +++ b/ui/src/main.py @@ -35,6 +35,7 @@ gi.require_version('Gio', '2.0') gi.require_version('GLib', '2.0') from gi.repository import Adw, Gtk, Gio, GLib +from .configmanager import ConfigManager from .licensedialog import LicenseDialog from .statemanager import StateManager from .window import BreezydesktopWindow @@ -144,6 +145,7 @@ class BreezydesktopApplication(Adw.Application): win.close() StateManager.destroy_instance() + ConfigManager.destroy_instance() self.quit() diff --git a/ui/src/meson.build b/ui/src/meson.build index cb1ecbc..0a2b141 100644 --- a/ui/src/meson.build +++ b/ui/src/meson.build @@ -29,6 +29,7 @@ configure_file( breezydesktop_sources = [ '../modules/PyXRLinuxDriverIPC/xrdriveripc.py', '__init__.py', + 'configmanager.py', 'connecteddevice.py', 'extensionsmanager.py', 'failedverification.py', diff --git a/ui/src/nodevice.py b/ui/src/nodevice.py index ed71c40..b36c656 100644 --- a/ui/src/nodevice.py +++ b/ui/src/nodevice.py @@ -1,5 +1,45 @@ -from gi.repository import Gtk +from gi.repository import Gio, Gtk +from .configmanager import ConfigManager +from .extensionsmanager import ExtensionsManager +from .settingsmanager import SettingsManager +from .statemanager import StateManager +from .xrdriveripc import XRDriverIPC @Gtk.Template(resource_path='/com/xronlinux/BreezyDesktop/gtk/no-device.ui') class NoDevice(Gtk.Box): __gtype_name__ = "NoDevice" + + effect_enable_switch = Gtk.Template.Child() + widescreen_mode_switch = Gtk.Template.Child() + + def __init__(self): + super(Gtk.Box, self).__init__() + self.init_template() + + self.ipc = XRDriverIPC.get_instance() + self.extensions_manager = ExtensionsManager.get_instance() + self.settings = SettingsManager.get_instance().settings + self.config_manager = ConfigManager.get_instance() + self.config_manager.connect('notify::breezy-desktop-enabled', self._handle_enabled_config) + + self.effect_enable_switch.connect('notify::active', self._handle_switch_enabled_state) + self.settings.bind('widescreen-mode', self.widescreen_mode_switch, 'active', Gio.SettingsBindFlags.DEFAULT) + + self._handle_enabled_config(self.config_manager, None) + + def _handle_enabled_config(self, config_manager, val): + enabled = config_manager.get_property('breezy-desktop-enabled') and self.extensions_manager.get_property('breezy-enabled') + if enabled != self.effect_enable_switch.get_active(): + self.effect_enable_switch.set_active(enabled) + + def _handle_switch_enabled_state(self, switch, param): + requesting_enabled = switch.get_active() + + # never turn off the extension, disabling the effect is done via configs only + if requesting_enabled: + self.extensions_manager.set_property('breezy-enabled', True) + + self.config_manager.set_property('breezy-desktop-enabled', requesting_enabled) + + def _on_widget_destroy(self, widget): + self.settings.unbind('widescreen-mode', self.widescreen_mode_switch, 'active') diff --git a/ui/src/statemanager.py b/ui/src/statemanager.py index f9dc84a..efb03c6 100644 --- a/ui/src/statemanager.py +++ b/ui/src/statemanager.py @@ -7,13 +7,6 @@ from .xrdriveripc import XRDriverIPC # shouldn't need a number larger than a year LICENSE_ACTION_NEEDED_MAX = 60 * 60 * 24 * 366 -class Logger: - def info(self, message): - print(message) - - def error(self, message): - print(message) - class StateManager(GObject.GObject): __gsignals__ = { 'device-update': (GObject.SIGNAL_RUN_FIRST, None, (str,)) @@ -66,15 +59,11 @@ class StateManager(GObject.GObject): self.license_present = False self.enabled_features = [] self.device_supports_sbs = False - - self.start() - - def start(self): - self.running = True + self._running = True self._refresh_state() def stop(self): - self.running = False + self._running = False def _refresh_state(self): self.state = self.ipc.retrieve_driver_state() @@ -109,7 +98,7 @@ class StateManager(GObject.GObject): self.set_property('device-supports-sbs', self.state.get('sbs_mode_supported', False)) self.set_property('widescreen-mode', self.state.get('sbs_mode_enabled', False)) - if self.running: threading.Timer(1.0, self._refresh_state).start() + if self._running: threading.Timer(1.0, self._refresh_state).start() def do_set_property(self, prop, value): if prop.name == 'driver-running': From 230c9250d06b4080ab345fa8fa4a4c025f7d9f29 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:42:14 -0700 Subject: [PATCH 08/25] Fix breakage caused by bad logging line --- ui/src/configmanager.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ui/src/configmanager.py b/ui/src/configmanager.py index b328b16..37c6b18 100644 --- a/ui/src/configmanager.py +++ b/ui/src/configmanager.py @@ -1,7 +1,6 @@ import sys import threading from gi.repository import GObject -from .time import LICENSE_WARN_SECONDS from .xrdriveripc import XRDriverIPC class ConfigManager(GObject.GObject): @@ -57,7 +56,6 @@ class ConfigManager(GObject.GObject): self.breezy_desktop_enabled = value def do_set_property(self, prop, value): - logging.info(f"Setting property {prop.name} to {value}") if prop.name == 'breezy-desktop-enabled': self._set_breezy_desktop_enabled(value) From a2a6e083baa8df105e56cac26efca84002963ce4 Mon Sep 17 00:00:00 2001 From: 8796n Date: Thu, 24 Oct 2024 01:09:26 +0900 Subject: [PATCH 09/25] Update ja.po (#65) --- ui/po/ja.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/po/ja.po b/ui/po/ja.po index 852bcbd..509bf87 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -29,7 +29,7 @@ msgstr "メガネを3Dモードに切り替え、表示の幅を2倍にします #: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." -msgstr "この機能は現在接続されているデバイスではサポートされていません。" +msgstr "現在接続されているデバイスはこの機能に対応していません。" #: src/licensedialogcontent.py:63 msgid "Paid Tier Status" @@ -388,27 +388,27 @@ msgstr "デバイスが接続されていません" #: src/gtk/no-device.ui:14 msgid "Breezy Desktop was unable to detect any supported XR devices." -msgstr "Breezy DesktopはサポートされているXRデバイスを検出できませんでした。" +msgstr "Breezy Desktopは対応しているXRデバイスを検出できませんでした。" #: src/gtk/no-device.ui:23 #, fuzzy msgid "Auto-enable XR effect" -msgstr "XRエフェクト" +msgstr "XRエフェクトの自動有効化" #: src/gtk/no-device.ui:24 msgid "" "Automatically enable the Breezy Desktop XR effect when supported glasses are " "connected." -msgstr "" +msgstr "対応メガネを接続するとBreezy DesktopのXRエフェクトを自動的に開始します。" #: src/gtk/no-device.ui:34 #, fuzzy msgid "Start in widescreen mode" -msgstr "ワイドスクリーンモード" +msgstr "ワイドスクリーンモードで起動" #: src/gtk/no-device.ui:35 msgid "Widescreen mode is not supported for all glasses." -msgstr "" +msgstr "ワイドスクリーンモードはすべてのメガネで対応しているわけではありません。" #: src/gtk/no-driver.ui:13 msgid "No driver running" From 117fffbae186f5a96d5119b8be48321e6078b3ed Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:10:15 -0700 Subject: [PATCH 10/25] Update ja.mo for the latest translations --- ui/po/ja.po | 2 -- ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo | Bin 12200 -> 12583 bytes 2 files changed, 2 deletions(-) diff --git a/ui/po/ja.po b/ui/po/ja.po index 509bf87..5f735f9 100644 --- a/ui/po/ja.po +++ b/ui/po/ja.po @@ -391,7 +391,6 @@ msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktopは対応しているXRデバイスを検出できませんでした。" #: src/gtk/no-device.ui:23 -#, fuzzy msgid "Auto-enable XR effect" msgstr "XRエフェクトの自動有効化" @@ -402,7 +401,6 @@ msgid "" msgstr "対応メガネを接続するとBreezy DesktopのXRエフェクトを自動的に開始します。" #: src/gtk/no-device.ui:34 -#, fuzzy msgid "Start in widescreen mode" msgstr "ワイドスクリーンモードで起動" diff --git a/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo index 2565915620478e0aec64eecad0113eb4a4dc33b7..17344a9eaf17c58b37de444a01c967614c46859b 100644 GIT binary patch delta 2497 zcmYk+e@s?Y9LMp4C_nU3en{ePE~prZ2<4ARNmEQyL$eT5%lPq>1E;yZI zR`g5_R&$gEnZvfHWaO~{Gg#!5tE5UvBvDjEphy#yqsXn_!whs9Kg0jW2SJwX_PTzu^m(KW8^1u z4*4?|`8NWuqPptCH2e|uobkE$Lne(1_sk?r!I?M?3voQI!!oSKT0Dcxv0$_@V{j*G zLVNLUJc?QP1s372s0rlJSpCeywRiwenUFD8sPJc6lZ=VSPUL0HhnS2#I04TiW1BwI z#C}6{Jd#FwE(K@c1Wd=ps5dS{^%uZN*noQB7EES*^Okp`3)SH#`T@`IZysL67EB;L z>Zr~09h}eganuqx$ehd#@Ao)v4(B=vHNiAg>L+{VV~Dnae# z5-J0u=|w4?h`X=|)vg=$h66Yehx7VcstnY`{I~=gP`{r{BmY|KuehNJ44~F<*j>gv zkF#(+9zqQ~i1*_S)If81SetG&YDr3QGuEKmpZEM0HGw`Xz~52hWv7#Wb+Cj5Q|eb? z5FbO`Ka0xH1!QjK2V`t>1L?!~7VY+=32s4kScyt`9nQyg)Dgan`>-g3m%y{A&7E$MP0Yq( zT#xr+=rEO1D(6uHSed*5&O~(>!5rRfJPWQAFP#>h&}LNo?Wp_pI1`&uOB3;~FQD4p z^!yhe;CjS#Hv=KFgo;wS71gi-@4?;P{SMRsy~zGE-=H!wh|0t*T!C?%y<1p<`h8_~ zwEae0%Jp`nsp&%XcL{wu|3A4E9!9Ns9Iv5)l2H?xhO@B*7vXMH2R*0`FXCdniPgA( z9jpwrqwe=&5B`J8useqhi+|yC#y2Y%

5)9r{?P7qI}fM#qr0<_g}2@ww6CxDdO! zZot(zn_05_W*0tzZ=m}78CgY>niqY3E*|E38-_GfGbfs|$*6|87{C&=@D%D4e2sY=B#|X(=K1ja1WzVyHY$rHB|wY$mjR zn+O$)VB+qZanjtie*~WN<2&y5+exa;cn7mtRxb&{whxqYY8&teqgji zV~IP9juS6r77`iW4^_C1m`9X(_e2uGfpN2;YZW)s(W+U64-vTonub3at# zsEir9!1aVuuA((BcWcq~Yp;|LS}IPNd4`B5v}7uLv)qr8mP8v_CB&w5i;mzZLOWZ9 zy=d0BwdglHlln66`a#s!u#{j6xSI~lMq(ww33NYdb8!K&f#5r5o+MPZMA3)t_PbT+ zW@LH7pRsZNn(~T(Km1zKlx%C~Hh+y3Y^bZNt>59VvYrc+2ZR2gRbKD6Dr;+M{FU6z zi{$&}jw~pvuJQ*f>-{|NLT#1bst#H;wL9*3_}SWet2_`G>Lf2xIW7{P*?;16|EF&{ zP3=zOai{5k)A;(eSKhsTvdytuoyKOz?hIegnvpuN?^u8H!Ru{%9Q%X8L(Tmi&Eb}* zS&>;&_s1l9J=ljMpJjaH3-8a(nQ+3f!;al`?foMIO}#vFyUDrS9WmjFd6|WdO`}%F n?s4q*XnK1BcE|s%-JkYo8jY_yc8gIdj=_`JXv+ zuK&aB&h>D{uu=Mn8N`Bgvm`cTaiFZ8VpbY5TZ5C>pJO(Y>udAOig6c)aS*v>N0FbM z=8%aWpqly^OE87{-}nA?$F5P~XD)|F@mGvsD4&k86bG;loAE3b;$750{=|7$Qeakr zag1Xxs^byt!uPQq|G{x=qme>$7*i!5B`*dZZ8QKnIx5}bib z{RX6M+Zo({9Wyw0Py>7umGYs$cafisad0%lZ>i9S-NY#Vj#F0E^Zo3IS`pqAO$sSCJkqabpSj*8nzgVIIDUyYURJ$E>M-$D45} z=Q~jyjiO$*anzE0gWY%?HPCummo2CPbfEg#f%@MYsEi+skpI`H90_iuvw%$A3Xm~a zInt&rLLRYJ+`=yC!&7*P-rr6$>tx#M;1{-#I{rH_hc{FMh~O-&LM=@*YH3;>D%y7I zQK=h1{oycbgr`vro<*hlJTAc-_!dTJ^+g;(?TX)UKK_fVaDKVjllThu;CrZc)1nL< zog6AVs0?F_89hLybPfxxfy7aNXhU7^z`6J`YAJ?;^G{LFT?xF2^_<^D#$pw-{Y*BZ zp6kMD`nR6o#vxP(qsV(@U!Vr?11bX(*n*Sz7uL@4?^m<;^n5+8#5UxX9YwWw5%vEc z11C`Lz$AvX|No%ENG!9;tOjeb0eesloIy1>hRg8^?!xJ$K^aJ*u8-oEcmtd86mRre z{2BHCSd3?I9qRl(?xlY#rgyE;5OU4F#;5QeF2k8D=;zplYOrX5pVDsZ<$OP?!3lgE zH4FW}0#9HkYM}Q~8O?pdf36IjC>I*2=&j#|IXHlqaUbSm`$BdEZbhYfH?oy&5Vb3g zA+L^g5c-a&FxH1fZD$e6YLsAJUg3pyESKtPg7@TM(dddmwzeeiXI_1Rk!Sxk^ zdSCj8jNn`!D;2#zvx!WdP_liz<=Q}9--xlLy_z wuzO%Abt^iSU*sl^yNUC6J{p}&e&r@E96wnTi=3nKKhIyS*%L~QFMKKVAK@wF7XSbN From 3256d58b079e776281bcf5d42cbaa22e60ec5abd Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:30:11 -0700 Subject: [PATCH 11/25] Fix broken shader in Breezy Vulkan --- VERSION | 2 +- modules/sombrero | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 1b87bcd..314c3d7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.4 \ No newline at end of file +1.1.5 \ No newline at end of file diff --git a/modules/sombrero b/modules/sombrero index 0ddc237..76cb6bb 160000 --- a/modules/sombrero +++ b/modules/sombrero @@ -1 +1 @@ -Subproject commit 0ddc237b5b47208eb9f3f520177920f7ea157dfd +Subproject commit 76cb6bb65e90dfe2abf5bd2db8e280ae6e03d5c6 From bc13c4ede71fe077e32f5fde8994daf27105b699 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:59:34 -0700 Subject: [PATCH 12/25] Update zh_CN translations --- ui/po/zh_CN.po | 100 +++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 57 deletions(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index e97586d..3d9f7d1 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -24,11 +24,11 @@ msgstr "" #: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." -msgstr "" +msgstr "您的设备目前不支援此功能。" #: src/licensedialogcontent.py:63 msgid "Paid Tier Status" -msgstr "" +msgstr "订阅等级状态" #: src/licensedialogcontent.py:71 msgid "Feature Availability" @@ -49,7 +49,7 @@ msgstr "" #: src/licensefeaturerow.py:24 src/licensetierrow.py:30 #, python-brace-format msgid " ({time_remaining} remaining)" -msgstr "" +msgstr " (剩下 {time_remaining})" #: src/licensefeaturerow.py:32 msgid "Side-by-side mode (gaming)" @@ -57,19 +57,19 @@ msgstr "" #: src/licensefeaturerow.py:33 msgid "Smooth Follow (gaming)" -msgstr "" +msgstr "平顺跟随(游戏)" #: src/licensefeaturerow.py:34 msgid "Breezy Desktop (productivity)" -msgstr "" +msgstr "Breezy Desktop (生产力)" #: src/licensetierrow.py:24 msgid "Active" -msgstr "" +msgstr "已订阅" #: src/licensetierrow.py:24 msgid "Inactive" -msgstr "" +msgstr "未订阅" #: src/licensetierrow.py:41 #, python-brace-format @@ -86,7 +86,7 @@ msgstr "" #: src/licensetierrow.py:47 msgid "Paid through next renewal period" -msgstr "" +msgstr "已付费至下个续订期" #: src/licensetierrow.py:56 msgid "Gaming" @@ -106,7 +106,7 @@ msgstr "" #: src/licensetierrow.py:65 msgid "with lifetime access" -msgstr "" +msgstr "终身会员" #: src/licensetierrow.py:72 msgid "Monthly" @@ -148,7 +148,7 @@ msgstr "" #: src/gtk/connected-device.ui:31 msgid "General Settings" -msgstr "" +msgstr "通用设定" #: src/gtk/connected-device.ui:41 msgid "Features" @@ -172,15 +172,15 @@ msgstr "" #: src/gtk/connected-device.ui:67 msgid "Keep the virtual display near the center of your view." -msgstr "" +msgstr "虚拟显示保持在视野中心。" #: src/gtk/connected-device.ui:77 msgid "Curved display" -msgstr "" +msgstr "曲面显示" #: src/gtk/connected-device.ui:78 msgid "Switch between flat and curved displays." -msgstr "" +msgstr "平板和曲面显示模式之间切换。" #: src/gtk/connected-device.ui:91 msgid "Adjustments" @@ -194,7 +194,7 @@ msgstr "" msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." -msgstr "" +msgstr "距离近看起来大,距离远看起来小。调整使用宽屏模式时的深度。" #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -204,17 +204,17 @@ msgstr "" msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "" +msgstr "可以跟显示距离一起配合来实现舒适的深度和大小。" #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" -msgstr "" +msgstr "显示距离立刻切换" #: src/gtk/connected-device.ui:153 msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." -msgstr "" +msgstr "使用按钮记住当时的显示距离,以设成键盘快捷键。" #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -222,7 +222,7 @@ msgstr "" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." -msgstr "" +msgstr "示屏进行跟随前可以看得多远。" #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" @@ -233,10 +233,8 @@ msgid "XR Effect on/off shortcut" msgstr "" #: src/gtk/connected-device.ui:219 -msgid "" -"Quickly enable or disable the XR Effect. You may need to enable the effect " -"manually once in order to enable the shortcut." -msgstr "" +msgid "Pin the virtual display to the current position." +msgstr "将虚拟显示固定在当前位置。" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 @@ -248,8 +246,8 @@ msgid "Re-center display shortcut" msgstr "" #: src/gtk/connected-device.ui:248 -msgid "Pin the virtual display to the current position." -msgstr "" +msgid "Quickly toggle between two predefined distances." +msgstr "快速地在两个预定的距离之间切换。" #: src/gtk/connected-device.ui:276 msgid "Display distance shortcut" @@ -269,17 +267,17 @@ msgstr "" #: src/gtk/connected-device.ui:341 src/gtk/connected-device.ui:347 msgid "Advanced Settings" -msgstr "" +msgstr "高级设定" #: src/gtk/connected-device.ui:350 msgid "Find optimal display config" -msgstr "" +msgstr "寻找最佳显示设定" #: src/gtk/connected-device.ui:351 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." -msgstr "" +msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。" #: src/gtk/connected-device.ui:361 msgid "Use highest refresh rate" @@ -287,25 +285,26 @@ msgstr "" #: src/gtk/connected-device.ui:362 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "" +msgstr "刷新率可能会影响性能,禁用此功能即可手动设定。" #: src/gtk/connected-device.ui:372 msgid "Always primary display" -msgstr "" +msgstr "每次设置为主要显示" #: src/gtk/connected-device.ui:373 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "" +msgstr "连结时,自动将眼镜设置为主要显示。" #: src/gtk/connected-device.ui:383 msgid "Fast SBS mode switching" -msgstr "" +msgstr "快速 并排模式切换" #: src/gtk/connected-device.ui:384 msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" +"连结时,如果宽屏模式开启,眼镜会立即切换到 并排模式。这可能会导致不稳定。" #: src/gtk/connected-device.ui:394 msgid "Movement look-ahead" @@ -317,6 +316,8 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" +"透过预测头追踪位置来抵消输入延迟,预测时间超过渲染时间。" +"除非虚拟显示屏会落后,提前跳动,或者会抖,请尽量使用预设设定。" #: src/gtk/connected-device.ui:413 msgid "Default" @@ -346,15 +347,11 @@ msgstr "" #: src/gtk/license-dialog-content.ui:31 msgid "Request a token" -msgstr "" +msgstr "申请令牌" #: src/gtk/license-dialog-content.ui:39 msgid "Verify token" -msgstr "" - -#: src/gtk/license-dialog.ui:5 src/gtk/window.ui:91 -msgid "License Details" -msgstr "" +msgstr "令牌验证" #: src/gtk/no-device.ui:13 msgid "No device connected" @@ -362,25 +359,7 @@ msgstr "" #: src/gtk/no-device.ui:14 msgid "Breezy Desktop was unable to detect any supported XR devices." -msgstr "" - -#: src/gtk/no-device.ui:23 -msgid "Auto-enable XR effect" -msgstr "" - -#: src/gtk/no-device.ui:24 -msgid "" -"Automatically enable the Breezy Desktop XR effect when supported glasses are " -"connected." -msgstr "" - -#: src/gtk/no-device.ui:34 -msgid "Start in widescreen mode" -msgstr "" - -#: src/gtk/no-device.ui:35 -msgid "Widescreen mode is not supported for all glasses." -msgstr "" +msgstr "Breezy Desktop 无法检测到任何支援的 XR 设备。" #: src/gtk/no-driver.ui:13 msgid "No driver running" @@ -397,6 +376,13 @@ msgid "" "in the #troubleshooting channel on Discord.\n" " " msgstr "" +"\n" +" 如果您透过 AUR 安装,请确保运行推荐的后安装命令:\n" +" systemctl --user enable --now xr-driver.service\n" +"\n" +" 否则,请在 GitHub 上提交问题,或在 Discord 的 #troubleshooting 频道中创建新" +"主题。\n" +" " #: src/gtk/no-extension.ui:13 msgid "Breezy Desktop GNOME extension not ready" @@ -466,4 +452,4 @@ msgstr "" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "" +msgstr "关于BreezyDesktop" \ No newline at end of file From 36e723a45c23f7b9deee8f35627e08afb31d33d6 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:22:58 -0700 Subject: [PATCH 13/25] Fix zh_CN strings lost in the merge --- ui/po/zh_CN.po | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 3d9f7d1..1ec2406 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -233,8 +233,10 @@ msgid "XR Effect on/off shortcut" msgstr "" #: src/gtk/connected-device.ui:219 -msgid "Pin the virtual display to the current position." -msgstr "将虚拟显示固定在当前位置。" +msgid "" +"Quickly enable or disable the XR Effect. You may need to enable the effect " +"manually once in order to enable the shortcut." +msgstr "" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 @@ -246,8 +248,8 @@ msgid "Re-center display shortcut" msgstr "" #: src/gtk/connected-device.ui:248 -msgid "Quickly toggle between two predefined distances." -msgstr "快速地在两个预定的距离之间切换。" +msgid "Pin the virtual display to the current position." +msgstr "将虚拟显示固定在当前位置。" #: src/gtk/connected-device.ui:276 msgid "Display distance shortcut" @@ -255,7 +257,7 @@ msgstr "" #: src/gtk/connected-device.ui:277 msgid "Quickly toggle between two predefined distances." -msgstr "" +msgstr "快速地在两个预定的距离之间切换。" #: src/gtk/connected-device.ui:305 msgid "Toggle follow mode shortcut" @@ -353,6 +355,10 @@ msgstr "申请令牌" msgid "Verify token" msgstr "令牌验证" +#: src/gtk/license-dialog.ui:5 src/gtk/window.ui:91 +msgid "License Details" +msgstr "" + #: src/gtk/no-device.ui:13 msgid "No device connected" msgstr "" @@ -361,6 +367,25 @@ msgstr "" msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop 无法检测到任何支援的 XR 设备。" +#: src/gtk/no-device.ui:23 +msgid "Auto-enable XR effect" +msgstr "" + +#: src/gtk/no-device.ui:24 +msgid "" + +"Automatically enable the Breezy Desktop XR effect when supported glasses are " +"connected." +msgstr "" + +#: src/gtk/no-device.ui:34 +msgid "Start in widescreen mode" +msgstr "" + +#: src/gtk/no-device.ui:35 +msgid "Widescreen mode is not supported for all glasses." +msgstr "" + #: src/gtk/no-driver.ui:13 msgid "No driver running" msgstr "" From 829c9da3c7d6e5d53e8933c40f0c5a7f66438060 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:24:29 -0700 Subject: [PATCH 14/25] One more zh_CN fix --- ui/po/zh_CN.po | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 1ec2406..f07cef5 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -373,7 +373,6 @@ msgstr "" #: src/gtk/no-device.ui:24 msgid "" - "Automatically enable the Breezy Desktop XR effect when supported glasses are " "connected." msgstr "" From 584133017c8ab07faaea3a3f73ff0740ce951f8e Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:36:56 -0700 Subject: [PATCH 15/25] Revert zh_CN commits --- ui/po/zh_CN.po | 72 ++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 41 deletions(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index f07cef5..e97586d 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -24,11 +24,11 @@ msgstr "" #: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." -msgstr "您的设备目前不支援此功能。" +msgstr "" #: src/licensedialogcontent.py:63 msgid "Paid Tier Status" -msgstr "订阅等级状态" +msgstr "" #: src/licensedialogcontent.py:71 msgid "Feature Availability" @@ -49,7 +49,7 @@ msgstr "" #: src/licensefeaturerow.py:24 src/licensetierrow.py:30 #, python-brace-format msgid " ({time_remaining} remaining)" -msgstr " (剩下 {time_remaining})" +msgstr "" #: src/licensefeaturerow.py:32 msgid "Side-by-side mode (gaming)" @@ -57,19 +57,19 @@ msgstr "" #: src/licensefeaturerow.py:33 msgid "Smooth Follow (gaming)" -msgstr "平顺跟随(游戏)" +msgstr "" #: src/licensefeaturerow.py:34 msgid "Breezy Desktop (productivity)" -msgstr "Breezy Desktop (生产力)" +msgstr "" #: src/licensetierrow.py:24 msgid "Active" -msgstr "已订阅" +msgstr "" #: src/licensetierrow.py:24 msgid "Inactive" -msgstr "未订阅" +msgstr "" #: src/licensetierrow.py:41 #, python-brace-format @@ -86,7 +86,7 @@ msgstr "" #: src/licensetierrow.py:47 msgid "Paid through next renewal period" -msgstr "已付费至下个续订期" +msgstr "" #: src/licensetierrow.py:56 msgid "Gaming" @@ -106,7 +106,7 @@ msgstr "" #: src/licensetierrow.py:65 msgid "with lifetime access" -msgstr "终身会员" +msgstr "" #: src/licensetierrow.py:72 msgid "Monthly" @@ -148,7 +148,7 @@ msgstr "" #: src/gtk/connected-device.ui:31 msgid "General Settings" -msgstr "通用设定" +msgstr "" #: src/gtk/connected-device.ui:41 msgid "Features" @@ -172,15 +172,15 @@ msgstr "" #: src/gtk/connected-device.ui:67 msgid "Keep the virtual display near the center of your view." -msgstr "虚拟显示保持在视野中心。" +msgstr "" #: src/gtk/connected-device.ui:77 msgid "Curved display" -msgstr "曲面显示" +msgstr "" #: src/gtk/connected-device.ui:78 msgid "Switch between flat and curved displays." -msgstr "平板和曲面显示模式之间切换。" +msgstr "" #: src/gtk/connected-device.ui:91 msgid "Adjustments" @@ -194,7 +194,7 @@ msgstr "" msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." -msgstr "距离近看起来大,距离远看起来小。调整使用宽屏模式时的深度。" +msgstr "" #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -204,17 +204,17 @@ msgstr "" msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "可以跟显示距离一起配合来实现舒适的深度和大小。" +msgstr "" #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" -msgstr "显示距离立刻切换" +msgstr "" #: src/gtk/connected-device.ui:153 msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." -msgstr "使用按钮记住当时的显示距离,以设成键盘快捷键。" +msgstr "" #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -222,7 +222,7 @@ msgstr "" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." -msgstr "示屏进行跟随前可以看得多远。" +msgstr "" #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" @@ -249,7 +249,7 @@ msgstr "" #: src/gtk/connected-device.ui:248 msgid "Pin the virtual display to the current position." -msgstr "将虚拟显示固定在当前位置。" +msgstr "" #: src/gtk/connected-device.ui:276 msgid "Display distance shortcut" @@ -257,7 +257,7 @@ msgstr "" #: src/gtk/connected-device.ui:277 msgid "Quickly toggle between two predefined distances." -msgstr "快速地在两个预定的距离之间切换。" +msgstr "" #: src/gtk/connected-device.ui:305 msgid "Toggle follow mode shortcut" @@ -269,17 +269,17 @@ msgstr "" #: src/gtk/connected-device.ui:341 src/gtk/connected-device.ui:347 msgid "Advanced Settings" -msgstr "高级设定" +msgstr "" #: src/gtk/connected-device.ui:350 msgid "Find optimal display config" -msgstr "寻找最佳显示设定" +msgstr "" #: src/gtk/connected-device.ui:351 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." -msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。" +msgstr "" #: src/gtk/connected-device.ui:361 msgid "Use highest refresh rate" @@ -287,26 +287,25 @@ msgstr "" #: src/gtk/connected-device.ui:362 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "刷新率可能会影响性能,禁用此功能即可手动设定。" +msgstr "" #: src/gtk/connected-device.ui:372 msgid "Always primary display" -msgstr "每次设置为主要显示" +msgstr "" #: src/gtk/connected-device.ui:373 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "连结时,自动将眼镜设置为主要显示。" +msgstr "" #: src/gtk/connected-device.ui:383 msgid "Fast SBS mode switching" -msgstr "快速 并排模式切换" +msgstr "" #: src/gtk/connected-device.ui:384 msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"连结时,如果宽屏模式开启,眼镜会立即切换到 并排模式。这可能会导致不稳定。" #: src/gtk/connected-device.ui:394 msgid "Movement look-ahead" @@ -318,8 +317,6 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"透过预测头追踪位置来抵消输入延迟,预测时间超过渲染时间。" -"除非虚拟显示屏会落后,提前跳动,或者会抖,请尽量使用预设设定。" #: src/gtk/connected-device.ui:413 msgid "Default" @@ -349,11 +346,11 @@ msgstr "" #: src/gtk/license-dialog-content.ui:31 msgid "Request a token" -msgstr "申请令牌" +msgstr "" #: src/gtk/license-dialog-content.ui:39 msgid "Verify token" -msgstr "令牌验证" +msgstr "" #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:91 msgid "License Details" @@ -365,7 +362,7 @@ msgstr "" #: src/gtk/no-device.ui:14 msgid "Breezy Desktop was unable to detect any supported XR devices." -msgstr "Breezy Desktop 无法检测到任何支援的 XR 设备。" +msgstr "" #: src/gtk/no-device.ui:23 msgid "Auto-enable XR effect" @@ -400,13 +397,6 @@ msgid "" "in the #troubleshooting channel on Discord.\n" " " msgstr "" -"\n" -" 如果您透过 AUR 安装,请确保运行推荐的后安装命令:\n" -" systemctl --user enable --now xr-driver.service\n" -"\n" -" 否则,请在 GitHub 上提交问题,或在 Discord 的 #troubleshooting 频道中创建新" -"主题。\n" -" " #: src/gtk/no-extension.ui:13 msgid "Breezy Desktop GNOME extension not ready" @@ -476,4 +466,4 @@ msgstr "" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "关于BreezyDesktop" \ No newline at end of file +msgstr "" From 5c8c092d3cfccc11c3cfb8f62d5e246a31248e30 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 15 Aug 2024 22:40:55 -0700 Subject: [PATCH 16/25] LLM-generated zh_CN translation --- ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo | Bin 366 -> 9148 bytes ui/po/zh_CN.po | 193 +++++++++++--------- 2 files changed, 108 insertions(+), 85 deletions(-) diff --git a/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo index 1c28de91804d7c92ce0d91f4a5d673887fee7910..47c3f80499ad1c85424188e99403c4a8b30fea98 100644 GIT binary patch literal 9148 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 ADgXcg delta 66 xcmdnv{*KAwo)F7a1|VPrVi_P-0b*t#)&XJ=umEBcprj>`2C0F8&96kw7y%Od2DJbH diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index e97586d..0ee0693 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -20,213 +20,213 @@ msgstr "" msgid "" "Switches your glasses into side-by-side mode and doubles the width of the " "display." -msgstr "" +msgstr "切换到并排模式,并将显示宽度翻倍。" #: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." -msgstr "" +msgstr "您的设备目前不支持此功能。" #: src/licensedialogcontent.py:63 msgid "Paid Tier Status" -msgstr "" +msgstr "付费层状态" #: src/licensedialogcontent.py:71 msgid "Feature Availability" -msgstr "" +msgstr "功能可用性" #: src/licensefeaturerow.py:15 src/shortcutdialog.py:107 msgid "Disabled" -msgstr "" +msgstr "已禁用" #: src/licensefeaturerow.py:18 msgid "In trial" -msgstr "" +msgstr "试用中" #: src/licensefeaturerow.py:18 msgid "Enabled" -msgstr "" +msgstr "已启用" #: src/licensefeaturerow.py:24 src/licensetierrow.py:30 #, python-brace-format msgid " ({time_remaining} remaining)" -msgstr "" +msgstr " ({time_remaining} 剩余)" #: src/licensefeaturerow.py:32 msgid "Side-by-side mode (gaming)" -msgstr "" +msgstr "并排模式(游戏)" #: src/licensefeaturerow.py:33 msgid "Smooth Follow (gaming)" -msgstr "" +msgstr "平滑跟随(游戏)" #: src/licensefeaturerow.py:34 msgid "Breezy Desktop (productivity)" -msgstr "" +msgstr "清爽桌面(生产力)" #: src/licensetierrow.py:24 msgid "Active" -msgstr "" +msgstr "激活" #: src/licensetierrow.py:24 msgid "Inactive" -msgstr "" +msgstr "未激活" #: src/licensetierrow.py:41 -#, python-brace-format +#, fuzzy, python-brace-format msgid "${amount} USD" -msgstr "" +msgstr "${amount} 美元" #: src/licensetierrow.py:43 msgid " to renew" -msgstr "" +msgstr "续订" #: src/licensetierrow.py:45 msgid " to upgrade" -msgstr "" +msgstr "升级" #: src/licensetierrow.py:47 msgid "Paid through next renewal period" -msgstr "" +msgstr "已付费至下次续订期" #: src/licensetierrow.py:56 msgid "Gaming" -msgstr "" +msgstr "游戏" #: src/licensetierrow.py:57 msgid "Productivity" -msgstr "" +msgstr "生产力" #: src/licensetierrow.py:63 msgid " - renewing monthly" -msgstr "" +msgstr " - 每月续订" #: src/licensetierrow.py:64 msgid " - renewing yearly" -msgstr "" +msgstr " - 每年续订" #: src/licensetierrow.py:65 msgid "with lifetime access" -msgstr "" +msgstr "终身访问" #: src/licensetierrow.py:72 msgid "Monthly" -msgstr "" +msgstr "每月" #: src/licensetierrow.py:73 msgid "Yearly" -msgstr "" +msgstr "每年" #: src/licensetierrow.py:74 msgid "Lifetime" -msgstr "" +msgstr "终身" #: src/time.py:14 msgid "less than an hour" -msgstr "" +msgstr "不到一个小时" #: src/time.py:17 msgid "1 hour" -msgstr "" +msgstr "1小时" #: src/time.py:17 #, python-brace-format msgid "{time_remaining} hours" -msgstr "" +msgstr "{time_remaining} 小时" #: src/time.py:20 msgid "1 day" -msgstr "" +msgstr "1天" #: src/time.py:20 #, python-brace-format msgid "{time_remaining} days" -msgstr "" +msgstr "{time_remaining} 天" #: src/gtk/connected-device.ui:21 msgid "connected" -msgstr "" +msgstr "已连接" #: src/gtk/connected-device.ui:31 msgid "General Settings" -msgstr "" +msgstr "通用设置" #: src/gtk/connected-device.ui:41 msgid "Features" -msgstr "" +msgstr "功能" #: src/gtk/connected-device.ui:44 msgid "XR effect" -msgstr "" +msgstr "XR 效果" #: src/gtk/connected-device.ui:45 msgid "Enables the Breezy Desktop XR effect." -msgstr "" +msgstr "启用 Breezy Desktop XR 效果。" #: src/gtk/connected-device.ui:55 msgid "Widescreen mode" -msgstr "" +msgstr "宽屏模式" #: src/gtk/connected-device.ui:66 msgid "Follow mode" -msgstr "" +msgstr "跟随模式" #: src/gtk/connected-device.ui:67 msgid "Keep the virtual display near the center of your view." -msgstr "" +msgstr "保持虚拟显示屏在视野中心。" #: src/gtk/connected-device.ui:77 msgid "Curved display" -msgstr "" +msgstr "曲线显示屏" #: src/gtk/connected-device.ui:78 msgid "Switch between flat and curved displays." -msgstr "" +msgstr "在平板和曲线显示屏之间切换。" #: src/gtk/connected-device.ui:91 msgid "Adjustments" -msgstr "" +msgstr "调整" #: src/gtk/connected-device.ui:94 msgid "Display distance" -msgstr "" +msgstr "显示距离" #: src/gtk/connected-device.ui:95 msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." -msgstr "" +msgstr "距离近看起来大,距离远看起来小。当使用宽屏模式时控制深度。" #: src/gtk/connected-device.ui:123 msgid "Display size" -msgstr "" +msgstr "显示大小" #: src/gtk/connected-device.ui:124 msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "" +msgstr "结合显示距离来实现舒适的深度和大小级别。" #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" -msgstr "" +msgstr "显示切换距离" #: src/gtk/connected-device.ui:153 msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." -msgstr "" +msgstr "使用按钮捕获当前的显示距离,用于键盘快捷键。" #: src/gtk/connected-device.ui:178 msgid "Follow threshold" -msgstr "" +msgstr "跟随阈值" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." -msgstr "" +msgstr "您可以看多远才能让显示屏跟随。" #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" -msgstr "" +msgstr "键盘快捷键" #: src/gtk/connected-device.ui:218 msgid "XR Effect on/off shortcut" @@ -241,19 +241,19 @@ msgstr "" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 msgid "Change" -msgstr "" +msgstr "更改" #: src/gtk/connected-device.ui:247 msgid "Re-center display shortcut" -msgstr "" +msgstr "重新居中显示快捷键" #: src/gtk/connected-device.ui:248 msgid "Pin the virtual display to the current position." -msgstr "" +msgstr "将虚拟显示屏固定在当前位置。" #: src/gtk/connected-device.ui:276 msgid "Display distance shortcut" -msgstr "" +msgstr "显示距离快捷键" #: src/gtk/connected-device.ui:277 msgid "Quickly toggle between two predefined distances." @@ -265,51 +265,52 @@ msgstr "" #: src/gtk/connected-device.ui:306 msgid "Quickly toggle follow mode." -msgstr "" +msgstr "快速切换跟随模式。" #: src/gtk/connected-device.ui:341 src/gtk/connected-device.ui:347 msgid "Advanced Settings" -msgstr "" +msgstr "高级设置" #: src/gtk/connected-device.ui:350 msgid "Find optimal display config" -msgstr "" +msgstr "寻找最佳显示配置" #: src/gtk/connected-device.ui:351 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." -msgstr "" +msgstr "当插入时,自动修改眼镜显示配置以获得最大分辨率和最佳缩放。" #: src/gtk/connected-device.ui:361 msgid "Use highest refresh rate" -msgstr "" +msgstr "使用最高刷新率" #: src/gtk/connected-device.ui:362 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "" +msgstr "刷新率可能会影响性能,禁用此功能可手动设置。" #: src/gtk/connected-device.ui:372 msgid "Always primary display" -msgstr "" +msgstr "始终为主要显示" #: src/gtk/connected-device.ui:373 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "" +msgstr "当插入时,自动将眼镜设置为主要显示。" #: src/gtk/connected-device.ui:383 msgid "Fast SBS mode switching" -msgstr "" +msgstr "快速 SBS 模式切换" #: src/gtk/connected-device.ui:384 msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" +"当插入时,如果宽屏模式开启,眼镜会立即切换到 SBS 模式。这可能会导致不稳定。" #: src/gtk/connected-device.ui:394 msgid "Movement look-ahead" -msgstr "" +msgstr "移动预测" #: src/gtk/connected-device.ui:395 msgid "" @@ -317,10 +318,12 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" +"通过预测头追踪位置来抵消输入延迟,预测时间超过渲染时间。除非虚拟显示屏落后于" +"您的头移动、跳到或非常抖动,否则请使用默认值。" #: src/gtk/connected-device.ui:413 msgid "Default" -msgstr "" +msgstr "默认" #: src/gtk/connected-device.ui:425 msgid "Text Scaling" @@ -332,37 +335,39 @@ msgstr "" #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" -msgstr "" +msgstr "Breezy Desktop GNOME 无效设置" #: src/gtk/failed-verification.ui:14 msgid "" "Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " "script. Report this issue if it persists." msgstr "" +"您的 Breezy GNOME 设置无效或不完整。请重新运行设置脚本。如果问题仍然存在,请" +"报告此问题。" #: src/gtk/license-dialog-content.ui:15 msgid "Donate" -msgstr "" +msgstr "捐赠" #: src/gtk/license-dialog-content.ui:31 msgid "Request a token" -msgstr "" +msgstr "请求令牌" #: src/gtk/license-dialog-content.ui:39 msgid "Verify token" -msgstr "" +msgstr "验证令牌" #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:91 msgid "License Details" -msgstr "" +msgstr "许可证详细信息" #: src/gtk/no-device.ui:13 msgid "No device connected" -msgstr "" +msgstr "未连接设备" #: src/gtk/no-device.ui:14 msgid "Breezy Desktop was unable to detect any supported XR devices." -msgstr "" +msgstr "Breezy Desktop 无法检测到任何支持的 XR 设备。" #: src/gtk/no-device.ui:23 msgid "Auto-enable XR effect" @@ -384,7 +389,7 @@ msgstr "" #: src/gtk/no-driver.ui:13 msgid "No driver running" -msgstr "" +msgstr "未运行驱动程序" #: src/gtk/no-driver.ui:14 msgid "" @@ -397,20 +402,29 @@ msgid "" "in the #troubleshooting channel on Discord.\n" " " msgstr "" +"\n" +" 如果您通过 AUR 安装,请确保运行推荐的后安装命令:\n" +" systemctl --user enable --now xr-driver.service\n" +"\n" +" 否则,请在 GitHub 上提交问题,或在 Discord 的 #troubleshooting 频道中创建新" +"主题。\n" +" " #: src/gtk/no-extension.ui:13 msgid "Breezy Desktop GNOME extension not ready" -msgstr "" +msgstr "Breezy Desktop GNOME 扩展未准备好" #: src/gtk/no-extension.ui:14 msgid "" "If you have just run the setup, then you may need to log out and back in to " "use it. Otherwise, please follow the Breezy GNOME setup instructions." msgstr "" +"如果您刚运行设置,则可能需要注销并重新登录才能使用它。否则,请按照 Breezy " +"GNOME 设置说明进行操作。" #: src/gtk/no-license.ui:13 msgid "No license file was found" -msgstr "" +msgstr "未找到许可证文件" #: src/gtk/no-license.ui:14 msgid "" @@ -427,18 +441,27 @@ msgid "" "lifetime access).\n" " " msgstr "" +"\n" +" 首次使用 Breezy Desktop 时,需要互联网连接以获取设备许可证。\n" +" \n" +" 不要担心,您无需立即捐赠。如果您尚未捐赠,您将获得试用许可证,以便您可以决" +"定 Breezy Desktop 是否适合您的需求。 \n" +" \n" +" 获得许可证后,无论是试用还是付费,您都可以离线使用 Breezy Desktop(直到功能" +"过期,如果您选择了终身访问,则可以无限期使用)。\n" +" " #: src/gtk/no-license.ui:27 msgid "Try Again" -msgstr "" +msgstr "重新尝试" #: src/gtk/shortcut-dialog.ui:5 msgid "Assign Keyboard Shortcut" -msgstr "" +msgstr "分配键盘快捷键" #: src/gtk/shortcut-dialog.ui:20 msgid "Press your keyboard shortcut or 'Backspace' to disable..." -msgstr "" +msgstr "按下键盘快捷键或 'Backspace' 禁用..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" @@ -446,24 +469,24 @@ msgstr "" #: src/gtk/window.ui:23 msgid "Menu" -msgstr "" +msgstr "菜单" #: src/gtk/window.ui:43 msgid "Some features expire soon" -msgstr "" +msgstr "某些功能即将过期" #: src/gtk/window.ui:51 src/gtk/window.ui:76 msgid "View details" -msgstr "" +msgstr "查看详细信息" #: src/gtk/window.ui:68 msgid "Productivity features are disabled" -msgstr "" +msgstr "生产力功能已禁用" #: src/gtk/window.ui:95 msgid "Force Reset" -msgstr "" +msgstr "强制重置" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "" +msgstr "关于BreezyDesktop" From 5f52ea7caa9de2fac19c94cdd8e61e1a8fffc1a3 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 09:59:34 -0700 Subject: [PATCH 17/25] Update zh_CN translations --- ui/po/zh_CN.po | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 0ee0693..ed8847a 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -24,11 +24,11 @@ msgstr "切换到并排模式,并将显示宽度翻倍。" #: src/connecteddevice.py:18 msgid "This feature is not currently supported for your device." -msgstr "您的设备目前不支持此功能。" +msgstr "您的设备目前不支援此功能。" #: src/licensedialogcontent.py:63 msgid "Paid Tier Status" -msgstr "付费层状态" +msgstr "订阅等级状态" #: src/licensedialogcontent.py:71 msgid "Feature Availability" @@ -49,7 +49,7 @@ msgstr "已启用" #: src/licensefeaturerow.py:24 src/licensetierrow.py:30 #, python-brace-format msgid " ({time_remaining} remaining)" -msgstr " ({time_remaining} 剩余)" +msgstr " (剩下 {time_remaining})" #: src/licensefeaturerow.py:32 msgid "Side-by-side mode (gaming)" @@ -57,19 +57,19 @@ msgstr "并排模式(游戏)" #: src/licensefeaturerow.py:33 msgid "Smooth Follow (gaming)" -msgstr "平滑跟随(游戏)" +msgstr "平顺跟随(游戏)" #: src/licensefeaturerow.py:34 msgid "Breezy Desktop (productivity)" -msgstr "清爽桌面(生产力)" +msgstr "Breezy Desktop (生产力)" #: src/licensetierrow.py:24 msgid "Active" -msgstr "激活" +msgstr "已订阅" #: src/licensetierrow.py:24 msgid "Inactive" -msgstr "未激活" +msgstr "未订阅" #: src/licensetierrow.py:41 #, fuzzy, python-brace-format @@ -86,7 +86,7 @@ msgstr "升级" #: src/licensetierrow.py:47 msgid "Paid through next renewal period" -msgstr "已付费至下次续订期" +msgstr "已付费至下个续订期" #: src/licensetierrow.py:56 msgid "Gaming" @@ -106,7 +106,7 @@ msgstr " - 每年续订" #: src/licensetierrow.py:65 msgid "with lifetime access" -msgstr "终身访问" +msgstr "终身会员" #: src/licensetierrow.py:72 msgid "Monthly" @@ -148,7 +148,7 @@ msgstr "已连接" #: src/gtk/connected-device.ui:31 msgid "General Settings" -msgstr "通用设置" +msgstr "通用设定" #: src/gtk/connected-device.ui:41 msgid "Features" @@ -172,15 +172,15 @@ msgstr "跟随模式" #: src/gtk/connected-device.ui:67 msgid "Keep the virtual display near the center of your view." -msgstr "保持虚拟显示屏在视野中心。" +msgstr "虚拟显示保持在视野中心。" #: src/gtk/connected-device.ui:77 msgid "Curved display" -msgstr "曲线显示屏" +msgstr "曲面显示" #: src/gtk/connected-device.ui:78 msgid "Switch between flat and curved displays." -msgstr "在平板和曲线显示屏之间切换。" +msgstr "平板和曲面显示模式之间切换。" #: src/gtk/connected-device.ui:91 msgid "Adjustments" @@ -194,7 +194,7 @@ msgstr "显示距离" msgid "" "Closer appears larger, further appears smaller. Controls depth when in " "widescreen mode." -msgstr "距离近看起来大,距离远看起来小。当使用宽屏模式时控制深度。" +msgstr "距离近看起来大,距离远看起来小。调整使用宽屏模式时的深度。" #: src/gtk/connected-device.ui:123 msgid "Display size" @@ -204,17 +204,17 @@ msgstr "显示大小" msgid "" "Combine with display distance to achieve a comfortable level of depth and " "size." -msgstr "结合显示距离来实现舒适的深度和大小级别。" +msgstr "可以跟显示距离一起配合来实现舒适的深度和大小。" #: src/gtk/connected-device.ui:152 msgid "Display toggle distances" -msgstr "显示切换距离" +msgstr "显示距离立刻切换" #: src/gtk/connected-device.ui:153 msgid "" "Use the buttons to capture the current display distance for use with the " "keyboard shortcut." -msgstr "使用按钮捕获当前的显示距离,用于键盘快捷键。" +msgstr "使用按钮记住当时的显示距离,以设成键盘快捷键。" #: src/gtk/connected-device.ui:178 msgid "Follow threshold" @@ -222,7 +222,7 @@ msgstr "跟随阈值" #: src/gtk/connected-device.ui:179 msgid "How far away you can look before the display follows." -msgstr "您可以看多远才能让显示屏跟随。" +msgstr "示屏进行跟随前可以看得多远。" #: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 msgid "Keyboard Shortcuts" @@ -249,7 +249,7 @@ msgstr "重新居中显示快捷键" #: src/gtk/connected-device.ui:248 msgid "Pin the virtual display to the current position." -msgstr "将虚拟显示屏固定在当前位置。" +msgstr "将虚拟显示固定在当前位置。" #: src/gtk/connected-device.ui:276 msgid "Display distance shortcut" @@ -257,7 +257,7 @@ msgstr "显示距离快捷键" #: src/gtk/connected-device.ui:277 msgid "Quickly toggle between two predefined distances." -msgstr "" +msgstr "快速地在两个预定的距离之间切换。" #: src/gtk/connected-device.ui:305 msgid "Toggle follow mode shortcut" @@ -269,17 +269,17 @@ msgstr "快速切换跟随模式。" #: src/gtk/connected-device.ui:341 src/gtk/connected-device.ui:347 msgid "Advanced Settings" -msgstr "高级设置" +msgstr "高级设定" #: src/gtk/connected-device.ui:350 msgid "Find optimal display config" -msgstr "寻找最佳显示配置" +msgstr "寻找最佳显示设定" #: src/gtk/connected-device.ui:351 msgid "" "Automatically modify the glasses display configuration for maximum " "resolution and best scaling when plugged in." -msgstr "当插入时,自动修改眼镜显示配置以获得最大分辨率和最佳缩放。" +msgstr "连接时,可以自动修改眼镜显示设定以表现出最大解析度和最佳的对比。" #: src/gtk/connected-device.ui:361 msgid "Use highest refresh rate" @@ -287,26 +287,26 @@ msgstr "使用最高刷新率" #: src/gtk/connected-device.ui:362 msgid "Refresh rate may affect performance, disable this to set it manually." -msgstr "刷新率可能会影响性能,禁用此功能可手动设置。" +msgstr "刷新率可能会影响性能,禁用此功能即可手动设定。" #: src/gtk/connected-device.ui:372 msgid "Always primary display" -msgstr "始终为主要显示" +msgstr "每次设置为主要显示" #: src/gtk/connected-device.ui:373 msgid "Automatically set the glasses as the primary display when plugged in." -msgstr "当插入时,自动将眼镜设置为主要显示。" +msgstr "连结时,自动将眼镜设置为主要显示。" #: src/gtk/connected-device.ui:383 msgid "Fast SBS mode switching" -msgstr "快速 SBS 模式切换" +msgstr "快速 并排模式切换" #: src/gtk/connected-device.ui:384 msgid "" "Switches glasses to SBS mode immediately when plugged in, if widescreen mode " "is on. May cause instability." msgstr "" -"当插入时,如果宽屏模式开启,眼镜会立即切换到 SBS 模式。这可能会导致不稳定。" +"连结时,如果宽屏模式开启,眼镜会立即切换到 并排模式。这可能会导致不稳定。" #: src/gtk/connected-device.ui:394 msgid "Movement look-ahead" @@ -318,8 +318,8 @@ msgid "" "time. Stick with default unless virtual display drags behind your head " "movements, jumps ahead, or is very shaky." msgstr "" -"通过预测头追踪位置来抵消输入延迟,预测时间超过渲染时间。除非虚拟显示屏落后于" -"您的头移动、跳到或非常抖动,否则请使用默认值。" +"透过预测头追踪位置来抵消输入延迟,预测时间超过渲染时间。" +"除非虚拟显示屏会落后,提前跳动,或者会抖,请尽量使用预设设定。" #: src/gtk/connected-device.ui:413 msgid "Default" @@ -351,11 +351,11 @@ msgstr "捐赠" #: src/gtk/license-dialog-content.ui:31 msgid "Request a token" -msgstr "请求令牌" +msgstr "申请令牌" #: src/gtk/license-dialog-content.ui:39 msgid "Verify token" -msgstr "验证令牌" +msgstr "令牌验证" #: src/gtk/license-dialog.ui:5 src/gtk/window.ui:91 msgid "License Details" @@ -367,7 +367,7 @@ msgstr "未连接设备" #: src/gtk/no-device.ui:14 msgid "Breezy Desktop was unable to detect any supported XR devices." -msgstr "Breezy Desktop 无法检测到任何支持的 XR 设备。" +msgstr "Breezy Desktop 无法检测到任何支援的 XR 设备。" #: src/gtk/no-device.ui:23 msgid "Auto-enable XR effect" @@ -403,7 +403,7 @@ msgid "" " " msgstr "" "\n" -" 如果您通过 AUR 安装,请确保运行推荐的后安装命令:\n" +" 如果您透过 AUR 安装,请确保运行推荐的后安装命令:\n" " systemctl --user enable --now xr-driver.service\n" "\n" " 否则,请在 GitHub 上提交问题,或在 Discord 的 #troubleshooting 频道中创建新" @@ -489,4 +489,4 @@ msgstr "强制重置" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "关于BreezyDesktop" +msgstr "关于BreezyDesktop" \ No newline at end of file From 779127b3e68a7551a6b5cc35acfab331b49532cd Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:49:47 -0700 Subject: [PATCH 18/25] Add zh_CN string that was missed --- ui/po/zh_CN.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index ed8847a..94a8bda 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -261,7 +261,7 @@ msgstr "快速地在两个预定的距离之间切换。" #: src/gtk/connected-device.ui:305 msgid "Toggle follow mode shortcut" -msgstr "" +msgstr "切换跟随模式快捷键" #: src/gtk/connected-device.ui:306 msgid "Quickly toggle follow mode." From c2c5136ddcd4b2b2da8cfcee4c42b952b42f815d Mon Sep 17 00:00:00 2001 From: Eduardo Moreno Date: Wed, 23 Oct 2024 20:02:18 +0200 Subject: [PATCH 19/25] Update es.po (#66) --- ui/po/es.po | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ui/po/es.po b/ui/po/es.po index e941058..2a789b3 100644 --- a/ui/po/es.po +++ b/ui/po/es.po @@ -238,13 +238,15 @@ msgstr "Atajos de teclado" #: src/gtk/connected-device.ui:218 msgid "XR Effect on/off shortcut" -msgstr "" +msgstr "Atajo encendido/apagado Efecto XR" #: src/gtk/connected-device.ui:219 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." msgstr "" +"Activa o desactiva rápidamente el Efecto XR. Es posible que necesites activar " +"el efecto manualmente una vez para habilitar el atajo. #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 @@ -345,11 +347,11 @@ msgstr "Predeterminado" #: src/gtk/connected-device.ui:425 msgid "Text Scaling" -msgstr "" +msgstr "Escalado de Texto" #: src/gtk/connected-device.ui:426 msgid "Scaling text below 1.0 will simulate a higher resolution display" -msgstr "" +msgstr "Escalando el texto por debajo de 1.0 simulará una pantalla de mayor resolución" #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" @@ -388,24 +390,24 @@ msgid "Breezy Desktop was unable to detect any supported XR devices." msgstr "Breezy Desktop no pudo detectar ningún dispositivo XR compatible." #: src/gtk/no-device.ui:23 -#, fuzzy msgid "Auto-enable XR effect" -msgstr "Efecto XR" +msgstr "Auto-activar efecto XR" #: src/gtk/no-device.ui:24 msgid "" "Automatically enable the Breezy Desktop XR effect when supported glasses are " "connected." msgstr "" +"Habilita automáticamente el efecto Breezy Desktop XR cuando se conectan gafas " +"compatibles. #: src/gtk/no-device.ui:34 -#, fuzzy msgid "Start in widescreen mode" -msgstr "Modo pantalla ancha" +msgstr "Empezar en modo pantalla ancha" #: src/gtk/no-device.ui:35 msgid "Widescreen mode is not supported for all glasses." -msgstr "" +msgstr "El modo pantalla ancha no está soportado en todas las gafas." #: src/gtk/no-driver.ui:13 msgid "No driver running" From 699a925f19b4eee5ccdf764d037bab89b48002ab Mon Sep 17 00:00:00 2001 From: Wayne Heaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:32:29 -0700 Subject: [PATCH 20/25] zh_CN.po (#68) remaining untranslated strings added Co-authored-by: qsheng --- ui/po/zh_CN.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 94a8bda..6be3761 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -230,13 +230,13 @@ msgstr "键盘快捷键" #: src/gtk/connected-device.ui:218 msgid "XR Effect on/off shortcut" -msgstr "" +msgstr "XR效果 开/关 快捷键" #: src/gtk/connected-device.ui:219 msgid "" "Quickly enable or disable the XR Effect. You may need to enable the effect " "manually once in order to enable the shortcut." -msgstr "" +msgstr "快速将XR效果打开/关闭。 效果可能需要手动开一次才能设成快捷键" #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 @@ -327,11 +327,11 @@ msgstr "默认" #: src/gtk/connected-device.ui:425 msgid "Text Scaling" -msgstr "" +msgstr "字体大小比例" #: src/gtk/connected-device.ui:426 msgid "Scaling text below 1.0 will simulate a higher resolution display" -msgstr "" +msgstr "字体少于1.0则模拟解析度高的显示" #: src/gtk/failed-verification.ui:13 msgid "Breezy Desktop GNOME invalid setup" @@ -371,21 +371,21 @@ msgstr "Breezy Desktop 无法检测到任何支援的 XR 设备。" #: src/gtk/no-device.ui:23 msgid "Auto-enable XR effect" -msgstr "" +msgstr "自动启动XR效果" #: src/gtk/no-device.ui:24 msgid "" "Automatically enable the Breezy Desktop XR effect when supported glasses are " "connected." -msgstr "" +msgstr "当支援的设备已连接,将BREEZY DESKTOP XR效果自动启动" #: src/gtk/no-device.ui:34 msgid "Start in widescreen mode" -msgstr "" +msgstr "使用宽屏模式以启动软件" #: src/gtk/no-device.ui:35 msgid "Widescreen mode is not supported for all glasses." -msgstr "" +msgstr "宽屏模式不支援每一个型号的XR眼睛" #: src/gtk/no-driver.ui:13 msgid "No driver running" @@ -465,7 +465,7 @@ msgstr "按下键盘快捷键或 'Backspace' 禁用..." #: src/gtk/window.ui:10 msgid "Breezy Desktop" -msgstr "" +msgstr "Breezy Desktop" #: src/gtk/window.ui:23 msgid "Menu" @@ -489,4 +489,4 @@ msgstr "强制重置" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "关于BreezyDesktop" \ No newline at end of file +msgstr "关于BreezyDesktop" From f7e09a53ca6ef4b33fa58e06303e314e05a4f26f Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:32:23 -0700 Subject: [PATCH 21/25] Fix es.po errors, update mo files --- ui/po/breezydesktop.pot | 2 +- ui/po/es.po | 4 ++-- ui/po/mo/es/LC_MESSAGES/breezydesktop.mo | Bin 10518 -> 11572 bytes ui/po/mo/ja/LC_MESSAGES/breezydesktop.mo | Bin 12583 -> 12741 bytes ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo | Bin 9148 -> 10151 bytes 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/po/breezydesktop.pot b/ui/po/breezydesktop.pot index 2c451ec..9e6475c 100644 --- a/ui/po/breezydesktop.pot +++ b/ui/po/breezydesktop.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-22 13:27-0700\n" +"POT-Creation-Date: 2024-10-23 11:32-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/ui/po/es.po b/ui/po/es.po index 2a789b3..1ab354e 100644 --- a/ui/po/es.po +++ b/ui/po/es.po @@ -246,7 +246,7 @@ msgid "" "manually once in order to enable the shortcut." msgstr "" "Activa o desactiva rápidamente el Efecto XR. Es posible que necesites activar " -"el efecto manualmente una vez para habilitar el atajo. +"el efecto manualmente una vez para habilitar el atajo." #: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 #: src/gtk/connected-device.ui:296 src/gtk/connected-device.ui:325 @@ -399,7 +399,7 @@ msgid "" "connected." msgstr "" "Habilita automáticamente el efecto Breezy Desktop XR cuando se conectan gafas " -"compatibles. +"compatibles." #: src/gtk/no-device.ui:34 msgid "Start in widescreen mode" diff --git a/ui/po/mo/es/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/es/LC_MESSAGES/breezydesktop.mo index 7501bc79339d666fcdafcf5c8824e94aa164c120..e63ac9c664b28ff5967ac98e3662e74de00ba9db 100644 GIT binary patch delta 3157 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 M`t-!(!q>?k0lF~8VgLXD diff --git a/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo index 47c3f80499ad1c85424188e99403c4a8b30fea98..1ba43f575ddb1a5175726cacb5e8cde3af24fcd8 100644 GIT binary patch delta 3867 zcmZ9Odr(x@8NiRI7^^WBMSS9gM4I|QO^nqviS-$yjSr0Rk+jJQ7gz(k4lG)AoJEZa z@>uku5Jap>)M^EERS;N-oo1TRnLg~K%}hGBlkB~_+n0aTcE+~T_V?|*5bPPg{hf2q z<9nW?-LIZs?Z2Ni=$NAE$V6nxK&8rIK_Wl2nkSSRJ3y%;FbXdYRcaF7jbTcSf>&S? z{1`H&K7;(JFZdY@{|e=(hfvo4%Naj4JigAa#?bjX6X|daoCC+gl`t9RzzuL0^ul{^ zDO~iVQX^m)6ocyEv+z1hhxg&jZ~%+MfCW&_Sq4|bCfKF?SV)IIb@3^shQON;XVq;u z65fI1;O7wC>hDktOkh$Do&aTEI-CNh!W6g$j)wVA&f5bgz=Mz=s55XR`c;ebp$E!= zcVz{09K zh=+Ml6z_!^JPK#QAe;}wP$H1ZDH7soa3@>^W!)!GJbVPl!(`l-RLz27*mn3Gco53` z&qfn}$@v$25Ca}T3GFBn|16vix5D)>3w{K}fKhCk2Q?@PH$f@B5-9uq@GV#mW&J~k z1IUXQG6K$qsVT%?6tCff9IzEi3Vg5_?smREfD)-k5F6Dnv|x+UAZM$&a1OWQbr@m1 zk3%mr-in*z=~%9oD1P4IVkmmn`JK*YD7kV$$yF{Sipm4UuzgTAR6_B{fa3WNp%~H) z#jtyD35>vZ;dHLX^RNm^k>7@?@R#r#(Eor=8l4orz6j^Tcm&`E#=D{9@YnDP95>lE z;4YMPpFuJ3_s;hi6odZZjE8G>O2$E1{~VO{^C30lSBvRL3UZ-@s1(Y=8b~x%9Tbn- z9EKd;fwJzm&iFo@%J@&P5{|(uQFPYfW%vx^b|`v&2b1Og|Cx>)lz=(Hp$;DEf!r@Qbw?&5&(65e52VR8|>YqbV zJQ{Onz%(catah01a4*Dm)d0owZdeE-P;$PW*GLR3hhkVG6g@wMa{eEnUp)E?ouzPK zhCT5bl#OpXV>g`1csrD8J_p6K+b|K{g?r#V=ldG8$^Oky6cs`#&RviTqylgNTp;=H zZF8NDST0Qr>TPe(c^UZ{@;0&vc?*%IArfw!RtdC)p|CYr-UcGN4lbs12u0>uzB-g7EX>#>Qe>^HO zmL{p_^M3{Xg~)V-DE75c^d#iHEs@TXy#u%ok$+62twgrOdv@5LqrVCniBM9?g$zL? zb z1sR0QLB55^yTY@hHrq?>r*OmfZ+nA;4xw(3_Pc1C* zc?(@WcebmbV5eqJ8~+|LDMQH?f_d-61&{sW)3MKAE~ z&}L`O(ssBD3bbN(VM&3@r)w@P-<_Awu|;~Zx1hx5_IkwPZ3V8K#&42VrTAP$KGD6y zoue0L7wH6{(3_(h>7!!9{z3Nscth5by|(3X7l;z z`LkA2joEq5JX*<@a43jDX6sF>wf4)>eWD@KWf-4~&rDrJB6jW6mgvRr`MlfI<3r6z zn6NJ)aLqV4VR@n*72{VEk~2BXYQMtqa+qUc`zgydsr_W+TvxcGG?S@J;Y9tg(jF5{_YmkEYN_lIJQrO|VHt?~+~zwS~( zO=VgHaeoN!tg;%j=aN;`9;Gtwr%haEC);cZks5m^6>i_OXo&l8LpEC{d!)Gg zRe-a!pGQ(7POa-{FZPzf*|fKl94DI3n{5FuMfg^Q@t?HuQtIQ=H!h2|w1q{7q*ZPh(K1~lMax=^$^+xs6ng0VKfoI+T delta 2791 zcmZA2d2AGA7{~FK0=3jup&U|e%N8goO0|NBST8DyiXtN7QPFr{#3+eI6OFoU0o~G5 zhf*jl1X5@#xTUmV+b-MHzto_K8qZ)nca9A)Dp7(_gWn%J)Z7g5gU+0W!GPH6ckN7jqm>_;NnhouXGmM!$!k917!($o7o@VfM?;eY`7P*9y4^SwRFaEpb2wv4>Fc{3$>6BPy;)t3xC8S z{0+~+^UgMA0?t8_V;19ixC~jlc@j1L^Zx!u)Oee9T&ZrOa~X#5HB6uedXB4P5a(eC zmFhThiuu_8{d*k6{!!Ede@3PHgl`tbc2^7Kba*M4A8ls&L#LVUV+`H3?xx0 zKJNdX%j~+doAF#+jVetgYC-S#$3I7v@)&BuF|0-33W`yNG2cmj2P#>7-gbMP7Vb5Y0ZkhPm;Z2TRIS`(|l+7mY^n{k2-%5>iiX`g+1XPUymfm zY{FT%AB*t_j?w#{8Ax3)0reKlMqRMV_XS+Y{$|vKU!o>(d{6pLrcRom1fRlkoP&o^ zH+B*=?o86EamrB7pShimCRpwN(1j|=L4W@}R7pNVrSw~T30?pAqtjC7uSE@9g?ic> zP^D|f5vXgGA>Cv-p%%QB&Ba71q1CHhkmA(#UcbK-^{!tno5wV`d>&#=^0JvbGevMJA=?&-%MOeoNj4!RPO+xyFJ|&`W@ax zb2U*$Eb)&~>i;wnXZUwuu2cQ>TAgmZb*DbLXQ5JfqyNK2csntdpp3&!Wzti9_wbQa zXBo^ORuW?g-a^CkY(^4#&F>-fY+UgO8?_Q*K5-YJFP7T!6sNvachJ{AozqPp8GTaK zt|9Iu^dY*BP}2i?E1~+Y=&j2*GSd1i>#g41**&AJ564HWcPA{dW>0jj!byMit~sYD zZA43NWA4T@tLe;f>2`HjBDU2k$y-+F#4DV>sPXo%bDH{0a_<&*u)_-vxv{XZJ8Il$ z$l8}T<7_)-ISsGd8+JR*2Y)(LYh9f`c|meR9cLw?yS@5|J=E;9R@m(wcIXvvsMD=~ z)qcH}BZ*kAd#KCVH1tD7l^Gtyvhs_woc;}NDCX>}O}6c_zR9mjtF5#iE?7L0v#g$i ziBp|=20Q3PdhEeHy4sCec4NrdGUT=odXYAFPt^LgpfH=|+M&HVAz9I4|- zjrEDadZ((>ZCP)(_qiQWdt>Jh6_sA3*ADG>LYtFq+wJ~-XX9p$b3by9L1 zad%T^GP=bJx7!tmG_14jfIApZ&1?5GSf5W>oMnezb?SEct0)PSj#|EOdBA!mFfToo z6stQhzgQ_`33fv_IdWTT?DiHf-s)7>dFx_cxNCSsFR~-q(qQEjZqM_Jk%+fBwUyr1 z7N=&%@M+e2g)L(etgLUq?y0iYPMtKx*|*b;zUhT`IjuX4z5kW}U$JxQ)8kq@6aDRp z{x_1l*4yEh#6Y$6(zL3AhHj_2hI>y{TDQr~J3Up2XuDfoYuz?If20$A&3bD3MRV=e zPJ5u&X^X3(|II~WpeEVemr91l_@}@>PG6A9$?T$XtF1l~sc6A-K z`FAxb1F5HM$xUH*+ZH>%*QtxpKULZ{YQ64Ce{m~j6k2c3IFRmz Date: Wed, 23 Oct 2024 11:34:49 -0700 Subject: [PATCH 22/25] One more proposed zh_CN change --- ui/po/zh_CN.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 6be3761..074ecd6 100644 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -489,4 +489,4 @@ msgstr "强制重置" #: src/gtk/window.ui:99 msgid "About BreezyDesktop" -msgstr "关于BreezyDesktop" +msgstr "关于 Breezy Desktop" From a302f7d29bc38faec01d0451d8d03d2a8039a47c Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:35:50 -0700 Subject: [PATCH 23/25] Update zh_CN.mo file --- ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo | Bin 10151 -> 10153 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo b/ui/po/mo/zh_CN/LC_MESSAGES/breezydesktop.mo index 1ba43f575ddb1a5175726cacb5e8cde3af24fcd8..6e6ddf14de35103a14df0a3be24872703f47602e 100644 GIT binary patch delta 757 zcmXZaODM!q6vy#fm}oRgUSmAQyOc+f1v{A)B{nn3!e;UcWuYPZ7j{HMQL<3N%5$SM z7E@NHq_JQj>?CBNEPa2?U48C7o%=uM-1|T1KI%T%NO5wFG2=zXWZ)vYa0N4Q6MeXc z%8OzSCa?qFaRBR!jcLMF^k582@E&XM2g}e)uoc@-b*4&;V}dN^2n6r}PtjMJY#@$G zd_pz&YU3ZMhW_l{<2R;&y$_Y&jLL7ratxpshcFB0QF-frCwXw2fF?e(UR!TbiH~;w zg0<{FaTyC3ONI8W$5_e!5>@CK)#w-MJE?Rd-PUY}g$jF72dYsAT2K>pVK#~ z=?2#06{>*`RQ@l9&{JVdBMzd@ZCNi+H+_ey>*UdH9g7Oo2YRd{)&-<_vxAyEievbW zdh=javcV-(W4ow=H>d({sDZvQfN9mqcqcMgp9$H(C^nD~!9qMlO%_8J#&Hf4Hr`7$ j-Aq5K&;;t|oW*=xJ0Etr^V0q8li~2pwEujjsLuTlfr(QW delta 755 zcmXZaODM!q6vy!!^{>fT~bu-2XY}-v2>(KYX;F>}DEc#sbE8a2_38L@%ykKJH*P z#xV=;u?^pG0ILg(X}~2+#Y-&2JFLVXEJh!}W^6*$nJ6@_>18oRpdBCZ82v?w25wM^ zPpAf8ZTth((4XCVgT~~t_oMRbQTa_+g01MsAxy(rRNhL^O&r`Lpox#H7uIW3;-lTa zU={mMT*Ms4QlVYzA(pW}Llt^PHTs46P7>Wnk2T$8p~61Yfil#AM$|-|n1O?+r--7i zbQNpx9M!-FD*qSz&|7Lu9Y#>+HmoP8o4!TWb+c$U#G)AWfv|PhI)^lGwosGDaTMQC zZ{A&=XmA15*fy%*6{^4+YM^gy$K;AcyaO4m-}KnP2-cDi#XQ_YO?HV6-rx-0+jtk% hbTj>^LZhgkGlo7~J{@sVa-5d&NF+9SIvoh5`~%P=QXv2U From 1a2dc2357309a2edf92c5c9bc60f7e068dd92881 Mon Sep 17 00:00:00 2001 From: Wayne Heaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 23 Oct 2024 12:58:43 -0700 Subject: [PATCH 24/25] Update CLI reference (#69) --- gnome/src/extension.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gnome/src/extension.js b/gnome/src/extension.js index c8b390d..b7f5220 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -473,13 +473,8 @@ export default class BreezyDesktopExtension extends Extension { _toggle_xr_effect() { Globals.logger.log_debug('BreezyDesktopExtension _toggle_xr_effect'); - const bin_home = GLib.getenv('XDG_BIN_HOME') || GLib.build_filenamev([GLib.get_home_dir(), '.local', 'bin']); - const cli_path = GLib.build_filenamev([bin_home, 'xr_driver_cli']); - - Globals.logger.log_debug(`BreezyDesktopExtension _toggle_xr_effect path: ${cli_path}`); - let proc = Gio.Subprocess.new( - ['bash', '-c', `${cli_path} --external-mode`], + ['bash', '-c', 'xr_driver_cli --external-mode'], Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE ); @@ -495,7 +490,7 @@ export default class BreezyDesktopExtension extends Extension { // use the CLI to change the external mode, avoid using disable/enable, otherwise the driver will // shut down and recalibrate each time proc = Gio.Subprocess.new( - ['bash', '-c', `${cli_path} --${enabled ? 'disable-external' : 'breezy-desktop'}`], + ['bash', '-c', `xr_driver_cli --${enabled ? 'disable-external' : 'breezy-desktop'}`], Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE ); [success, stdout, stderr] = proc.communicate_utf8(null, null); From 183ace1db8ed77093cc99bf86890ffc382ea56b3 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:26:49 -0700 Subject: [PATCH 25/25] Fix CLI path detection so it works for both AUR and setup script installs Update driver, fix possible uninstall failure due to gnomem-extensions command --- VERSION | 2 +- gnome/bin/breezy_gnome_uninstall | 2 +- gnome/src/extension.js | 19 +++++++++++++++++-- modules/XRLinuxDriver | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index 314c3d7..ab67981 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.5 \ No newline at end of file +1.1.6 \ No newline at end of file diff --git a/gnome/bin/breezy_gnome_uninstall b/gnome/bin/breezy_gnome_uninstall index 4545d2d..004458c 100755 --- a/gnome/bin/breezy_gnome_uninstall +++ b/gnome/bin/breezy_gnome_uninstall @@ -34,7 +34,7 @@ DATA_DIR="$XDG_DATA_HOME/breezy_gnome" rm -rf $DATA_DIR [ "$for_install" -eq 0 ] && echo "Uninstalling the breezydesktop@xronlinux.com GNOME extension" -gnome-extensions uninstall breezydesktop@xronlinux.com +gnome-extensions uninstall breezydesktop@xronlinux.com || true [ "$for_install" -eq 0 ] && echo "Uninstalling the Breezy Desktop UI application" rm -rf $XDG_DATA_HOME/breezydesktop diff --git a/gnome/src/extension.js b/gnome/src/extension.js index b7f5220..d8adda3 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -29,6 +29,10 @@ const SUPPORTED_MONITOR_PRODUCTS = [ NESTED_MONITOR_PRODUCT ]; +const BIN_HOME = GLib.getenv('XDG_BIN_HOME') || GLib.build_filenamev([GLib.get_home_dir(), '.local', 'bin']); +const XDG_CLI_PATH = GLib.build_filenamev([BIN_HOME, 'xr_driver_cli']); +const ALT_CLI_PATH = '/usr/bin/xr_driver_cli'; + export default class BreezyDesktopExtension extends Extension { constructor(metadata, uuid) { super(metadata, uuid); @@ -89,6 +93,15 @@ export default class BreezyDesktopExtension extends Extension { this._headset_as_primary_binding = this.settings.bind('headset-as-primary', this._monitor_manager, 'headset-as-primary', Gio.SettingsBindFlags.DEFAULT); + this._cli_file = Gio.file_new_for_path(XDG_CLI_PATH); + if (!this._cli_file.query_exists(null)) { + this._cli_file = Gio.file_new_for_path(ALT_CLI_PATH); + if (!this._cli_file.query_exists(null)) { + this._cli_file = null; + Globals.logger.log('ERROR: BreezyDesktopExtension enable - xr_driver_cli not found'); + } + } + this._setup(); } catch (e) { Globals.logger.log(`ERROR: BreezyDesktopExtension enable ${e.message}\n${e.stack}`); @@ -471,10 +484,12 @@ export default class BreezyDesktopExtension extends Extension { } _toggle_xr_effect() { + if (!this._cli_file) return; + Globals.logger.log_debug('BreezyDesktopExtension _toggle_xr_effect'); let proc = Gio.Subprocess.new( - ['bash', '-c', 'xr_driver_cli --external-mode'], + ['bash', '-c', `${this._cli_file.get_path()} --external-mode`], Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE ); @@ -490,7 +505,7 @@ export default class BreezyDesktopExtension extends Extension { // use the CLI to change the external mode, avoid using disable/enable, otherwise the driver will // shut down and recalibrate each time proc = Gio.Subprocess.new( - ['bash', '-c', `xr_driver_cli --${enabled ? 'disable-external' : 'breezy-desktop'}`], + ['bash', '-c', `${this._cli_file.get_path()} --${enabled ? 'disable-external' : 'breezy-desktop'}`], Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE ); [success, stdout, stderr] = proc.communicate_utf8(null, null); diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 4ab77f0..53002af 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 4ab77f09b1ac574e9dfa7f9bf29c9ba478b721d9 +Subproject commit 53002afde8406eef7fe309206268ad6dc39e2da6