Archived posts from a dozen years ago.

Delicious Transblurency [1]

19 April 2010

The ‘focus‘ word has many meanings, ranging from the optical concept of ‘good convergence of light rays generated by an object’ to the cognitive process of directing the attention to a particular target while ignoring other targets.
Now the interesting part: this concept can be used in computers too, especially in user interfaces, to direct the user to relevant information or to help him through a step-by-step process. How to do that? Since every image you see on screen is ‘on focus’ by default, you can easily unfocus unuseful information.

Blurring is the act of altering images so they appear out of focus. My Maestro[2] and other illustriuos people already talked extensively about this topic here on planet KDE. However you don’t improve the world until a technology becomes available to everybody, right?

Then some days ago I read on notmart‘s blog that plasma and kwin supported blurring the background on windows.. so I rebuilt KDE4 svn, restarted it, and… boy.. does it make a difference! Look at Marco’s blog or at this picture I stole from him! All the popups become instantly more readable, even krunner does, and you immediately get the feeling that the plasma panel and all the systray applets really are above your desktop and they look as they were made of some glass/plastic material.

So: why limiting this just to some plasma applets? Well, I think that the usage of this effect must be wise, however I wanted that for my app too…

…’cause I like eye-candy! 😉

After a quick tour through the beautiful KDE svn I grabbed all the needed source code and loaded Fotowall in creator. Since I already had the structure for the blur-behind on windows in place, adding the KDE4 effect was really easy. Here are some samples of what you can get:

Fotowall using KWin's new Blur effect.

To activate the back blur you need:

  • obviously an application with a transparent background. Qt easily allows to work with transparency on top-level windows.
  • you have to enable the “blur” effect in kwin’s “desktop effects” configuration.
  • a couple of lines of code to ask kwin to activate blurring to your window.

Here is the code that does the magic:

#if defined(Q_WS_X11)
/**
  Blur behind windows (on KDE4.5+)
  Uses a feature done for Plasma 4.5+ for hinting the window manager to draw
  blur behind the window.
*/
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <QX11Info>
static bool kde4EnableBlurBehindWindow(WId window, bool enable, const QRegion &region = QRegion())
{
    Display *dpy = QX11Info::display();
    Atom atom = XInternAtom(dpy, "_KDE_NET_WM_BLUR_BEHIND_REGION", False);

    if (enable) {
        QVector<QRect> rects = region.rects();
        QVector<quint32> data;
        for (int i = 0; i < rects.count(); i++) {
            const QRect r = rects[i];
            data << r.x() << r.y() << r.width() << r.height();
        }

        XChangeProperty(dpy, window, atom, XA_CARDINAL, 32, PropModeReplace,
                        reinterpret_cast<const unsigned char *>(data.constData()), data.size());
    } else {
        XDeleteProperty(dpy, window, atom);
    }
}
#endif

And then you can activate the blur on the caller widget with:

    kde4EnableBlurBehindWindow(winId(), true);

You could add the back blur to your application too, however I advise you that the interface is not standardized, so don’t blame either me or the kwin authors if something changes. Here is another picture, because everybody loves them 😉

Another back-blurred screen in Fotowall.

And now, as a side note, a picture from my new work place: the beautiful city of San Diego, blessed by the sun and by a ton of great programmers that by some chance happen to be co-workers of me 😉 With all the blue sky and long days, I can’t imagine a more inspiring place for making new blog posts and code experiments!

Notes:
[1] obviously the name is completely made up 😉
[2] Italian word meaning “teacher” as in school or life teacher

Comments
5 Comments »
Categories
Computer Graphics
Tags
avanguardia, creativity, fotowall, kde4, planetkde, qt, x.org

Grab one, it’s free!

11 January 2010

As promised, here is a list of some KDE ideas that the people left in my previous post, along as mine. They’re available for free, so feel free to pick one and make it yours 😉 As a side note, I’m making a KDE Prediction for 2010: KDM will receive lots of love! You can see that the stars are aligning. In fact I’m going to split this post into 2 ideas scenarios to reflect that.

