Electron: ضع في اعتبارك استبدال GTK2 w GTK3 في إصدارات Linux

تم إنشاؤها على ٢٨ سبتمبر ٢٠١٥  ·  100تعليقات  ·  مصدر: electron/electron

أضافت Google مؤخرًا علامة بناء "use_gtk3" إلى Chormium - تصدير GYP_DEFINES = "$ GYP_DEFINES use_gtk3 = 1".

أعتقد أن معظم المستخدمين النهائيين على أجهزة كمبيوتر سطح المكتب GTK3 يفضلون استخدام التطبيقات المصغّرة الحديثة. قد يكون من السابق لأوانه إضافته كإعداد افتراضي ، ولكن في النهاية سيكون ذلك رائعًا.

فيديو Chromium 47 w gtk3:
https://www.youtube.com/watch؟v=TJidbdaHCYc

هذا يتعلق إلى حد ما بقضية قديمة فتحتها:
https://github.com/atom/electron/issues/765

enhancement platforlinux

التعليق الأكثر فائدة

يستخدم Electron الآن GTK3 في الفرع الرئيسي ، وسيتم شحنه في الإصدار الثانوي / الرئيسي التالي.

ال 100 كومينتر

يبدو الأمر جيدًا بالنسبة لي بعد الترقية إلى Chrome 47.

تم إصدار Chrome 47 منذ ثلاثة أيام. :) http://googlechromereleases.blogspot.se/2015/12/stable-channel-update.html

حفرت فيه قليلاً ولكن ما زلت غير متأكد من مكان وضع علم use_gtk3 ..zcbenz على استعداد للقيام بذلك؟

zcbenz أو هل يمكنك أن تعطينا مؤشرات حول مكان وضعها؟

لست خبيرًا في سلوكيات البناء وراء نظام إنشاء Chromium ، ولكن عند القراءة من الخطأ المتعلق بـ Chromium هناك ، يجب أن يكون جيدًا أن نضيفه إلى variables إلى common.gypi . السطر ذو الصلة هنا .

في الواقع ، أنا أختبر ذلك أيضًا على مربع Linux. يقوم مربع التطوير الحالي بتشغيل Elementary OS ، وعندما يتم تنفيذ تطبيق Gtk2 ، فإنه يعرض تحذيرًا Gtk-Message: Failed to load module "pantheon-filechooser-module" ( المرجع ). إذا سارت الأمور بسلاسة (نأمل) فلنرى ما إذا كان بإمكاني الحصول على العلاقات العامة أيضًا. سأحب بالتأكيد مدخلاتك هناك بالرغم من ذلك.

أي تحديث على هذا؟ كمستخدم ذرة ، أود رؤيته باستخدام GTK3 بدلاً من GTK2.

netsgnut هل يعمل بشكل جيد؟

ماذا تعني "٪"؟

هو التغيير الوحيد هذا؟

diff --git a/common.gypi b/common.gypi
index 7c41c36..d00d7f7 100644
--- a/common.gypi
+++ b/common.gypi
@@ -9,6 +9,7 @@
     'chromeos': 0,
     # Reflects node's config.gypi.
     'component%': 'static_library',
+    'use_gtk3': 1,
     'python': 'python',
     'openssl_fips': '',
     'openssl_no_asm': 1,

أى اخبار ؟ يعد استخدام مربع حوار فتح ملف GTK2 صعبًا جدًا!

@ تحلق الغنم آه ، آسف لصمت الراديو الطويل. كنت ملتزمًا بمشاريع أخرى خارج GitHub ، يا سيئة.

بالعودة إلى حالتنا ، كان هذا ما أعتقد أنه يجب أن ينجح في الأصل ، لكن في ظروف غامضة أخفق في إنشاء تطبيقات Gtk3 المناسبة على صندوقي. في حالتي ، فإن نيتي الأصلية هي إنشاء تصميم إلكتروني لا ينبعث منه خطأ ضمن مربع التطوير الخاص بي (والذي يقوم بتشغيل Elementary OS Freya). ومع ذلك ، يبدو أن البناء بهذه الطريقة لن يؤدي حقًا إلى اختفاء التحذير.

في # 4642 ، قال zcbenz :

تعتبر علامة use_gtk3 ذات مغزى فقط من جانب Chromium ، لتمكين GTK3 نحتاج إلى تمكينه في libchromiumcontent أولاً ، ثم تغيير إعدادات الارتباط في Electron.

إذن ما الذي يجب فعله بالضبط؟

  1. تمكين استخدام GTK3 في libchromiumcontent: هل ستكون إضافة علامة في chromiumcontent.gypi كافية؟ هل هذا مهم أم أن الإلكترون لا يستخدم بناء الهدف؟
  2. تغيير إعدادات الارتباط في Electron: أين تفعل هذا؟

لست خبيرًا في هذا المجال ، ولست متأكدًا مما إذا كنت قد أساءت فهم تعليق zcbenz ؛ فقط سنتان.

بخصوص الأسئلة:

  1. على الاغلب لا. libchromiumcontent يبدو، من نظرة منه، وحفنة من البرامج النصية التي مصدر التنزيلات الكروم من المنبع ، والبقع ، و بإعادة تقديم للاستخدام في الذرة. بصرف النظر عن تغيير علامة على chromiumcontent.gypi كما ذكرت ، يتم حزم مكتبات التبعية على الأقل libgtk2ui .
  2. توجد أجزاء في Electron تشير إلى واجهات مستخدم خاصة بـ libgtk2 . هذه تشير إلى تبعية داخل الكروم (و / أو المشتقات). ربما تشير "الروابط" كما في تعليق zcbenz إلى هؤلاء.

يعكس خطأ التتبع على Chromium نوعًا من الحالة من المنبع. لاحظ أحد المعلقين:

IIRC ، سيتطلب إنشاء مكتبة libgtk3ui لمطابقة chrome / browser / ui / libgtk2ui / ، وتحويل هاتين المكتبتين عند بدء التشغيل.

وحتى كتابة هذه السطور ، فإن libgtk3ui غير موجود بعد :( يمكنك إلقاء نظرة على الكود الموجود على libgtk2ui أيضًا.

كنت بين أجهزة الكمبيوتر المحمولة الشخصية بعد أن نشرت هذا في الأصل وكنت أستخدم MBP الصادرة عن شركتي منذ بضعة أشهر. لكن أخيرًا حصلت على جهازي الجديد ، ووقت تعطل ، وقررت أن أتحكم في هذا. تقدمي حتى الآن:

لقد تمكنت من الحصول على محتوى libchromium للبناء باستخدام gtk3 ، فقد استلزم ما يلي:

  • add 'use_gtk3': 1 في chromiumcontent.gypi.
  • تعطيل sysroot عن طريق التعليق يدويًا على المكالمة لـ install_sysroot() في البرنامج النصي / التحديث. ملاحظة: اعتمادًا على إصدار libchromiumcontent ، قد تحتاج إلى تعيين use_sysroot في chromium/src/build/common.gypi إلى 'use_sysroot': 0 . أفترض أن النهج الصحيح في المستقبل هو التبديل إلى debian_jessie من أجل قدرة التحويل المتقاطع في builds؟
  • ركض pkg-config:
pkg-config --cflags gtk+-3.0 wayland-protocols gl egl glib-2.0 x11 gdk-3.0 gmodule-2.0 gthread-2.0 gtk+-unix-print-3.0 libpulse atk --libs gtk+-3.0 wayland-protocols gl egl glib-2.0 x11 gdk-3.0 gmodule-2.0 gthread-2.0 gtk+-unix-print-3.0 libpulse atk && export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig
  • ركض script/update -t x64 && script/build -t x64 && script/create-dist -t x64
  • انتظرت لساعات :)

