KDE, LightDM and the Mir Kerfuffle

With Canonical's decision to make a new display server, there's been some questions as to how this affects LightDM and the KDE front end I've spent a long time working towards.

It's a perfectly sensible question, LightDM has heavy Canonical sponsorship, and a display server needs to be supported in the display manager.

Canonical (and Ubuntu) have decided not to adopt Wayland as their new display server, but a new in-house system called Mir. We in KDE have already made the decision that Wayland is the future, and work in kwin has already begun on that. Having a Display Manager that supports a Wayland system compositor is essential to our long term strategy.

I've been asked to address this a lot, so I'll put my thoughts in a blog post.

The back story

After a bad experience customising KDM for a really important and scary client I wanted to redo the UI and customisation experience of KDM.

I wanted to rewrite the whole UI and config side, so started looking through KDM code. It was around this time Robert Ancell posted about LightDM, a new display manager that aimed to be greeter agnostic. This was around 2 years ago when everyone was getting excited over Wayland, it was clear it was in LightDMs roadmap.

This seemed like a win, win situation. I get an easier platform to write my new login manager on *and* I get to bring Wayland support to KDE.

I wrote Qt bindings around LightDM upstream, along with a reference QWidget based greeter. I then started working on the KDE greeter in our repository.

The KDE greeter is approaching version 0.4. It is included in many distros, and generally feedback has generally been very positive.

The current state

Whilst LightDM is made by Canonical it is community driven and all patches go through review where anyone can comment. I have an opportunity to argue if anything is greeter specific in the libraries.

LightDM is used by my KDE greeter (used in some distros, not all), XFCE, and Razor Qt and of course Unity.

The Qt library was originally only used by us and Razor Qt, but with Unity's move to QML this means that Canonical are now dependant on the libraries I made. I am still in charge of the Qt library and still get final say on all reviews, I have rejected some Canonical employee patches as needing a rewrite and them with some of mine, it feels like a real open meritocracy community.

The rant

The golden-egg of using LightDM in KDE was that we wouldn't have to support all the boring things we need to make a display manager work, we wouldn't need to support a Wayland system compositor we get it for free. We all write stuff that helps each and open source progresses faster.

If I'd known they weren't going to add Wayland support, I'm not sure I would have invested my time in LightDM. I don't feel decieved, they thought they would do it at the time and Canonical are perfectly within their rights to decide to do something else.

