Most KDE contributors are still recovering from their holiday vacations, but nevertheless the first of my 2020 predictions has been fulfilled: KIO now makes remote locations available to non-KDE apps using FUSE mounts! This brings us to full feature parity with GNOME’s GVFS system and makes it painless to interact with files in remote locations using apps like LibreOffice, Blender, and VLC. Full support will be shipped to users with the Dolphin 20.04 release.
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
Yesterday I summarized some of my favorite new features, both big and small, added to KDE’s software catalog in 2019. Today I’d like to talk about the major features and improvements I expect for 2020. Note that this is not an official planning document, it’s just what I anticipate happening and plan to push for and help implement. Without further ado…
Guaranteed
These features are pretty much guaranteed, as they’re almost done or even in the process of landing:
FUSE mounts to better support accessing remote locations in non-KDE apps
Not mounting remote locations has been a longstanding deficiency in the KIO library that does file I/O throughout KDE software. Without this feature, users of non-KDE 3rd-party apps experience frustration when opening large files or streaming videos located on remote locations, when saving changes to those files, and when trying to to File > Save As to make a copy alongside the original.
Throughout much of 2019, a FUSE mount solution has been in development that alleviates these issues! You may have read it about on the blog of Alexander Saoutkin, one of the principal developers working on the feature.
A truly enormous amount of work has already been done, and at this point only a few more bits are needed before we can formally roll it out:
When the patches for these improvements land, we will have full feature parity with the FUSE-based GVFS system that GNOME uses and the mount-based system in macOS! The patches are in progress and I expect them to all land in the next two or three months.
Privilege escalation in KIO and Dolphin
I’ve been promising this for years, talking about how it’s 90% done, then 99%, then 99.9%… you get the idea. I know, I know, I’m the boy who cried wolf at this point! Well, this time we really are on the cusp of victory. There is only a single patch left before we can formally turn it on! Once this happens, you will finally be able to create, move, rename etc. root-owned files in Dolphin without needing to run Dolphin as root or using a hacky extension.
Improved Samba share discovery in Dolphin
We have a patch that implements the WS-DISCOVERY protocol in Dolphin, allowing it to find Windows Samba shares on your local network, which are currently invisible. This has been a longstanding problem, but it’s now finally getting fixed! I expect this patch to land in the next few months, in time for Dolphin’s 20.04 release.
Auto-rotation for tablets, convertibles, and other hardware with rotation sensors
There’s an absolutely enormous patchset that implements this much-awaited feature. More than half of the patches have already landed, so the rest aren’t far behind. I have my doubts that this will make it into Plasma 5.18, but 5.19 is almost certain.
Likely
These features are likely, but not guaranteed:
Implement more of the proposed visual design changes to the Breeze style and KDE apps
The KDE VDG now has an exhaustive plan and sets of mockups for how we’d like to evolve Breeze, Plasma, and KDE apps in the near future: https://phabricator.kde.org/T10891. Check out the dependency graph! Here are some examples:
Pretty hot stuff, huh!?
Bits of it are already getting done. In 2019, we completed a UI overhaul of Plasma and many apps’ configuration windows to use the Form Layout style and a sidebar UI redesign, both of which have been quite well received. And there’s a new SimpleMenu based on VDG mockups in the works, which we hope to replace Kickoff as the default.
I don’t know if everything here will get implemented, but I expect us to push forward with a lot of it!
Better wallpapers in the extra wallpapers repo
A lot of the wallpapers in the plasma-workspace-wallpapers repo (which is optional but installed by default in many KDE distros including Neon, Kubuntu, and Manjaro) are a bit long in the tooth. Thankfully, we have a patch queued up and ready to go that will replace them with modern, beautiful, 4K wallpapers. Unfortunately this patch is blocked by the lack of a wallpaper cache, which means if we replace a wallpaper that someone is currently using, they’ll see a black screen after they upgrade. Not very nice. We’d like to cache the current wallpaper so that this doesn’t happen. I’m hoping we land the cache feature early in 2020 so that the next Plasma release after it can get the improved wallpaper selection.
Moonshot
These features are less likely (bordering on unlikely), but could get in with enough development work!
Per-screen scale factors on X11
There’s a patch implementing this feature that has been rejected thus far because it was not technically correct with the way Qt handled scaling at the time. However Qt 5.14 implements some backend changes that would appear to make this possible. I can’t promise anything but I plan to investigate this to see if it’s something we can do once Plasma depends on Qt 5.14, or if it’s feasible to add the feature earlier than that with a bunch of ifdefconditionals in the code to only turn it on for people using Qt 5.14.
Inertial scrolling throughout Plasma and QML apps
In theory, this is easy-ish. In practice, there are a lot of moving parts. Preliminary work began a few weeks ago, but there’s a lot to do before we can make it all work. It’s on the workboard though!
Power/session controls on the lock screen
This is something needed for Plasma Mobile, and all the Plasma developers agree that it’s fine to have on the desktop too. Development has not yet started, but it might!
—
What do you think? Seems like a bunch of worthwhile stuff, right? I see these features and improvements as critical for my ultimate goal of making Plasma and KDE apps irresistible for hardware vendors to ship by default (most of them at least; better wallpapers are nice but not critical). I want to make our offerings so good, and for KDE in general to be such a good upstream, that companies trip over each other to put Plasma and KDE apps on their devices! I think ultimately that’s the best way to get our software in front of more users.
If this sounds exciting to you, please feel free to help out–especially for items in the “Likely” and “Moonshot” lists, which are less certain to happen without help. You can help out by testing patches, implementing mockups, hacking on the new features, etc. For more information, visit https://community.kde.org/Get_Involved. It’ll be interesting to check back at the end of 2020 to see how many of these projects have been completed. With your help… hopefully all of them!
2019 was a massive year for KDE. I’d like tho take the opportunity to highlight some of the biggest improvements and new features that arrived in this year:
One of the Plasma highlights this year is the totally rewritten notification system with a Do Not Disturb mode, per-app notification preferences, a sane history model, and loads of refinement and polish. It’s amazing, and it keeps getting better with each Plasma release!
Discover’s user interface and reliability dramatically improved across the board. I’m no longer seeing social media posts about how much people hate Discover (at least not the latest version; please make sure you’re up to date before you complain!). 🙂
Finally, it became much easier to test and use a compiled-from-source Plasma version. Thanks to this, I’m now living on the master branch of Plasma all day, every day! It’s ridiculously stable, a testament to the incredibly high quality of Plasma’s codebase.
Applications & Frameworks
KDE’s flagship apps gained many amazing and useful new features. Among them:
The Elisa music player gained an enormous amount of user interface polish, new features, and bugfixes–too many to list, really. It’s a powerful and user-friendly music player that’s fully supported and actively developed, and I encourage everyone to use it! Kubuntu is evaluating shipping it by default in their upcoming 20.04 release, and I hope others follow suit.
—
This is only a small subset of the new features announced throughout the year in my Usability & Productivity and This Week in KDE series, which in turn are small subsets of the full range of work done throughout KDE. Truly, our community is blessed with tireless contributors! Looking forward to 2020, I think we’re poised to achieve some truly amazing things that will catapult KDE Plasma and apps to the forefront of the Linux world. More on that tomorrow… 🙂
Though KDE contributors are mostly enjoying a well-deserved rest during the holiday season (hence the late post today, sorry about that), the community’s tireless souls have been laboring anyway to bring you new features and bugfixes anyway! Check ’em out:
The System Settings Notifications page now has an entry for “Other Applications” so that you can choose the notification behavior of poorly-integrated apps that don’t identify themselves properly (Kai Uwe Broulik, Plasma 5.18.0):
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
Features and polish are coming in hot and heavy for Plasma and KDE apps! But have you heard about KDE’s wallpaper contest for Plasma 5.18? We held one of these for Plasma 5.16 and it resulted in the fantastic “Ice Cold” wallpaper, by Santiago Cézar. Now’s your chance to enter a wallpaper for Plasma 5.18, which is an LTS release, so it will be seen by millions of people for years! There are fabulous prizes by sponsor Tuxedo Computers. Check out the rules here: https://community.kde.org/KDE_Visual_Design_Group/Plasma_5.18_Wallpaper_Competition
Dolphin’s SVN commit dialog now works again (Nikolai Krasheninnikov, Dolphin 19.12.1)
Using a mouse wheel to scroll in Dolphin and the file dialogs no longer scrolls way too fast when using a view with large icons (me: Nate Graham and Arjen Hiemstra, Dolphin 19.12.1 and Frameworks 5.66)
Dates throughout KDE software no longer use ambiguous relative terms like “Last Monday” (was it the Monday of this week, or the previous one?); instead they revert to using absolute dates three days in the past or future (me: Nate Graham, Frameworks 5.66)
In OpenSUSE, using Discover to install an app while there are are available updates no longer silently installs the updates too (Jonathan Kang, latest OpenSUSE PackageKit packaging)
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
We’ve got some really big things planned and in progress for Plasma 5.18 and Frameworks, and work proceeds smoothly. None of it is quite done yet, but we did land a number of nice bugfixes and user interface polish for issues that have been irritating people for years…and mere days! Have a look:
Do you like to categorize things? So do I! Then why not try your hand at triaging bugs? KDE’s faithful users file about 25 of them every day, and they all need to be looked at, categorized, moved to the correct products, marked appropriately, closed if the issue has already been fixed–in short, triaged. It’s fun and easy and can be done in 5-minute spurts during boring periods of the day. Triaging bugs is a super helpful way to relieve some of the developers’ burdens if you’re not a developer yourself–developers vastly prefer writing code and fixing bugs to triaging them! For more information, check out https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging!
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
Patch review is a process by which newcomers and experts debate proposed changes to a codebase–a textual description of how a particular human-created system is to function. In KDE, we use Phabricator for this, but we’re switching to GitLab soon. Both serve the same purpose: to provide a forum where proposed changes can be discussed, revised, and decided upon.
It occurred to me recently that this sounds a bit like the process of lawmaking. Politicians propose bills (patches) that amend their government’s code of laws (codebase) which are passed through committees and hearings (the review process) and eventually get voted on (reviewed) and either pass (get merged) or require revision (go around for updates), or fail (get abandoned).
Pictured: typical 18th-century patch review process
I’m reasonably confident that there’s little overlap between politicians and software enthusiasts. In my home country of the USA for example, most of our federal government politicians are former lawyers, businesspeople, or educators. “Software engineer” is listed as a “more unusual” former profession.
This strikes me as a shame. While lawyers, businesspeople, and educators are quite unfamiliar with the process of transforming a proposal for improvement on a systemic scale into a permanent alteration of the rules that affects everyone, software people do it every day. Likewise, software people like us tend to have little experience in the political process. We act like we invented patch review, but our governments have been doing it for hundreds of years! The overlap got me thinking: perhaps there is something that each group can learn from one another.
Have a constitution
Governments write constitutions to make their foundational principles clear and obvious. That way, everybody knows which ideas are central to the society’s identity, and which ones are off-limits.
Lesson for software engineers: Make your software’s guiding principles, explicit, not implicit. People often figure this out organically, but it’s much easier if your software has a constitution-like document and clearly indicates which features are non-negotiable when it comes to proposing their implementation or removal.
Don’t neglect trust
If you have a bad relationship with the people reviewing your patch, they will suspect your motives, nitpick your changes, and generally react with low enthusiasm. Even if your patch is a good one, the reviewers’ opinion of it will be clouded by their judgment of you. Therefore, don’t neglect your social relationships and act like a jerk, or else the whole process basically doesn’t work.
Lesson for politicians: don’t ignore or damage your social relationships with your colleagues or else your entire job is a big waste of time. Adopt a mindset that legislation is a collaboration rather than a majority-rules deathmatch or an opportunity to make speeches on a stage. Also, arrive with pure motives. If you’re there to try to tilt the playing field towards your favored groups, the people who represent the opposite side will notice and oppose you at every turn, and you’re likely to have a frustrating and unproductive career full of outrage-filled press conferences but not much real accomplishment.
Review in stages
In governments, often bills undergo review by multiple committed before they’re presented to the full body for debate and voting. This is good, because it gives a chance for obvious mistakes to be corrected in advance of the final vote.
Lesson for software engineers: use a multi-step patch review process, with relevant experts in control at each step of the way. For example, the big-picture software architects should review a patch for to make sure it conceptually makes sense in the first place; then backend programmers should dive into its technical implementation; the UI designers should go over its user interface, and so on.
Keep patches small
Large patches are hard to review and fill the reviewers with a sense of dread. They touch many things and therefore have more opportunities to change something in a way that a stakeholder will object to. They often get bogged down in process and conceptual arguments. For these reasons, it’s best to keep patches small and focused, and split a large change into a series of individually-manageable patches that each depend on one another, known as a dependency chain.
Lesson for politicians: avoid 1,000 page mega-bills. If a bill needs to be enormous in order to work, there’s probably a deeper conceptual issue with it that everyone senses.
Have an institutional memory
Records of how bills are moved along in the lawmaking process are kept meticulously. This preserves institutional memory, so that newcomers don’t make the same mistakes that their older colleagues and forefathers already learned from.
Lesson for software engineers: Keep records of why decisions were made–and even more importantly, why they were reverted. If you move from one infrastructure system to another, migrate all the data so history isn’t lost. This prevents the phenomenon of newcomers who propose the same changes and repeat the commit/regress/revert cycle.
Make reversion easy
When a patch causes regressions, it can be reverted. Oftentimes it’s better to fix it, but if the fixes are too invasive or the regressions outnumber the benefits, it may be a better idea to revert the change and try again. Making reversion easy promotes a culture of innovation and experimentation. People won’t be as worried about merging things, because if they cause problems, it’s easy to undo the changes. Change becomes playful and fun, rather than consequential and scary.
Lesson for politicians: Don’t make it too hard to repeal bad laws. When a newly-passed law causes problems in a society, it’s tempting to try to amend it to fix the problems, and sometimes this works. But sometimes it just needs to be re-done from scratch, like a bad patch in software. Being willing to repeal laws that aren’t working defuses tension. That said…
Don’t rush
Bills and patches that get through their processes quickly are often problematic, riddled with unseen regressions and unanticipated consequences. This is much less common in governments, because the lawmaking process usually has deliberate safeguards put in place to ensure that a bill is not transformed into a law too quickly before there’s been adequate time for debate.
Lesson for software engineers: Take your time so you don’t push out buggy, regression-filled software. However…
Don’t make your users live on the master branch
Rushing isn’t such a huge deal as long as you have a QA process and discrete releases. These tools provide time for regressions to be fixed and rough edges to be smoothed out. When patches can be evaluated in a safe sandbox of sorts and subsequently tweaked before their effects are released to users, it’s not so bad to move quickly. But you can’t expose your users to the churn stirred up by a fast process; it needs to be contained internally.
Lesson for politicians: You don’t need so much process surrounding lawmaking if you don’t roll out all approved changes immediately. Before new bills take effect, let them simmer for a while in a “release branch” where they can undergo QA so that regressions can be found before they’re inflicted on unsuspected citizens (users)!
As software people, there are lessons we can take from our governments’ successes (and more often these days it seems, their failures), because this aspect of our professions overlaps quite a bit. It also exposes an uncomfortable truth: changing the rules and behaviors of a system that effects everyone is inherently political. That’s why we invented patch review processes: to make sure that important voices are heard, that the system doesn’t become inhumane for people who depend on it, and that its overall trajectory is positive.
Personally I’m a lot more sanguine about the prospect of this in software than government right now, and I think that’s something that needs to change. The efficacy and positive societal impacts of our governments’ lawmaking seems to be at a bit of an ebb at the moment. But there may come a point in time when our experience in patch review becomes useful on a larger stage, and benefits not only users of KDE software, but also the people of the world. We shouldn’t be afraid of politics; our everyday experiences in KDE are in fact the prefect preparation! Far from being distant and scary, it’s something we’re engaging in–and succeeding at–every time we contribute to KDE. I think it’s time for us to become active in applying those lessons to the societies that we live in.
Something cool this way comes… easy Emoji input! Speaking personally, lack of easy Emoji input on Plasma has been irritation for years. But no longer! Plasma now has a built-in Emoji chooser similar to the ones on other competing operating systems. Ours is invoked with the Meta+period keyboard shortcut.
Here it is:
Let’s give a big hand to to Aleix Pol Gonzalez for implementing this! It’ll be available in Plasma 5.18, and in the meantime we’re going to continue to improve its polish, integration, and discoverability.
Ar you good at web design? KDE has approximately five hundred million (okay, slight exaggeration) websites in need of visual refreshing and technical improvement! Our web team is desperately overworked and in need of help–yours, perhaps. 🙂 Each individual person who joins in will be making a humongous difference! If this sounds like your cup of tea, check out https://community.kde.org/KDE.org
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
I’ve got big news today. Something major landed: full support for the GTK_FRAME_EXTENTS_ protocol, which hugely improves the user experience for running GTK apps that use client-side decoration headerbars! This includes GNOME apps and an increasing number of 3rd-party GTK apps too. In particular, these apps now display window shadows and have proper resize areas without needing to use a thick border. Here’s how Gedit now looks:
It’s almost native-looking! And it fits right in with the rest of your apps.
I’d like to extend a big thanks for Vlad Zahorodnii who has been working hard on this for months! The feature lands in the upcoming Plasma 5.18 LTS.
Do you love KDE’s apps? Would you like to help develop for them? I knew you would. 🙂 It’s really fun, and you can have a major impact. Many of KDE’s apps are quite beginner-friendly; among them are Dolphin, Elisa, and Spectacle. See the full list here! These apps’ maintainers as well as KDE’s experienced developers are happy to help and mentor newcomers who want to contribute. For more information on how to get help and who to ask, see https://community.kde.org/Get_Involved#Start_Here.21
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
We’re nearing the release of the 19.12 versions of many KDE apps, and in the first third of the Plasma 5.18 cycle. With this week, all the major regressions from 5.17 that I’ve been tracking have gotten fixed! If you’re still suffering from other 5.17 regressions not listed here and not yet fixed, please let me know. We want to make sure that the 5.18 LTS release is as smooth and stable as possible.
The list of applications and system services in the System Settings Notifications page now has full keyboard navigation (me: Nate Graham, Plasma 5.17.4)
The KDE Frameworks 6 sprint is happeningright now! Much work and planning for the future is being done. Alas, in just three days, all the work will not get done. This is where you can help! The KF6 workboard is chock full of small, manageable to-do items just begging for someone to knock a few out. Maybe you? 😉
More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!