ومع ذلك ، كنت للأسف شديد التفاؤل بعد انتهاء البناء ، واعتقدت أنه سيكون بمثابة سحب وإسقاط لبناء الإلكترون ، لكن بالطبع لم يكن كذلك. أعتقد أن الخطوة التالية هي الحصول على صورة ساطعة محلية مدمجة وأي ملفات gyp أخرى يتم تحديثها لاستخدام libs في النظام وليس sysroot.

وفيما يتعلق بـ libgtk2ui - أواجه مشكلة في تحديد موقع الإشارة إلى المكان الذي قرأت فيه هذا (ربما منتديات gentoo أو متتبع مشكلات الكروم أو سلسلة رسائل لمجتمع arch linux) - لكنني أعتقد أن Chromium يبني libgtk2ui بغض النظر عن gtk3 / gtk2 لأن كان المطورون يبذلون قصارى جهدهم للحصول على بنية مع gtk3 للعمل. قد أكون مخطئًا ولا أعرف كيف قد يؤثر ذلك على أي تصحيحات تستند إلى الإلكترون تمت كتابتها خصيصًا لـ gtk2.

أقوم بإنشاء chromium-gtk3 أسبوعيًا لمتصفحي الشخصي ولا يزال libgtk2ui موجودًا وأفترض أنه مستخدم.

آمل أن أعود إلى هنا في الأيام القليلة القادمة وأرتبط بمستودع POC الخاص بي مع ثنائيات مسبقة الصنع وبعض لقطات الشاشة.

انتهى الأمر ، وآمل أن يكون هناك atom-gtk3 جاهزًا للعمل قريبًا!

screenshot from 2016-05-20 15-54-44
screenshot from 2016-05-20 15-52-32

كانت العقبة الأكبر هي استخدام debian_wheezy_sysroot في جميع أنحاء libchromiumcontent / electron / brightray. ربما يحتاج القائمون على صيانة هذه المستودعات إلى إجراء بعض المناقشات واتخاذ قرارات بشأن التبديل إلى jessie أو ربما جعل sysroot اختياريًا.

خلال عطلة نهاية الأسبوع ، سأحاول تجميع عقدة أو نص برمجي باش لبناء إلكترون قابل للتنفيذ gtk3 قابل للتنفيذ. لا أعتقد أنه سيتم قبول أي طلب سحب أقوم بتقديمه ، لذلك من المحتمل أن يكون هذا في الوقت الحالي هو الطريقة الفعالة التي يجب على مستخدمي gtk3 الحصول عليها واستخدامها. وعلى مدار الأسبوعين المقبلين ، قد أحاول حتى الحصول على بعض حزم AUR لزملائي من مستخدمي Arch.

كانت هذه تحذيرات gtk3 أثناء بناء الإلكترون https://gist.github.com/nikolowry/05865698788d66ae0edfea2eb7c7fb0c

nikolowry هل هناك طريقة لنا للاحتفاظ بجذر النظام ولكن نسخه في GTK + 3.x في sysroot؟

paulcbetts أعتقد فقط إذا تمت ترقية Wheezy إلى Jessie (قد أكون مخطئًا ولكني سأكون على استعداد للمراهنة على أنك ستجد نفسك في جحيم التبعية إذا حاولت التسلل إلى gtk3 هناك). بالإضافة إلى gtk3 ، نحتاج أيضًا إلى libs الحديثة التالية لإنشاء gtk3: wayland-protocols glib-2.0 gdk-3.0 gtk+-unix-print-3.0 .

يبدو رائعًا @ nikolowry ، شكرًا لك على عملك. هل شفرة المصدر متاحة في مكان ما؟ أرغب في الحصول على PPA جاهزًا لجعل الحياة أسهل بالنسبة لنا لمستخدمي Ubuntu.

أود أيضًا أن أضيف أن هذه المسألة ليست مجرد مسألة توفير أدوات حديثة. GTK2 غير قابل للاستخدام على أنظمة HiDPI (على الأقل ليس مع ubuntu 16.04) نظرًا لأن جميع الرموز الموجودة في الأزرار وأشرطة الأدوات صغيرة للغاية. لحسن الحظ في حالة Atom يبدو أن هذا يؤثر فقط على مربع حوار فتح الملف ، على الأقل بقدر ما أستطيع رؤيته ، لذلك يظل Atom نفسه قابلاً للاستخدام إلى حد ما.

EiNSTeiN سأعود قريبًا إلى repo electron-gtk3 بنهاية نهاية الأسبوع.

قصة خلفية صغيرة أولاً - السبب الرئيسي الذي جعلني مصممًا على تشغيل هذا هو أنني أستخدم Atom كسائق يومي ولم أستطع الوقوف لرؤية مربع حوار الملف بعد الآن! ومع ذلك ، فقد استغرق هذا الإصدار وقتًا أطول من المتوقع بسبب المضاعفات مع البرامج النصية asar / compiled-cache / npm-not-running-post-install-install ، لكنني على ما يرام الآن.

كنت أفكر في أفضل طريقة للقيام بذلك - لذلك سيكون لدى المشرفين مرجع جيد (سيكون من الصعب تنسيق طلبات السحب في جميع ملفات الريبو الفردية) وأيضًا حتى يمكن لمستخدمي gtk3 المحتملين بدء العمل مستحيل بسرعة.

لكنني لن أقوم بعمل تصميمات تلقائية ، لذلك يجب أن يكون الجميع مستعدين لأوقات إنشاء تتراوح من 4 إلى 6 ساعات أو لتجهيز بعض الخوادم. قد ينتهي بي الأمر بالإصدار العرضي حتى تنعكس هذه التغييرات في الريبو الرسمي.

لقد تضيقت في صنع الريبو باستخدام الإلكترون كوحدة فرعية وكتابة نص برمجي واحد لبناء الإلكترون بكل خير gtk3. بعد ذلك ، يمكن أن يكون لكل توزيعة نقطة انطلاق سهلة لتوزيع الحزم في النهاية حتى يتم تفعيل هذه التغييرات بشكل رسمي.

وعلى ملاحظة hidpi - exec cmd الخاص بي لـ atom-gtk3 هو GTK_THEME=Adwaita:dark GDK_SCALE=2 GDK_DPI_SCALE=.5 /usr/local/share/atom/atom --force-device-scale-factor=1.5 %U . تعمل إشارات مقياس GDK أيضًا على إصلاح حجم خط واجهة المستخدم chromium-gtk3 . إليك بعض الشاشات بـ atom-gtk3 :

screenshot from 2016-05-24 02-51-28
screenshot from 2016-05-24 02-51-49

https://goo.gl/ydHspu

