Archived posts from a dozen years ago.

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

I’m going Multi-Touch

2 December 2009

This is one of the hottest topics of the moment: Multi-Touch (see the trends here). Every review of the just released Qt 4.6 mentions the Touch-and-Gestures framework and KDE is getting ready to use the technology — still it doesn’t work on X11 (yet).

MultiTouch can be Fun !

Wacom_Bamboo-Fun-smallI couldn’t resist, so for 99€ (120$) I bought a Bamboo Fun Pen & Touclh tablet. I find this really affordable, since you get: A. the precision of a graphics tablet (with 1024 pressure levels, back eraser, etc..) and B. a real 2-Pointers input device!

I tried the tablet on vista, with the latest drivers and the bundled applications bot I got disappointed because:
1. the scroll gesture is remapped to the mouse wheel.. so you lose all the ‘analog’ fun and it feels unconfortable.
2. the zoom gesture is remapped to CTRL+wheel, awkward fixed-steps again.
3. the rotate gesture is not supported by any app even the bundled ones i tried.

In the end I thought this was not “multi-touch”, but some silly gesture-detection broken hardware. I was wrong.

Linux to the rescue

gesture-vortex-2S
Step 1. After loading the wacom.ko module (updated with this patch) the Linux kernel prints out stuff like this:

[default   ] data: 02 00  00 00 00 00 00  00 00 00 00  00 00 00 00 00  00 00 00 00
[finger 1  ] data: 02 00  7d 80 fe 00 8a  80 fc 00 87  00 00 00 00 00  81 11 00 00
[finger 1+2] data: 02 00  ae 80 b6 00 72  81 08 00 70  87 81 5b 00 72  81 21 00 00
[finger   2] data: 02 00  00 00 00 00 00  81 59 00 b4  6d 81 59 00 ba  80 11 00 00

Can you see it ? This is a 2-finger device! 🙂

Step 2. The Kernel understands the data and splits it into 2 input devices that Udev maps to /dev/input/wacom and /dev/input/wacom-touch. From here you can read higher level information for each finger such as the decoded position, pressure, click type (tap, doubletab), and more.

I WANT QTouchEvents AND QGestures !!

I do too 😀 And I wanted to hack something about that. But I stopped here:

schema-problem

We get the input from evdev and the Application needs QTouchEvents and QGestures, so the easy way would be to hack up a touchpoint feeder to the Qt framework that directly reads from evdev (evdev -> qt). This would work fine for 1 application, but what about two? And what about moving the X cursor too? I think evdev->Xdriver->XInput2->qt is the solution, but we must be sure that no valuable information is lost in the chain, that the event filtering is done in the right place and obviously, that the X driver does a good job. Unfortunately xf86-input-wacom (X input driver for wacom’s kernel driver) doesn’t support my Bamboo Fun Touch & Pen yet and moreover I don’t see MPX support in the sources, so I’m wondering how far away is the Qt multi-touch backend from seeing the light.

Conclusion

I don’t know which way the multi-touch will happen on linux, but I know for sure that we want to play with gestures and we want it soon 😀

For more information:

  • Peter Hutterer’s blog. Peter is the MPX (Multi Pointer X) author and plays a big role in the X.org community.
  • X Input Extension 2.0 features.
  • The Linux Wacom project. A community-driven effort to develop kernel and X drivers.
Comments
7 Comments »
Categories
Senza categoria
Tags
avanguardia, creativity, multi-touch, planetkde, planetqt, qt, x.org

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)