After a long "absence", lack of blog entries, and too much code not being written...I am finally able to resume (to some extent), those things...or...the opposite of those things, rather.
Although I am still searching for the best migraine medications, my current combinations are working decently enough to allow me more hours instead of having to sleep for the whole day. The good news is that it there isn't anything "severely" wrong with me. Unfortunately, to search for the right medicine, there's a period where it regresses, until I discover that the medicine either works or doesn't; and it takes many weeks to know that The good news is that they're less severe generally, I'd say, as well as being less frequent. I still have not had a day without them for 9+ months or so. So, don't get the impression that I'm purposely avoiding KDE ;)
Okay, now exciting part: some updates on KDM-Plasma. First of all, not too long ago I got it to the point where it was possible to login. That was pretty sweet.
Well, now I have some infrastructure changes I am going to be working on. Most importantly, I've decided to now make KDM-Plasma support QML. By "support", I mean that it will
be using it, exclusively. (well, I suppose you could use C++ for it instead...if you're nuts).
What does it mean when I say KDM-Plasma will be using QML? Well, KDM will take one Plasmoid and stretch it to the size of the scene. This applet will be written in QML/Javascript,
and it will be able to access the DataEngines. There will be one main DataEngine, which will have the general data sources like the sessions available, the userlist, etc. etc. Then there will additionally, be n numbers of authentication plugins. The idea is to separate it from the previous concept whereby the Plasmoid effectively *is* the authentication plugin as well as the creator of the UI. This of course had drawbacks in terms ease of customization (how many times do you want to change the authentication plugin through code, as opposed to just changing the look).
So, just to sum it up: DataEngines/Services (in addition to the Main one) are now serving as authentication plugins. The QML applets can pick which one it wants to use, and it should be relatively easy and require not much intervention in terms of getting it to work. It will have to do -something-, to an extent, in logic, but 99% of this will be in the DataEngine, and the 1% that needs to talk to the DataEngine authentication will be the applet. The DataEngines are essentially a "write once and probably never worry about it again", much like the current KDM plugins are (classic, winbind, generic, (unofficially fingerprint)). Hope that makes sense. I haven't thought about how to break apart the API nicely, but I'm working on it now...
QML should make it exceptionally easy for someone to write a Plasmoid, ) which takes up the entire screen, remember) - and therefore it will be "in charge" of anything it wants to. (e.g. you can place a billion buttons all over the place and stuff like that). Right now, I have a PathView incorporated into it for the userlist, which you can flick and click. That's just for the applet I'm working on. You can do whatever you want for the QML applet you want to do. So, this allows *absolutely simple* branding, UI redesign, as well as fun animations, to make it feel more alive and less stale/static.
Well, if any of you know QML, or want to learn it...feel free to impress me with neat themes and their animations, etc. (I suppose that's the best word for them)! You can actually create one right now just through qmlviewer...and I would just port it over later. In fact, I'd love it if you did...it'd give me some more ideas as well as give me more to include with KDM). If you care to follow through with that, feel free to contact me if you need help or what not.
Bad News Everyone!
It will not be making it into KDE 4.7, it everything ends up freezing around mid-May, so there's no way I can get it in by then. And I'm too much of a perfectionist to rush it, especially with something as important as this; don't want any security implications and what not, and I don't want to give a bad impression in terms of Plasma being used in KDM. Polish, polish, polish.
By the way, I have moved this code to Git now, which I am really liking, especially because of the offline way it treats things (admittedly I have only used small features), so feel free to clone/watch/poke at it. Link: Quick Git (this is my branch of kde-workspace, and I affect the ./kdm/plasmafrontend/ directory).
Subscribe to:
Post Comments (Atom)

It's great to hear that you are getting better, hopefully you will get better soon.
ReplyDeleteI doubt this is a top priority but KDM's login manager looks bad without being in "themed" mode. Oxygen looks great everywhere in KDE, except in KDM. A really nice idea of what KDM should look out of themed mode is:
http://kde-look.org/content/show.php/Kubuntu+Lucid+KDM+Theme+on+KDE4+Colors?content=123845
BTW, any info about login using a fingerprint reader? GDM 3 has already that feature, and I think that the current implementation depends on KDM Plasma. Am I wrong?
ReplyDeleteWill this plasmoid be in charge of the input box for the user and password? because if it is, it means I won't be able to login until qt and plasma are loaded and working right?
ReplyDeletewouldn't it be better if the login stuff is drawn directly like now, but plasmoids are loaded on the side to offer more information?
This would make theming harded I know, but if it will take 5 seconds to be able to login, then I think it's worth it
That sounds awesome. After the recent GDM upgrade it became less customizable - or at least hard enough that people stopped doing it. But KDM still has plenty of themes out there. This would make it even more amazing!
ReplyDelete@eric
ReplyDeleteHm...recent GDM upgrade? Ah, Gnome Shell and the such. I'm curious to see what it looks like, I couldn't find any screenshots or anything.
@alejandro nova
Hm, not entirely correct. With the old KDM, there is an "unofficial" kfingerprintf plugin. However, I believe the backend is not exactly ready to handle it, so it isn't included by default or anything. Unsure on the details, ossi knows more. But if say...-that- plugin were OK to be included, then I/someone could then create a KDM-Plasma port for it, and make it look nice and native. Does that make sense?
@damipereira
Yes, the plasmoid is in charge of essentially everything.
You will be unable to login until Qt and Plasma are loaded? Well...yes. But the same exact circumstance occurs with old KDM; if Qt and KDE isn't loaded, you will be unable to login. The difference is that Plasma is now an additional aspect to load.
That is the fundamental aspect of making KDM use Plasma. You can't make it use Plasma, but somehow keep the old way of doing it. First of all, there would be no point in doing so, because it will load Plasma first anyways.
In other words, this would make theming uselessly silly, especially when the benefits are *so close*, but are negated for a weird reason. Also, I can guarantee that one main login Plasmoid will not affect the startup time wrt that. It's the Plasma Shell and parts of KDE infrastructure which takes the greatest portion of time to startup.
@ctown
Thanks. This is quite divergent from what I am trying to achieve. You basically have said "well, since you are working on KDM-Plasma to make KDM look much better, could you also make it look much better when not using Plasma" ;p
In other words, I'm not interested, if that's the case, (since this is the future!) ;)
Hi.
ReplyDeleteCorrect me if I'm wrong, but it seems to me that you say that the login plasmoid will take the entire screen. Does that mean that users will not be able to customise their KDM with plasmoids? I see several useful use cases such as having notes or a virtual keyboard (which is really lacking with the current version of KDM, to improve accessibility).
I thought customisation by users was one of the point of using Plasma for KDM, together with easier theming. Did I misunderstand?
Thanks for your work and I hope you'll get better.
@agui
ReplyDeleteYou are incorrect. The fact that it is a plasmoid..I suppose is more of an implementation detail than anything. The user won't be able to drag it around or anything. The fact that it is a Plasmoid, means that it makes it very easy for the developer to have full access to the screen, as well as the dataengine (and even other datengines).
To clarify, no, it does not prevent the user from placing Plasmoids on the screen. And yes, that is one of the great selling points of KDM-Plasma ;-)
I'd also like to point out, the main Plasmoid, or "theme", if it should be called such (I can't really think of a good name for it), could also directly incorporate aspects like weather, or time, via Plasma::DataEngines. These are just some examples...what I mean by this, is that for example, if the weather is sunny, the theme could show a giant sunshine icon, or one in the corner. So basically anything could be incorporated *directly* into the theme, instead of as an additional Plasmoid.
So really it opens up a pot of gold for any designer who wants have fun with it ;p
@sreich
ReplyDeleteThanks for the explanation. Actually, you were talking about the "background part" of KDM-Plasma, and not the whole KDM. I understand better now. I'm really looking forward using it !
Sorry but what I meant is kdm startup time,
ReplyDeleteHow many seconds will I have to wait until, for example just putting the password to log into gnome? (supposing I use both kde and gnome, with kdm as display manager)
I hope to be wrong but, loading and rendering a full plasmoid won't mean a 5 or 10 second delay?
Get well soon! First health than superb KDM :) glad to hear you are a perfectionist, I'm tired of buged like hell apps that work in half way, regards.
ReplyDelete