أهلا،

تمكنت من تجميع Electron 1.1.2 مع GTK3 على Arch Linux ، وتمرير use_gtk3=1 إلى محتوى libchromium وتغيير gtk+-2.0 إلى gtk+-3.0 في brightray.gyp .

الآن يتلاشى التطبيق الافتراضي لـ Electron عندما أضغط على مفتاح.

التفاصيل هنا: https://github.com/tensor5/arch-atom.

إعادة إنشاء البرنامج النصي:
https://github.com/nikolowry/electron-gtk3

نأمل أن يتم اختتامها بحلول نهاية الأسبوع. إنها قيد العمل قيد التقدم ولا تنشئ أي شيء ذي معنى حتى الآن.

EiNSTeiN و @ tensor5 - يجب أن يتم بناء https://github.com/nikolowry/electron-gtk3 الآن. لاحظ أنه ينشئ فقط الإصدار release ما لم تخبره تحديدًا بإنشاء كل من debug و release . تحقق من README وافتح مشكلة إذا كان هناك شيء لا يعمل.

zcbenz هل هناك أي سبب تاريخي لاستخدام Debian Wheezy (أعرف أن Chromium يحب أن يكون متوافقًا مع LTS)؟ ربما تضيف علامة بناء لاستخدام Jessie / GTK3؟ يمكنني العمل على طلب سحب مناسب إذا كنت لا تعارض الفكرة ، وإلا فسيكون لديك على الأقل نص مرجعي للبناء حول ما يتطلبه الأمر لإنشاء GTK3.

تحرير: @ tensor5 هل تستخدم X أو Wayland؟ أعلم أن تصميمات chromium gtk3 تتعطل في أحداث الإدخال الرئيسية في Wayland.

nikolowry : نعم كنت أستخدم Wayland ، وهي تعمل بشكل جيد مع X ، شكرًا لك. هل تعلم ما إذا كانت مشكلة Chromium هذه قد تمت مناقشتها في مكان ما؟

nikolowry نحن

أنا جيد في إضافة علامة لإنشاء GTK + 3 ، كما أن إضافة ارتباط إلى النص البرمجي للبناء يبدو جيدًا بالنسبة لي. يمكن أن يكون جزءًا من الموضوعات المتقدمة لتعليمات بناء Linux .

يبدو zcbenz جيدًا - لديهم بالفعل نص بيثون يمكن للمرء تشغيله يستخدم Jessie بدلاً من Wheezy لـ sysroot ، لكن أعتقد أنه من الأفضل الانتظار حتى يتم تعيينه على أنه الإعداد الافتراضي في المنبع Chromium.

بشكل عام ، البناء مقابل أقدم توزيعة يمكنك العثور عليها هو أمر جيد عندما يتعلق الأمر بتوزيع البرامج بسبب إصدار glibc ++ - يمكن للترقية إلى Jessie (على الرغم من أنني أعتبرها أكثر أمانًا بشكل عام) الأشخاص الأيتام الذين عملوا في Electron الماضي. لقد واجهنا هذه المشكلة كثيرًا مع مستخدمي RHEL

اكتشف @ tensor5 كيفية الإطلاق في Wayland. لقد علقت على تذكرة Chromium هذه وقمت بتحديث gtk3 repo.

تحتاج فقط إلى تشغيل GDK_BACKEND=x11 electron حيث لا يتم ربط Chromium بوحدة XWayland تلقائيًا.

تضمين التغريدة

لذا ، إذا فهمت بشكل صحيح ، فإن المشكلة هي أن GTK3 يعتقد أن الإلكترون هو تطبيق Wayland النقي ، في حين أنه ليس كذلك.

@ tensor5 بالضبط! تفترض GTK3 أن جميع التطبيقات التي تستخدم مجموعة الأدوات جاهزة لـ Wayland (وبالتالي فهي مسؤولة عن تحميل XWayland إذا لزم الأمر).

كنت أستعد للتعمق في شفرة مصدر Chromium في نهاية هذا الأسبوع لمعرفة ذلك ، وبينما كنت أحاول إنشاء بعض السجلات ، عثرت على حل بسيط عبر https://fedoraproject.org/wiki/How_to_debug_Wayland_problems.

كان Chromium و Atom آخر تطبيقاتي غير الجاهزة لـ Wayland - سعداء جدًا بأن جهاز الكمبيوتر المحمول Skylake الخاص بي لن يتعطل عبر xrandr بعد الآن عند توصيله بشاشات متعددة في وضع dpi مختلط !!!!


تحرير: أعلم أنك تحتفظ ببعض حزم AUR أيضًا ، لذلك قد ترغب في تعديل ملفات سطح المكتب لتضمين "env GDK_BACKEND = x11" ، سيسمح للتطبيقات بالعمل في كل من X و Wayland وسيوفر للجميع الكثير من المتاعب في المستقبل!

nikolowry أنا بالفعل على ذلك!

في النهاية يجب إصلاح هذا في مصدر الإلكترون ، فإن استخدام برنامج نصي للمشغل ليس هو الطريقة الأكثر أناقة.

راجع للشغل فإن حزمة AUR ليست لي. أنا أحتفظ بمستودع

nikolowry Firefox هو أيضًا تطبيق GTK3 يعتمد على Xwayland ، لكنه يعمل بشكل جيد. لذلك أخذت نظرة على ذلك: كما ترون هنا يحاول الخلفية للوX11 أولا، ثم يستخدم الكشف عن DISPLAY_NAME لل gdk_display_open .

ربما يمكن فعل شيء مشابه في Chromium.

في نظام التشغيل الأولي ، نحتاج إلى GTK3 لاستخدام منتقي ملفات آلهة ، أو سنحصل على ما يلي:

Gtk-Message: Failed to load module "pantheon-filechooser-module"

لماذا لا تدعم فقط / المنفذ إلى Qt5-WebEngine ؟ إنه يستخدم محرك الكروم على أي حال ، وعلى Qt يبدو كل شيء بطريقة أصلية على عكس gtk ...

بالإضافة إلى qt5 لا يتم كسره طوال الوقت مثل gtk3 الذي يغير واجهات برمجة تطبيقات F ** king الخاصة بهم في كل مرة لمجرد أنهم لا يهتمون بأي شيء آخر غير تطوير جنوم.

إليك عرض تقديمي رائع للفيديو لماذا تعتبر gtk سيئة و qt أفضل (عمرها عامين ولكنها لا تزال جيدة وذات صلة)

Qt 5.6.x موجود الآن في LTS وتغير ترخيصه

أنا شخصياً لا أفهم لماذا يستخدم الناس gtk خارج أشياء gnome ، عندما لا يكون مصممًا لذلك.

ahjolinna في الواقع ، من المفترض استخدام GTK + لتطوير التطبيقات خارج عناصر Gnome أيضًا. في كلتا الحالتين ، سيكون تغيير واجهات برمجة التطبيقات إلى QT بمثابة كابوس لفريق Electron لأنه سيتطلب الكثير من ترقيع الأشياء من Chromium المنبع. لا يستحق عناء.

GTK + 3 _ هو _ متزوج جوهريًا من جنوم ، نظرًا لأن جميع مطوري GTK أساسًا (؟) هم مطورو جنوم ، ويعملون من قبل ريد هات.

