Zaten bildiğimiz gibi, KDE Next (veya tercih ettiğiniz KDE 5) birkaç gün önce stabil olarak piyasaya sürüldü ve getirdiği yeni özellikler arasında en çok konuşulanlardan biri Breeze adlı yeni Artwork.
Bu yeni sürümü daha önce denemiş veya videoyu görmüş olanlar, pencere dekoratörü durumunda, varsayılan olarak gelenin Breeze değil Oxygen olduğunu fark etmiş olabilirler. Aynı zamanda Martin Graßlin bize açıklar blogunda bu kararın sebebi nedir?
Makale İngilizce olduğu için size bunun temel fikrini getirmeye çalışacağım.
Breeze neden varsayılan olarak gelmiyor?
KWin 4'te pencere dekorasyonlarının nasıl çalıştığının açıklamasıyla başlayacağım. KWin, pencere yöneticilerinin yeniden ebeveynlik yapmasıdır. Bu, X11 tarafından yönetilen pencerenin, pencere çerçevesini sağlayan başka bir X11 penceresine yerleştirildiği anlamına gelir. KWin'de pencere çerçevesi için QWidget kullanıyoruz. Bu nedenle, QWidget'in bize sağladığı şeyle de sınırlıyız ... Çözümümüz, QWidget'teki tüm dekorasyon boyama olaylarını durdurmak ve bastırmak, bestecinin yeniden boyamasını tetiklemek ve oluşturma aşamasında, daha sonra kopyalanan geçici bir görüntünün dekorasyonunu garanti etmektir. bir dokuya.
Breeze temalı pencere dekorasyonu, Aurorae tema motoruna dayanmaktadır. Aurorae'nin baş yazarı olduğum için, bu blog gönderisine kendimi kötü hissetmeden vurabilirim 🙂 Aurorae, bir dekorasyon oluşturmak ve yeni yarı saydamlık özelliklerinden yararlanmak için çok kolay olacak şekilde tasarlandı. Varsayılan bir dekorasyon olarak kullanılabilecek bir çözüm olmak, ancak hiçbir zaman hedefleri olmadı. Fikir, bu özelliği özelleştirmek isteyen kullanıcılara izin verirken, çoğu kullanıcı daha hızlı yerel temaları kullanabilmekti. Aurorae asla hızlı olmadı ve hızlı olmayacak.
Şimdi KWin 5'te, QML kullanımı Aurorae'nin kullanımını zorlaştıran ana sorundur. QtQuick, Scenegraph'ı kullanır ve QWidget yerine QWindows'u kullanır. Bu, QWidget tabanlı API'miz için bir serseri. Dahili kullanımı QWindows tabanlı dekorasyonları destekleyecek şekilde ayarladık, ancak pencere davranışında farklılıklar olduğu için bu oldukça zor bir yoldu. Artık QWidget temelli olmadığından, boya olay yakalamamız bozuldu ve bunun için yeni bir çözüme ihtiyacımız vardı. Ve bu çözüm öncekinden bile daha çirkin çünkü QtQuick şu anda OpenGL üzerinden çalışıyor. OpenGL Qt uygulamasındaki sınırlamalar nedeniyle (Qt 5.4'te ele alınabilir), QtQuick tarafından kullanılan OpenGL bağlamıyla paylaşamıyoruz ... Bu yalnızca içeriği GPU'dan RAM'e kopyalarken ve tekrar GPU, ayrıca çok fazla bellek kaybediyorsunuz. Büyütülmüş bir pencere olması durumunda, bu sadece başlık çubuğu değil, tüm penceredir. Ve her pencere için bu ek yük vardır.
Bu tek başına Aurorae'yi tamamen kullanılamaz hale getirebilir. Şu anda Breeze temasını kullanıyorum ve KWin'in 200MB'den fazla RAM'e ihtiyacı var - gerçekten kabul edilemez. Ancak durum daha da kötü. QWindows ile hangi alanların güncellendiğini bilemiyoruz. Bu nedenle, örneğin bir düğme güncellendiğinde, dekorasyon içeriğinin tam kopyası dahil olmak üzere tüm pencereyi yeniden boyamamız gerekir. Bu özellikle animasyon durumlarında büyük bir sorundur.
Öyleyse ileriye giden yol nedir? QWidget'ten sağlık temelli dekorasyonun kısıtlamasını kaldırarak API için yeni bir dekorasyon uygulamaya başladım ve aynı zamanda bu yeni API ile Breeze dekorasyonunu uygulamaya başladım. Umarım bunu KWin 5.1'de tanıtabiliriz.
Ve işler böyle, beyler. Umarım sorunun ne olduğunu az çok anlarsınız. Martin'e Oxygen gibi yerli Breeze temasını yapmanın daha pratik ve hızlı olup olmadığını soracağım, ancak şu anda endişelenmiyorum, Oxygen dünyadaki en şirin şey olmasa da birçok seçeneği var. ..
Her şeyi okudum ama hiçbir şey anlamadım, bugün yavaşım. Her neyse, KDE 5'i hala OpenSUSE 13.1'imde test edemiyorum. Sahip olduğum bazı "eski" bağımlılıklar yüzünden beni kırıyor.
Belki sanal bir işletim sisteminde size başka bir şans daha vereceğim.
Selamlar ve Giriş için teşekkürler.
Kolay değil, temelde uygulamaları yapmanın yolunun özellikle eklentiler için karmaşık olduğunu ve aslında aurorae'nin YAVAŞ olduğunu, Oksijen'den çok daha fazla olduğunu açıklamaya çalışıyor.
Bu anlamda, pencere dekoratörü kısmında ve bana görünen her şeyde bilmiyorum
Kolay değil, temelde uygulamaları yapmanın yolunun özellikle eklentiler için karmaşık olduğunu ve aslında aurorae'nin YAVAŞ olduğunu, Oksijen'den çok daha fazla olduğunu açıklamaya çalışıyor.
Bu anlamda, pencere dekoratörü kısmında ve bana KDE'nin GNOME'un bir adım gerisinde olduğunu düşündüğümde bilmiyorum ve dikkat edin, en iyi ihtimalle KDE hayranıyım, sadece benim için zor değil bir şeyi doğru olduğunda kabul etmek.
Bununla ilgili hiçbir şey bilmeden, temel olarak anladığım şey aurorae'nin (Breeze'nin kullandığı motor) artık sorun yarattığıdır çünkü Kwin5 artık kwin4'teki gibi qwidget kullanmıyor ve pencereler aynı şekilde davranmıyor. Bunun yerine, doğrudan opengl ile çalışan QML ve QTquick'i kullanır ve bu nedenle qt 5.3'teki bazı mevcut sınırlamaların eski motorun ve temalarının yeni Kwin'de iyi performans göstermemesini engellediği görülmektedir.
Oxygen'in sahip olduğu tarz veya çalışma tarzına Breeze yaratmak (veya uyarlamak) mümkün müdür?
Qtcurve'a ne olacağı hakkında bir fikri olan var mı?
Qtcurve-qt5 bir süredir mükemmel çalışıyor. KDE'nin yeni sürümü her zamanki gibi gelecektir.
Şimdinin her zaman ön saflarında yer alan Kaos'ta Kf5'i test ederek Kaos linux plazmasında biliniyor olması ya da kde 5 oksijeninin varsayılan olarak gelmesi benim için zaten garipti. Vay canına, Aurorae'nın yaratıcısı olduğunu bilmiyordun ...
Ben aurorae'nin yaratıcısı ben miyim? O_o;
Bir sonraki taze adı verilen aurorae'de de esinti için bir yedek yaratıyordum, bu daha sonra esinti taze olacak, ancak SVG'lerin temaya uyarlanmasıyla yapamıyorum, bu yüzden geliştirme etkisiz, elav, eğer fırsatınız varsa sizi çok isterim esinti temasının yaratıcısına, benim aurorae dekorasyon fikrimi esinti dekorasyonuna alternatif olarak yerel KDE dekorasyonlarına taşıyıp taşıyamayacaklarını görmek için ona gösterin
https://drive.google.com/file/d/0B6VUkpZzqL7hbk1QbWN6eVcycU0/edit?usp=sharing
Sanırım KDE 5, ailem ve çocuklarım olduğunda ve yaklaşık 30 yaşındayken Fedora, Debian, Slackware ve Arch üzerinde olacak.
Kısacası, kalan küçük gençliğimden yararlanmaya devam etmek.