<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Eike Hein on KDE Blogs</title><link>https://blogs.kde.org/authors/eike-hein/</link><description>Recent content in Eike Hein on KDE Blogs</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 24 Sep 2026 16:41:46 +0200</lastBuildDate><atom:link href="https://blogs.kde.org/authors/eike-hein/index.xml" rel="self" type="application/rss+xml"/><item><title>Bouncy Ball 3D and Taking KDE to the Pyramids</title><link>https://blogs.kde.org/2026/09/24/bouncy-ball-3d/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2026/09/24/bouncy-ball-3d/</guid><description>&lt;p&gt;During this year's Akademy, while celebrating KDE's 30th birthday, I found some time to do some hacking on a beloved old toy widget: the Bouncy Ball I used to maintain for a while, and which &lt;a href="https://filipfila.wordpress.com/2026/01/25/bouncy-ball-will-always-bounce-back/"&gt;Filip recently made available for Plasma 6 again&lt;/a&gt;.&lt;/p&gt;
&lt;img src="https://eikehein.com/kde/bouncy-ball-3d.png" alt="Bouncy Ball 3D on a Plasma 6 desktop" /&gt;
&lt;p&gt;The all-new &lt;i&gt;Bouncy Ball 3D&lt;/i&gt; - find it on the &lt;a href="https://store.kde.org/p/2373730/"&gt;KDE Store&lt;/a&gt; (and by extension your Plasma's &lt;i&gt;Add Widgets&lt;/i&gt; dialog) now - adds high-quality 3D graphics, more expressive physics with satisfying ball squish, and better support for living in and launching from a Plasma panel.&lt;/p&gt;
&lt;p&gt;I have of course coordinated this with Filip a bit, and we agreed it's better to make this a seperate widget/release for now to keep the classic ball available for its fans.&lt;/p&gt;
&lt;p&gt;Note the new widget requires at least KDE Frameworks 6.26+, i.e. around the Plasma 6.7 timeframe.&lt;/p&gt;
&lt;p&gt;Enjoy the bounce!&lt;/p&gt;
&lt;p&gt;While you bounce about, consider watching my Akademy 2026 presentation on &lt;a href="https://eikehein.com/kde/akademy2026_odin/"&gt;taking KDE to the Great Pyramid in Egypt&lt;/a&gt; for high-tech archeological research.&lt;/p&gt;</description></item><item><title>A few thoughts on Plasma/Wayland, KWinFT</title><link>https://blogs.kde.org/2020/10/19/few-thoughts-plasmawayland-kwinft/</link><pubDate>Mon, 19 Oct 2020 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2020/10/19/few-thoughts-plasmawayland-kwinft/</guid><description>&lt;p&gt;There's a lot of intense, opinionated debate on the current state of Plasma's Wayland session these days. This seems to be fueled by mainly two events, Fedora's announcement to flip to Wayland by default for version 34 of their KDE variant, and a a recent fork of KWin and a few other components of Plasma, KWinFT.&lt;/p&gt;
&lt;p&gt;On the first, I think it's a great move. Concerns of a repeat of the &amp;quot;shipped before it's ready&amp;quot; situation of early KDE 4 releases aside (for now; more on this in a moment), it certainly feels like it makes sense for Fedora in particular - it's a bold, technology-focused early adopter move, something I think the Fedora user audience generally appreciates the distro for. Plus other Fedora variants default to Wayland already, so there's an appreciable desire to make the various offerings more consistent.&lt;/p&gt;
&lt;p&gt;Distros should understand the user audiences they're trying to cater to, and if a distro believes there's a market for a particular flavor of desktop, it's certainly fine to challenge upstreams to provide the needed software. I think as far as Plasma on Wayland is concerned, the challenge is thoughtfully timed - it's coming after the KDE community &lt;a href="https://community.kde.org/Goals/Wayland"&gt;voted to declare good Wayland support a community-wide goal&lt;/a&gt;, after all. I think there's every reason to believe this decision will lead to good things if the two (and overlapping) communities collaborate to make a good showing. Nice.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;It's 2020, for crying out loud! Why is this taking so long?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A lot of us have some things in common. For example, if you're reading this, chances are you are the sort of person who is not indifferent to technological progress, even easily excited by it. Many of us also are also drawn to competition.&lt;/p&gt;
&lt;p&gt;So people really care about how far down the road to Wayland adoption every of the competing projects is, and theories abound on what the comparison says about them. This is set against a backdrop of Wayland also still maturing as an upstream technology, driven forward by the same competing projects working together.&lt;/p&gt;
&lt;p&gt;One particular claim that's been popping into the conversation lately is that Plasma not having the Wayland conversion safely in it's rear-view mirror yet is evidence of a project that's somehow fundamentally flawed, and unable to focus on what matters and make good long-term plans and roadmaps. If you didn't encounter this in one of the heated debates on social media yet it probably sounds a bit breathless to you, or maybe not really worth acknowledging - but it's actually my main reason to write this blog post, because it's an interesting excuse to talk about recent Plasma history!&lt;/p&gt;
&lt;p&gt;Plasma 5.0 was the second large-scale rewrite of KDE's desktop environment offering in a row, meaning both 4.0 and 5.0 had debuted with a lot of new and young lines of code inside them. Both rewrites were motivated by lifting the desktop shell to a newer set of its base technologies - for example major versions of Qt, OpenGL-based UI rendering and so on. Younger code tends to have higher defect rates. At the time, the standard criticisms in online discussions about Plasma went something like this:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;quot;It looks great, but it's really buggy&amp;quot;&lt;/i&gt;
&lt;i&gt;&amp;quot;I like a lot of the features, but it's missing those last 5% to fit my needs fully&amp;quot;&lt;/i&gt;
&lt;i&gt;&amp;quot;It's resource-heavy and doesn't perform smoothly enough on my machine&amp;quot;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;And a less concrete one, but nearly as often repeated:&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&amp;quot;It's really coming together now, but I'm already worried about the next major version being another rewrite and making it shaky&amp;quot;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;The Plasma project paid attention, and made a number of very strategic decisions to set its focus on a set of goals:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Improve quality across the board by prioritizing bugs and bringing defect rates down&lt;/li&gt;
&lt;li&gt;Go the distance with features, drive them to completion and make them easier and more consistent to use&lt;/li&gt;
&lt;li&gt;Lower the resource needs and scale down to much lower-powered hardware, including ARM SBCs&lt;/li&gt;
&lt;li&gt;If we do additional rewrites of fundamental code (and we ended up replacing major pieces in 5.x point releases, e.g. the entire taskbar, menu and notification systems - each of those quietly addressed dozens of bugs, but went mostly noticed for a few new features), there needs to be a noticeably positive impact on the above metrics&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This remains the spirit of the Plasma project today, with many activities spanning multiple quarters of a year of work at the service of those goals. Recent examples include the &lt;a href="https://phabricator.kde.org/T10891"&gt;Breeze visual refresh&lt;/a&gt; undertaken by the Visual Design Group, the &lt;a href="http://blog.davidedmundson.co.uk/blog/plasma-and-the-systemd-startup/"&gt;revamp of session init&lt;/a&gt; with optional use of systemd, and the new &lt;a href="https://conf.kde.org/en/akademy2020/public/events/219"&gt;cgroups-loving way of running apps&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For Plasma on Wayland, this meant: While we strongly believing in the tech, we would take our time to get it right, and not declare the offering ready before it isn't up to par. It also wasn't always the highest-priority development activity going on, with many other steps being simultaneously taken to reach our goals. Reasonable people can (and do) have diverging opinions on the relative prioritization of work, of course, but the path we walked was most definitely a consciously strategic one - one that has lead to the gradual disappearance of those earlier quotes from user feedback we receive, speaking to its execution. Work continues!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;KwinFT&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;One source of these concerns is the &lt;a href="https://gitlab.com/kwinft/kwinft"&gt;KWinFT&lt;/a&gt; project, a recent fork of the compositor service in a Plasma system along with a few choice pieces of support code (e.g. the screen config subsystem).&lt;/p&gt;
&lt;p&gt;KWinFT is a project by &lt;a href="https://subdiff.org/"&gt;Roman Gilg&lt;/a&gt;, a contributor to KWin and KDE in general. Roman will not be shocked by reading this, as we had this discussion a couple of months before he announced the project, as well as recently, but I don't think the fork was necessary, or is a very good idea overall. I think his technical ideas for KWin are interesting, and think there were better options to deliver their value to users and have a bigger impact in the end, e.g. by making more aggressive use of feature/staging branches to prove out subsystem rewrites before merging them up. This is a suggestion I made at the time, too, and I haven't seen anything to change my mind since. We certainly keep talking.&lt;/p&gt;
&lt;p&gt;This is a very personal opinion and speaks to my own style to open source involvement more than anything, which is shaped by the vibe of the KDE community and the KDE mentors and role models I received my education from. I believe in prioritizing user value, and in leadership by aligning diverse talents towards common goals, by being inviting, communicative and persuasive. I really don't believe these options were fully exhausted in this matter, and while I understand that starting a new project can make it easier to try out e.g. some different organizational ideas (and my impression of the fork is that it's really more about those than any actual tech disagreements) without having to do the work of getting others on board, I don't think this ultimately succeeds in bringing improvements to the max number of people who might benefit from them.&lt;/p&gt;
&lt;p&gt;On the tech side, though, it's important to keep the focus of the conversation on Plasma on Wayland as a whole. KWin is an important component of that system, but owing to its &lt;a href="https://blogs.kde.org/2018/08/02/engineering-plasma-extensions-and-stability-%E2%80%94-present-and-future"&gt;multi-process architecture&lt;/a&gt;, it's only one of a fairly large and varied set of codebases that need to complete their porting efforts. Many use cases additionally require coordinated activity across several components (for example: the taskbar, System Settings, ...), and it's also still not too difficult to identify &lt;a href="https://blogs.kde.org/2020/10/11/linux-desktop-shell-ipc-wayland-vs-d-bus-and-lack-agreement-when-use-them"&gt;needed upstream improvements in Wayland&lt;/a&gt; to get over the finish line, some of which the Plasma team is currently &lt;a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/50"&gt;driving forward&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And no, this isn't stacking features on shaky foundations - most of this work is technically orthogonal (easy to see for the ones that aren't in the same codebase or even project!), and in any case, the more pleasant Plasma's Wayland session becomes to consume, the higher the set of potential contributors exposed to the remaining tasks. Those attention dynamics of open source are fairly reliable :-). In any case, this is perhaps actually my main beef with the technical criticisms coming from the debates surrounding KWinFT - they are myopically focused on KWin and derive from this grander projections, ignoring the full picture of the system and a lot of other heavy-hitting technical activity all throughout it (including some of the projects linked throughout this post). The resulting signal-to-noise ratio is not very engaging overall. &lt;i&gt;KWin != Plasma&lt;/i&gt; is an important constraint to add to them.&lt;/p&gt;</description></item><item><title>Linux desktop shell IPC: Wayland vs. D-Bus, and the lack of agreement on when to use them</title><link>https://blogs.kde.org/2020/10/11/linux-desktop-shell-ipc-wayland-vs-d-bus-and-lack-agreement-when-use-them/</link><pubDate>Sun, 11 Oct 2020 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2020/10/11/linux-desktop-shell-ipc-wayland-vs-d-bus-and-lack-agreement-when-use-them/</guid><description>&lt;p&gt;On the Linux desktop today, we have two dominant IPC technologies in use between applications and the desktop environment: &lt;a href="https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)"&gt;Wayland&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/D-Bus"&gt;D-Bus&lt;/a&gt;. While created for different reasons, both are generically extensible and can be used to exchange data, synchronize state and send requests and signals between peers. A large number of desktop use cases are implemented using either technology, and some use cases are already distributed across both of them. The status quo is mostly the result of organic growth, with individual implementation choices down to tech friction or the lack thereof.&lt;/p&gt;
&lt;p&gt;For some use cases the choice of which to use is not obvious. This is one of the factors still slowing down the standardization and hence adoption of Wayland-based sessions currently.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The overlap&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;While the semantics of Wayland and D-Bus are really pretty different, both enable the exchange of structured, typed data between peers along with RPC-shaped uses. While D-Bus supports many more connection topologies than just one process talking to another, for applications interacting with the desktop environment via protocols both parties agree on the difference is small and usually hidden by toolkit abstractions.&lt;/p&gt;
&lt;p&gt;More importantly, both technologies were created to service the same key users - desktop environments and application toolkits - and widely adopted protocols layered over both transports deal in some of the same primitives coming from that ecosystem. For example, &lt;a href="https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html"&gt;.desktop file names&lt;/a&gt; as stable application ids are referenced in both the Wayland &lt;a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tree/master/stable/xdg-shell"&gt;xdg-shell&lt;/a&gt; protocol as well as well as &amp;lt;a href=&amp;quot;https://www.freedesktop.org/wiki/&amp;gt;freedesktop.org's&lt;/a&gt; &amp;lt;a href-&amp;quot;https://specifications.freedesktop.org/notification-spec/latest/&amp;gt;notifications protocol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The current usage split between the two protocols is a result of tech friction and little planning - some things are easier to talk about on a Wayland connection, others are easier to talk about on the D-Bus. It's down to the protocols we already have in hand now, adoption in various codebases and a spectrum of opinions.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tech friction&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://wayland-book.com/"&gt;Wayland&lt;/a&gt; (cool book link this time!) is the designated successor to the venerable &lt;a href="https://magcius.github.io/xplain/article/index.html"&gt;X windowing system&lt;/a&gt;. Born from the same community, it's certainly informed by some of X's successes, but also many of the pain points experienced by implementers of X over the years. A lot of the advances in Wayland relate to the particular problems of windowing and presentation, but its heritage also did much to set the scene for revisiting what really belongs into the core windowing system and what doesn't. D-Bus and even its own direct predecessors did not exist for much of X's long and storied history. Conversely, in the Wayland world it has become a lot harder (in terms of scrutiny applied by the community) to get a desktop feature into a widely-adopted spec than it was in X, which for a long time was the only widely adopted transport medium in place.&lt;/p&gt;
&lt;p&gt;D-Bus is a far more generic IPC/RPC technology supporting a wider variety of connection patterns between parties. Service activation through the bus, multicast signals open to any participant, pervasive introspection of interfaces - you won't find much of this in Wayland, and D-Bus is the latest in a &lt;a href="https://en.wikipedia.org/wiki/DCOP"&gt;chain&lt;/a&gt; of &lt;a href="https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture"&gt;technologies&lt;/a&gt; driven by genuine needs for such capabilities.&lt;/p&gt;
&lt;p&gt;There's a third element to the discussion, and it's the rise of the &lt;a href="https://en.wikipedia.org/wiki/Freedesktop.org"&gt;freedesktop.org&lt;/a&gt; standards ecosystem, broadly promoting interoperability between desktop environments and the portability of apps between them. Put on a timeline, freedesktop.org and D-Bus happened a decent number of years prior to the arrival of Wayland - D-Bus, therefore, has a headstart in being the medium of choice for freedesktop.org specs and fd.o standards being referenced in protocol and service designs.&lt;/p&gt;
&lt;p&gt;In the end:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Wayland is the natural transport between the application and the compositor, one of the key services of the desktop environment. Windowing being the goal, a lot of the protocols in place now make it easy for the two parties to converse at the level of windows. In xdg-shell, the application can also let the compositor know its application id as part of window metadata. This is one of several established ways for the compositor to know what application it's talking to. (A more recent aid is mapping from the client to a cgroup set up by the application launcher, e.g. &lt;a href="https://flatpak.org/"&gt;Flatpak&lt;/a&gt; or Plasma, which can improve the security of this type of authentication. In both Wayland and D-Bus, you sometimes see this need - and much more - addressed by inserting a protocol proxy like &lt;a href="https://github.com/flatpak/xdg-dbus-proxy"&gt;xdg-dbus-proxy&lt;/a&gt; or &lt;a href="https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/README.md"&gt;Sommelier&lt;/a&gt;, respectively.)&lt;/li&gt;
&lt;li&gt;D-Bus is the transport used for many other app-to-service interactions, e.g. notifications. On D-Bus it's often convenient to find the application id of a participant, but it's hard to relate the conversation to the windowing system. For example, efforts to relate a D-Bus notification event to a particular window to jump to are fairly recent and not yet widely implemented.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;The decision vacuum&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;There's a particular snag in the timeline: With D-Bus arriving on the scene a lot later than X, a lot of interactions between apps and the desktop environment were spec'd into the X medium in the past. For example, various forms of window or broadly application state (e.g. requesting user attention) or requesting focus/activation from the window manager. No one thought to put onto D-Bus what was widely adopted and working already, although sometimes more comprehensive replacements gravitated towards using D-Bus instead and managed to get traction.&lt;/p&gt;
&lt;p&gt;With X being replaced, a lot of the stuff in &lt;a href="https://en.wikipedia.org/wiki/Inter-Client_Communication_Conventions_Manual"&gt;ICCCM&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Extended_Window_Manager_Hints"&gt;EWMH/NetWM&lt;/a&gt; is now up for grabs for either Wayland- or D-Bus-based specs.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Current trends: Plasma vs. Gnome vs. wlroots/Sway&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Wayland is the natural choice for a compositor service to talk to apps. D-Bus is the most popular option for other desktop environment services to talk to apps. In some desktop environments, the compositor and other services may live in the same process (&lt;a href="https://en.wikipedia.org/wiki/GNOME_Shell"&gt;Gnome Shell&lt;/a&gt; in particular), others distribute services over few or many processes.&lt;/p&gt;
&lt;p&gt;In &lt;a href="https://en.wikipedia.org/wiki/KDE_Plasma_5"&gt;Plasma&lt;/a&gt;, the compositor and the desktop shell are two seperate processes. The compositor implements the window management policy, and the desktop shell process draws your wallpaper, your panels and your menus. The notifications service lives in the Plasma desktop shell process as well. This architecture is a straight port-over from the X way of doing things, but it remains advantageous - for example, a crash in the shell won't bring your compositor (and then your apps) down with it. In fact, we're aiming for still &lt;a href="https://blogs.kde.org/2018/08/02/engineering-plasma-extensions-and-stability-%E2%80%94-present-and-future"&gt;more process isolation&lt;/a&gt; in future generations of Plasma.&lt;/p&gt;
&lt;p&gt;The compositor and the shell being in different processes requires them to synchronize state. The shell also needs to pose requests to the compositor. In Plasma, this communication happens through a set of &lt;a href="https://invent.kde.org/libraries/plasma-wayland-protocols"&gt;Plasma-specific Wayland protocols&lt;/a&gt;. This is a good example of a friction-driven implementation choice: As the shell and the compositor want to mainly converse about windows, using Wayland posed the least friction. On the other hand, in cases of the compositor talking to support processes such as the screen configuration service or the System Settings app, the choice of transport varies - Wayland protocols in some cases, D-Bus interfaces for others (notably virtual desktops configuration). Overall, we don't have a clear IPC usage policy at the moment.&lt;/p&gt;
&lt;p&gt;For other desktop environments I cannot speak with any true authority, especially make no claims about implementation policy. Perhaps owing to the single-process shell architecture, I see our friends at Gnome using D-Bus-based protocols in a few places where we use Wayland-based ones, e.g. for screen configuration (&lt;b&gt;edit:&lt;/b&gt; lack of friction between D-Bus and XDG desktop portals has been pointed out to me as another factor; makes sense).&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/swaywm/wlroots"&gt;wlroots&lt;/a&gt; community (consisting of &lt;a href="https://github.com/swaywm/sway"&gt;Sway&lt;/a&gt; and lots of other users) seems to broadly prefer Wayland over D-Bus to run protocols through. It's easy to surmise why - wlroots' &lt;i&gt;raison d'être&lt;/i&gt; is to enable building shells on top of Wayland, and in particular shells built up of interoperating pieces made by distinct authors. Enabling this interoperability through the community's Wayland-based tooling must come naturally, and the wlroots community is no doubt leading this particular effort at the moment. Some of these protocols are great, and it's likely Plasma will implement more of them in the future.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Unresolved cases&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;An example where the lack of a clear choice has been slowing the desktop community down is focus/activation requests. Consider the following common usage pattern: The user clicks a link in a chat app. It opens in the default browser. For convenience, the user might want the browser window to be raised to the front now, the click being an instruction to the system to form a smooth workflow from one app to the other.&lt;/p&gt;
&lt;p&gt;It might come as a surprise, but 12 years in, there's no good, widely-adopted solution to making this work in Wayland-based desktops.&lt;/p&gt;
&lt;p&gt;It should not come as a surprise, however, that this an example handled in the past by an X-based protocol that's now out of the picture. The X way of doing things wasn't very robust - it put a lot of trust into the application posting a legitimate request to be activated, and it required the window manager to implement complicated heuristics to filter out illegitimate or just ill-timed requests. These heuristics are collectively known as &amp;quot;focus stealing prevention&amp;quot;, e.g. sticking to the current window while the user is typing into it. For now, Wayland-based desktops by and large are skating by on even poorer semantics - giving focus to any new window while relying on heuristics, with partial solutions to the problem of already-existing windows not pervasively implemented across apps.&lt;/p&gt;
&lt;p&gt;It's a good example of a case where the community really doesn't want to miss a chance to get it right this time. While trying to do so, a lot of more or less related desktop features have been looked at as well - for example, the X convention of apps placing attention hints on their windows to blink them in the taskbar, to be cancelled by the window manager when the window is raised and focused. Also the case of applications posting notification events through D-Bus carrying a link back to particular window, e.g. to jump from a chat message alert bubble to the specific conversation window.&lt;/p&gt;
&lt;p&gt;Over the last couple of years, &lt;a href="https://lists.freedesktop.org/archives/wayland-devel/2018-July/038832.html"&gt;many&lt;/a&gt; &lt;a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/9"&gt;different&lt;/a&gt; &lt;a href="https://lists.freedesktop.org/archives/wayland-devel/2018-July/038832.html"&gt;approaches&lt;/a&gt; have been &lt;a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/48"&gt;proposed&lt;/a&gt; and &lt;a href="https://patchwork.freedesktop.org/series/68075/"&gt;tried&lt;/a&gt;, and we still don't have the One True Spec.&lt;/p&gt;
&lt;p&gt;There seems to be fairly solid agreement on the need for a token exchange mechanism to clear the focus handover in the compositor - the chat app requests a token from the compositor, hands it to the browser handling the link (e.g. through an environment variable) and the browser may use it to request focus from the compositor. But there remains a lot of division over whether the activation request (along with other use cases) should be layered over the D-Bus-based notification spec, or whether all of this should remain solidly Wayland territory:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The argument for D-Bus is that a mechanism to relate notification events to particular windows (by including a window handle in the metadata) is needed anyway, and once that's in place, it's easy to add in the focus token. Using special notification events to inform about window-specific ongoings is an extensible pattern potentially spanning all of activation and attention-seeking, along with things like taskbar job progress meters and others. The event spec also already has fields useful for accessibility - imagine a system where a blind user gets a "app X wants attention for Y" readout, without needing to craft a new protocol to tell the compositor specifics about Y. On the other hand, going this route clearly also requires some spec work for existing notification service implementations to be able to do the right thing when processing these special events.&lt;/li&gt;
&lt;li&gt;The argument for Wayland is that the above requires a lot of translation forth and back (or rather, import and export of handles and tokens), and in the case of multi-process service architectures, expensive chaining of IPC. Plus it requires a Wayland-based desktop environment to use D-Bus for a core use case, while an X11-based desktop environment could do without a second transport for the same features. For some projects, this is an unattractive expansion of their current dependencies.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;In conclusion&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I suspect the above example of focus/activation requests will ultimately be addressed by a token exchange via Wayland, and the notification spec way of doing things will be implemented alongside it as well, rather than picking one way of doing things. And perhaps that's fine.&lt;/p&gt;
&lt;p&gt;But it's worth stopping for a moment and being conscious of what's going on. We would all benefit from some commonly agreed-upon guidelines on where the scopes of Wayland and D-Bus end in our application platform, and where they overlap. Where does the windowing system start and end? Where should new protocols go? We also want to be smart in spec'ing out how the two mediums relate to each other, and making translations from one of the other safe and robust.&lt;/p&gt;
&lt;p&gt;In addition to our regular comm tools of forges and merge requests, a natural venue for these kinds of discussions is the &lt;a href="https://linuxappsummit.org/"&gt;Linux App Summit&lt;/a&gt;, an event co-hosted by KDE and Gnome. LAS 2020 is just one month away. Perhaps it's a good chance for a sit-down about these things.&lt;/p&gt;</description></item><item><title>Using Architecture Decision Records (ADRs) in KDE?</title><link>https://blogs.kde.org/2020/09/11/using-architecture-decision-records-adrs-kde/</link><pubDate>Fri, 11 Sep 2020 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2020/09/11/using-architecture-decision-records-adrs-kde/</guid><description>&lt;p&gt;Over at &lt;a href="https://akademy.kde.org/2020"&gt;Akademy 2020&lt;/a&gt;, I just witnessed a fantastic talk by KDE contributor mainstay Kévin Ottens on &amp;quot;Lost Knowledge in KDE&amp;quot;. In the presentation, Kévin showed us a series of examples of sophisticated solutions to important problems KDE has innovated and implemented over the years - and subsequently lost knowledge of, applying them sparingly or inconsistently, or developing new solutions redundantly. He also talked about how this is a familiar problem to organizations, with a research field known as knowledge management itself looking to develop solutions and tools to combat this problem since the late 20st century.&lt;/p&gt;
&lt;p&gt;He also highlighted how we don't use comm tools with higher knowledge retention factors - blogs, mailing lists, media with more permanent discussion records - as much anymore. So here's a suggestion in blog form! :-)&lt;/p&gt;
&lt;p&gt;Within the wider open source as community as well as industry, the idea of writing &lt;a href="https://github.com/joelparkerhenderson/architecture_decision_record"&gt;Architecture Decision Records&lt;/a&gt; has recently become quite popular. ADRs are not really a new tool - surely forms of it have been around for a long time in various organizations - but giving the renaissance of the concept a name has a lead to ample discourse on its pros an cons, and plenty of resources available.&lt;/p&gt;
&lt;p&gt;To give my take, an ADR is a concise write-up of a particular project/community decision. It should have enough detail to make the decision understandable, as well as cover its context and implications. They usually have an owner and co-authors, and are finalized via a light peer-review process. It's a bit like drafting and finalizing a PEP, another popular tool - except instead of motivating a change, it is describing a decision, to serve as a cache and make sure future discussions and changes have a frame of reference to work with. In this sense, it's a bit like &lt;a href="https://manifesto.kde.org/"&gt;KDE Manifesto&lt;/a&gt;, which has served us rather well.&lt;/p&gt;
&lt;p&gt;ADR's aren't perfect - they can't and shouldn't replace other forms of documentation, such as API docs and protocol specs. They also have a problem with indexing - while being able to refer to/link to a particular ADR is extremely useful when someone is aware of the relevant ADR already, they're little information silos that are hard to dive into in flat-list format. But the big pro is that they have a low barrier of entry due to the lower effort and process overhead required compared to other forms of documentation, if implemented well. They make it more likely for documentation to be written.&lt;/p&gt;
&lt;p&gt;KDE's design community has recently started making use of this idea, writing down some decisions that otherwise had a tendency to be re-discussed again and again: &lt;a href="https://community.kde.org/Get_Involved/Design/Lessons_Learned"&gt;Design Lessons Learned&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think we could co-opt the ADR idea and apply it to a lot of the examples Kévin showed, to record the needs and thinking that lead to building various solutions and frameworks we have: What problem were we trying to solve? Why was it better than we had before? How does the minimum bar look like now that we have the solution? Where should the solution be applied without fail? What alternatives were discussed and discarded before making the solution?&lt;/p&gt;
&lt;p&gt;All we'd need to get started is a wiki space, a good ADR template, a minimal kdereview-like process, and a few good examples to seed the list ...&lt;/p&gt;</description></item><item><title>Introducing Kirogi: A ground control application for drones</title><link>https://blogs.kde.org/2019/09/08/introducing-kirogi-ground-control-application-drones/</link><pubDate>Sun, 08 Sep 2019 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2019/09/08/introducing-kirogi-ground-control-application-drones/</guid><description>&lt;p&gt;Today I'm in beautiful Milano, Italy, where the KDE community has gathered for its annual user and developer conference, &lt;a href="https://akademy.kde.org/"&gt;Akademy&lt;/a&gt;. At Akademy I've had an opportunity to present my new KDE project to a larger audience: A ground control application for drones, &lt;b&gt;Kirogi&lt;/b&gt;.&lt;/p&gt;
&lt;center&gt;&lt;img width="640" src="https://kirogi.org/assets/img/kirogi.webp" alt="A screenshot of Kirogi's direct flight controls screen" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Kirogi's direct flight controls screen&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;Kirogi aims to enable the operation of drones of all sorts of makes and models in an approachable and polished manner, with both direct and map-based control modes and many more features planned for the future.&lt;/p&gt;
&lt;p&gt;The origin story behind the Kirogi project is a classic open source tale. During this year's Lunar New Year holiday, I was paying a visit to family in Busan, South Korea (the name &lt;i&gt;Kirogi&lt;/i&gt; is Korean and means wild goose). During the off-days I ended up buying my first drone. I attempted the first flight in my mother-in-law's living room. Unfortunately the official vendor application immediately started crashing after take off - much to my embarassment, I couldn't land the thing! Eventually it slowly drifted towards a very nice armchair (sorry mom!) and crashed on contact with an emergency engines-off.&lt;/p&gt;
&lt;p&gt;Turns out the app I was using had been replaced by a newer, seperate app store upload intended for a newer drone - and the app I had wasn't fully compatible with a newer version of the phone's OS anymore. I realized open source can serve drone owners better there and started hacking on this new KDE application a few days later.&lt;/p&gt;
&lt;p&gt;Since then I've received a lot of support and help from many people in the fantastic KDE community, including &lt;a href="https://www.krita.org/"&gt;Krita&lt;/a&gt;-powered artist L. 'AsmoArael' C., who responded to a request I posted KDE's Artists Wanted forum and helped me realize Kirogi's mascot:&lt;/p&gt;
&lt;center&gt;&lt;img width="500" src="https://kirogi.org/assets/img/goose.webp" alt="A drawing of Kirogi's mascot, a farm goose and technology enthusiast" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Kirogi's mascot, a farm goose and technology enthusiast&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;If you want to know more about the project's origins and dive further into the technical details, I invite you to check out the &lt;a href="https://share.kde.org/s/aZn6KyqoPioaRAF"&gt;slides&lt;/a&gt; for the talk I gave today. It was recorded on video as well; I will add a link once it's been made available.&lt;/p&gt;
&lt;p&gt;The project also has a &lt;a href="https://kirogi.org/"&gt;website&lt;/a&gt; already. Along with much additional information on the project it features download links for nightly development builds.&lt;/p&gt;</description></item><item><title>Plasma sprint, 2019 edition; personal updates</title><link>https://blogs.kde.org/2019/07/16/plasma-sprint-2019-edition-personal-updates/</link><pubDate>Tue, 16 Jul 2019 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2019/07/16/plasma-sprint-2019-edition-personal-updates/</guid><description>&lt;p&gt;In June, I had a great time at a series of KDE events held in the offices of &lt;a href="https://slimbook.es/"&gt;Slimbook&lt;/a&gt;, makers of fantastic Neon-powered laptops, at the outskirts of Valencia, Spain. Following on from a two-day KDE e.V. board of directors meeting, the main event was the 2019 edition of the Plasma development sprint. The location proved to be quite ideal for everything. Slimbook graciously provided us with two lovely adjacent meeting rooms for Plasma and the co-located KDE &lt;i&gt;Usability &amp;amp; Productivity&lt;/i&gt; sprint, allowing the groups to mix and seperate as our topics demanded - a well-conceived spatial analog for the tight relationship and overlap between the two.&lt;/p&gt;
&lt;center&gt;&lt;img width="500" src="https://i.imgur.com/aEBYrCr.jpg" alt="Alejandro López attaching a silver KDE sticker to my new laptop" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;The Plasma team walked the gorgeous Jardí del Túria almost every day during their sprint week to stay healthy and happy devs.&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;As always during a Plasma sprint, we used this opportunity to lock down a number of important development decisions. Release schedules, coordinating the next push on Plasma/Wayland and a new stab at improving the desktop configuration experience stand out to me, but as the &lt;a href="https://dot.kde.org/2019/07/04/plasma-usability-productivity-sprint-valencia-spain"&gt;Dot post&lt;/a&gt; does a fine job providing the general rundown, I'll focus on decisions made for the Task Manager widgets I maintain.&lt;/p&gt;
&lt;p&gt;On one of the sprint mornings, I lead a little group session to discuss some of the outstanding high-level problems with the two widgets (the regular &lt;i&gt;Task Manager&lt;/i&gt; and the &lt;i&gt;Icons-only Task Manager&lt;/i&gt;), driven by frequent user reports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Poor experience performing window management on groups of windows&lt;/li&gt;
&lt;li&gt;Unnecessary duplication in the UI displaying window group contents&lt;/li&gt;
&lt;li&gt;Unintuitive behavior differences between the two widgets&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To address these, we came up with a list of action items to iteratively improve the situation. Individually they're quite minor, but there are many of them, and they will add up to smooth out the user experience considerably. In particular, we'll combine the currently two UIs showing window group contents (the tooltip and the popup dialog) into just one, and we'll make a new code path to cycle through windows in a group in most recently used order on left click the new default. The &lt;a href="https://notes.kde.org/p/usability-productivity-sprint-2019"&gt;sprint notes&lt;/a&gt; have more details.&lt;/p&gt;
&lt;p&gt;Decision-making aside, a personal highlight for me was a live demo of Marco Martin's new desktop widget management implementation. Not only does it look like a joy to use, it also improves the software architecture of Plasma's home screen management in a way that will help Plasma Mobile and other use cases equally. Check out &lt;a href="https://notmart.org/blog/2019/07/a-week-in-valencia/"&gt;his blog post&lt;/a&gt; for more.&lt;/p&gt;
&lt;center&gt;&lt;img width="500" src="https://i.imgur.com/ruAybrU.jpg" alt="Alejandro López attaching a silver KDE sticker to my new laptop" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;I got a new laptop. Slimbook founder Alejandro López made it a proper computer by attaching a particularly swanky metal KDE sticker during the preceding KDE e.V. board sprint.&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;In KDE e.V. news, briefly we stole one of the sprint rooms for a convenient gathering of most of our &lt;a href="https://ev.kde.org/workinggroups/fwg.php"&gt;&lt;i&gt;Financial Working Group&lt;/i&gt;&lt;/a&gt;, reviewing the implementation of the annual budget plan of the organization. We also had a chance to work with the &lt;i&gt;Usability&lt;/i&gt; &lt;a href="https://phabricator.kde.org/T6831"&gt;goal crew&lt;/a&gt; (have you heard about &lt;a href="http://blog.lydiapintscher.de/2019/06/09/evolving-kde-lets-set-some-new-goals-for-kde/"&gt;KDE goals&lt;/a&gt; yet?) on a plan for the use of their remaining budget -- it's going to be exciting.&lt;/p&gt;
&lt;p&gt;As a closing note, it was fantastic to see many new faces at this year's sprint. It's hard to believe for how many attendees it was their first KDE sprint &lt;i&gt;ever&lt;/i&gt;, as it couldn't have been more comfortable to have them on board. It's great to see our team grow.&lt;/p&gt;
&lt;p&gt;See you next sprint. :)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;In more personal news, after just over seven years at the company I'm leaving Blue Systems GmbH at the end of July. It's been a truly fantastic time working every day with some of the finest human beings and hackers. The team there will go on to do great things for KDE and personal computing as a whole, and I'm glad we will keep contributing together to Plasma and other projects we share interests and individual responsibilities in.&lt;/p&gt;
&lt;p&gt;As a result, the next ~10 weeks will see me very busy moving continents from Seoul back to my original home town of Berlin, where I'll be starting on a new adventure in October. More on that later (it's quite exciting), but my work on the KDE e.V. board of directors or general presence in the KDE community won't be affected.&lt;/p&gt;
&lt;p&gt;That said -- between the physical and career moves, board work and personal preparations for Akademy, I'll probably need to be somewhat less involved and harder to reach in the various project trenches during this quarter. Sorry for that, and do poke hard if you need me to pick up something I've missed.&lt;/p&gt;
&lt;p&gt;And of course:
&lt;a href="https://akademy.kde.org/2019"&gt;
&lt;img src="https://cdn.kde.org/akademy/2019/imgoing/Akademy2019BannerDuomo-wee.png" width="420" height="103" alt="I'm going to Akademy 2019" /&gt;
&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Join the first KDE e.V. board dinner of 2019</title><link>https://blogs.kde.org/2019/01/02/join-first-kde-ev-board-dinner-2019/</link><pubDate>Wed, 02 Jan 2019 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2019/01/02/join-first-kde-ev-board-dinner-2019/</guid><description>&lt;p&gt;Twice a year (on that note, happy new one!), the KDE e.V. board of directors comes together for an in-person meeting, taking care of business. It's become a tradition that on one of the two meeting days, the board hosts a dinner event open to KDE users, contributors and other interested parties.&lt;/p&gt;
&lt;p&gt;The board's first meeting of 2019 will be in &lt;b&gt;Seoul, South Korea&lt;/b&gt;, and the dinner will be held on &lt;b&gt;Saturday, January 19th&lt;/b&gt; in central Seoul.&lt;/p&gt;
&lt;p&gt;If you're interested in attending (us five board members aside, we've already had the pleasure of confirming the attendance of many notable local community members - it won't be boring!) and talking all things KDE and FOSS over good food with us, please &lt;a href="mailto:hein@kde.org"&gt;drop me a mail&lt;/a&gt;. Modulo available space, I'll get back to you with details on the time and location as soon as we've finalized both.&lt;/p&gt;</description></item><item><title>Engineering Plasma: Extensions and stability — Present and future</title><link>https://blogs.kde.org/2018/08/02/engineering-plasma-extensions-and-stability--present-and-future/</link><pubDate>Thu, 02 Aug 2018 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2018/08/02/engineering-plasma-extensions-and-stability--present-and-future/</guid><description>&lt;p&gt;This week, we have received a number of inquiries into how Plasma extensions, particularly those found on the &lt;a href="https://store.kde.org/"&gt;KDE Store&lt;/a&gt;, relate to the stability and safety of a Plasma system. With an engineering focus, this blog hopes to provide answers.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Crash Resilience By Process Isolation&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;&lt;img width="500" src="https://i.imgur.com/1k0s5IMr.png" alt="Present-day Plasma process architecture diagram" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Present-day process architecture: Compositor and shell UI are isolated from each other&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;In Plasma, the shell UI and the compositor are isolated into seperate processes (&lt;code&gt;plasmashell&lt;/code&gt; and &lt;code&gt;kwin&lt;/code&gt;, respectively). The two exchange information regulated by IPC mechanisms such as the windowing system (Wayland or X11) and DBus, using standard protocols where suitable and custom-created ones where needed.&lt;/p&gt;
&lt;p&gt;In a Wayland session, it's kwin that plays host to your application clients and puts them on screen (on X11, both KWin and app are clients to the X Server, providing a further isolation - KWin can crash and restart without impacting apps). Shell UI extension live in the seperate plasmashell process.&lt;/p&gt;
&lt;p&gt;In the event that a shell extension crashes the shell, this allows it to be restarted without impacting KWin and therefore without impacting your applications. They continue to run undeterred while the shell takes steps to right itself.&lt;/p&gt;
&lt;p&gt;Beyond crash resilience, putting limits on untrusted code run in the compositor process also has a security dimension. Particularly on Wayland, where one of the design goals is not to allow untrusted code to introspect the windowing system globally.&lt;/p&gt;
&lt;p&gt;Meanwhile, to make KWin ready to taking over for the X Server in a Wayland session, we significantly upgraded our engineering story - requiring and dramatically raising unit test coverage for KWin and related library code, for one.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Process Isolation: Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The architecture discussed above shields applications and the compositor from shell UI extensions, but it doesn't shield the shell. We want to fix that next.&lt;/p&gt;
&lt;center&gt;&lt;img width="500" src="https://i.imgur.com/OgFZWjT.png" alt="Future R&amp;D Plasma process architecture diagram" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Next: Isolate shell UI and extensions, too — individual or batch processes for extensions&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;The always-stunning David Edmundson has been spearheading several engineering efforts to make the shell itself have a multi-process architecture. Some of this has already quietly been shipping in the &lt;a href="https://www.kde.org/announcements/plasma-5.12.0.php"&gt;Plasma 5.12&lt;/a&gt; LTS release: &lt;code&gt;KRunner&lt;/code&gt; plugins, which provide search results in our menus/launchers, can now opt into running out-of-process. We've used this to isolate some of the crash chart-topping plugins, preventing them from taking down the shell when performing a search query.&lt;/p&gt;
&lt;p&gt;Likewise, for shell UI extensions, he has been working on top off the library stack we initially built for the Wayland transition to allow them to be run out of process and then get composited into the shell UI. In addition to making the shell far more resilient to extension crashes, this would also create additional security domains for untrusted extension code - we can build on this to sandbox and drop privileges for them.&lt;/p&gt;
&lt;p&gt;All of this is broadly similar to application architecture improvements pioneered by multi-process web browsers in past years, albeit built squarely to leverage the shared free desktop stack (particularly Wayland and DBus). Unlike what took place in Firefox' project &lt;a href="https://wiki.mozilla.org/Electrolysis"&gt;Electrolysis&lt;/a&gt;, however, we don't see a need to break extension compatibility in our case. For Plasma's extension API scope, we've always taken a conservative demand-based approach instead of allowing extensions free access to all data and code by default. This is paying dividends now, allowing us new shell architecture options while preserving the known, stable API contract it has with its extensions.&lt;/p&gt;
&lt;p&gt;David is set to show off the R&amp;amp;D proof of concept we have working now in &lt;a href="https://conf.kde.org/en/Akademy2018/public/events/66"&gt;his talk&lt;/a&gt; at this year's &lt;a href="https://akademy.kde.org/"&gt;Akademy&lt;/a&gt; conference, which I can't wait to attend. Be sure to also keep your eyes peeled on his &lt;a href="https://blog.davidedmundson.co.uk/"&gt;blog&lt;/a&gt;, where he will dive deeper into the details of this project after the conference excitement.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;In Summary&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Plasma today is architected to prevent shell UI extensions from being able to crash your session and interfere with your apps. We are working to expand on this and prevent extensions from interfering with the shell.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;In Context&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;One of the broad goals of Plasma 5 has been raising &lt;b&gt;quality&lt;/b&gt;. This is a user-driven process. Converting feedback we got during the first generation of Plasma into software, we worked hard to bring Plasma users tangible improvements to speed, resource usage and UI polish (this is by no means over, either). We also already implemented a LTS release process to improve our support story.&lt;/p&gt;
&lt;p&gt;Dove-tailing with the &lt;a href="https://dot.kde.org/2017/11/30/kdes-goals-2018-and-beyond"&gt;KDE community's Goals&lt;/a&gt;, climbing higher on the ladder of safety and security is one of our immediate next ones. Increasing process isolation in Plasma and achieving state of the art crash resilience and sandboxing, a likely first on the desktop, is a concrete engineering expression of this aim.&lt;/p&gt;
&lt;p&gt;Sounds interesting? If you want to be part of a team and a community that keeps pushing the desktop (and &lt;a href="https://www.plasma-mobile.org"&gt;not just the desktop&lt;/a&gt;) forward in the days to come, &lt;a href="https://community.kde.org/Get_Involved"&gt;join us&lt;/a&gt; in one of our &lt;a a href="https://userbase.kde.org/IRC_Channels"&gt;channels&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course:&lt;/p&gt;
&lt;center&gt;&lt;img src="https://akademy.kde.org/sites/akademy.kde.org/files/2018/going_to_akademy_banner.jpg" alt="I'm going to Akademy promo picture" /&gt;&lt;/a&gt;&lt;/center&gt;</description></item><item><title>Off and On Again: The story of KDE Plasma's desktop icons; 5.12 improvements</title><link>https://blogs.kde.org/2018/01/24/and-again-story-kde-plasmas-desktop-icons-512-improvements/</link><pubDate>Wed, 24 Jan 2018 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2018/01/24/and-again-story-kde-plasmas-desktop-icons-512-improvements/</guid><description>&lt;center&gt;&lt;a href="https://i.imgur.com/Pk1fC8u.png"&gt;&lt;img src="https://i.imgur.com/Qy4F4Qz.png" alt="Desktop icons in Plasma 5.12 LTS Beta" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Desktop icons in Plasma 5.12 LTS Beta (Click to enlarge)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;&lt;a href="https://didrocks.fr/2018/01/23/welcome-to-the-ubuntu-bionic-age-nautilus-a-lts-and-desktop-icons/"&gt;Recent news&lt;/a&gt; in the Linux desktop community recall an interesting time in Plasma's history: Release 4.1 in 2008, Plasma's second release ever, that time we (in)famously &lt;a href="http://aseigo.blogspot.kr/2008/05/no-more-desktop-icons-in-41.html"&gt;abandoned desktop icons&lt;/a&gt; (sneak preview: they came back).&lt;/p&gt;
&lt;p&gt;Of course we never &lt;i&gt;really&lt;/i&gt; abandoned them. Instead, in 4.1 we initially debuted the &lt;i&gt;Folder View&lt;/i&gt; technology, which powers most of the ways to browse file locations on a Plasma desktop. Folder View gives you folder widgets on the desktop, folder popups on your panels - and yes, desktop icons, which always remained a supported option. An option we, crucially, did decide to tick default-off at the time. Instead we chose to place a folder widget on the default desktop, in part to reinforce the then-new widget-oriented ways of doing things in Plasma, things older KDE desktops just couldn't do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Awkward Years&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A telling sign in hindsight, many distributions reneged on our decision and turned icons on for their users anyway. And yet we had decided to throw the switch upstream; what next?&lt;/p&gt;
&lt;p&gt;A period of research and experimentation followed. With all that newly freed-up screen real estate and a new modular architecture, we looked into alternatives for what a device homescreen could be. The PC during this time was in a mood to diversify as well, with new form factors popping up in stores. Some of our experiments took off - the &lt;a href="https://www.youtube.com/watch?v=9VCX6S-ndKA"&gt;&lt;i&gt;Search and Launch&lt;/i&gt;&lt;/a&gt; interface we debuted alongside the Plasma Netbook spin in 4.5 directly inspired the popular &lt;i&gt;Application Dashboard&lt;/i&gt; fullscreen overlay we introduced in Plasma 5.4. Others, like the &lt;a href="https://www.youtube.com/watch?v=8IiSTBTDBas"&gt;&lt;i&gt;Newspaper&lt;/i&gt; view&lt;/a&gt;, failed to find much of an audience.&lt;/p&gt;
&lt;center&gt;&lt;a href="https://i.imgur.com/nNLUybp.png"&gt;&lt;img src="https://i.imgur.com/2Kap4ba.png" alt="Application Dashboard in Plasma 5.12 LTS Beta" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;The Application Dashboard overlay has its origins in the icons-off adventure (Click to enlarge)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;Ultimately, though this period was productive in many ways, we didn't hit upon a clearly-better new homescreen. Elsewhere meanwhile, on a parallel track, the icon homescreen UI metaphor unexpectedly bounced back and grew stronger. Touchscreen handsets introduced a whole new generation of computer users to - essentially - desktop icons. In the following years we saw user numbers and familiarity with homescreen icons increase, not decrease.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Lights are Back on and the Doors are Open&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;During the Plasma 5.10 dev cycle, we did a lot of &lt;a href="https://blogs.kde.org/2017/03/01/plasma-510-folder-view-default-desktop-mode"&gt;polish work&lt;/a&gt; on the desktop icons experience. We then decided that it was time to stop hiding desktop icons support behind a config option: All things considered, the previous default was just not serving the majority of our users well. It had to change.&lt;/p&gt;
&lt;p&gt;We still don't &lt;i&gt;place&lt;/i&gt; any icons on the desktop by default. (Many distributions do - but they always did for all that time.) Those who enjoy the calm and tranquility of an empty desktop or don't want icons to get in the way of widgets were not impacted by this move. But drop a file or add an app to the desktop, and you now get an icon again, with full support for all of the powerful features KDE's desktops have always offered when dealing in files and links. For the many users who rely on desktop icons, this is a welcome reprieve from having to fiddle around post-install.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Icons of the Future&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the upcoming Plasma 5.12 LTS release, desktop icons are getting even better. We've done a &lt;i&gt;truckload&lt;/i&gt; of work on improving the experience with multiple monitors, across which icons can be moved freely again, along with gracefully handling monitor hot plug/unplug. Performance and latency improvements, the key theme to 5.12 in general, have continued where 5.10+ left off, with the desktop reflecting file operations now faster than before.&lt;/p&gt;
&lt;p&gt;We've worked though many of the most-reported feature requests and pain points for desktop icons throughout 2017, but we're not done yet. Folder View development continues in 2018 with more outstanding user requests on the horizon, so feel free to get in touch.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="https://www.kde.org/announcements/plasma-5.11.95.php"&gt;beta&lt;/a&gt; now and let us know what else you want out of desktop icons after 5.12!&lt;/p&gt;</description></item><item><title>Community goal: Modern and Global Text Input For Every User</title><link>https://blogs.kde.org/2017/10/24/community-goal-modern-and-global-text-input-every-user/</link><pubDate>Tue, 24 Oct 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/10/24/community-goal-modern-and-global-text-input-every-user/</guid><description>&lt;p&gt;A few months ago, I had the opportunity to give a talk on &lt;a href="https://conf.kde.org/en/akademy2017/public/events/359"&gt;Input Methods in Plasma 5&lt;/a&gt; at Akademy 2017 in lovely Almería in Spain. If you were interest in my talk but were unable to attend, there's now &lt;a href="http://origin.files.kde.org/akademy/2017/359-input-methods-in-plasma-5.mp4"&gt;video&lt;/a&gt; (&lt;a href="https://conf.kde.org/system/attachments/99/original/Input_Methods_in_Plasma_5.pdf"&gt;complementary slides&lt;/a&gt;) available courtesy of the Akademy conference team. Yay!&lt;/p&gt;
&lt;p&gt;A big part of my talk was a long laundry list of issues we need to tackle in Plasma, other KDE software and the wider free desktop ecosystem. It's now time to take the next step and get started.&lt;/p&gt;
&lt;p&gt;I've submitted the project under &lt;a href="https://phabricator.kde.org/T6838"&gt;&lt;i&gt;Modern and Global Text Input For Every User&lt;/i&gt;&lt;/a&gt; as part of the KDE community's new &lt;a href="http://blog.lydiapintscher.de/2017/08/20/evolving-kde-lets-set-some-goals/"&gt;community goals initiative&lt;/a&gt;, a new thing we're trying exactly for challenges like this - goals that need community-wide, cross-project collaboration over a longer time period to achieve.&lt;/p&gt;
&lt;p&gt;If you're interested in this work, make sure to &lt;a href="https://phabricator.kde.org/T6838"&gt;read the proposal&lt;/a&gt; and add yourself at the bottom!&lt;/p&gt;</description></item><item><title>Come dine with the KDE e.V. board in Berlin in October!</title><link>https://blogs.kde.org/2017/09/30/come-dine-kde-ev-board-berlin-october/</link><pubDate>Sat, 30 Sep 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/09/30/come-dine-kde-ev-board-berlin-october/</guid><description>&lt;p&gt;As has become tradition in recent years, the KDE e.V. board will have an open dinner alongside its in-person meeting in Berlin, Germany on October 14th, at 7 PM.&lt;/p&gt;
&lt;p&gt;We know there will be a lot of cool people in town next month, thanks to a KDE Edu development sprint, &lt;a href="http://qtworldsummit.com/"&gt;Qt World Summit&lt;/a&gt;, the &lt;a href="https://wiki.gnome.org/Hackfests/Foundation2017"&gt;GNOME Foundation hackfest&lt;/a&gt; and probably other events, and you're all invited to drop by and have a chat with us and amongst yourselves - and enjoy good food.&lt;/p&gt;
&lt;p&gt;We're still picking out a location currently, so if you're interested in attending, please &lt;a href="mailto:hein@kde.org"&gt;drop me a mail&lt;/a&gt; to pre-register and I will (space permitting) confirm and send details soon.&lt;/p&gt;</description></item><item><title>Konversation 2.x in 2018: New user interface, Matrix support, mobile version</title><link>https://blogs.kde.org/2017/09/05/konversation-2x-2018-new-user-interface-matrix-support-mobile-version/</link><pubDate>Tue, 05 Sep 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/09/05/konversation-2x-2018-new-user-interface-matrix-support-mobile-version/</guid><description>&lt;p&gt;It's time to talk about exciting new things in store for the Konversation project!&lt;/p&gt;
&lt;p&gt;Konversation is KDE's chat application for communities. No matter whether someone is a newcomer seeking community, a seasoned participant in one, or a community administrator: our mission is to bring groups of people together, allow them to delight in each other's company, and support their pursuit of shared interests and goals.&lt;/p&gt;
&lt;p&gt;One of the communities we monitor for changes to your needs is our own: KDE. Few things make a Konversation hacker happier than journeying to an event like &lt;a href="https://dot.kde.org/2017/07/22/akademy-2017-day-1"&gt;Akademy in Almería, Spain&lt;/a&gt; and seeing our app run on many screens all around.&lt;/p&gt;
&lt;p&gt;The KDE community has recently &lt;a href="https://sessellift.wordpress.com/2017/09/05/results-of-the-requirements-survey-for-a-kde-wide-chat-solution/"&gt;made progress&lt;/a&gt; defining what it wants out of a chat solution in the near future. To us, those initial results align very strongly with Konversation's mission and display a lot of overlap with the things it does well. However, they also highlight trends where the current generation of Konversation falls short, e.g. support for persistence across network jumps, mobile device support and better media/file handling.&lt;/p&gt;
&lt;p&gt;This evolution in KDE's needs matches what we're seeing in other communities we cater to. Recently we've started a new development effort to try and answer those needs.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Enter Konversation 2.x&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;&lt;a href="http://i.imgur.com/7G0rBOL.png" width="644" height="422"&gt;&lt;img src="http://i.imgur.com/MGaaoOG.png" alt="Konversation 2.x R&amp;D mockup screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Obligatory tantilizing sneak preview (click to enlarge)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;Konversation 2.x will be deserving of the version bump, revamping the user interface and bringing the application to new platforms. Here's a rundown of our goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A more modern, cleaner user interface, built using Qt Quick and KDE's Kirigami technology&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Adopting a responsive window layout, supporting more varied desktop use cases and putting us on a path towards becoming a desktop/mobile convergent application&lt;/li&gt;
&lt;li&gt;Scaling to more groups with an improved tab switcher featuring better-integrated notifications and mentions&lt;/li&gt;
&lt;li&gt;Redesigned and thoroughly cleaned-up settings, including often-requested per-tab settings&lt;/li&gt;
&lt;li&gt;Richer theming, including a night mode and a small selection of popular chat text layouts for different needs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improved media/file handling, including image sharing, a per-tab media gallery, and link previews&lt;/li&gt;
&lt;li&gt;A reduced resource footprint, using less memory and battery power&lt;/li&gt;
&lt;li&gt;Support for the Matrix protocol&lt;/li&gt;
&lt;li&gt;Supporting a KDE-wide &lt;a href="https://phabricator.kde.org/T6838"&gt;&lt;i&gt;Global and Modern Text Input&lt;/i&gt;&lt;/a&gt; initiative, in particular for emoji input&lt;/li&gt;
&lt;li&gt;Versions for &lt;a href="https://plasma-mobile.org/&gt;Plasma Mobile&lt;/a&gt; and Android&lt;/li&gt;
&lt;li&gt;Updating Konversation's web presence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let's briefly expand on a few of those:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Kirigami&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;KDE's Kirigami user interface technology helps developers make applications that run well on both desktop and mobile form factors. While still a young project, too, it's already being put to good use in projects such as &lt;a href="https://peruse.kde.org/"&gt;Peruse&lt;/a&gt;, Calligra Gemini, Gwenview, and others. When we tried it out Kirigami quickly proved useful to us as well. We've been enjoying a great working relationship with the Kirigami team, with code flowing both ways. &lt;a href="https://techbase.kde.org/Kirigami"&gt;Check it out!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Design process&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To craft the new user interface, we're collaborating with KDE's &lt;a href="https://vdesign.kde.org/"&gt;Visual Design Group&lt;/a&gt;. Within the KDE community, the VDG itself is a driver of new requirements for chat applications (as their collaboration workflows differ substantially from coding contributors). We've been combining our experience listening to many years of user feedback with their design chops, and this has lead to an array of design mockups we've been working from so far. This is just the beginning, with many, many details left to hammer out together - we're really grateful for the help! :)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Matrix&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Currently we're focused on bringing more of the new UI online, proving it on top of our robust IRC backend. However, Matrix support will come next. While we have no plans to drop support for IRC, we feel the &lt;a href="https://matrix.org/"&gt;Matrix&lt;/a&gt; protocol has emerged as a credible alternative that retains many of IRC's best qualities while better supporting modern needs (and bridging to IRC). We're excited about what it will let us do and want to become your Matrix client of choice next year!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Work done so far&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The screenshot shown above is sort of a functional R&amp;amp;D mockup of where we're headed with the new interface. It runs, it chats - more on how to try it out in a moment - but it's quite incomplete, wonky, and in a state of flux. Here's a few more demonstrations and explorations of what it can do:&lt;/p&gt;
&lt;center&gt;&lt;a href="https://www.youtube.com/watch?v=1cr7hirDzws"&gt;&lt;img src="http://i.imgur.com/CyBwW0O.gif" alt="Repsonsive window layout" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Responsive window layout: Front-and-center vs. small-and-in-a-corner (click for smoother HD/YouTube)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href="https://www.youtube.com/watch?v=b88oqdlNyuUh"&gt;&lt;img src="http://i.imgur.com/U4Lblh7.gif" alt="Toggling settings mode" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Friction-free switching to and from settings mode (click for smoother HD/YouTube&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href="http://i.imgur.com/XCBQpeH.png width="644" height="451"&gt;&lt;img src="http://i.imgur.com/PIzeC85.png" alt="Overlay context sidebar" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Overlay context sidebar: Tab settings and media gallery will go here (click to enlarge)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;See a &lt;a href="http://imgur.com/a/bT7XE"&gt;gallery with an additional screenshot of the settings mode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Trying it out&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The work is being carried out on the &lt;code&gt;wip/qtquick&lt;/code&gt; branch of &lt;a href="https://cgit.kde.org/konversation.git/"&gt;&lt;code&gt;konversation.git&lt;/code&gt;&lt;/a&gt;. It needs Qt 5.9 and the master branch of &lt;a href="https://cgit.kde.org/kirigami.git/"&gt;&lt;code&gt;kirigami.git&lt;/code&gt;&lt;/a&gt; to build and run, respectively. We also have a &lt;a href="http://flatpak.org/"&gt;Flatpak&lt;/a&gt; &lt;a href="https://community.kde.org/Guidelines_and_HOWTOs/Flatpak"&gt;nightly package&lt;/a&gt; soon on the way, pending sorting out some dependency issues.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Be sure to check out&lt;/u&gt; &lt;a href="https://userbase.kde.org/Konversation/Konvi2x"&gt;this wiki page&lt;/a&gt; with build and testing instructions. You'll learn how to retrieve either the sources or the Flatpak, as well as a number of command line arguments that are key when test-driving.&lt;/p&gt;
&lt;p&gt;Sneak preview of great neat-ness: It's possible to toggle between the old and new Konversation UIs at any time using the F10 key. This makes dogfooding at this early stage much more palatable!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Joining the fun&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We're just starting out to use &lt;a href="https://phabricator.kde.org/project/board/12/"&gt;this workboard&lt;/a&gt; on KDE's Phabricator instance to track and coordinate tasks. Subscribe and participate! Phabricator is also the platform of choice to submit code contributions.&lt;/p&gt;
&lt;p&gt;As noted above, Konversation relies on Kirigami and the VDG. Both projects welcome new contributors. Helping them out helps Konversation!&lt;/p&gt;
&lt;p&gt;To chat with us, you can stop by the &lt;a href="irc://chat.freenode.net/konversation"&gt;#konversation&lt;/a&gt; and &lt;a href="irc://chat.freenode.net/kde-vdg"&gt;#kde-vdg&lt;/a&gt; channels on &lt;a href="http://freenode.net/"&gt;freenode&lt;/a&gt; (using IRC or the &lt;a href="https://matrix.org/blog/2015/06/22/the-matrix-org-irc-bridge-now-bridges-all-of-freenode/"&gt;Matrix bridge&lt;/a&gt;). Hop on and introduce yourself!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Side note:&lt;/b&gt; The Kirigami team plans to &lt;a href="https://dot.kde.org/2017/09/02/randa-roundup-part-i"&gt;show up in force at the KDE Randa meeting&lt;/a&gt; this fall to hack on things the Konversation team is very much interested in, including expanding support for keyboard navigation in Kirigami UI. Check out the &lt;a href="https://www.kde.org/fundraisers/randameetings2017/"&gt;Randa fundraising&lt;/a&gt; campaign which e.g. enables KDE to bring more devs along, it's really appreciated!&lt;/p&gt;</description></item><item><title>Join us at Akademy 2017 in Almería!</title><link>https://blogs.kde.org/2017/05/19/join-us-akademy-2017-almer%C3%ADa/</link><pubDate>Fri, 19 May 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/05/19/join-us-akademy-2017-almer%C3%ADa/</guid><description>&lt;p&gt;This July KDE's user and developer community is once again going to come together at &amp;lt;a href=''https://akademy.kde.org/2017&amp;quot;&amp;gt;Akademy&lt;/a&gt;, our largest annual gathering.&lt;/p&gt;
&lt;p&gt;I'm going there this year as well, and you'll even be able to catch me on stage giving a talk on &lt;a href="https://conf.kde.org/en/akademy2017/public/events/359"&gt;&lt;i&gt;Input Methods in Plasma 5&lt;/i&gt;&lt;/a&gt;. Here's the talk abstract to hopefully whet your appetite:&lt;/p&gt;
&lt;hr /&gt;
&lt;blockquote&gt;&lt;i&gt;An overview over the How and Why of Input Methods support (including examples of international writing systems, emoji and word completion) in Plasma on both X11 and Wayland, its current status and challenges, and the work ahead of us.&lt;/i&gt;
&lt;p&gt;Text input is the foundational means of human-computer interaction: We configure or systems, program them, and express ourselves through them by writing. Input Methods help us along by converting hardware events into text - complex conversion being a requirement for many international writing systems, new writing systems such as emoji, and at the heart of assistive text technologies such as word completion and spell-checking.&lt;/p&gt;
&lt;p&gt;This talk will illustrate the application areas for Input Methods by example, presenting short introductions to several international writing systems as well as emoji input. It will explain why solid Input Methods support is vital to KDE's goal of inclusivity and how Input Methods can make the act of writing easier for all of us.&lt;/p&gt;
&lt;p&gt;It will consolidate input from the Input Methods development and user community to provide a detailed overview over the current Input Methods technical architecture and user experience in Plasma, as well as free systems in general. It will dive into existing pain points and present both ongoing work and plans to address them.&lt;/blockquote&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This will actually be the first time I'm giving a presentation at Akademy! It's a topic close to my heart, and I hope I can do a decent job conveying a snaphot of all the great and important work people are doing in this area to your eyes and ears.&lt;/p&gt;
&lt;p&gt;See you there!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://akademy.kde.org/2017"&gt;&lt;img src="https://community.kde.org/images.community/5/51/Akademy2017_banner.png" title="I'm going to Akademy! banner image" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Complex text input in Plasma</title><link>https://blogs.kde.org/2017/04/06/complex-text-input-plasma/</link><pubDate>Thu, 06 Apr 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/04/06/complex-text-input-plasma/</guid><description>&lt;center&gt;&lt;img src="http://i.imgur.com/pBEDkUh.jpg" alt="Binary keyboard" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Surprisingly not enough&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;A brief note: If you're a developer or user of input methods in the free desktop space, or just interested in learning about &amp;quot;How does typing Chinese work anyway?&amp;quot;, you might be interested in a &lt;a href="https://mail.kde.org/pipermail/plasma-devel/2017-April/068978.html"&gt;discussion&lt;/a&gt; we're now having on the plasma-devel mailing list. In my opening mail I've tried to provide a general overview about what input methods are used for, how they work, who they benefit, and what we must do to improve support for them in KDE Plasma.&lt;/p&gt;
&lt;p&gt;Bringing high-quality text input to as many language users as possible, as well as surfacing functionality such as Emoji input and word completion in a better way, is something we increasingly care about. With the situation around complex text input on Wayland and specifically KWin still in a state of flux and needing-to-crystallize, we're looking to form closer ties with developers and users in this space. Feel free to chime in on the list or hang out with us in #plasma on freenode.&lt;/p&gt;</description></item><item><title>Fear not, OMG! Ubuntu! You will bounce again!</title><link>https://blogs.kde.org/2017/03/10/fear-not-omg-ubuntu-you-will-bounce-again/</link><pubDate>Fri, 10 Mar 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/03/10/fear-not-omg-ubuntu-you-will-bounce-again/</guid><description>&lt;p&gt;&lt;b&gt;Serving the quadruped audience&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Intrepid journalist Joey Sneddon over at &lt;a href="http://www.omgubuntu.co.uk/"&gt;OMG! Ubuntu!&lt;/a&gt; recently &lt;a href="http://www.omgubuntu.co.uk/2017/03/kde-bouncing-ball-plasma-widget"&gt;pointed out to us&lt;/a&gt; that Plasma 5 is currently not doing so well when it comes to serving an important user demographic - bored cats!&lt;/p&gt;
&lt;p&gt;Indeed, Plasma 5.0 cost them (and us) the Bouncy Ball widget. And the reasoning mentioned in the article (&lt;i&gt;[...] when trying to develop a professional experience toys and gimicks aren’t a good thing to be shipping by default [...]&lt;/i&gt;) is actually pretty solid I think. Hmm.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Have we lost our bounce forever? No!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;But! These days we have the sexy &lt;a href="https://store.kde.org/"&gt;KDE Store&lt;/a&gt; going on, which is a great place to put toys and gimmicks (along with &lt;a href="https://blogs.kde.org/2017/01/30/simple-menu-launcher-kde-store"&gt;neat menus&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;So it's back! Behold the demo:&lt;/p&gt;
&lt;center&gt;&lt;img src="http://i.imgur.com/saTL7Xk.gif" alt="Bouncy Ball v2.0 on Plasma 5" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Bouncy Ball v2.0 on Plasma 5&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;You can grab it now for your Plasma 5 via &lt;i&gt;Add Widgets...&lt;/i&gt; in your desktop menu and then &lt;i&gt;Get new widgets&lt;/i&gt; in the Widget Explorer, or check out the &lt;a href="https://store.kde.org/p/1172489/"&gt;Bouncy Ball store page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now for some additional fine print, though: I wrote this at ludicrous speed over a Friday night, and it's not well-tested. It behaves a little quirky sometimes (the goal was to match the original closely, but I didn't have a running KDE 4 to refer to). And despite the v2.0 moniker, it's still missing some of the features of the old Ball, including auto-bounce and that satisfying &lt;i&gt;Boing!&lt;/i&gt; sound on collisions. I went with v2.0 in honor of the heritage - I'll polish it and add back the missing features a little later!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update&lt;/b&gt; Bouncy Ball v2.1 is now on the store with sound support, auto-bounce, much better mouse response, a configurable simulation tick and a few bugfixes!&lt;/p&gt;</description></item><item><title>Plasma 5.10: Folder View as default desktop mode</title><link>https://blogs.kde.org/2017/03/01/plasma-510-folder-view-default-desktop-mode/</link><pubDate>Wed, 01 Mar 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/03/01/plasma-510-folder-view-default-desktop-mode/</guid><description>&lt;center&gt;&lt;img src="https://www.eikehein.com/kde/blog/plasma510_fv_default/fv_desktop.png" alt="Plasma with desktop icons" /&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;New defaults: Plasma 5.10 with desktop icons&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;&lt;b&gt;A brief history lesson&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To set the stage, we need to briefly recap some of the problems with the KDE 3.x desktop that (among others) Plasma initially set out to solve.&lt;/p&gt;
&lt;p&gt;In the KDE 3.x desktop, three separate applications performed the duties of today's Plasma shell. &lt;code&gt;kicker&lt;/code&gt; was in charge of putting panels on screen edges, &lt;code&gt;kdesktop&lt;/code&gt; put wallpapers and desktop icons on screens, and &lt;code&gt;SuperKaramba&lt;/code&gt; allowed for (quite shakily) putting widget windows in an extra layer between the desktop and application windows. &lt;code&gt;kdesktop&lt;/code&gt; was essentially non-extensible (i.e. you couldn't make it put anything other than icons on the desktop by installing an add-on of some kind), while &lt;code&gt;kicker&lt;/code&gt; and &lt;code&gt;SuperKaramba&lt;/code&gt; could be extended by new plugins at runtime, but using incompatible plugin formats that couldn't share any code and had to do their work using entirely different sets of APIs.&lt;/p&gt;
&lt;p&gt;With Plasma 4.0, things got a lot better. Plasma widgets need to be written only once, using one set of APIs, and can then be added to both the desktop and to panels - tuning their UI to their respective surroundings. Moreover, things like the desktop and panels themselves are plugins as well, and can be similarly swapped out (allowing us to make very different UIs for different devices within the same framework). And multiple plugin can share the same data sources in the back, also cutting down on overhead.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Enter &lt;i&gt;Folder View&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Folder View&lt;/i&gt; is one of the bundled plugins, and it illustrates many of the above concepts. It does what &lt;code&gt;kdesktop&lt;/code&gt; used to do - visualize folder contents. But not only can you use it to put icons on the desktop, you can also put additional Folder View widgets on top of that desktop, or put Folder View in your panel, all of them showing different folders. In the panel, it will usually take the form of a button that brings up a popup (which can use either &lt;a href="https://blogs.kde.org/2015/06/04/folder-view-panel-popups-are-list-views-again"&gt;list&lt;/a&gt; or icon view modes), but it will expand into the panel itself if the panel is roomy enough, allowing even for a file system sidebar.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;No more icons on the desktop?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Back in Plasma 4.0, we made the decision not to use Folder View as the default desktop layout (&lt;i&gt;default&lt;/i&gt; being the operative term - users could change this in config, returning to a more traditional icon desktop). Instead, we left the desktop surface empty by default, and had Plasma add a Folder View widget on top of it.&lt;/p&gt;
&lt;p&gt;We had reasons for that. We wanted to let users know about Plasma's new abilities: highlight its more modular nature, encourage experimenting with new setups and personalized mix-and-match. We didn't want the desktop to be constrained by the skeuomorphic desktop metaphor that at the time looked like it might well be on the way out (as indicated e.g. by a pervasive shift from spatial to browser-style file management across systems). It was exciting to ponder what things might fill the void left by shedding those icons.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Yes - icons on the desktop&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;More recent history has shown, however: Icons are here to stay. In mobile, there's been an explosion of new platforms that have really doubled-down on the icons-on-the-homescreen thing, making it more popular than ever. Many of those platforms also mix in widgets as we do, meaning nine years after 4.0, both our long-time and our still to-be-recruited users get all of this with ease now. We no longer need to try so hard when it comes to doing the onboarding for Plasma's key concepts.&lt;/p&gt;
&lt;p&gt;The evolved landscape leads us to believe that Folder View is now the better default, and this is what Plasma 5.10 will be shipping (some distributions, of course, have beaten us to this, or have always done so). It will still be possible to have an empty desktop (it's that &amp;quot;Layout&amp;quot; option in the desktop settings), but it's a role-reversal in what's opt-in and what's opt-out. Likewise, extending Plasma with new desktop layouts is of course also still possible.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Better icons on the desktop&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Given Plasma 5's incarnation of Folder View is about to be put front and center, we're putting a lot of effort into making it really shine throughout the 5.10 development cycle. Performance has been improved greatly. We've been thoroughly auditing for interaction issues, sorting through feedback and talking to people about how they use Folder View. This has lead to numerous small improvements, often subtle, that improve the feel of using Folder View - e.g. tuning the sizes of various hitboxes and hitpoints to make rectangle selections and dragging icons around that extra bit less cumbersome. Sizes and spacing have been tweaked as well in response user feedback, resulting in a tighter icon grid than before. And there's even some &lt;a href="https://blogs.kde.org/2017/01/31/plasma-510-spring-loading-folder-view-performance-work"&gt;cool new functionality&lt;/a&gt; as well.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;How you can help&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We're committed to making the default experience of Plasma 5.10 - desktop icons included - rock more than ever. If you want to help, several distributions &lt;a href="https://community.kde.org/Plasma/Live_Images#Shipping_the_latest_code_from_Git"&gt;offer live images&lt;/a&gt; or packages of current development snapshots. Use them to take a long good look at Folder View, and then let us know about your experience!&lt;/p&gt;</description></item><item><title>Plasma 5.10: Spring-loading in Folder View; performance work</title><link>https://blogs.kde.org/2017/01/31/plasma-510-spring-loading-folder-view-performance-work/</link><pubDate>Tue, 31 Jan 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/01/31/plasma-510-spring-loading-folder-view-performance-work/</guid><description>&lt;p&gt;I was sorely remiss not to blog more during the Plasma 5.9 dev cycle. While 5.9 packs a fair amount of nice new features (e.g. here's the &lt;a href="https://www.youtube.com/watch?v=ajIzfU0eJtI"&gt;widget gallery in &lt;i&gt;Application Dashboard&lt;/i&gt;&lt;/a&gt; at some point during development), there was not a peep of them on this blog. Let me do better and start early this time! (With 5.9 out today ...)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Folder View: Spring-loading&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;&lt;a href="https://www.youtube.com/watch?v=QIRGoOzbp88"&gt;&lt;img src="https://www.eikehein.com/kde/blog/fvspringload/spring_loading.gif" alt="Spring-loading in Folder View" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Spring-loading functionality in Plasma 5.10's Folder View (click for &lt;a href="https://www.youtube.com/watch?v=QIRGoOzbp88&gt;YouTube&lt;/a&gt;)&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;&lt;i&gt;Folder View&lt;/i&gt; in Plasma 5.10 will allow you to navigate folders by hovering above them during drag and drop. This is supported in all three modes (desktop layout, desktop widget, panel widget), and pretty damn convenient. It's a well-known feature from Dolphin, of course, and now also supported in Plasma's other major file browsing interface.&lt;/p&gt;
&lt;p&gt;Folder View packs a lot of functionality - at some point I should write a tips &amp;amp; tricks blog on some of the lesser known features and how they can improve your workflow.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Performance work in Folder View ... and elsewhere!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;But that's not all! I've also been busy performance-auditing the Folder View codebase lately, and was able to extract many savings. Expect massively faster performance scrolling big folders in big Folder View widgets, lower latencies when navigating folders, and greatly improved Plasma startup time when using Folder View widgets on the desktop. In the case of big folder + big widget, a 5.10 Folder View will also use quite a bit less memory.&lt;/p&gt;
&lt;p&gt;I've done similar analysis of other applets, e.g. the &lt;i&gt;Task Manager&lt;/i&gt; and the &lt;i&gt;Pager&lt;/i&gt;, and done both smaller improvements or looked into more fundamental Qt-level issues that need addressing to speed up our UIs further.&lt;/p&gt;
&lt;p&gt;Others on the Plasma team have been up to similar work, with many performance improvements - from small to quite large - on their way into our libraries. They improve startup time as well as various latencies when putting bits of UI on the screen.&lt;/p&gt;
&lt;p&gt;While it's still very early in the 5.10 cycle, and it won't be shy on features by the end, performance optimization is already emerging as a major theme for that upcoming release. That's likely a sign of Plasma 5's continuing maturation - we're now starting to get around to thoroughly tuning the things we've built and rely on.&lt;/p&gt;</description></item><item><title>Simple Menu launcher on KDE Store</title><link>https://blogs.kde.org/2017/01/30/simple-menu-launcher-kde-store/</link><pubDate>Mon, 30 Jan 2017 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2017/01/30/simple-menu-launcher-kde-store/</guid><description>&lt;center&gt;&lt;img src="https://www.eikehein.com/kde/blog/simplemenu10/simplemenu-1.0.png" alt="Example screenshot for Simple Menu v1.0" /&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;Simple Menu v1.0&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;Quite a while ago already I wrote a launcher menu widget named &lt;i&gt;Simple Menu&lt;/i&gt;. It's using the same backend I wrote for our bundled launchers, and it's a little bit like &lt;i&gt;Application Dashboard&lt;/i&gt; scaled down into a small floating window, plus nifty horizontal pagination. It's also really simple and fast.&lt;/p&gt;
&lt;p&gt;While some distributions packaged it (e.g. Netrunner Linux), it's never been released properly and released - until now! Starting today, you can find Simple Menu &lt;a href="https://store.kde.org/p/1169537/"&gt;on the KDE Store&lt;/a&gt; and install it via &lt;i&gt;Add Widgets... -&amp;gt; Get new widgets&lt;/i&gt; in your Plasma.&lt;/p&gt;
&lt;p&gt;Please note that Simple Menu requires Plasma v5.9 (to be released tomorrow). Actual v5.9, not the v5.9 Beta - it relies on fixes made after the Beta release.&lt;/p&gt;</description></item><item><title>Ethics in engineering</title><link>https://blogs.kde.org/2016/11/16/ethics-engineering/</link><pubDate>Wed, 16 Nov 2016 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2016/11/16/ethics-engineering/</guid><description>&lt;p&gt;Powerful: &lt;a href="https://medium.freecodecamp.com/the-code-im-still-ashamed-of-e4c021dff55e#.76pl74cy2"&gt;&lt;i&gt;The Code I'm Still Ashamed Of&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Things like this are a big reason why I work in open source.&lt;/p&gt;</description></item><item><title>KDE neon Korean Developer Edition (... and future CJK Edition?)</title><link>https://blogs.kde.org/2016/09/27/kde-neon-korean-developer-edition-and-future-cjk-edition/</link><pubDate>Tue, 27 Sep 2016 00:00:00 +0000</pubDate><author>Eike Hein</author><guid>https://blogs.kde.org/2016/09/27/kde-neon-korean-developer-edition-and-future-cjk-edition/</guid><description>&lt;p&gt;While not being advertised on the &lt;a href="https://neon.kde.org"&gt;KDE neon&lt;/a&gt; main page just yet (and it won't be for a while), we've recently begun doing regular builds of a special &lt;i&gt;Korean Edition&lt;/i&gt; of neon's Developer Edition tracking the stable branch of KDE's code repositories. The Korean Edition pre-selects the Korean language and locale at boot, packs all the Korean translations we have and comes with a Korean input method pre-setup.&lt;/p&gt;
&lt;center&gt;&lt;img src="https://www.eikehein.com/kde/blog/neonkoedition/hangeulmetaltype.jpg" alt="Hangeul metal type from the Joseon era" /&gt;&lt;br /&gt;&lt;small&gt;&lt;i&gt;&lt;a href="https://en.wikipedia.org/wiki/Joseon"&gt;Joseon&lt;/a&gt;-era &lt;a href="https://en.wikipedia.org/wiki/Hangul"&gt;Hangeul&lt;/a&gt; metal type&lt;/i&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
&lt;p&gt;&lt;b&gt;Why a Korean Edition?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Among many other locations around the planet, the local community in Korea is &lt;a href="https://community.kde.org/Promo/Events/Parties/KDE_20_Anniversary#Seoul"&gt;planning&lt;/a&gt; to put on a KDE 20th Anniversary birthday party in Seoul on October 14th. The KDE neon Korean Developer Edition was directly created on request for this event, to be made available to attendees.&lt;/p&gt;
&lt;p&gt;That said - this is actually something we've been wanting to do for a while, and it's not just about Korean.&lt;/p&gt;
&lt;p&gt;None of the bits that make up the new image are new per-se; KDE has supported Korean for a long time, both with foundational &lt;a href="https://techbase.kde.org/Localization/Concepts/Transcript#Korean_Postpositions"&gt;localization engineering&lt;/a&gt; and regular &lt;a href="https://blogs.kde.org/2015/01/17/improving-kdes-support-korean-and-other-cjk-languages"&gt;maintenance activity&lt;/a&gt;. And as of the Plasma 5.6 release, our Input Method Panel is finally bundled with the core desktop code and gets automatically added to the panel on first logon in a locale that typically requires an input method.&lt;/p&gt;
&lt;p&gt;Yet it's pretty hard to keep all of this working well, as it requires tight integration and testing across an entire stack, with some parts of the whole living upstream or downstream of KDE.org. For example: After we attempted to make the Plasma panel smarter by making it auto-add the Input Method Panel depending on locale, we couldn't actually be sure it was working as desired by our users, as it takes time for distros to get around to tuning their dependency profiles and for feedback from their users to loop back up to us. It's a very long cycle, with too many opportunities to lose focus or domain knowledge to turnover along the way.&lt;/p&gt;
&lt;p&gt;This is where KDE neon comes in: As a fully-integrated product, we can now prove out and demo the intended distro experience there. We can make sure thing stay in working order, even before additional work hits our other distro partners.&lt;/p&gt;
&lt;p&gt;Right now, we're kicking things off with Korean Edition, but based on time, interest and testers (please get in touch!), we'd like to build it out into a full CJK Edition, with translations and input support for our Chinese and Japanese users pre-installed as well (as another precursor to this, the decision to switch to Noto Sans CJK as Plasma's default typeface last year was very much made with the global audience in mind as well).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ok, but where do I get it?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://files.kde.org/neon/images/neon-ko-devedition-gitstable/"&gt;Here!&lt;/a&gt; Do keep in mind it's alpha. ☺&lt;/p&gt;</description></item></channel></rss>