يحدث كسر GTK API المذكور لأن القبعة الحمراء تعطي الأولوية لقيادة جنوم للأمام. ahjolinna محق في أن Qt5 أكثر استقرارًا ، _ لكنه لا يوفر سوى وصول محدود إلى مثيل الكروم.

السبب أيضًا هو الاستقرار: الكروم نفسه ينكسر بدرجة كافية بحيث يمكنهم فقط تخصيص مواردهم للحفاظ على API المستقر في بعض المناطق.

nikolowry إذا كنت https://github.com/nikolowry/electron-gtk3 لبناء إلكترون بدعم gtk3 ، فما الذي سأحتاجه لتغيير بنية الذرة من أجل بناء atom-gtk3؟

بالنسبة لأولئك الذين يستخدمون بنية gtk3 ، فمن المحتمل أنك ترى نصًا أبيض على شريط القائمة عند استخدام سمة خفيفة. هذا التصحيح يحل المشكلة.

screenshot from 2016-07-20 10-21-21

screenshot from 2016-07-20 10-21-55

سأقوم بإصلاح تحذيرات بناء gtk3 الأخرى في الأيام القادمة.

القائمة في Chromium مع Gtk2 ليست "نمط gtk الأصلي" ، وهي قبيحة للغاية. هل سيصلح Gtk3 build هذا؟

تضمين التغريدة لا ، يبدو شريط القوائم مع gtk3 هو نفسه تمامًا كما في gtk2. أنت على حق ، إنها ليست أصلية تمامًا ، ببساطة تتبع ألوان النص والخلفية موضوع gtk.
نظرت إلى الكود في الأيام الماضية ، لمعرفة ما إذا كان يمكن إصلاح ذلك. تتمثل إحدى المشكلات في أن رمز gtk الأصلي مخفي خلف طبقات من أغلفة النظام الأساسي. ربما يمكن لخبراء gtk هناك المساعدة في هذا الأمر.

@ tensor5 أعتقد أنه ينبغي تنفيذ القائمة في أغلفة النظام الأساسي. تمامًا مثل قائمة OS X الأصلية ، كما أن كود Cocoa الأصلي مخفي أيضًا خلف طبقات من أغلفة النظام الأساسي.

Menci بالطبع ، هذه هي الطريقة الوحيدة لقبول هذا التصحيح.

سيكون من الجيد أيضًا أن يكون لديك قائمة تطبيقات Gnome.

يمكنك إلقاء نظرة على كيفية قيام LibreOffice بذلك ، بطريقة مماثلة.

أعتقد أن قوائم LibreOffice ليست أصلية حقًا. لم يكن لدى Thay الظل المسقط وإظهار / إخفاء الرسوم المتحركة.

لم تبدو تطبيقات GTK + أصلية أبدًا خارج gnome (وغيرها من منشورات gtk) ، فقد بدت دائمًا مروعة على KDE و LXQt) وستواجه الوحدة 8 نفس المشكلة عند وصولها (على أساس Qt5). حاول فريق KDE العمل مع فريق gtk لحل هذه المشكلة ، لكنهم أكملوا المتسكعون بنسبة 100٪ ولا يهتمون بتغيير / انقطاع واجهة برمجة التطبيقات الخاصة بهم مع كل تحديث لعنة وسيؤدي ذلك إلى كسر (بعض) عناصر KDE مثل موضوع breeze-gtk ، الذي راجع للشغل. كان لابد من تشفيره بسبب تفكير فرق gtk الغبي. *

بالمناسبة. مع KDE و LXQt و Unity 8 + Ubuntu Touch و SailfishOS ، أصبحت "المشاركة في الأسواق" Qt5 أكبر بكثير من gtk وسيكون لذلك تأثير كبير على المدى الطويل على الأقل

ملاحظة. حول libreoffice ، يمكنك بناؤه بدون GTK والحصول عليه باستخدام منتقي الملفات الأصلي ، هذا ما يفعله ChakraOS ، PKGBUILD ، لماذا؟ لأن توزيعة KDE / Qt المركزة التي تحب تجنب استخدام GTK قدر الإمكان


تم تحريره

* منع مطورو GTK الوصول إلى المحركات ذات السمات ، والتي كانت تستخدم سابقًا لتكامل GTK في KDE ، لذا فالطريقة الوحيدة الآن هي تجربة "طريقة CSS"


بعض التطبيقات التي أعرف أنها تستخدم Qt:
Dropbox و OBS و MEGA و VIber و Wireshark و makemkv و yacreader و masterpdfeditor و vapoursynth-editor و SVP و teamspeak3 و mkvtoolnix-gui و hplip و scribus WPS-office ...

DE الأخرى باستخدام Qt5: http://papyros.io/ و https://lumina-desktop.org/

ahjolinna أعتقد أنك تحاول إقناع الجمهور الخطأ. إذا لم يقم Chromium بالتبديل ، فأنا أشك بشدة في أن يقوم Electron بالتحويل. إن مطالبة فريق Electron بالحفاظ على هذا المشروع بالإضافة إلى شوكة QT5 من Chromium يتطلب الكثير.

بالإضافة إلى ذلك ، تتعلق هذه المشكلة باستبدال GTK2 بـ GTK3. إذا كنت ترغب في جعلهم يفكرون في التبديل ، فيرجى إصدار مشكلة جديدة. وإلا فهو خارج الموضوع ويملأ هذا الموضوع بالضوضاء.

alzadude ، يجب عليك تعديل بعض نصوص إنشاء grunt بحيث لا يتم تنزيل الإلكترون الذي تم إنشاؤه مسبقًا ، وتعديل إصدار package.json لمطابقة بنية الإلكترون التي قمت بها محليًا باستخدام gtk3 وربما تعديل python أو اثنين (آسف الخروج الذاكرة الآن). ليس الأمر صعبًا ، لكنني دائمًا ما يستغرق مني دقيقة واحدة عندما أقوم بتصميم جديد ، لأنني دائمًا ما أنسى الخطوات القليلة التي اتخذتها في البناء السابق السابق.

إذا بدأ @ tensor5 في استخدام gtk3 في مستودع ذراته المقوسة ، فأنا أقترح ربما تجربة ذلك - وإلا سأعود إلى هنا في المرة التالية التي أقوم فيها ببناء وتوثيق التغييرات نيابةً عنك (عادةً ما أجريها على عطلة نهاية الاسبوع)

شكرًا على nikolowry ، بعض التغييرات الموثقة ستكون رائعة :)

أنا في Fedora لذا سأبحث عن دمج التغييرات بناءً على Fedora copr:

https://copr.fedorainfracloud.org/coprs/mosquito/atom/

يبدو أن Copr هذا هو حاليًا أقرب شيء إلى الحزمة القياسية في Fedora. يعتمد على ملفات مواصفات rpm المنبع هذه:

https://github.com/FZUG/repo/tree/master/rpms/atom

وهو مذكور في هذا الخطأ Bugzilla:

https://bugzilla.redhat.com/show_bug.cgi؟id=1132661