The problem for me isn't that Canonical changed their mind, but that they didn't (or the developers weren't allowed) to tell me! If you know for 6 months that you're not going to do something you said you would it's rude not to tell people. It now sets our schedule back and that's really really frustrating.

Where does this leave us?

The state of LightDM hasn't got _worse_ however it does mean we need to add Wayland support ourselves. I've heard the argment; if we need to add Wayland support in something else, is it worth using it? I've been asked to address this, I'm writing this blog post to express my feelings, then I'll be having a meeting later this week to discuss things.

Our requirements are:

  • We need to have a display manager that works in Qt5 in the very near future.
  • We need a display manager that supports Wayland as a system compositor in the medium term.
  • Our options are:

  • Patch KDM to support X and Wayland (something hard to do, this code is built on top of XDM) AND fix Qt5 support (again not trivial in this case)
  • Write something new from scratch. In this case we still need to write a Wayland system compositoranyway!
  • Patch LightDM to also support Wayland (given it's already switching between Mir and X, the infrastructure is in place, it's designed to be able to switch backends and we have half-done Wayland patches to start with). It already all works in Qt5.
  • Writing a display manager is one of the things that sounds simple but in reality is very difficult; but there's a lot of stuff behind the scenes which is really difficult to get right: a tonne of environment variables to set, Xauthority files to set up, .dmrc files to manage, all sorts of session hooks let alone remote sessions and security.

    From the above, I think my viewpoint on the matter is pretty clear, we just have a bit more work ahead than I'd initially hoped for.

    That said, I will be having a meeting with a few interesed parties later this week to discuss future direction.

    KDE Telepathy 0.6 Beta Released

    Today we released a beta of 0.6.0 of KDE Telepathy KDE's instant messaging client.

    New Features

     

    Kopete log migration

    KTp now imports logs from Kopete accounts into our log format. For new KTp users this will be asked if they wish to import when they create an account, existing users can also import logs by opening the log viewer.

    Clearer message notifications

    We had some feedback to improve the notifications of new messages. We now show an icon in the contact list when a new message arrives, change the icon in the system tray, and for group chats we now show who is typing.

    Better text editing

    The chat window now features tab completion for group chats, as well as text navigation for editing messages.

    We've made adding emoticons easier too, with a new optional emoticon toolbar.

    Advanced notifications

    KTp now supports setting different notifications for each of your contacts. This means it is possible to set an optional notification if your favourite friends come online, or play sounds when messages arrive from certain contacts but not others.

    Improved password and security management

    We are now able to connect to password protected jabber rooms, a much requested feature. We have also improved our connection certificate handling, now using KDE SSL certificates manager and allowing the user to override invalid certificates.

    Under the hood changes and cleanups

    A lot of our effort has been spent in a big refactoring under the hood, getting ourselves ready for the future as well as bringing speed and stability. We have closed over 70 bugs between 0.5 and 0.6.

    We've completely redone connection error notifications and other important UI areas.

    More filtering plugins

    We have extended our range of message plugins.

    Text messages can be formatted in bold or italics

    Youtube links are show and can be played directly in your chat window

    Links to bugzilla are shown inline with the bug title and resolution

    When sending messages can use your KDE webshortcuts to make it quicker to send links

    Messages containing your name are highlighted and a special notification with sound can be emitted. This is especially useful if you lurk in conference rooms

    Getting the 0.6 beta

    Our beta is stable for everyday use and we made sure there are no major bug before release. There are packages being built right now for Fedora, Arch, Kubuntu and SuSE.

    Source tarballs are available from http://download.kde.org/unstable/kde-telepathy/0.5.80/src/

    This contains our full set of applications and applets



    Getting involved

    This is a beta and there will of course be bugs that we are aware of and want to fix by 0.6.0, there are also bugs that we are not aware of that still need to be reported.

    You can help make 0.6.0 an awesome release by running the beta and reporting any bugs to http://bugs.kde.org.

    You can also help by fixing bugs, to find out how to contact our team and get involved please see our wiki page at http://community.kde.org/KTp/Getting_Involved.

    KDE Telepathy Enters Hard Feature Freeze

    With KDE Telepathy 0.5.3 out the door out our entire focus is on 0.6.0 our next major release. We have just entered a hard feature freeze to allow for a solid month of bugfixing.

    Important Dates

    Hard Feature Freeze - 3rd March

    A hard feature freeze is when no new features can be added to the code. All work has to be on fixing bugs and polishing.

    Beta Release - 6th March

    We will make a public beta release so you can see all the new features and provide useful feedback before the full release.

    String freeze - 16th March
    After this date we are not able to change any of the text used by our applications, It gives our translator team a stable set of text (strings) to work with without us changing them the whole time.

    The release - 30th March
    Hopefully self-explanatory 🙂

    What's going to be new in 0.6?

    Find out yourselves by running the latest code 🙂
    A real announcement will come with the official beta release.

    How do I run the latest code?

    KTp is generally really stable as all the developers use IM on a daily basis always running the latest code. It helps us to have lots of people running the latest code before we release a piece of software so we know about, and can fix, issues from a wide variety of set ups as we introduce new code, before it hits the general masses.

    It helps us, and you get to be on the "bleeding edge". Please report all bugs as they come in.

    From Source

    We have instructions in our wiki at http://community.kde.org/KTp/Getting_Set_Up

    (K)Ubuntu Packages

    If you use Kubuntu we have a PPA of our latest code.
    Install instructions are:

    sudo apt-add-repository ppa:telepathy-kde/daily-builds
    sudo apt-get remove kde-telepathy-minimal plasma-widget-telepathy-presence
    sudo apt-get install ktp-desktop-applets

    OpenSuse packages

    zypper ar -f http://download.opensuse.org/repositories/KDE:/Unstable:/Playground:/Telepathy/openSUSE_12.2/KDE:Unstable:Playground:Telepathy.repo
    zypper in telepathy-kde

    How can I get involved?

    Join our mailing lists and IRC channels and get hacking on any outstanding bugs. Note that we are in a feature freeze, but any bugfixing/polishing is always a really good way to get involved in a project.

    For contact information see our wiki page http://community.kde.org/KTp/Getting_Involved

    KDE Telepathy 0.5.3

    We are pleased to anounce the release of KDE Telepathy 0.5.3.

    0.5.3 is a patch release in the 0.5 series and provides various bug fixes and updated translations.

    Fixes

    • 291653 - Cannot edit identity on local-xmpp account. (Accounts KCM)
    • 310529 - Status is displayed as offline when contact list is opened (Text UI)
    • 310981 - Avatars are not loaded sometimes (Log Viewer)
    • 311928 - Contact list doesn't refresh after filtered contact was moved to other group (Contact List)
    • 312339 - Make tab switching able to cycle tabs. (Text UI)
    • 312603 - Chat starting time should be when the first message was received, not when the window opened (Text UI)
    • 312615 - There should be a shortcut for opening chats, maybe Enter (Contact List)
    • 313110 - Emoticons ending in "\" cause UI corruption (Text UI)
    • 313437 - Edit Identity button not enabled/disabled when account connects/disconnect (Accounts KCM)
    • 313525 - ktp-text-ui crashes, on "bad" sent/received message" (Text UI)
    • 313927 - Telepathy/KDE crashed (Contact List)

    Source tarballs are available from here and should be in your distribution shortly.

    First User Developed KDE-LightDM Theme Created

    As KDE-LightDM prepares for heading into extragear, I'm busy tying up all the loose ends and final bits of polish on the product. One of the final items left is working on making it easy for modders and hackers to build their own themes and make these really easy to install for all users.

    In recent weeks, I've had two people contact me with regards to making their own themes which is really encouraging.

    Stoica-Marcu Andrei (FlowRiser) has developed a login manager theme that looks like the login theme that mimics the video game "League Of Legends". As an old person I don't really know what that is, but I do know it looks very nice. The still screenshot shot does not do it justice, there's things animating and moving and there's sound and all sorts.

    Whilst this obviously isn't to everyone's taste and won't ever be shipped with KDE-LightDM, it's really encouraging to see someone take the flexibility the QML-powered theme engine provides and make something really unique with it beyond anything I had imagined. It also helps to confirm a lot of design decisions I made along the way.

    There's also been some interest from KDE's graphic artist Nuno Pinheiro, working on some interesting ideas.

    This requires the git-latest version of KDE-LightDM, as well as some manual installation for now.

    In the long term I hope to have a category on kde-look, or equivalent.

    Contact me (d_ed) in #kde-lightdm on Freenode if you're interested.

    KDE 4.10-RC2 Testing

    With the second RC of KDE4.2 just released, now is a really important time to get involved in testing KDE 4.10.

    During this release, due to changes based on feedback, two areas of KDE have undergone a significant change between Release Candidate 1 and 2. This isn't typical, so to ensure the final release goes as smoothly as possible an extra release candidate is going to be created. This will delay the KDE 4.10 release, but it does help ensure that KDE 4.10 is the best ever.

    As part of the KDE quality team, it's now our task to make sure these changed areas still get the same level of coverage and testing. To help with this we've arranged a series of checklists covering all the items in the two modified areas.

    Once you have RC2 installed, it would really help us if as many people as possible go through the checklists to check for any regressions.

    As usual you can help test all the areas of KDE that have changed between KDE 4.9 and 4.10, or simply by using the release early and reporting back with any problems.

    Thanks to everyone who has worked hard in testing so far. During the release phase is when developers are most attentitive to bug reports, and it really does make a difference.

    KDE LightDM Frontend 0.3.1 available

    LightDM-KDE version 0.3.1 has been released.

    Fixes

    • Fixed user avatars not appearing (working around a bug in AccountsService)
    • Fixed translations not loading correctly

    Source code can be found at http://download.kde.org/unstable/lightdm-kde/src/lightdm-kde-0.3.1.tar.bz2.mirrorlist, and will be in your distribution shortly.

    Not the most exciting changelog ever, but that doesn't mean work isn't happening. 0.4 promises several new features including; live config-previews, even better PAM support, theme installer and a lot more.

    If you want to get involved, email me!
    (my address is at the top of every source file I've edited)

    KDE Telepathy 0.5.2 Released

    KDE Telepathy 0.5.2 codename "we already have it" has just been released.

    This brings a whole tonne of festive bugfixes. What better present could you ask for?

    Since 0.5.1 we have fixed the following:

    • Potential Freeze when declining contact request (311548)
    • Connection Errors when using WICD (303498)
    • "Connecting…" indicator keeps spinning forever on login (307758)
    • Make Presence plasmoid icons plasma themeable (302993)
    • No notification sound when a new message comes in in an active chat window (310946)
    • Crash in Accounts KCM (307302)
    • Correctly align right-to-length languages (305045)
    • Deadlock between Amarok and KDED when starting (310826)
    • Sometimes initial selected item in contact list has the wrong foreground colour (310081)
    • Crash in Ktp-Log Viewer (310552)
    • Deadlock in auth-handler (310505)
    • Previous and Next conversation links are shown twice (309828)
    • Fix colours in Contact List view (308802)
    • SIP advanced configuration: 'Transport' is always reset to 'auto' (309180)
    • Speedups in the ktp-debugger (308204)
    • Flip video stream of preview in call interfaces (so it's like a mirror) (308976)
    • Kwallet interaction fixes (1) (308079)
    • Kwallet interaction fixes (2) (308973)
    • Handle Enter key as well as Return to send message (308895)
    • Contact list did not update to style changes immediately (308820)
    • Mobile icon is not hidden when user goes offline (308217)
    • Quick Chat applet doesn't scroll to the bottom when new messages come in (298392)

    Source packages are available here, and should be in your distribution shortly.

    Bored over the Christmas holidays? Want to get involved in KTp? Find out more on our wiki. We are doing a lot of changes under the hood for 0.6, there's lots of activity and it's a great time to get involved in all the cool things we're up to.

    KDE Testing for 4.10 – The Developer Version

    The KDE Quality Team is designed to, amongst other things, manage the release tesing for KDE and move towards having a structured approach rather than just releasing some code, and seeing what happens.

    This means keeping clear instructions on how to install the latest betas, promoting testing and trying to do the testing more effectively.

    What's being done

    • Making easy instructions on how to get the latest release
    • Making and running "release checklists" for various components of KDE to ensure everything still works as it should
    • Making a list of changed areas, and putting an emphasis on testing these
    • Running bug days, with bug reporting tutorials to improve the usefulness of the bug reports

    As a developer how can I help/benefit from this?

    If you have refactored a large area of code, or introduced a new feature, please add it to the to-test list (http://community.kde.org/Getinvolved/Quality/Beta/4.10/AreasToTest) along with instructions of how to get to test it. Use end-user terminology, and keep things deliberately vague to encourage users to spot bugs in areas that you (as a developer) haven't thought about.

    Be on top of the bugzilla lists. KDE only works if all developers are on top of triaging their own products, confirming bugs, closing duplicates and invalid bugs and of course, fixing them 🙂

    As a distro packager, how can I help?

    Make sure our wiki page of "how to get the latest beta" (http://community.kde.org/Getinvolved/Quality/Beta/4.10/Installing) is up to date with clear instructions. A link to the relevant release page is enough. It's a wiki for a reason, edit away 🙂

    Help co-ordinate

    You may have noticed we're running a bit behind this release. We really need to step it up, both now and for future releases. It's a new-ish team, and I've ended up being ridiculously busy.

    We have a number of ways to get involved in the managing side of KDE Quality:

    • Redesigning the landing wiki page to be more graphic, easy to navigate and inviting
    • Updating our list of changed areas in 4.10 that need extensive testing
    • Co-ordinate with the kde-promo team to include testing instructions on the release notes
    • Hang around our IRC channel #kde-quality to help answer testers questions

    It's a real work in progress, but we're already showing real results both in terms of bugs reported, and bugs fixed.

    Join our mailing list [https://mail.kde.org/mailman/listinfo/kde-testing] or find us in #kde-quality.

    KDE Testing in 4.10

    As usual KDE is running the testing program throughout the beta period
    of KDE 4.10. It's a great way to get involved in KDE.

    How do I get the latest release?

    The latest release for testing can be found on our wiki page http://community.kde.org/Getinvolved/Quality/Beta/4.10/Installing
    we try and keep this up to date with the latest information from your distribution.

    I've got the latest beta, what should I do?

    When you have the latest beta, have a play with the new release and report any bug to http://bugs.kde.org and select "File a bug".

    Bug reporting is an essential part of the testing process, it's especially important to catch regressions, which is when a new bug is accidentally introduced when something is changed. KDE developers only have limited hardware and our own workflow, we really do need you to help test and see if you find any bugs we've missed. All bugs are looked at, even if they cannot be immediately fixed and reacted upon.

    If you are playing with the release, it is especially helpful if you try using the areas of KDE that either contain new features or have undergone significant changes "under the hood". We have a list of the areas that you should spend some of your time testing on our wiki http://community.kde.org/Getinvolved/Quality/Beta/4.10/AreasToTest. We also have various checklists that should be completed before the release http://community.kde.org/Getinvolved/Quality/Beta/4.10/Plasma