Earlier this week the decision was made to switch from Drupal to WordPress as the CMS used for the KDE.org main website. While Drupal is certainly a fine system, the decision to switch was borne when my quick work to update a WordPress asset turned into a serious venture much more successful than my work with Drupal. Prior to my contributing to KDE I used to develop on WP, and I was surprised to find out my experience largely held in this new version. In hindsight, WordPress was the obvious option considering this.
A round of discussion about formally switching ensued, and many other great reasons to use WordPress were present, including the much larger number of KDE websites on the platform. I won’t get into it too much as I’d instead like to go over the work done over the past week and some of the features coming to KDE.org Aether template which are already complete; today I’ll focus on the header, which had the most love.
The header will feature an up to 3-level menu, and in the future it may be made to not restrict the number of levels. But, for now, 3. It nicely scales back to two or one levels as appropriate. Currently the theme will pull featured images from root navigation elements and display them in the dropdown, but in the future this will likely become a navigation-specific setting for more control. As expected, the navigation is completely customizable. It is also responsive, and when it can no longer accommodate the number of menu items for the width of the given screen it will switch into ‘hamburger mode’ which works very well on mobile.
My personal favorite feature so far is the live search. This probably had the most work this week, and I really wanted to nail it down well. It’s a search-as-you-type system, but has several built-in features to avoid overloading servers, such as an adaptive delay until it performs a request and temporary localstorage caching.
Lastly, the theme is being built to be completely customizable for suitability on not only KDE.org itself, but even as far down as personal blogs which may not demand the full range of features being built into the design.
The design itself is forked from KdeTheme theme, which in turn was forked from Activello. It features thoughtful localization, and work is being done to make the individual components more modular so maintenance will be a cinch over the long game. There are still many features, options, and utilities being poured into the design, and I’ll be posting updates semi-regularly as the progress continues.
Ultimately, the KDE.org theme itself will be generic enough for use on any KDE-related site. As it matures enough to be in use on regular websites, the design will also be loaded onto the WordPress theme directory, allowing sites which may not enjoy the full KDE infrastructure (such as personal developer blogs) to easily install and keep the theme updated.
If you maintain a KDE-related website and are using Drupal, depending on the breadth of your content, we still have options for you. If you have a smaller website, I’ll be offering to port to WordPress if you desire. If you have features required which can be folded into the larger theme I will do so as appropriate, otherwise we can evaluate if a small site-specific plugin could serve that use-case. If you have a Drupal site too large to move – or you simply wish to stick on Drupal – after the KDE.org wordpress work is considered complete, the existing Drupal 7 theme will be updated to service existing websites. For anyone else maintaining a website looking to use this design I’m also taking feature requests for the theme and design elements at this point. Please send inquiries and requests to the kde-www mailing list.
Beyond the design itself, we have some exciting plans for managing content and applications which I’ll be posting about later.
Starting off the Plasma Sprint today has been a good start with a little bit of real-world trolling, some quick sight-seeing, and of course, starting to get todos scratched off the list.
Nobody noticed when this was stuck outside the window, and we are happy to report there’s a vast array of KDE software available for Windows. 😉
I’m excited to say it’s that time of the release cycle, meaning we show off a new wallpaper coming to Plasma 5.10!
The new wallpaper is named “Cascade”, English for many interesting things in technology, and French for Waterfall, or many waterfalls. Interestingly, this wallpaper has more layers than the 5.02 wallpaper had triangles.
If wanted, I can again show the process of how this wallpaper was put together, leave a comment and I’ll write it up.
Which brings me to my second todo which I finally got around to – wallpaper downloads! We’ve already had 9 wallpapers for the Plasma 5 series, and you can now visit https://store.kde.org/ to download each of them. For Nuno’s original “Next” wallpaper, I’ve provided a “remastered” version for 4k monitors named “Prev”. It’s not perfectly accurate, but for those who liked the original it is available;
Additionally, there’s a new wallpaper named “History” for those who want to celebrate 10 iterations of Plasma 5 and the upcoming 11th iteration;
(Clicking on any of the images will take you to the relevant page on the KDE Store)
Lastly, much work as been done on the KDE website redesign. I’ll be blogging about it later, but here’s a screenshot showing the general design for the new homepage:
(sorry if the image is a bit fuzzy)
The 2017 Plasma Sprint is sponsored by Meat Water.
The Sprint in Geneva has been a bustling experience, there’s huge amounts of throughput from every participant, and seeing the progress is exciting. There will be a great many blog posts from many people with thrilling progress. I can’t spoil everyone’s work, but I can share at least a few things.
The first is weather! It was previously announced that Plasma 5.6 will be seeing the return of the weather widget. Lots of design work and planning has been done for it and while not everything we discussed will make it in for this release I do happily get to show off our new Breeze weather icons;
There’s more which will be added, but this is the base set which reaches parity with the Oxygen weather icons. Things like high wind, smog, and sandstorms are all in the works.
I’m very excited to announce an updated colour palette. The palette that we’ve been was the formal ‘core’ Breeze colours with an few extended colours I threw in for icons. While it got the job done, we’ve very obviously been using colours not in the official palette for icons using pastels and off-white tints on several occasions. The extended colours were also a bit ad-hoc, with some cases where gaps in hues and luminosity would limit what we could do if we rigorously adhered to the scheme – one thing I did in the wallpapers . Here’s the third iteration of our palette;
It’s not yet in the wiki, but we do have it in GPL format for use in Inkscape, Krita, and GIMP (special thanks to the colour dropper widget which greatly speeded up the process). It’s not completely 1:1 with our existing colours, but it’s close enough and we’ve played loosely enough that it’s not obvious which upcoming icons use the new palette and which use the old. Eventually we may look at more formally updating existing icons, but it’s a low priority. I’m very excited for what this palette will let me do with wallpapers, as I can now make brighter wallpapers without them being over-saturated.
There’s so much more happening, but it’s impossible to write about every detail.
Yesterday I landed in Geneva, ready to participate in the 2016 multipurpose Sprint at CERN.
After a successful touchdown, I somehow dragged myself onto the CERN campus after over 20 hours of riding trains, flying, waiting, and running. Half dead and ready to drop I got my bearings around the campus while keeping an eye out for other Sprint Participants, and I have to say my first impressions of the facility were shock and awe; more amazing than I could have anticipated.
Of course I was too tired to appreciate it, and I kept pestering the hotel staff to see if a crashpad was ready.
All at once everything seemed to come together and I ran into Alex, Riccardo, Kai, Martin G, and Sebas in short order. Today was just my arrival day, so I wasn’t breaking out the laptop and starting intense development or planning sessions with anyone, but even in our casual conversations we all excitedly at one point or another started planning to plan exciting things.
Right now? I’m waking up, looking at the view (pictures later, probably will update this post) and ready to get started.
Just over 2 weeks ago I stepped off a plane, putting my heels onto Canadian soil after spending a week participating in the Plasma 2015 Sprint. The entire experience was exhausting in the best of ways, and after landing home my throughput was thoroughly trounced for some time as I settled back into normalcy. But lets rewind to the beginning;
The day of my arrival in Barcelona it would be a far cry to say I was nervous – in the moments before pressing the buzzer I was in a downright terror! These people will realise I’m an idiot! Ship me back to Canada on the next canoe! Needless to say only minutes in to the sprint not only were my worst fears completely unfounded – but I met a group as welcoming as they were brilliant.
Finally, I think I have the perspective to share my experience. I won’t try to recap the entire event, I will mainly focus on VDG work.
But first! The People of KDE
I met about a dozen dedicated and hard-working developers in the Blue Systems office during the sprint, and it needs to be said just how great these people are – each and every one passionate about their respective fields and projects. I’d really just like to give a shout-out to everyone I met in the Sprint. They’re the kind of people who make you smarter by proximity, and they welcome you to do it. For anyone invited to a Sprint I highly recommend jumping on the chance; you will be enriched for doing it.
After arriving mid-day Jens Reuterberg headed the idea to begin creating and stockpiling promotional graphics. Essentially we wanted vector artwork which could be used easily for things like release announcements, large print materials, web pages, etc. Jens dove head-first into logotypes, and I splintered off into doing up a pair of vector Katie and Konqui graphics during my half-day; Konqui being a direct trace, and Katie being new. You can view the original graphics by the talented Tyson Tan here.
There was a great deal discussed during a pair of review and planning sessions in the first two official Sprint days. One of the biggest things (for Jens and I) was helping the VDG and developers interoperate better; for those who don’t know, the VDG communicates very differently than mainline developers.
Devs tend to focus on bug reports, mailing lists, reviewboards, and IRC. Members of the VDG tend to use Forums, Hangouts, and to a limited extent IRC. Immediately there’s very little overlap, which means at this point developers have to go to the forums to wield the VDG.
The problem lies in how forums operate; where the VDG design processes benefits from the relative chaos, it’s not good for developers looking for the ‘final word’ of the design discussion. It’s further impacted by forum conversations which don’t have definitive conclusions, or discussions which can get muddled down. When developers go to the forums they need a solid final product to build around – but on multiple occasions they end with a half dozen different designs and no clear answer on what they should do.
It was a short discussion during the Sprint, but Jens and I both immediately agreed that this is an area where the VDG must step up and refine our process.
The current idea will be sticking with the forums threads as the main creative area, but changing the way they spin down. Once we feel a design discussion has gestated, the VDG aims to have a member pull the ‘final’ design from the conversation, at which point they’ll put together a coherent deliverable developers can understand and act on, on a channel they are comfortable with.
There are still details we are ferreting out before we more formally put this into motion, but the essential aim is to move the VDG into a position where we can reliably ship usable deliverable design, on a channel developers can comfortably handle.
This only came up briefly during the Sprint as well, but is something which has been brewing for a while now – so it might be worth mentioning ‘for realsies’, essentially since I don’t think anyone pointed out that this is a ‘thing’;
KDE and Plasma have a bit of a history with names, and for many core applications we’ve been wanting a more consistent scheme for it all. At the same time, with every major tookit release (i.e. Qt4 -> Qt5) many applications need to be ported or re-written. Finally, on these major releases, visual/workflow trends have usually shifted meaning the experience of applications will also shift.
So, all this stuff going on, we figure it’s time to put a bow on it and turn this cavalcade of factors into one cohesive event, so we’ve come up with the concept of Breeze Applications.
The idea is that, coinciding with frameworks, trend, and design changes we will name a subset of the bundled applications after the current design. So for Plasma 5 we will have ‘Breeze’, for some future plasma version many moons from now we may have ‘Gust’ or ‘Wind’ applications.
What does this mean? The biggest thing is that we intend to use these ‘Breeze’ applications as standards bearers, which we hope to see other applications follow. It’s much the same way Google treats ‘Holo’ and ‘Material’, along with their base applications: This is the design, these are the examples. Ideally we intend to focus on only a few applications, which developers will be able to dissect and say ‘oh, this is the plan’. In addition, as new technologies and techniques land, we hope Breeze applications will be the frontrunners in adopting cutting-edge KDE/Plasma technologies.
Does this mean every Plasma or KF5 app will be named “Breeze X”? No. We only plan on Breeze-ifying the more simple core applications which can be easily maintained, kept up to date, and streamlined enough that the code could easily be used for reference material.
Dynamic Window Decorations
Before I even get started on this, I must give props to David Edmonston. The man is a trooper, and I feel almost as if I tortured the poor gentleman throughout the sprint.
During the sprint I presented some of my DWD plans; technical details were discussed, implementation questions were raised, and concerns were were round-tabled. The discussion was extremely positive and productive, and real issues were ferreted out.
One of the larger questions was ‘what IPC protocol should be used?’; I personally was educated about the Wayland protocol, and that it could be used even on ‘non-wayland’ systems – since it is just a protocol and not an installed library. Ultimately, the developers present agreed that D-Bus was the way to go, the general consensus being that the protocol is known and familiar, mature, battle-tested, and isn’t going to shift or break.
I also gave my personal thoughts on how applications might access/implement DWDs, and while there’s still considerable room for discussion, it seems to be on the right track. I was cautioned by developers and I feel the need to point out: even when the DWD protocol does pick up steam it will still be years before it’s available in any meaningful way.
During the development portion of the Sprint I managed to rope David into doing some DWD work on a proof-of-concept level. Through his efforts we now have a much better idea of what obstacles we will face integrating widgets into server-side decorations, such as ensuring the draw code runs correctly/efficiently. He heroically managed to get window decorations to draw usable sliders, so we do know window decorations are capable of drawing server-side widgets.
Sadly, the proof did nearly cost David his sanity. It probably didn’t help that I was giggling like an imbecile. Sorry about that, David. I hope the tea made up for it.
Throughout the Sprint Jens and I were able to lend our services in helping to design and streamline interfaces. Towards he end of the Sprint we also did a walkthrough of the Plasma desktop and several components to identify surface-level bugs and weak areas.
This included an extensive review of the system settings utility and its KCMS.
I also managed to chip in some light advice with a new power-manager tool, and an upcoming redesign of the Baloo settings manager with Vishesh Handa.
And a Great Deal more!
As I mentioned at the start of the post, and can only mention again; There were a lot of really great people at the Sprint – and all of them had their own projects, goals, plans, and feedback. It was really impressive to meet people who had such a deep understanding of KDE Frameworks and Plasma, able to talk about extremely complex technologies in detail over a coffee.
I, personally, learned a great deal from everyone. From being unable to compile a package to now comfortably hacking, simply rubbing shoulders with the outstanding individuals was absolutely my privilege.
There’s a great deal not in this post, but I imagine other posts will fill in the rest… So on a closing note I will say again; if you are ever invited to a Sprint, don’t hesitate to say yes – it’s an amazing experience which is beyond worth it!