استنادًا إلى العمل الحالي ، من المحتمل أن أتطلع إلى إنشاء Copr الخاص بي ، من أجل إنشاءات gtk3 من Electron و Atom (إنشاء ملفات مواصفات rpm المنبع لدمج التصحيحات الضرورية ، بناءً على التغييرات الموثقة). ما لم يضربني شخص آخر بالطبع :)

أحاول أن أكتب كلمة gentoo ebuild لهذا الغرض ، لكن بدون نجاح. سأكون ممتنًا جدًا ، إذا ساعدني أحدهم في القيام بذلك.

@ eternal-sorrow هل ألقيت بالفعل نظرة على dev-util / electron ، وهو ebuild الموجود حاليًا في شجرة Gentoo الرسمية؟

devurandom ، فعلت. إنها نسخة قديمة جدًا من الإلكترون (0.36.12). لقد قمت بتعديله للإصدار الحالي (1.3.1) ، وقمت بتكييف جميع التصحيحات ، ولكن ما زلت أحصل على مشكلة ربط v8 (الكثير من رموز v8 غير المحددة).

@ الحزن الأبدي

  1. تواصل مع [email protected] ،
  2. قم بإعداد ريبو متراكب مع ebuild الخاص بك هنا على GH ، ربما يمكننا العمل معًا.

@ eternal-sorrow في Arch Linux ، قمنا ببناء أحدث إصدار من Electron باستخدام GTK3 ، ألق نظرة عليه.

أي تقدم في هذا؟

nikolowry ، ما هو إصدار الذرة والإلكترون الذي تستخدمه في atom-gtk3؟ أدركت أن الإصدارات الحالية من الذرة تتطلب إلكترونًا 0.37 ولا يمكنها العمل مع الإلكترون الحالي. هل انا مخطئ

تم تحديث @ eternal-sorrow Atom مؤخرًا إلى إصدار أحدث من Electron.

https://github.com/atom/atom/blob/efae2e08c3f902149431732cbd550aea09748acc/package.json#L15

هل توجد طريقة لاستخدام gtk3؟ سأحبها بشكل خاص لملف حوار أفضل.

بما أن archlinux لديه بالفعل بناء gtk3 ، ما الذي ينقص أن يكون هذا هو نواة الإلكترون؟

أعتقد أنهم يريدون التحول إلى المنبع. وهو مخطط رسميًا الآن ، راجع https://chromium.googlesource.com/chromium/src/+/acc4214c4dece4e70fb53355d557bd45f35965d6/docs/linux_gtk_theme_integration.md#GTK3.

معلومات إضافية ، قنوات مطوري chromium / google chrome تستخدم gtk 3 لذا فهي مجرد مسألة وقت الآن.

تم التأكيد لـ Chrome 59 على https://bugs.chromium.org/p/chromium/issues/detail؟id=79722#c110.

خرج Chrome 59! : تادا:

الآن بعد أن خرج Chrome 59 ، سيكون من الرائع رؤية إصدار مسبق من Electron تم إنشاؤه باستخدام GTK3 لنظام التشغيل Linux.

دعم GTK3 الآن في Chromium Stable (59) ، مما يعني أنه سيتم دعمه قريبًا

لدي بضعة أسئلة:

  • لماذا تريد دعم GTK3؟
  • أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع. ما الخطأ في ذلك في GTK2 وكيف تم تحسينه في GTK3؟
  • هل يؤدي هذا التحديث إلى تحسين أشياء مثل الأداء والتوافق وما إلى ذلك؟ أو مجرد واجهة مستخدم؟
  • ما هي التحسينات الأخرى التي قد يتوقعها الناس؟
  • ما توزيعات Linux التي تستخدم GTK (3)؟

zeke :

لماذا تريد دعم GTK3؟ أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع.

أحد التحسينات التي أهتم بها هو أن تطبيقات Electron التي تعمل داخل صندوق الحماية Flatpak ستستخدم الآن بسلاسة بوابة إلى مشغل ملف على المضيف. قد يستخدم هذا أيضًا Qt الصحيح إذا كان المستخدم لديه بوابة Qt مثبتة.

هل يؤدي هذا التحديث إلى تحسين أشياء مثل الأداء والتوافق وما إلى ذلك؟ أو مجرد واجهة مستخدم؟

من الناحية النظرية ، قد يكون دعم hidpi لـ Gtk3 مناسبًا ولكني لا أعرف كيف يتفاعل هذا مع عرض Chromium الذي سيتجاوز معظم ذلك. لذلك ربما يغير فقط السمات.

ما توزيعات Linux التي تستخدم GTK (3)؟

تحتوي جميع التوزيعات بشكل فعال على Gtk3. تستخدم Unity و GNOME و MATE و Cinnamon و Budgie وأخيراً XFCE Gtk3 كمجموعة أدوات رئيسية للتطبيقات.

تضمين التغريدة

ما توزيعات Linux التي تستخدم GTK (3)؟

تستخدم جميع توزيعات Linux الرئيسية GTK3 لسطح المكتب (shell). يحتوي البعض أيضًا على نكهة KDE ولكن الافتراضي للجميع هو GTK3.

أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع. ما الخطأ في ذلك في GTK2 وكيف تم تحسينه في GTK3؟

نعم ، من خلال تطبيقات GTK2 و GTK3 يمكنهما العيش معًا في نفس النظام ، فإن تطبيقات GTK3 تتكامل بشكل أفضل مع أجهزة الكمبيوتر المكتبية الحالية. يعد مربع حوار منتقي الملفات أحد الأمثلة الجيدة.

تضمين التغريدة

لماذا تريد دعم GTK3؟

أنا أقدر التناسق - حوار الملف مختلف تمامًا في GTK 3 ، ​​غالبًا ما تكون السمات غير متسقة قليلاً بين إصدارات GTK. أحب أيضًا الحفاظ على نظامي في حده الأدنى ، فإن قيام Atom بإسقاط GTK 2 سيعني سببًا أقل لتثبيت GTK 2.

أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع. ما الخطأ في ذلك في GTK2 وكيف تم تحسينه في GTK3؟

كما ذكر أعلاه ، فإن أهم شيء بالنسبة لي هو الاتساق. يعتبر البعض حوار GTK 3 أقل شأنا ، لأنه يستخدم البحث المتكرر عن الاسم بدلاً من البحث المتزايد في الدليل.

ما هي التحسينات الأخرى التي قد يتوقعها الناس؟

يجب أن تستخدم القوائم GTK أيضًا ، بدلاً من تطبيق مخصص لا يبدو أنه يدعم فن الإستذكار والقفز بين القوائم المجاورة باستخدام مفاتيح الأسهم.

إن إسقاط Atom لـ GTK 2 يعني سببًا أقل لتركيب GTK 2.

فقط حتى أفهم ما تقوله هنا ، jtojnar : إذا كان لديك إصدار أحدث من Linux يستخدم GTK3 افتراضيًا ، فعليك تثبيت GTK2 يدويًا لدعم التطبيقات التي لم يتم تحديثها إلى GTK3؟ إلى جانب Atom (وكل تطبيق Electron الآخر) ، ما التطبيقات الشائعة الأخرى التي تواجه هذه المشكلة؟

