Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Blur behind Window (on Linux)



  • Hi!

    Is it possible to create a frameless, transparent and blurred window under Linux? I know, there are some engines for KDE providing that kind of feature, but I want to keep my app as independent as possible. The frameless and transparent things are not really my problem, but the "blur" is. It should not blend with the window background, instead it should appear as transparent and blurred, with the wallpaper, background itself. Any ideas where to start?


  • Lifetime Qt Champion

    Hi
    You mean like a true window that has a semi transparent look with blur?

    we can get blur with
    QGraphicsBlurEffect *effect = new QGraphicsBlurEffect;
    item->setGraphicsEffect(effect);

    however, my linux MINT with XFCE did not like trans+blur.

    You could cheat and simply grab the desktop underneath but that is still somewhat static if user sneaks a window under yours
    it would not show. etc.



  • Hello!
    I have the same problem, I'm not able to make the window blur the desktop. I've already seen the deepin implementation and I couldn't find where they apply this effect. Do I have to call a function from KWin(In my case), XCB, X11 or the QPainter is enough?
    I saw some implementations using the following code alongside a way to grab a screenshot of what is behind, but ,at the moment I make it, I can't reapply because the blurred image stays on top (keep blurring the same screenshot).

    QT_BEGIN_NAMESPACE
    Q_WIDGETS_EXPORT void qt_blurImage(QPainter *p, QImage &blurImage, qreal radius, bool quality, bool alphaOnly, int transposed = 0);
    QT_END_NAMESPACE
    

Log in to reply