Version 1.2


Friday 09:00

UI/UX Design in QML for Desktop

Training by Nuno Pinheiro - Training Room 1

This training is kindly provided by KDAB. It contains high-quality content that we can unfortunately only make available to our existing contributors. If you have a KDE developer account you can find details for how to join the trainings at <a hre...

An online workshop with practical exercises: 1. Do's, Don'ts, & Integration 2. Outside of the Box UI About the Trainer, Nuno Pinheiro: Senior UX/UI designer at KDAB, Nuno gave the first QML training for designers and actively uses the QML language for fast UX/UI prototyping and UI solutions deployment. His works include general illustrations, UI design, corporate design, interactive mock-ups, animation examples and much more. Known for his contribution to the award winning Oxygen Project where he is the current coordinator, his computer art is used on KDE computer platforms worldwide. Nuno has an MSc in Civil Engineering. Please note, this training session will not be recorded.

Debugging & Profiling on Linux

Training by Milian Wolff - Training Room 2

This training is kindly provided by KDAB and Mbition. It contains high-quality content that we can unfortunately only make available to our existing contributors. If you have a KDE developer account you can find details for how to join the trainin...

Prerequisite: Knowledge and experience programming with Qt and C++. Basic understanding of multithreaded programming. We will cover what I consider the most essential debugging and profiling tools on Linux. I'll show you how to use the tools, how to interpret the results. We will talk about problems you may run into during setup. And we will discuss optimizations for certain types of code patterns. Topics include: • sanitizers ASAN/UBSAN/TSAN • linux perf, hotspot • heaptrack About the Trainer, Milian Wolff: Senior Software Engineer at KDAB, Milian enjoys solving hard performance problems and teaching developers about debugging and profiling tools. He has a long history of creating tools for C++ developers and is the main author of Massif-Visualizer, heaptrack, hotspot and ctf2ctf tools now used widely to improve C++ applications performance. Milian is the co-maintainer of the KDevelop IDE and in 2015 won their Akademy Award for his ongoing work there. He has a Masters Degree in Physics which explains his scientific approach to performance measurement. Please note, this training will not be recorded.

Speed Up Your Development Workflows with GitLab - Best Practice Workshop

Training by Michael Friedrich - Training Room 3

Take the first steps in GitLab with project management (issues, boards, labels, templates, etc.) and combine it with your development workflows. Start the first merge request to solve an issue and get ideas on branching, code reviews, approval pro...