عادةً ما يتم تثبيت التبعيات zeke تلقائيًا بواسطة مدير حزم التوزيع الخاص بك ، كما أن تثبيت تطبيق GTK 3 سيؤدي أيضًا إلى تنزيل libgtk3 وسيحصل تثبيت تطبيق GTK 2 على libgtk2 . يمكنك تثبيت كليهما بأمان ، إنه فقط مع انخفاض مساحة SSD ، أريد التخلص من كل حزمة قديمة أستطيع.

لماذا تريد دعم GTK3؟

GTK3 أحدث ويحتوي على دعم HiDPI.
لم يعد GTK2 مطورًا ولم يعد حديثًا.

أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع. ما الخطأ في ذلك في GTK2 وكيف تم تحسينه في GTK3؟

لا أعرف عن هذا.

هل يؤدي هذا التحديث إلى تحسين أشياء مثل الأداء والتوافق وما إلى ذلك؟ أو مجرد واجهة مستخدم؟

يقال إن GTK3 يستخدم بشكل أفضل بعض ميزات وحدة المعالجة المركزية وذاكرة الوصول العشوائي ، لكنني لست متأكدًا من خلاف ذلك. سيكون تحديثًا كبيرًا لواجهة المستخدم.

ما هي التحسينات الأخرى التي قد يتوقعها الناس؟

دعم أفضل للسمات.

ما توزيعات Linux التي تستخدم GTK (3)؟

تحتوي جميع التوزيعات على GTK3 في مستودعاتها.
تستخدم العديد من بيئات سطح المكتب الرئيسية GTK3 ، مثل Gnome 3 و Budgie و Deepin و MATE وقريبًا (tm) XFCE أيضًا.

أحد المتطلبات الأساسية لهذا هو Chromium 59 حيث يوجد طلب سحب لـ # 9946.

يعتبرzeke Main takeaway أفضل تناسقًا لواجهة المستخدم كما هو الحال في Linux ، فمن المرجح أن ترى تطبيقات تستخدم إما GTK (2 أو 3) أو Qt كأداة UI toolkit. يحتوي نظاما التشغيل Windows و macOS على أنظمة تشغيل خاصة بهما وستجد عادةً أن معظم التطبيقات الموجودة على تلك الأنظمة الأساسية تستخدم تلك الأنظمة ، ولكن لا يحتوي Steam على هذا المظهر الأصلي على سبيل المثال لأنه لا يستخدم مجموعة أدوات واجهة المستخدم الأصلية.

أرى "ملف الحوار" مذكورًا كثيرًا في هذا الموضوع. ما الخطأ في ذلك في GTK2 وكيف تم تحسينه في GTK3؟

قد يكون أفضل تفسير GTK2 مقارنة بـ GTK3 هو الإصدارات السابقة من Windows أو macOS حيث كان لواجهة المستخدم مظهر مرئي مختلف (اختلافات التخطيط / الوظائف لأشياء مثل مستعرضات الملفات). إذا قمت بتشغيل Windows 10 وحصلت على مربع حوار ملف يشبه Windows Vista أو XP ، فسيبدو في غير محله وربما يفتقر إلى بعض الميزات / UX.

في بيئة سطح المكتب (DE) مثل KDE ، لا يزال هذا ينشئ مربع حوار GTK3 بدلاً من مجموعة الأدوات الأكثر شيوعًا لذلك DE ، Qt. لذلك لا يزال هناك بعض التناقض ، لكنه أجمل من GTK2.

فيما يلي بعض الأمثلة على KDE مع سمة Breeze الافتراضية:

حوار GTK2 مع تطبيقات Electron الحالية - GitKraken:
GTK2 Dialog with current Electron apps - GitKraken

حوار GTK3 - مختلط:
GTK3 Dialog - Meld

حوار كيو تي - كيت:
Qt Dialog - Kate

مربع حوار Mono / .NET (؟) - BundleModder - غير مألوف في Linux ، يمكن لتطبيقات Java أيضًا استخدام مجموعة أدوات غير شائعة:
Mono(?) Dialog - BundleModder - Uncommon on Linux, Java applications can also use an uncommon toolkit.

كما ترى ، يختلف تناسق النمط تمامًا عبر مجموعات أدوات واجهة المستخدم المختلفة. قد يكون هذا محيرًا كمستخدم عادي عن سبب اختلافهما ، مما يدفعك إلى التساؤل عما إذا كانا لنفس الغرض أو الإحباط من اختلاف تفاصيل التنقل / العرض بينهما (قد تنقر مرتين على GTK ، بينما قد يتم إعداد Qt لشخص واحد انقر فوق التنقل في المجلد) أو مجرد رؤية عدم الاتساق على أنه غير احترافي.

Gnome (الذي يركز على GTK DE) قادر على التعامل مع هذا بشكل أفضل من KDE (التركيز على Qt) مع الاتساق بين GTK3 و Qt ، حيث تم تصميم مجموعة أدوات Qt للتكامل عبر الأنظمة الأساسية بشكل جيد مما يعطي إحساسًا / تجربة أصلية. يحجم مطورو GTK عن دعم مجموعة أدواتهم على DEs بخلاف Gnome ، على الرغم من رغبة مطوري KDE في المساهمة برمز لمعالجة المشكلة على DE الخاصة بهم. إذا كان المستخدم لا يستخدم تطبيقات قديمة تستخدم GTK2 أو مجموعات أدوات غير مألوفة ، فسيتمتع بتجربة أفضل.

غالبًا ما ستجد مزيجًا من تطبيقات GTK و Qt عندما لا تحتوي مجموعة الأدوات على عرض قوي مثل التطبيق المكافئ لمجموعة الأدوات الأخرى ، فبالنسبة لبعض المستخدمين الذين يستخدمون فقط تطبيقات مجموعة أدوات واحدة ، يكون قابلاً للتطبيق (KaOS هو توزيعة تلبي احتياجات Qt5 تجربة ، مع تطبيقات GTK الاختيارية مثل Chrome المتاحة). مع شعبية تطبيقات Electron ، فإن تجنب GTK ليس مرغوبًا دائمًا.

لماذا تريد دعم GTK3؟

التناسق ، حوار الملف هو الأكثر تميزًا بالنسبة لي كمستخدم كيدي.

هل يؤدي هذا التحديث إلى تحسين أشياء مثل الأداء والتوافق وما إلى ذلك؟ أو مجرد واجهة مستخدم؟
ما هي التحسينات الأخرى التي قد يتوقعها الناس؟

على الرغم من أنني لا أعرف الكثير عن FlatPak (تطبيقات الحماية والتوزيع المحايدة ، مثل Docker / حاويات تطبيقات واجهة المستخدم الرسومية) ، أعتقد أن GTK3 لديها قصة أفضل من GTK2 ، بما في ذلك التكامل مع DE (تصميم FlatPak هو شيء آخر من أجل التناسق ، حصلت GTK3 في FlatPak مؤخرًا على دعم السمات ، وتحتاج مجموعات الأدوات الأخرى إلى إضافة هذا أيضًا). يمكن لـ FlatPak كما ذكرنا أن يخفف أيضًا من مشكلات حوار الملف عبر دعم بواباته.