KDM Ideas

  1. QML in KDM
    This is all about animations, user interaction and eye candy. See this for example.
  2. Plasma in KDM
    This is about consistence and configurability.
  3. Webcam Login (face recognition) in KDM
    Show your face (or Mona Lisa‘s one) and you’re in! No password typing needed. Integrating with the pam-face-authentication may be the smart way to go.
  4. Fingerprint Login in KDM
    This is KDE’s most requested feature… you can’t be wrong implementing it 😉

KDE Ideas

  1. Unified webcam library
    Webcam’s are being utilized a lot lately: they’re cheap, widespread, and they’re working good under Linux. Projects come out with webcam support, like Fotowall, Kamoso, Kopete and there are efforts to get it working in Phonon.
    Note that a camera is a source of video, images but also can be used for authentication and may even be used for user input – can you imagine manipulating stuff with your fingers? Note that webcams must usually be read in single instance, so the approach here might be 1 Qt-Only userspace daemon supporting multiple connections.
  2. Unified Theme Manager
    One theme manager to rule them all: styles, colors, plasma theme, windeco & all. Of course the themes must be packed and shared in a binary-compatible manner with any other KDE system (yes, the challenges are there.. 😉
  3. Unified Configuration Panel
    Making systemsettings really the one and only configuration tool and provide backends to the distributions for adding/changing modules so KDE systems will have the same feeling for configuring the system. Some modules like ‘partition disk’, ‘edit boot menu’ and ‘manage startup programs’ (daemons) should be added and left to the distribution for implementation – I think they will. Note that current systemsettings lets you configure the joystick even if you don’t have one (!).
  4. KWIN: draggable windows
    And for windows I mean (actually J. Janz means) the whole non-interactive panel. Blank space as well as inactive labels should be draggable. From the user POV there is no window-deco + window contents. It’s a panel, let’s use it, move it, resize it, context-menu-it as a whole.
  5. Raytraced UI
    I’ll blog more about this, but this is a little thing I’d really like to do but I don’t know if I will find time to do that. Do you think that iPhone gui is cool? Raytrace the .ui high-level gui definition format and you’ll get something better. Glassy too. Mail me if you want to know more about this 😉

Conclusion

I’m sorry I missed some interesting suggestions but I don’t have space here to detail them; just look to my previous blog entry’s comments to find more about BasKet note pads integration into Plasma, file browsing enhancements (context dependent actions, menus, warnings and kparts) qt4 gui for vi, etc.

As someone pointed out there is quite a bit of overlap and dispersion between the ways to collect ideas. I can count:

  • KDE Bugzilla’s wishlist
  • KDE Forum’s brainstorm
  • distribution specific bug trackers
  • blog posts (ehm….:-)
  • GSOC ideas
  • kde-look’s brainstorm
  • developers mailing lists
  • other bugtrackers
  • techbase or userbase
  • direct mails and irc chats

Directing users to provide their feedback in a low-dispersive, constructive, modern, layered (from generic directions to specific actions) and focused way is probably one of the challenges that should be added to Aaron’s list for 2010.

Comments
10 Comments »
Categories
Senza categoria
Tags
creativity, kde4, open source, planetkde

Gift a cool idea!

31 December 2009

You often think “this KDE idea of mine would kick ass” but then you don’t have time to implement it and finally you forget about it? Welcome to the club!

Collecting Ideas

I want to blog about some cool things to do for the KDE project on week-1 2010. I’ve got just a couple of good ideas, so I’m asking you to add your ideas so we can make a good collection of nice things to do. You can either reply to this post (don’t be shy, just post it!) or send it to me at <enrico.ros@gmail.com>.

Sharing your idea with the community raises the chance of seeing it implemented! 😉

Comments
16 Comments »
Categories
Software
Tags
creativity, kde4, open source, planetkde

QML to KDM! Presto!!

24 December 2009
I’m really surprised you’re still reading, since the title really explains it all.. but for you, my beloved reader, I’ll spend some words more.

The KDE login Manager

The login manager is the “insert password” dialog that gets in the way when you want to use your computer. Of course you may not be the only user of the machine, so it’s somewhat needed when you share the seat. Some facts:
  • the honorable Stephan ‘coolo’ Kulow landed it in cvs Sept 2nd 1997 (yes, that’s 12 years ago)
  • great people like Waldo Bastian and David Faure worked on it
  • it’s now maintained by the über-expert Oswald ‘ossi’ Buddenhagent
  • I did the graphical themes support, implementing the GDM themes spec back in the KDE3 days
  • “The first thing you’ll notice about the new KDE 4 is it’s old login manager” – as David Vignoni says in his controversial blog entry,

The funny thing is: 1 year from now Win7 and MacOS will stare at KDM with envy!! Read on to know the future history.

Kdm Top to Bottom

Let’s say that KDM rocks ‘backend-wise’: multiple-seats, integration with running sessions, XDMCP and all the other stuff that makes kdm the top of the class. But what do you find in $SVN/KDE/kdebase/workspace/kdm ?
  • backend/* -> the display management core
  • kfrontend/*.{cpp,h} -> 90’s GUI, there is even an aliased analog clock..
  • kfrontend/themer/* -> graphical themes stuff (just 2243 source lines of code)
The themer, which is used by default, implemented the gdm theming specs but it was never package-compatible (afaik) with gdm (we lost a good inter-op chance there). It was implemented in the KDE3 days, so we had to code our ‘backing storage’ to implement transparency between layers and in the end the themes are hand-written xml files that embed some default components (line-edits for user/pass insertion, listview for user list, etc).
It looks so old-style, doesn’t it?

Qml to the rescue!

What if we throw away (or keep for “retro-compatibility”) the classic and themer frontends and just add a frontend using QML? This is the name of the language of the Qt Declarative module, that has just seen the light and will be merged into Qt for the 4.7 release.

Imagine this:

  • theme creators will have 100X or more expressive power: make snow! login via a tetris puzzle! bounce my webcam picture!
  • there will be animated themes (for login, user change, logout, etc..) or simple ones for more ‘classic’ kind of people
  • kdm only needs to add a couple of bindings to the qml runtime, like functions for logging in and shutting down / suspend the system
  • there is no need for compiled binaries, packages will be interpreted by the qml runtime – finally a painless get-hot-new-stuff (compared to plasma widgets, at least).

Conclusion

I’m not able to mock-up what comes to my mind, but just look at some qml videos on youtube to grab the concept.
What do you think about that? Could this be a low-effort high-inpact development for KDE 4?

Thanks to Davide Bettio who made me blog this.
Comments
23 Comments »
Categories
Computer Graphics
Tags
avanguardia, creativity, kde4, planetkde, qt

Hello planet KDE

13 July 2009

Hello everyone, my blog has just been aggregated into planet KDE.

For those who don’t know me, I’m a long time KDE user (since 2.2), I worked on several KDE projects like okular, kdm, amarok, konqueror, as well as releasing other software like Fotowall and other stuff on various repositories.

This planet is the collector of many of my favorite blogs and it’s an honor for me to be here.

See you soon (with some developer tool hacks…stay tuned) ! 😉

Comments
2 Comments »
Categories
Interests
Tags
kde4, open source, planetkde

Il meglio di KDE al GSoC

22 April 2009

Esiste miglior diversivo, per dimenticare l’esclusione del mio progetto dal Google Summer of Code 2009, della recensione dei progetti accettati per KDE? Assolutamente no! 🙂 ed ecco allora la:

Lista dei miei sorvegliati speciali 2009

  • nepomuk “Improving Search and Virtual Folders”
    creazione di un widget standard per la ricerca con Nepomuk da integrare in Dolphin, nel File Dialog, etc.. e miglioramento del backend ‘nepomuksearch:’ + virtual folder (es. Immagini = tutte le immagini presenti nel pc)
  • phonon “Visualizations”
    estrae statistiche (spettro, metriche varie) dal flusso audio di Phonon per fornire i dati a visualizzatori. Utile per tutto kdemultimedia oltre ai vu-meter fai da te!
  • kdevelop “C++ refactoring support”
    datecelo e svilupperemo al triplo della velocita’ 😀 dateci anche “static code visualization” e ci regalate un altro emisfero cerebrale. (il motore C++ di kdevelop spaccadibbrutto, la gui/workflow e’ 10 volte meno usabile di QtCreator)
  • plasma “New Widget Explorer”
    l’attuale ‘just sucks’.. c’e’ bisogno di disabilitare i plasmoidi non validi, di raggrupparli per tipologia, di avere un dialog che presenti piu’ contenuto in molto meno spazio (e speriamo che tolgano l’odiosa stellina mangia spazio :-))
  • plasma “PlasMate Editor”
    puo’ aiutare la diffusione dei plasmoidi, ma solo *se fatto a regola d’arte*, altrimenti brucia la bonta’ di plasma.
  • plasma “Media Center Components”
    componenti Multimediali per Plasma. Alessandro puo’ fare un bel lavoro qui. Optimization is needed btw 😉

Ce ne sono ovviamente molti altri di interessanti (tra i 38 assegnati a KDE), e non parliamo dei progetti di Gnome, LLVM, GCC, Gentoo, e degli altri 900 😉

Comments
Comments Off on Il meglio di KDE al GSoC
Categories
Software
Tags
kde4, open source, summer of code

KDE 4.0.0 – Be Free

11 January 2008

L’ultimo rintocco dell’orologio a mezzanotte è stato il primo battito del cuore per quel neonato che in tantissimi stavamo aspettando, quell’ultimo pupillo di casa KDE che è appena nato ma già promette benissimo!

Da oggi, 11 gennaio, KDE 4.0.0 è una realtà che possiamo usare sui nostri desktop, un tassello importante che porta nuove tecnologie alla porta di tutti, senza distinzioni. Multipiattaforma, integrato, curato nell’aspetto, nei suoni, nell’interazione con l’utente, e fonte di ispirazione per me e, mi auguro, per i miei compagni di ventura in M31.

KDE4 logo

Voltiamo pagina nei nostri desktop. Il nuovo inchiostro lo metteremo noi.

– Be Free.

Comments
Comments Off on KDE 4.0.0 – Be Free
Categories
Software
Tags
avanguardia, kde4

Blogroll

  • Ariya Hidayat's Blog
  • Davide La Rosa
  • PlanetKDE
  • Pollycoke
  • Qt Labs
  • Yanko Design
  • Zack Rusin's Blog

Recent Posts

  • How to recognize a revolution
  • KDE 3 on “The Social Network” movie
  • Delicious Transblurency [1]
  • Grab one, it’s free!
  • Gift a cool idea!

Tags

amarok Android avanguardia cheating colorpicker creativity curriculum figosità fotowall future graphicsview heroes kde3 kde4 life M31 multi-touch nokia open source planetkde planetqt posterazor qt qtsoftware statistics summer of code wallpaper x.org

Archives

  • April 2011 (1)
  • September 2010 (1)
  • April 2010 (1)
  • January 2010 (1)
  • December 2009 (3)
  • October 2009 (1)
  • September 2009 (4)
  • August 2009 (1)
  • July 2009 (3)
  • June 2009 (3)
  • May 2009 (2)
  • April 2009 (3)
  • March 2009 (1)
  • January 2009 (2)
  • May 2008 (1)
  • April 2008 (1)
  • January 2008 (2)
  • December 2007 (1)
  • November 2007 (1)
  • September 2007 (3)