About the Trainer: Michael Friedrich Bio: Michael is a Developer Evangelist with 15+ years experience in ops and infrastructure management. He also is passionate about open source development (C++, C#, Go) and enjoys talking about CI/CD, monitoring/observability and security at events and meetups. Currently Michael is working at GitLab. When he is not engaging on social media, Michael enjoys building LEGO models.

Friday 16:00

Introduction to QML

Training by Albert Astals Cid - Training Room 1

This training is kindly provided by KDAB. It contains high-quality content that we can unfortunately only make available to our existing contributors. If you have a KDE developer account you can find details for how to join the trainings at <a hre...

This training is an introduction to Qt Quick. On the one hand, it will teach you how to compose fluid user interfaces using the QML language. On the other hand, it will teach you how you hook the QML side up to your business logic in C++. Course contents: * How to do [basic] QML interfaces * Connecting a QML UX with C++ business logic * Complex list views including data provided from C++ modelsAbout the Trainer, Albert Astals Cid: Senior Software Engineer at KDAB, Albert has been using Qt since 2002. Since then, he has applied Qt in a broad range of industries ranging from transit simulation, medical devices to games and many more. His main expertise is in C++ and Qt/QML. In 2005, Albert won KDE’s Akademy Award for his work on improving PDF rendering on Free Software platforms. Albert holds an MSc in Computer Engineering. Please note, this training will not be recorded.

Multithreading in Qt

Training by David Faure - Training Room 2

This training is kindly provided by KDAB. It contains high-quality content that we can unfortunately only make available to our existing contributors. If you have a KDE developer account you can find details for how to join the trainings at <a hre...

Prerequisite: Knowledge and experience programming with Qt and C++, as well as a basic understanding of multithreaded programming (threads, mutexes). // Multithreaded programming is essential for developers to create fast and responsive applications on computers, phones, and embedded devices all with an increasing number of cores. Qt offers several mechanisms for multithreading; however, it can be difficult to know which to use and how to steer clear of common pitfalls. This course offers guidance how to write safe and efficient multithreaded code with Qt. Topics include: * A precise definition of data races: what is allowed and what isn't. Example: do you need to protect a shared bool with a mutex? * Multithreading with Qt (QThread, QThreadPool, QtConcurrent::run, etc) * Special concerns for Qt applications (cross-thread signals/slots, QObject thread affinity, the GUI thread) * Comparison between Qt and standard C++ multithreading programming. About the Trainer, David Faure: Senior software engineer at KDAB, David has used Qt since its beginning and has made numerous contributions to Qt, including new classes for QtCore in Qt 5. David is well known in the KDE pr...

Implicit Bias

Training by Carlee Hawkins - Training Room 3

During the Project Implicit Education Session, participants will be asked to consider their own biases while exploring how researchers understand biases and learning actionable steps to mitigate the influence of biases on thoughts and behaviors. T...

About the Trainer, Carlee Hawkins: Carlee Beth Hawkins, Ph.D., is an educator and researcher of implicit bias and social change. In her research, Dr. Hawkins investigates motivations and strategies for overcoming bias in social and political judgement and behavior. She has published in Psychological Science, Journal of Basic and Applied Social Psychology, and Personality and Social Psychology Bulletin. Her work has also been featured in media outlets such as National Public Radio, The Huffington Post, and Psychology Today. In addition to presenting workshops, and training sessions on implicit bias to diverse groups including HR professionals, senior executives, and physicians, Dr. Hawkins led a multi-team project to create an e-course titled "Understanding Implicit Bias" to educate individuals about what implicit bias is, how it influences decision-making and behavior, and what we can do about it. As an educator, Dr. Hawkins believes that we all benefit from becoming more aware of our biases. Dr. Hawkins is currently an Assistant Professor of Psychology at Southern Illinois University, Edwardsville. She earned a Ph.D. from the University of Virginia in 2013 and completed a po...

Saturday 08:50

Saturday 09:00

Adventures in Open Source Development

Room 1

What does the everyday life of an independent Open Source Maintainer look like? What is the process like to take an idea from nothing and build, develop, and maintain it over years of time? What are the bright sides and the dark sides of working o...

Oftentimes when imagining how Open Source Software is developed, the following sort of picture is painted: teams of dozens of developers coordinating happily, handling constant software maintenance with a smile on their faces and often provided with company funding. This is an ideal picture that sadly and all too often doesn't reflect reality, especially for small to medium sized or highly specialized projects. The question remains: what is it like to create, develop, and maintain an Open Source project independently or with a small-sized team and an unsure funding situation? Over seven years ago Gina Häußge created her own Open Source Project "OctoPrint" and has been running and maintaining it ever since; full time since 2014 and funded entirely by donations and sponsors since 2016. In this talk Gina will give some insights into her every day job as a full time independent OSS developer. She will be speaking about the good, the bad, and the ugly sides of her daily work while providing hints to other OSS developers on developing and maintaining a long term project and how to handle challenges that may be commonly encountered.

Saturday 09:30

KDE All About the Apps

Room 1

How is KDE doing at creating a culture of promoting it's applications and getting them to users? We review how we get our apps to users, progress in the last year and how you can help get more of them to more users.

Saturday 10:00

Consistency Status

An update on the status of the Consistency goal. - Room 1

Last Akademy, Consistency was selected as one of the main three goals of KDE. This presentation will explain how the goal is going, and what has been achieved during this time.

Last Akademy, Consistency was selected as one of the main three goals of KDE. This presentation will explain how the goal is going, and what has been achieved during this time.

Saturday 10:30

Wayland Goal Status Update

Room 1

Wayland is the replacement for our venerable X window system. The community through the Wayland Goal has been working making KDE software run better with Wayland.

The Wayland goal is a big task requiring to update a multiple of components and making us re-architecture the whole display stack. Since Akademy 2019 the community has made significant progress. What we have accomplished so far. What we learned along the way. What to expect next. How you can help us push Wayland, KDE and Free software further.

Saturday 11:00

KDE Goals

A Review of the Past Year - Room 1

We will talk with the goals keepers about how the first year of their goals went and what they learned along the way.

Saturday 11:30

SPDX for Better License Statements

Room 1

SPDX identifiers are an important step in enable automatic tooling for checking license statements. In this talk, I want to motivate why to use them and show how simple it is to apply them. Specifically, I will give a short overview what already h...

Saturday 11:40

Editing Markdown with QTextDocument

Room 1

I added markdown support in Qt 5.14 as a first-class format as an alternative to the limited subset of HTML that QTextDocument has traditionally used. In this session I will demo WYSIWYG editors written with widgets and with Qt Quick.

Since I started using computers in the 1980's, there's always been a frustrating gap between wysiwyg word processors and text editors: you could have some sort of formatting, or you could save a plain text file that's easy to read in myriad other ways; but usually not both. I added markdown support to Qt to bridge that gap (without using HTML conversion at any stage). Now I can use a wysiwyg editor and save markdown-formatted text that looks as good or better than what I could write by hand. It's the universal format for note-taking, journaling, todo lists, writing emails, blogging and other types of simple publishing. Qt supports most of the advanced markdown features too: notably tables and checklists. I even have an editor that uses a KIO slave to directly publish markdown on IPFS for easy sharing.

Saturday 11:50

How to Create a Good Promotional Website for your Project

Room 1

Having a good website for your project should be a fundamental part of your application promotion. This is not an easy task, and in this task I will explain how to make it easier for you to get it right.

I will present the KDE Jekyll theme, the motivation behind this project, and briefly explain how it can be used to create a KDE website. The second part will show some bad examples of websites and how they can be improved to make your project attractive to a potential new user.

Saturday 16:00

Saturday 16:30

Saturday 17:00

The KDE Free Qt Foundation

Room 2

The KDE Free Qt Foundation was established in 1998 to keep the Qt toolkit free for KDE and all other free software projects building graphical user interfaces on Linux. It was a unique and creative solution to address concerns that licenses alone ...

The KDE Free Qt Foundation was established to give additional guarantees to the free software community which Qt's license didn't give. It resulted in an agreement between Trolltech, the owner of Qt, and KDE e.V., the non-profit organization representing the KDE community, which made sure that Qt would always be free software even if its owning company would change its course and stop releasing it under a free license. The agreement was tested several times. Trolltech was bought by Nokia and Qt changed its owner several times afterwards, today being owned again by a company exclusively dedicated to Qt, The Qt Company. The agreement through the KDE Free Qt Foundation brought KDE to the negotiation table whenever license changes were decided. Balancing freedom, community, business, and corporate planning in a way beneficial to all involved parties was a challenge not easily addressed. The question of open source business models and how companies relate to communities is still a source for much debate and different solutions are in place and explored in the industry. How did the KDE Free Qt Foundation succeed? How does it hold in comparison to what other projects chose? This ...

Input Handling Update

What's Coming Up in Qt 6 - Room 1

We have several goals for input events in Qt 6; the main one of course is to fix a lot of open Qt Quick bugs that have been intractable because of bad architecture in Qt 5. I will talk about the API changes in QInputEvent and its subclasses, wh...

More details about the goals in Qt 6: - every QInputEvent should carry a pointer to an object representing the device it came from, with more details than we had before, to enable the recipients to handle it intelligently - Qt Quick items (and especially Input Handlers) should mostly keep working as they already do - Widgets will keep working as they already do - QPointerEvent will be introduced, with common API for mouse, touch and tablet events; that will hopefully enable more unified delivery code rather than duplicated code for different event types, and also less reliance on mouse emulation - Qt Quick can go back to delivering the original QPointerEvents rather than wrapping them - we can perhaps finally make Flickable touch-aware: because the event doesn't look that different from a mouse event anymore, we shouldn't have to duplicate much code to get Flickable to do all its filtering, delaying and replaying with touch events just as with mouse events - Wacom tablets and other pressure-sensitive stylus devices will be much better supported in Qt Quick - we hope to be in a position that we can begin to support multi-seat (multi-user) UIs

Saturday 17:30

KDE's Products

Visualising our relationship to our users - Room 2

In KDE we create a myriad of things for different kind of people. We create frameworks, we create applications, we create environments. And we create it for different kind of people be it other people like us, high school students, 3rd party devel...

Native Desktop Styling Support for QtQuick Controls 2

Ongoing work at TQtC to support writing desktop applications using QtQuick Controls 2 - Room 1

At The Qt Company we have an ongoing project in the UI team to improve the support for writing desktop applications using QtQuick Controls 2. The long term goal is to bring Controls up to the same level as, or better than, Qt Widgets in terms of a...

QtQuick Controls 2 was from the start primarily written for applications in the embedded and mobile space. While it’s fully possible to write applications for the desktop as well using Controls 2, it lacks some important features that for some will make Qt Widgets the only viable alternative when targeting desktop. This includes, among other things, desktop centric controls, native menus, pop-ups and dialogs, and native styling. At The Qt Company we have laid out a five year long plan to close the gap between Controls and Widgets. And we have started this year, as an initial step, to port QStyle to Controls, and remove all dependencies to Widgets in the new port. This means that we are not touching QStyle in Widgets, but have chosen to leave it as-is, to have the freedom to change and optimize the new port, and at the same time, avoid regressions and API breakages in Widgets. We use the new QStyle port as a starting point to implement native looking desktop styles in Controls that follow the same styling API and rules that Controls already have. We are currently working on styles for macOS, Windows and Fusion, and all three will be available for Qt-6.0. In this talk I wil...

Saturday 18:00

Linux in Cars - So What?

How can we address automotive use-cases with open source software. - Room 2

In this talk, Johan will talk about why cars - albeit with Linux - still are using so much custom software, and what use-cases need to be addressed to improve the situation.

Johan has pushed for the adoption of open source in automotive for more than a decade. With a background from GENIVI and AGL, having been a part of the team behind the Qt Automotive Suite, and having worked as a supplier for numerous OEMs and hardware provides across Japan, USA, and Europe. He now continues this mission an architect at Mbition. Being a passionate user of KDE, and a believer in open source and open projects, Johan will talk about why he believes we got stuck after having put the Linux kernel into the car. How can we make progress, and what use-cases do we need to solve.

QML Rapid Prototyping

Developing tools to improve QML prototypes and development - Room 1

QML prototyping is something that all developers do, this talk will demonstrate how can this be achieved more efficiently and friendly. Will be presented two projects, QHot (a hot reload for nested QML files) and QML Online (an online QML editor c...

It's a common practice to do QML prototyping, snippets to brainstorm ideas or to help newcomers that are still learning. The talk will highlight how important is for developers to create tools to help with the development time besides the development itself, besides that, will also be explain how important is the creation of such tools to be accessible, easy to use and friendly!

Saturday 18:30

Flatpak, Flathub and KDE: A Quick Summary

Room 1

A quick summary of what is flatpak, what is flathub and how KDE interacts with both of them.

Saturday 18:40

Improving KDE Server Infrastructure

Making our servers more manageable - Room 1

The KDE Sysadmin Team has started doing some work behind the scenes to reduce "technical debt" in the way we manage the servers. Some manual tasks are becoming scripts, we have better documentation, and more things can be tested locally before put...

Saturday 18:50

How to Win an Argument with a Maintainer

Room 1

Over the years I have partaken in and witnessed hundreds of discussions on bugzilla and phabricator turn into arguments that yield angry stalemates. In this talk I want to present methods I've seen which work to happy mediums and what will esc...

Saturday 19:00


Moving Dentistry to Open Source using the power of Linux, Qt, and KDE - Room 1

This presentation will go over my passion project: Clear.Dental. The presentation will go over the state of Dental software, the problem with the current software available, and how Clear.Dental will try to solve it. The presentation will go ov...

The presentation will go over the scope, basic design, history, current status and the future of Clear.Dental. This presentation will also go over some of the major hurdles in using Linux and FLOSS in a clinical environment and recommendations to other people trying to move EHR to a more FLOSS friendly environment. I will probably also end the presentation with recommendation to the KDE team for features that would be very useful in a dental clinic.

Maui Project Update

Updates, plans and discussions - Room 2

Maui Project has been a KDE project since 2018 and recently we made our first public stable release. We want to share the news, the changes, and discuss the project plans and roadmap.

The Maui Project is a group of apps, services, libraries, and a UI (User Interface) framework that works together with KDE libraries to create a convergent multiplatform experience that follows the Maui HIG (Human Interface Guidelines) for cohesive user experiences. Some of the topics to cover on this talk are: 1.1.0 stable release The current KDE Review process The current state of the project Plans and roadmap Open discussion about the Maui Project in the KDE community and the consistency goal

Saturday 19:30

Integrating Hollywood Open Source with KDE Applications

Room 2

My GSoC 2020 project, entitled “Dynamic Fill Layers in Krita using SeExpr”, enables artists to create for the first time procedurally generated content directly within the Krita painting suite. This work is powered by Disney Animation’s open sourc...

Layers are one of the core concepts of digital painting. They allow artists to control different parts of their artwork at once. A key feature of them is their ability to be resized, composited, renamed, grouped or deleted independently of the rest of the document. Patterns and textures are also essential components of an artist’s toolbox, allowing them to represent the intricacies of a physical material. They come in two forms: bitmap textures, which are images contained in e.g. PNG or OpenEXR files, or procedural textures, which are generated on the fly using their mathematical representation. KDE’s Krita painting suite supports patterns and textures through two types of layers, File and Fill Layers. However, neither of them let artists take advantage of procedurally generated content. My GSoC 2020 project, entitled “Dynamic Fill Layers in Krita using SeExpr”, allows artists to create dynamic content through a new, scriptable Fill Layer. To this effect, I integrated Disney Animation’s SeExpr expression language into Krita. In this presentation, I will guide the audience through the pitfalls and challenges of integrating this library with the Krita codebase. Developers...

Linux Graphics 101

Converting bits to triangles - Room 1

The ever growing popularity of ARM devices has meant a new market for KDE products. However, unlike conventional platforms where we enjoy the stability of a well tested graphics stack, platforms based on the ARM architecture tend to be quirkier. ...

At the end of the talk attendees should have a better understanding of what goes on behind the scenes in the graphics world and a high level understanding of the Mesa/DRM architecture. Furthermore, this should help KDE developers gain a better understanding of mesa and allow for faster debugging of graphics issues on ARM devices.

Sunday 09:00

Showcasing Plasma Bigscreen

Room 2

Television sets have evolved from dumb boxes to interactive interfaces and intelligent screens driven by content from the cloud with support for voice assistance but all behind closed platforms, Plasma Bigscreen project is the open platform altern...

Television sets have been around for decades, from being small TV sets receiving grainy content in its early years to ultra-high-definition large screen displays beaming content from all over the world, TVs have changed a lot in the past hundred years. With the evolution of TVs through the past decade, the experience of static viewing of cable-driven content has evolved into an interactive content-driven experience powered by the world wide web, powerful embedded SOCs and the growing need of wanting to use that large screen for simply more activities has laid the platform for what we call today as "Intelligent TVs". While the world is adapting to these "Intelligent TVs", The platforms that power the experience are still produced within walled proprietary gardens with a constant threat to User Privacy and User personal data embezzlement that creates the need for having more open platforms. The Plasma Bigscreen project is aimed towards supporting this open platform vision providing interfaces and features similar to today's closed Smart TV Boxes all powered by Plasma, Kirigami, and KDE Frameworks with a touch of Mycroft's open-source voice assistance platform bundled together t...

C++17 and 20 Goodies

Room 1

C++ is evolving rapidly in the past few years and it is hard to keep track of all the new features we are getting. In this talk, we are going to cover the new features that C++17 and 20 bring and how they can be combined with each other.

Sunday 09:30

Free Software, Press Freedom & KDE

Story of Janayugom - Room 2

Story of Janayugom, the first newspaper in the world to use 100% free software for pre-press processes and how KDE played an important role in it.

Janayugom is a local daily newspaper in Kerala with 100k readers. In a time where press freedom is under threat, local newspapers are struggling to survive. The increasing subscription cost of various proprietary software adds even more burden. This presentation is about how free software came to their rescue and how KDE & Plasma Desktop helped in the migration. It also includes the story of Scribus and Janayugom Edit - a Qt based ASCII to Unicode converter and text editor.

Rust from a KDE Perspective

What could this programming offer to the KDE developer community? - Room 1

Since C++ was released in the 80s rare are the other programming languages to compete on its segment of bare-metal, yet High-level, yet practical. Among those Rust offers a unique option.

What makes Rust a unique programming languages. Why could it be a good match for the KDE developer community. Why it won't happen anytime soon that we can hack in Rust in KDE projects.

Sunday 10:00

Celebrating 20 Years of GCompris

Room 2

This year is the 20th birthday of GCompris, so we have decided to celebrate it in several ways !

Some news about what happened in the project this year, and about what is expected soon.

Test It!

Unit testing for lazy developers - Room 1

In this talk, I want to discuss why automated tests are important for your project and how they will help you to develop faster and with less bugs. On the one hand, I will talk about strategies and how to design (unit and integration) tests. For ...

Sunday 10:30

A Year in KDE from Outside

KDE News in 2019-20 - Room 2

Most of KDE people know KDE news from KDE people. But what are the people outside of the community saying? What are you talking about? Let's explore what non-KDE news sites, blogs and podcasts were saying about KDE.

In this talk we'll cover news coverage of KDE in 2019-20 by sites not linked to KDE. We'll show if KWin on Wayland gets more coverage than KDE goals, what is the hottest subject right now, and much more. With some surprises this analysis prepares...

KIO: A Story of Young and Old Jobs

How jobs get the job done - Room 1

Learn more about the KJob design, the KIO jobs like KIO::copy, the 3 new jobs to replace KRun, and choosing the right delegate.

This talk will give an overview of the job mechanism as it used in KIO (starting with the base class KJob). First the "old" jobs will be presented, those that allow for instance to copy files, both locally and over the network. You will learn why they start automatically, and why copyjob.cpp has 2320 lines of code. Then you will discover the jobs that we added in the last two months, to replace KRun: CommandLauncherJob, ApplicationLauncherJob and OpenUrlJob. Finally, you will hear about how a concept called delegates is used to solve the inverse dependency problem, like a job in KIOGui showing up an "open with" dialog in widget-based applications. This talk is primarily intended for application developers, but it might also be very useful to potential contributors to KIO.

Sunday 11:00

KDE Wags Your Tail

The Tail Company's experiences with KDE - Room 2

Find out how The Tail Company worked with KDE technologies to make their tails wag and ears wiggle, how they realised they already had a Free Software mindset, and see under the skin of their hardware.

In the autumn of 2018, The Tail Company decided that a simple remote control was not enough for what they wanted to do with their animatronic tails, and they launched a crowd funding campaign to build a bluetooth based app controlled one. This presentation is the tale of how this turned into an experiment of working directly with the free software community, with all of the control software based on free software and KDE's Kirigami framework. Since then, the increasingly unfortunately named Tail Company has launched their animatronic ears, EarGear, controlled by the same software. You will also be able to see underneath the skin of both, to see an overview of how the app works across different platforms, and how the tail and ear hardware is put together.

Static Code Analysis with Gitlab CI

Room 1

The migration to GitLab earlier this year has opened up a lot of new possibilities to all KDE projects. One of them is introducing custom jobs on GitLab CI. In this talk I want to show the benefits of using static analysis tools and linters to aut...

Sunday 11:30

Virtual Sprints

New way of getting together - Room 1

After COVID-19, it is becoming increasingly hard to do a in-person sprint. But is that a bad thing? What are alternatives? Let's find out.

I have organized two virtual sprints so far, - Plasma Mobile mini sprint - Plasma Virtual sprint Both sprints were using the BigBlueButton instance. This talk gives insights on how to successfully organize virtual sprint, how to deal with the time-zones, and overall organization of Virtual Sprint. I will also share the benefits of the Virtual Sprint for attendees.

Sunday 11:40

FLA, FLA, FLA, FLA, FLA'ing Alive

Long-term licensing maintainence - Room 1

The FLA -- Fiduciary License Agreement -- is a tool that the KDE community has to manage licensing in the long-term. The "long-term" here means "beyond the participation of a particular person in the KDE community" and it's a useful tool in protec...

Copyright lasts a long time. Rules changes. Legal frameworks change. So copyright -- and by extension, the Free Software licenses that work with copyright to ensure the four Freedomes -- can last too long: so long that circumstances change out from under it. This talk will examine the FLA used by the KDE community and describe how it is used to mitigate change in licenses and copyright, and why you should probably sign one.

Sunday 11:50

Super Secret Plasma Features

Things you didn't know Plasma could do - Room 1

Did you know you could mouse wheel the volume icon in your panel to change the volume? No? Then this is for you! In this 10 minute talk I'll be showing you some of Plasma's non-discoverable geeky features that, once you know them, will make you...

Sunday 16:00

Sunday 16:40

Konquering the Droids

Porting KDE apps to Android - Room 2

In order to stay relevant KDE needs to expand from its traditional desktop space into the mobile world. While a fully free Plasma-based mobile experience is the dream, bringing KDE software to Android is an important stepping stone. It opens KDE s...

Last year Volker gave an excellent overview over the status of Android support in KDE Frameworks. Goal of my talk will be to give hands-on knowledge about the necessary steps and challenges when porting software to Android as well as to motivate people in doing so. Furthermore I want to raise the issue of defining a Google Play and F-Droid release process, which is to be discussed in a follow-up BoF session. I’ve been a regular contributor to KDE for the last three years, working on many projects including KDE Connect, Plasma and Plasma Mobile. I have ported almost a dozen KDE apps to Android and co-maintain the binary factory build infrastructure for it.

Creating a Convergent Application Following the KDE Human Interface Guidelines

Room 1

How to create an application for mobile that can also run on a desktop environment without maintaining two separate code bases? What UI/UX guidelines should the application follow? Is there any framework that implements these guidelines? Calin...

The audience will be introduced to the primary components of Kirigami and learn how an application can be based on them. After the talk, attendants may be inspired to create their own Kirigami applications.

Sunday 17:10

MyGNUHealth: GNU Health Goes Mobile with KDE & Kirigami

GNU Health Personal Health Record built using the Kirigami framework - Room 2

GNU Health (GH) the Libre Health and Hospital Information System. GH is a social project that combines the socioeconomic determinants of health with state-of-the-art technology in bioinformatics, LIMS and clinical genetics. The GNU Health ecosys...

In this talk we will talk about the benefits of Plasma mobile and the Kirigami framework provides to myGNUHealth. After a short introduction of the GNU Health philosophy and ecosystem, we will focus on the need of the Personal Health Record (myGNUHealth) that can be used both in mobile devices and desktop, placing the person / patient in the driver's seat, actively involved in the system of health. We introduce the technology used, the QT and Kirigami framework, and the interaction with the GNU Health Federation. From the community point of view, we'll talk about how the KDE friends are helping us in the development process.

Getting into KWin and Wayland

How to get into developing our wayland experience and what to get from it - Room 1

This year I have ended up working on improving our Wayland experience on many fronts. I'll try to explain what it's there to achieve and will give a few pointers to get acquainted with the project.

Sunday 17:40

Introducing Fedora KDE

Where we started, where we are, and where we're going! - Room 1

This presentation introduces the Fedora KDE spin and the Fedora KDE SIG. In addition to talking about what Fedora KDE is today, we'll talk about how it started, what makes it special within Fedora, and what the aims of Fedora KDE are. In this sess...

Change Management

Accepting changes and newcomers in KDE - Room 2

The world hates change, yet it is the only thing that has brought progress ~ Charles Kettering Understanding and accepting change is not easy. There have been times where KDE has moved to a new platform and switch was not easy. We need to underst...

We will be able to: • understand the critical role of change management • plan, control, and adjust to change • create a stronger working relationship with newcomers • create a culture of accepting changes across the KDE community • understand the success factors of change

Sunday 18:10

Open Source Compliance

Room 2

The proposed talk (or panel) will focus on Open Source compliance issues

"While Free and Open Source Software development has tremendously benefitted from (open) technical standards, the rise of OSS usage and importance along with compliance requirements for different OSS license obligations still creates too many friction points and high costs in many organizations. This is especially true for today’s software supply chain, be in the commercial text or in the context of OSS projects. Almost all companies active in the software industry receive software packages from various different sources to be implemented in their products before sold or licensed. A very similar situation can be found when developing software in the context of OSS projects or foundations. Many different software packages are licensed under different OSS licenses leaving developers and project managers with the question of responsibility when distributing and selling OSS products. In today's jungle of OSS license compliance, it is more important than ever to know the very basics of copyright and licensing structures as well as some of the relevant tips and tricks for the most common OSS licenses. The proposed talk will look into copyright and licensing details and will give...

Using Wikidata and OpenStreetMap

Making our applications smarter - Room 1

Wikidata and OpenStreetMap (OSM) are probably the largest Open Data pools in the world, and they contain an incredible wealth of information we can freely use to build digital assistance features for our applications and platforms.

The rise of digital assistance features has shown that it's no longer enough to just focus on freely available source code to build such systems, the data needed for those is equally important. Fortunately, we do have two gigantic general-purpose data sets that model "the world", Wikidata and OpenStreetMap (OSM). Wikidata contains more than eight billion statements about almost 100 million items, and allows to model basically any kind of fact that isn't entirely transient. Containing also localized names and accompanied by more than 60 million media assets in Wikimedia Commons, Wikidata isn't limited to purely machine readable data, but also provides useful elements for presenting results to humans. OSM contains about 60GB worth of spatial data, ranging from country borders all the way down to individual streetlamps, and everything in between. A large variety of semantic annotations and cross-links to other databases such as Wikidata enable use-cases way beyond merely displaying a map. In this talk we will look at how those two data sets are structured, how they can be accessed, how to comply with their licenses, and how we can make use of them for our applications.

Sunday 18:40

Kdenlive: A Journey of Being a Leading Open Source Video Editor

Room 2

Media production is today more important than ever. As everybody can produce and distribute, the access to Libre and open tools to create quality content it’s an urgency which has to be filled asap in order to really democratize communication. In...

Next Generation Application Management

Using cgroups to make everything /amazing/ - Room 1

In this talk we will present a new cross-desktop specification to provide semantic grouping of processes together to be an "application". We will explain the many problems that we currently face, and how we can embrace an existing kernel technolog...

Plasma's sole job is to connect users to their applications. There used to be a time where one application was a process. ksysguard would show one easy to manage entry. Now Discord in a flatpak is 13(!) procesess. Have two electron instances and ksysguard is useless. We have backgrounds services that linger with indecipherable names. It doesn't work anymore on the desktop let alone the phone. We need metadata. This is a solved problem. CGroups are used commonly for your system services. Any sysadmin won't deal with an Apache proces, but the whole webserver as one cgroup. By embracing this not only do we have metadata providing a single-truth of the launched context, but also expose all of the kernel features reserved for cgroups. Separate network namespaces, hard CPU quotas, OOM protection that works, we can expose this either as transient modifiers or as sysadmin overrides. We've been doing a lot of subtle ground work over the past year to a lot of tiny edge cases where this metadata wasn't transferred correctly both within KDE and throughout the ecosystem. We will discuss what we've landed so far and what the future holds.

Sunday 19:10

API Design and QML

Room 1

A presentation over QML API design sharing best practices to follow and things to avoid when creating QML APIs as well as a more general API-first design process.

Covers idioms to rely on when designing and implementing QML APIs, names some antipatterns to avoid when creating them, and shares examples to help demonstrate idioms of API design in practice.

System Settings: Behind the Scene

Room 2

System settings are a core part of Plasma highly customizable eco system. During last year almost all module were ported to KConfigXT. We will see which benefits all modules (based on QWidget or QtQuick) got for existing feature like fixing reset...

After this talk you will know how system settings work behind the scene, and how to write new one and getting all benefits from KConfigXt

Sunday 19:40

Open Source Resilience and Growth: Creating Communities that Thrive

Room 1

Even without the added pressure of this pandemic, established open source projects like KDE and GNOME must find ways to be resilient and continue to grow. Come learn about how to take this challenge on and help make KDE stronger with each year to ...

During this keynote, we'll talk about some of the initiatives that KDE is involved in already that are helping make it more resilient, and identify some areas of opportunity. We'll also explore topics around building more diverse and inclusive communities, like collaborative communication, and ideas for outreach, in order to facilitate future growth.

Friday 16:00

KDE Community Student Showcase

Part 1 - Room 1

Every year a number of students join us through our student programs Google Summer of Code and Season of KDE. In this session some of them will show you what they've been working on and talk about their experience working with the KDE community.

Speakers and Presentation Topics Include: Deepak Kumar - Multiple Datasets for GCompris Kartik Ramesh - Face Recognition Workflow Improvements in DigiKam Sashmita Raghav - Season of KDE’ 20: Improve Timeline Clips Color Palette & Google Summer of Code’ 20: Basic Subtitling Support in Kdenlive Sharaf Zaman - SVG Mesh Gradients in Krita

Friday 16:30

Lost Knowledge in KDE

How the hell did we make pyramids again? - Room 1

The KDE community will soon turn 24, thousands of people have participated in its projects. Some a still around, others moved on. During that time span, KDE grew software, partnerships, organizations, processes, documents, hugs... In other word a ...

In this talk, we will explore that haunting question of lost knowledge. Our culture isn't centuries old but still it's likely we forgot a few things. I collected feedback from various long time contributors to get an idea of what we stopped doing for no good identified reason or for things which need explaining over and over. The topics we will talk about will be mostly technical of course... This is what you get by interviewing technical contributors. That being said, we will also touch upon a couple of legal, organizational and cultural issues. Finally, we will muse a bit with ideas to avoid loosing knowledge and practices as much as possible. This is fine to change, it is better to change consciously than due to some form of amnesia.

Friday 17:00

KDE Community Student Showcase

Part 2 - Room 1

Every year a number of students join us through our student programs Google Summer of Code and Season of KDE. In this session some of them will show you what they've been working on and talk about their experience working with the KDE community.

Speakers and Presentation Topics Include: Anuj Bansal - Improvements to KDE’s Web Infrastructure Paritosh Sharma - Qt3D backend for KStars Shashwat Jolly - EteSync sync backend for Akonadi Shivam Balikondwar - Add file backends for ROCS IDE

Friday 17:30

Visions of the Future

A boldly controversial step-by-step process towards world domination - Room 1

Do you want to see KDE Plasma shipped by default on every PC, phone, and tablet? I do. Are you willing to upset the apple cart to get there? I am. If this sounds exciting or scary, you should find out what my crazy idea is!

Friday 18:00

KDE Community Student Showcase

Part 3 - Room 1

Every year a number of students join us through our student programs Google Summer of Code and Season of KDE. In this session some of them will show you what they've been working on and talk about their experience working with the KDE community.

Speakers and Presentation Topics Include: amyspark - Dynamic Fill Layers in Krita using SeExpr Ashwin Dhakaita - Integrating the MyPaint Brush Engine in Krita Kitae Kim - Improve MAVLink integration of Kirogi Saurabh Kumar - Storyboard Docker for Krita

Friday 18:30

BoF Wrap-Up Wrap-Up

Summary of what has been happening during the week - Room 1

Friday 19:00

No Burnout

Room 1

Burnout is one of the dangers all of us face; in fact the more enthusiasm and creativity we bring to our work, the worse it can be. However, we can help one another avoid burnout and stay healthy, and happy. Let's figure out how and when to do tha...

I've given this at GSoC Mentor Summit, and the experience rocked me -- and the room.

Friday 19:30

Friday 19:50


Room 1