لا أعرف الكثير عن GTK2 و GTK3 شخصيًا ، لكن قصة HiDPI ستكون أفضل لـ GTK3 التي أتخيلها (ربما لا تحصل GTK2 على هذا؟). أعتقد أن دعم السمات أفضل ، أو على الأقل من المرجح أن تحصل على سمات لـ GTK3 أكثر من 2 خاصة في المستقبل. في Gnome ، قد يكون مربع حوار الملف مختلفًا بعض الشيء مع زخارف جانب العميل (CSD) التي تعمل على تحسين تجربة المستخدم لهؤلاء المستخدمين. في KDE ، أعتقد أن دعم GTK3 قد يعمل بشكل أفضل مع ميزة Global Menu (لا تزال WIP ، macOS مثل شريط القوائم بدلاً من أن تكون مرتبطة بنافذة التطبيقات).

ما توزيعات Linux التي تستخدم GTK (3)؟

تستخدم غالبية التوزيعات الحديثة GTK3 أو تدعمها على حد علمي. GTK2 قديم جدًا. إذا كنت تستخدم تطبيقات Chrome أو Electron ، فأنت تستخدم GTK (ربما يكون مزيجًا من 2/3 ، ولكن تميل أكثر نحو 3).

polarathene ، لم تذكر أن دعم GTK3 يسمح بإضافة دعم Wayland في المستقبل ، بينما GTK2 لا يسمح بذلك.

تم كسر بنية JFYI Chromium GTK2 في أحدث إصدار ثابت 60.0.3112.90 وفي النسخة التجريبية 61.0.3163.31.
إنه يعمل في أحدث سيد بالرغم من ذلك.

وبالمناسبة ، لم يعد يتم صيانته رسميًا بعد الآن.
https://groups.google.com/a/chromium.org/d/msg/chromium-dev/iO3qzex6oYA/Q-i4Cie3BwAJ

تعليقات رائعة على مزايا GTK3 ، للجميع. شكرا لمساهمتك.

لسوء الحظ ، يبدو أن تحديث GTK3 لن يصل إلى Electron 1.8 مع Chrome 59. إنه يحظر البناء حاليًا ، لذلك علينا الانتظار حتى ارتفاع Chromium التالي إلى 61 (نتخطى 60) قبل أن يتم دعم GTK3 في الكترون.

هل هذا صحيح ،alexeykuzmin؟

zeke هل لديك أي تقدير تقريبي

تضمين التغريدة
نعم ، لدينا بعض المشاكل مع GTK3 في فرع Chromium 59.
ولكن يجب علينا التبديل من GTK2 إلى GTK3 في ترقية Chromium 61 القادمة.

cpoole ليس لدينا حاليًا تقدير https://github.com/electron/libchromiumcontent/pull/335. هدفنا هو أن نكون في نهاية المطاف أكثر انسجاما مع إصدارات Chromium. بعض الأشخاص الرائعين من Microsoft ( cifratila ، alexeykuzmin ، alespergl ، آخرون؟) يساعدون في هذه العملية ، والتي تحرر فريق GitHub للإلكترون للتركيز على تحسين CI وتسهيل عملية إطلاق الإلكترون. لذلك أنا متفائل :)

لماذا تريد دعم GTK3؟

deepinscreenshot_select-area_20170830114704

deikatsuo ما هو متصفح هذا؟ يبدو أن الكروم وعيد الغطاس كان لهما طفل ...

تضمين التغريدة

أي أخبار عن هذا؟

