Breeze: Neden KDE 5'te varsayılan olarak gelmiyor?

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.

Esinti

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. ..


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Ivanbarram dijo

    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.

    1.    nano dijo

      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

    2.    nano dijo

      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.

    3.    Txarran dijo

      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.

  2.   mat1986 dijo

    Oxygen'in sahip olduğu tarz veya çalışma tarzına Breeze yaratmak (veya uyarlamak) mümkün müdür?

  3.   Andekuera dijo

    Qtcurve'a ne olacağı hakkında bir fikri olan var mı?

    1.    Txarran dijo

      Qtcurve-qt5 bir süredir mükemmel çalışıyor. KDE'nin yeni sürümü her zamanki gibi gelecektir.

      1.    Aioria dijo

        Ş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 ...

        1.    Txarran dijo

          Ben aurorae'nin yaratıcısı ben miyim? O_o;

  4.   Sergio E. Duran dijo

    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

  5.   eliotime3000 dijo

    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.