@ ziggy42 يجب أن يكون موجودًا بالفعل في أحدث إصدار من الكروم 61 (https://github.com/electron/electron/pull/10213). أعتقد أن الأمر يتعلق فقط بالدمج في الإصدار الرئيسي وإصدار الإصدار في مرحلة ما.

لا أستطيع الانتظار ، هؤلاء الملتقطون القبيحون يحرقون عيني: النار:

هل سيسمح هذا التغيير باستخدام CSS في تطبيقات Electron؟

لذا ، تم دمج الكروم 61 ، هل يأتي معه gtk3؟

يستخدم Electron الآن GTK3 في الفرع الرئيسي ، وسيتم شحنه في الإصدار الثانوي / الرئيسي التالي.

تضمين التغريدة

شكرا لأنك تقضي بعض العقل في هذه المناقشة.

قد تكون مهتمًا حقًا بـ KaOS ، والذي تم ذكره بالفعل.
يتم الحفاظ عليها من قبل الشخص الذي جعل شقرا رائعة لعدة سنوات ، IMHO.

@الكل

هل تم إصدار GTK + 3 متى؟

قبل 7 سنوات.

دع ذلك يذوب في فمك لفترة من الوقت.

وما زالت مجموعة ضخمة من مشاريع البرمجيات قائمة على 2.
بما أن النقل هو من دواعي سروري ..

استغرق XFCE و Mate ومجموعة كبيرة من الآخرين 6 سنوات لنقل الكود.
مشاريع أخرى تحولت بالكامل من GTK إلى Qt في غضون 2.

ونعم: تم تطوير GTK + بواسطة GNOME ، حتى الريبو موجود هناك.
إنه - بحكم طبيعته وتعريفه - مطور لجنوم ولا شيء آخر.

تم تطوير Qt للاندماج الحقيقي والأصلي في العديد من الأنظمة الأساسية.

الإلكترون ما هو؟

متجر جنوم؟

هذا لطيف.

تفكير ذكي.

إنه هو نفسه كما هو الحال في البرمجة الإلزامية والوظيفية ، وكذلك في العديد من الجوانب الأخرى هنا في هذا المشهد: غالبًا ما يتم التعامل مع البرامج الزائدة عن الحاجة والقديمة والقديمة على أنها مخدر مدمن ، مما يجعلها واحدة.

ويتم التعامل مع البرامج الجديدة والذكية والمبتكرة من خلال سوء الفهم والجهل المطلق.

تم تحويل 10 ، 12 مشروعًا من GTK + إلى Qt بينما لا أعرف حالة واحدة ، حيث حدث العكس.

دع هذا يذوب على لسانك مرة أخرى: هذا يعني إعادة كتابة كاملة لكود واجهة المستخدم المتكاملة والمتكاملة.
متداخلة بعمق ، في كثير من الأحيان.

مما يعني أنهم يفضلون ذلك ، مقارنةً بالترقية الرئيسية لأداتهم الحالية.
وجميعهم سعداء بهذا القرار حتى اليوم.

إسألهم.

قبل أن تتبع القطيع دون التفكير في البدائل.

ahjolinna نشر لك مقطع فيديو لأحد هؤلاء الأشخاص ، VLC و Wireshark و LXQt وغيرها من مشاريع البرامج الرائعة التي كانت تعتمد أيضًا في السابق على GTK.

يتم استخدام GTK فقط في Chromium كربط لـ Aura وهذا فقط في Linux / freeBSD / Solaris وما إلى ذلك:
إصدارات Windows و macOS خالية منها.

:غمزة:

على الرغم من أنني حصلت على نقاطك ShalokShalom ، فلا داعي لأن أكون وقحًا ، تتبع Electron ما يقدمه فريق Chromium.

زر الشوكة في الجزء العلوي بالمناسبة ، لا تتردد.

نعم ، كان هذا كاشطة بلا داع.

لكنني أوافق. يحتوي GTK على الكثير من الكسر غير الضروري الذي يسبب الألم ، وكان من الممكن أن يكون Qt خيارًا أفضل

  • إذا كان QtWebEngine يوفر وصولاً كافياً إلى مثيل الكروم الأساسي
  • إذا كان QtWebEngine يتتبع أحدث Chromium بسرعة كافية

أقترح أن ننقل المناقشة إلى مكان أكثر ملاءمة. ShalokShalom ، ما رأيك بفتح عدد جديد هنا ووصف المشكلة بطريقة أكثر

كانت VLC و Wireshark و LXQt وغيرها من مشاريع البرامج الرائعة تعتمد أيضًا في السابق على GTK.

هذا ليس صحيحا. كان VLC يستخدم wxWidgets قبل Qt وليس GTK: https://wiki.videolan.org/WxWidgets_Interface/

يبدو لي أن مستخدمي GTK قد اعترفوا منذ بعض الوقت بأنهم لم يتواصلوا مع الكسر والإصدار بشكل جيد بما فيه الكفاية في سلسلة 3.x وسيحاولون بجد أكبر في المستقبل مع استقرار أفضل وأكثر وضوحًا على المدى الطويل كما يمكن قراءته على https: / /blog.gtk.org/2016/09/01/versioning-and-long-term-stability-promise-in-gtk/.

أود أن أقول أيضًا أنه لا يمكن مقارنة Qt و GTK بشكل عادل بواحد نظرًا لاختلاف التاريخ والدعم والأهداف ، وفي رأيي أن لكل منهما إيجابيات وسلبيات اعتمادًا على وجهة نظرك.

إن التصريح بأن GTK مخصص لمشروع جنوم وفقط من أجله هو أيضًا في رأيي بيان شامل غير عادل.

ها! لم أكن أعرف حقًا عن تلك الخطط. يبدو أنهم تعلموا في النهاية. دعونا نأمل أن يبدأوا في التفكير في أي تغيير جذري في CSS تغييرًا جذريًا حقيقيًا.

آخر شيء سمعته هو… umm… Excentric GTK 4.0 ليس GTK 4 . لذا فهم يصلون أخيرًا إلى شيء جيد تقريبًا مثل semver! أنها تعمل تقريبًا بنفس جودة أداء Qt منذ 20 عامًا! 😁

يجب أن نرى الكترون بدعم GTK3 الأصلي افتراضيا قريبا بناء على هذا المنصب تويتر :

تم إصدار Electron 2.0.0-beta.1 مع Chromium و Node.js المحدثين وعمليات الشراء داخل التطبيق في

نعم فعلا. تم إنجاز العمل الحقيقي لهذا من قبل مؤلفي Chromium وحصل Electron عليه من خلال ترقية Chromium في Electron 2.0.0.

بالإضافة إلى ذلك ، تم تصنيف رمز Electron الخاص بـ GTK3 في https://github.com/electron/electron/pull/11879

نعم ، كان هذا كاشطة بلا داع.
لكنني أوافق. GTK لديه الكثير من الكسر غير الضروري الذي يسبب الألم ، كيو تي
سيكون خيارًا أفضل
إذا كان QtWebEngine يوفر وصولاً كافياً إلى مثيل الكروم الأساسي
إذا كان QtWebEngine يتتبع أحدث Chromium بسرعة كافية

حسنًا ، هذه هي القضية الرئيسية. يعتبر الناس ما هو الأسرع في التنفيذ بالنسبة لهم ، وهو أمر جيد ، بينما ينسون في كثير من الأحيان أن التنفيذ الفعلي لتشغيله هو شيء مختلف تمامًا عن الصيانة طويلة المدى.

من الواضح تمامًا من وجهة نظري أنه يمكن معالجة القضايا المذكورة.

بمجرد مقارنة عدد المبرمجين الذين يعملون بالفعل على منافذ GTK3 وأولئك الذين ينقلون رمز واجهة المستخدم بالكامل إلى مجموعة أدوات جديدة ، يمكنك أن ترى مدى روعة الاختلاف. أعتقد أنني نشرت بالفعل مقطع فيديو حول هذا الموضوع ، بعنوان "From GTK إلى Qt: رحلة غريبة".

لماذا التركيز على البرامج القديمة ، ببساطة لأنها تبدو جاهزة للاستخدام ، بدلاً من اختراق الدعم في Qt؟

إنها عقيدة "أستخدم ما يبدو أنه جاهز" ، والتي تتجاهل تمامًا القرارات طويلة المدى. نعم ، قد يبدو أن الأمر يتطلب مجهودًا أكبر قليلاً في المقام الأول ، بينما تستفيدون بالتأكيد من مجموعة الأدوات الحديثة بمجرد تنفيذها.

كما أنه ليس بهذه الصعوبة ، أن QtWebEngine لا يتبع Chrome بسرعة:
إنه سريع بما فيه الكفاية ويثبت Qupzilla أنه يمكنك القيام بأشياء مذهلة باستخدامه - خاصة في بيئة مناسبة ، مثل KaOS.

هل تعتقد حقًا أنك بحاجة إلى "وصول أكبر إلى Chromium الأساسي" وأن "QtWebEngine لا يتبع Chromium بسرعة كافية" نظرًا لأن Qupzilla والبرامج الأخرى تثبت أنها تشحن برامج مذهلة ، يحتفظ بها مبرمج واحد؟

هل تعتقد أنك بحاجة إلى مزيد من الوصول والمتابعة بشكل أسرع كمتصفح ويب كامل في Electron؟ كيف ذلك؟

الآن ، أنت تجلس على مجموعة البرامج الخرقاء هذه في الكثير من المشاريع وتدير الفرق الصغيرة 40-60٪ من التعليمات البرمجية المتداخلة بعمق إلى Qt بسرعة وكفاءة ؛

شيء لم يتمكنوا من القيام به من GTK 2 إلى GTK 3 ، ​​وهو أمر مذهل للغاية. كما قيل: استغرقت معظم المشاريع 6-7 سنوات لترقية نسخة رئيسية

ويبدو أن الجميع تقريبا يتجاهل ذلك؟ إنه لأمر محزن ، أنه في مجتمع علمي في البداية ، تستمر القرارات البدائية في الانتشار.

سلام :)

ShalokShalom ماذا تقصد ب "البرامج القديمة"؟ GTK +؟ اي سبب تقول ذلك؟

يرجى التوقف عن هذا البريد العشوائي في Qt ، فهذه مشكلة تتعلق بمنفذ GTK 3. إذا كنت تشعر بالحاجة إلى إقناع المشرفين بالتبديل إلى Qt ، فافتح مشكلة منفصلة. أريد تلقي أخبار حول تقدم التنفيذ ، وليس رسائل من Qt fanboys.

قفل هذه المحادثة بسبب المناقشة المفرطة خارج الموضوع.

يعالج القفل فقط الأعراض ، ولكنه حل سريع معقول حيث أن الانتقال إلى GTK3 قد انتهى ولم يتبق الكثير للمناقشة حول موضوع هذه المشكلة للانتقال من GTK2 إلى GTK3.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات