I’m currently backpacking in the Balkans and, considering that it’s been such a long time since I wrote a blog post on my blog, I figured it was a good idea to write about it. As I am traveling, I am also field testing KDE Itinerary and sending patches as I buy new my tickets and reserve my hostels. Ljubiana, Slovenia My first stop was in the capital of Slovenia, Ljubljana. I went there by train from Berlin. I first took the night train to Graz and then an intercity train to Ljubljana. An...| Carl Schwan
Kirigami Addons is a collection of supplementary components for Kirigami applications. Version 1.9.0 is a relatively minor release, introducing two new form delegates along with various quality-of-life enhancements. New Features I took over the work from Tomasz Bojczuk and finished the addition of the file and folder form delegate. These two components wrap a FileDialog and FolderDialog respectively and like KUrlRequester in KIO provide a text field with autocompletion on desktop. Currently t...| Carl Schwan
Kirigami Addons is a collection of supplementary components for Kirigami applications. Version 1.8.0 is a relatively minor release, introducing two new form delegates along with various quality-of-life enhancements. New Features I added two new form delegates: FormLinkDelegate (!343) and FormIconDelegate (!355). The first one is similar to FormButtonDelegate, but it’s used to display an external link. It’s already used on the About page: The second one was upstreamed from Marknote and all...| Carl Schwan
Kirigami Addons is a collection of additional components for Kirigami applications. 1.7.0 is a relatively big release bringing a new convergent component for context menus as well as various quality of life APIs to existing components. ConvergentContextMenu This release bring a new component which wraps the tradional context menu Controls.Menu provided by Qt and on mobile will instead displays a BottomDrawer with the list of actions. Using it, is really easy:| Carl Schwan
Kirigami Addons is a collection of additional components for Kirigami applications. This release brings mostly improvements to the FormCard module. AboutPage The about page provided by Kirigami Addons received many improvements. Joshua added icons to all the buttons. I worked on the component section, which now contains more information about the default components as well as the underlying platform and now has a button to copy all this information to the clipboard. This is super helpful, whe...| Carl Schwan
The first release of OptiImage is finally out! OptiImage is a useful image compressor that supports PNG, JPEG, WebP and SVG file types. It doesn’t do the compression itself but uses various tools like oxipng to do the compression. OptiImage compressing screenshots| Carl Schwan
Kirigami Addons is out. This releases contains mostly code cleanup and minor improvements. There is netherless a few relevant changes. Thanks to everyone who contributed some code. New KAppTemplate’s template A new KAppTemplate is available as a good starting point for application that manage multimedia libraries. It is based on shared design of Peruse, Arianna and the WIP Calligra Launcher.| Carl Schwan
After having participated to both Qt Contributor Summit and Akademy, I ended up going to a few more conferences in September. Nextcloud Conference I went to Nextcloud Conference just after going back from Akademy. Unfortunately I was quite tired from Akademy and Qt Contributor Summit and I only stayed Saturday morning. Still it was great to meet some old colleagues there. Group photo of the Nextcloud conference Matrix Conference The Matrix Conference happened the weekend after the Nextcloud c...| Carl Schwan
This year I went to Würzburg, which is a nice small German city famous for its wine. But I didn’t only go there for the wine, but also to attend Qt Contributor Summit and Akademy. Qt Contributor Summit The travel to Würzburg didn’t go as planned as Deutsch Bahn had some technical issues with their train and couldn’t reboot our train. We still managed to get in Würzburg on time and even had the change to get a small touristic tour from some locals. Würzburg Residence and the Wine bri...| Carl Schwan
Calligra 4.0.1 is out. This small releases mostly contains fixes for distributions issues and updated translations. I fixed some compatibility issues for Flatpak which is since yesterday available on Flathub. Flathub website showing Calligra Yaakov Selkowitz fixed the installation of the Okular generators so now if Calligra is installed, you can read your office document in Okular correctly. Antonio Rojas dropped the unused KPart dependency and reenabled the user documentations. I removed the...| Carl Schwan
Calligra is the office and graphics suite developed by KDE and is the successor to KOffice. With some traditional parts like Kexi and Plan having an independent release schedule, this release only contains the four following components: Calligra Words: Word Processor Calligra Sheets: Spreadsheet Application Calligra Stage: Presentation Application Karbon: Vector Graphics Editor The most significant updates are that Calligra has been fully transitioned to Qt6 and KF6, along with a major overha...| Carl Schwan
This year, I attended FrOScon for the first time . FrOScon is the biggest conference about free and open-source software in Germany. It takes place every year in Bonn/Siegburg (Germany) at the weekend and is free to attend. For the first time, I was not at a conference to staff a KDE stand. My employer had a stand there, and it was a great occasion for me to meet some colleagues, fellow KDE, and Matrix contributors.| Carl Schwan
Kirigami Addons 1.4 is out! This release introduce a new module to manage actions similar to that we can find in the QtWidgets world with KXmlGui. This was not written from scratch but upstream the existing infrastructure from Merkuro (ex-Kalendar) and Marknote. These two applications have already been ported to this new module and more like Tokodon or KDE Keychain will follow soon. This includes a shortcut editor to assign and modify the shortcuts of an application and a command bar to quick...| Carl Schwan
Following my latest post about Keychain, here is a new development update. Yubikey and Key Files are now supported, which allows you to requires a YubiKey to open a password database but also to save it. Saving and editing groups also now works. Group editing dialog And I now started working on the database creation process. The UI is ready but I still need to bind it to the backend.| Carl Schwan
A month ago, I started working on a new application to manage your passwords in Plasma. And while still at a PoC status, this weekend, it finally started to look like something almost usable, so it sounded like a good occassion to write a small blog post about it. The current name is “Keychain” or “Plasma Keychain” but this is subject to change and suggestions are more than welcome.| Carl Schwan
Kirigami Addons 1.3.0 is out. Kirigami Addons is a collection of components to enhance your Kirigami/QML application. This release contains many change related to the settings module. ConfigurationView The current way to create a settings page in your application is to use CategorizedSettings with some SettingAction for each setting page. This was based on Kirigami.PageRow which was then either pushed on a layer on mobile or to a seperate page on desktop. This turned out to be quite unreliabl...| Carl Schwan
Hash-o-Matic 1.0.1 is out! Hash-o-Matic is a tool to compare and generate checksum for your files to verify the authenticity of them. It also verify files via their use PGP signatures. This new release of Hash-o-Matic provides updated translations and some small visual changes. In the background, the application was ported to the new QML type registration, we now support building Hash-o-Matic on Haiku and we now require released version of KDE Frameworks instead of pre-released version. Packa...| Carl Schwan
This year again I participated to the KDE PIM Sprint in Toulouse. As always it was really great to meet other KDE contributors and to work together for one weekend. And as you might have seen on my Mastodon account, a lot of food was also involved. Day 1 (Friday Afternoon) We started our sprint on Thursday with a lunch at the legendary cake place, which I missed last year due to my late arrival.| Carl Schwan
A bit like Nate’s “5 minutes bugs” initiative, I’m announcing a new initiative to improve our applications ecosystem. The goal is to improve the quality and quantity of KDE applications and the number of application contributors. For anybody who knows me, it is not that surprising. Inside KDE, I have been mainly involved in apps for many years. I worked on all areas, from development (maintaining or co-maintaining many apps like NeoChat, Kontrast, MarkNote, Tokodon, and Arianna, and c...| Carl Schwan
The MarkNote team is happy to announce the 1.2 release of MarkNote, KDE’s WYSIWYG note-taking application. Marknote lets you create rich text notes and easily organise them into notebooks. You can personalise your notebooks by choosing an icon and accent color for each one, making it easy to distinguish between them and keep your notes at your fingertips. Your notes are saved as Markdown files in your Documents folder, making it easy to use your notes outside of Marknote as well as inside t...| Carl Schwan
Kirigami Addons 1.2 is out with some accessibility fixes and one new component: FloatingToolBar. Accessibility During the accessibility sprint, there was an effort to ensure the date and time pickers were actually accessible. Aside from improving the screen reader support, this also allow to write Selenium integration tests which uses these components in Itinerary. Thanks Volker, David Redundo and others for working on this! FloatingToolBar Mathis and I worked on a new addition to Kirigami Ad...| Carl Schwan
uses QTextDocument for it’s WYSIWYG text editor. This is surpringly quite powerful and thanks to some code borrowed from KMail rich text editor, it wasn’t hard to implement huge part of the markdown specification. But while QTextDocument is great, I hit quickly some limits. This is why I started fixing some of them and I already have some patches up for review in Qt. Default table style By default the style of the tables looks straight from the 90s, I submitted a patch to use something a ...| Carl Schwan
Marknote 1.1.0 is out! Marknote is the new WYSIWYG note-taking application from KDE. Despite the latest release being just a few days ago, we have been hard at work and added a few new features and, more importantly, fixed some bugs. Marknote now boasts broader Markdown support, and can now display images and task lists in the editor. And once you are done editing your notes, you can export them to various formats, including PDF, HTML and ODT.| Carl Schwan
It’s again time for a new Kirigami Addons release. Kirigami Addons is a collection of helpful components for your QML and Kirigami applications. FormCard I added a new FormCard delegate: FormColorDelegate which allow to select a color and a new delegate container: FormCardDialog which is a new type of dialog. FormCardDialog containing a FormColorDelegate in Marknote Aside from these new components, Joshua fixed a newline bug in the AboutKDE component and I updated the code examples in the A...| Carl Schwan
A new version of Kirigami Addons is out! Kirigami Addons is a collection of helpful components for your QML and Kirigami applications. With the 1.0 release, we are now supporting Qt6 and KF6 and added a bunch of new components and fixed various accessibility issues. FormCard We added a bunch of new FormCard delegates: FormPasswordFieldDelegate: A password field FormDataTimeDelegate: A date and/or time delegate with integrated date and time picker which use the native picker of the platform if...| Carl Schwan
Brise theme is yet another fork of Breeze. The name comes having both the French and German translations of Breeze, being Brise. As some people know, I’m contributing quite a lot to the Breeze style for the Plasma 6 release and I don’t intend to stop doing that. Both git repositories share the same git history and I didn’t massively rename all the C++ classes from BreezeStyle to BriseStyle to make it as easy as possible to backport commits from one repository to the other.| Carl Schwan
It’s time for a new Kirigami Addons release. This new release contains the work of Joshua Goins, Laurent Montel, Thiago Sueto, Volker Krause, Shubham Arora, James Graham, Rishi Kumar and myself. Thanks for contributing! New features MobileForm.FormGridContainer FormGridContainer makes it possible to make the information exposed with MobileForm more compact by putting multiple small cards in the same row. The number of columns by default is 3 on desktop unless the total number of cards makes...| Carl Schwan
It’s already two years since I last looked at KDE git history. As I decribed in the latest edition, this is inspired by the work of Hans Petter Jansson for GNOME and use the tool he made (fornalder). fornalder is a formidable tool. It is easy to use and the documentation in the readme is great. I don’t know if this is because it was programmed in Rust but fornalder was also blazingly fast and most of the time spent during this analysis was spent on cloning the repos.| Carl Schwan
I’m happy to announce the initial release of Arianna. Arianna is a small ePub reader application I started with Niccolo a few months ago. Like most of my open source applications, it is built on top of Qt and Kirigami. Arianna is both an ePub viewer and a library management app. Internally, Arianna uses Baloo to find your existing ePub files in your device and categorize them. Library view The library view will keep track of your reading progress and find new books as soon as you download t...| Carl Schwan
Two new releases are out in preparation of the first alpha release or the February Megarelease. KQuickImageEditor 0.3.0 This is the new stable version of KQuickImageEditor. Only notable change it the support for Qt6 in addition of Qt5 support. Kirigami Addons 0.11.75 This is an alpha release and depends on an unreleased KDE Frameworks. Please only package it if you also package the coming alpha megarelease. Packager section You can find the package on download.| Carl Schwan
A new release of Doxyqml is out. Doxyqml is the tool which we use to transform our QML code in non working C++ code, but good enough for Doxyqml to understand it. This power the documentation of Kirigami, Kirigami Addons, Plasma Framework and more on api.kde.org. This release mainly fix various compatibility bugs with more recent QML versions. Thanks to Frederik Gladhorn, Joshua Goins, Libor Tomsik, Matej Starc and Nikolai R Kristiansen for their contributions to this release.| Carl Schwan
Last weekend I went to the Linux Days in Voralberg (Austria) to host a booth with Tobias and Kai. It was hosted at the Fachhochschule (a sort of university for applied science) in Dornbirn and it was my first time attending this event. Me and Tobias in front of the LinuxDays poster at the entrance of the event Our booth was well visited and we had a lot of interesting discussions.| Carl Schwan
On Thursday and Friday evenings, I went to the Matrix Community Summit at C-Base in Berlin with Tobias. It was the occasion to meet a few other Matrix developers particularly the Nheko developer, MTRNord and a few other devs whom I only knew by nickname. It was great even though I could only spend a few hours there. Tobias stayed longer and will be able to blog more about the event.| Carl Schwan
Francis logo Today is my birthday but it’s also the day Francis got its first release. Francis is a pomodoro app, which was originally developed by Felipe Kinoshita. The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. It uses a kitchen timer to break work into intervals, typically 25 minutes in length, separated by short breaks. Francis screnshot The app is very simple and can be used as inspiration to develop your own Kirigami application.| Carl Schwan
Last weekend, I went to Freedom Not Fear 2023 in Brussels. Fnf is an unconference for and by European digital activists. It covers various topics, from the latest terrible European law (Chat Control) to discussing how to get more involved in our democracies. I usually attend more technical conferences, and it was refreshing to participate in a conference where ethical and political discussions around digital rights were a central topic. It was an occasion to meet people from different backgro...| Carl Schwan
Kirigami Addons 0.11.0 is out! This release brings a bunch of new components. Since I forgot to write an announcement for the 0.10 release, I will mention some of the new features of 0.10 too. Banner (0.10.0) This helpful component is similar to Kirigami.InlineMessage and can be used as the footer or header of a page. Banner component at the top of page Delegates (0.10.0) Kirigami Addons 0.10.0 bring two new list and grid delegates:| Carl Schwan
I tooted posted on Mastodon about how it would be great if more open source project would adopt REUSE. Someone pointed out that it would be great to automate the addition of the metadata inside the files based on the git repository. So here is a small script that does exactly that. It goes over all your .cpp and .h file and will add the header based on the list of authors as well as the first commit on that particular file.| Carl Schwan
Quick reminder, that you can include a Mastodon or Matrix link to your AppStream file and that the link will then be displayed in your application page at apps.kde.org. <custom> <value key="KDE::matrix">#merkuro:kde.org</value> <value key="KDE::mastodon">https://kde.social/@merkuro</value> </custom> Details on apps.kde.org showing the link to the mastodon account and matrix channel| Carl Schwan
Last week, I went to Akademy, the yearly KDE conference, in Thessaloniki. This is now my third in-person Akademy and fifth Akademy in total. As always, this is the occasion to meet old and new friends, learn about what others are hacking on and enjoy good food. Friday I arrived Friday afternoon, taking my flight from Nuremberg with a few others. Getting out of the airport, we could immediately feel the heat.| Carl Schwan
I’m happy to announce the 1.1 release of Arianna. Arianna is a small ePub reader application I started with Niccolo some time ago. Like most of my open source applications, it is built on top of Qt and Kirigami. Arianna is both an ePub viewer and a library management app. Internally, Arianna uses Baloo to find your existing ePub files in your device and categorize them. New features Arianna can now display the table of content of a book.| Carl Schwan
I’m happy to announce the first bugfix release of Arianna. This release contains a lot of improvements to the accessibility of Arianna. Thanks a lot to @bgtlover@linuxrocks.online who reported many accessibility issues. Aside from fixing some bugs in Arianna, this also resulted in fixes in Kirigami, Kirigami Addons and Qt, which are on a seperate release schedule so not every bug fixes is already available. I’ll write a seperate blog post which will go into the technical details.| Carl Schwan
My second release of the day: Kirigami Addons 0.8.0. This release contains a few new components. AbstractMaximizeComponent This is part of the org.kde.kirigamiaddons.labs.components module and is a popup that covers the entire window to show some items. This is already used in NeoChat and Tokodon to magnify image and videos. Thanks James Graham for developing the initial version and upstreaming it to Kirigami-addons. Maximized image in NeoChat Convergent SpinBox Another new component is the c...| Carl Schwan
I am happy to announce Tokodon 23.02. This release contains around one month’s worth of improvements, and while it is only one month, this release is feature packed! This was an exciting month for me in general, I started working at KDAB, went to FOSDEM in Brusels where I meet a bunch of other KDE folks, and spend time enjoying my new life in Berlin. Me at the FOSDEM booth Fortunately I still found some time to contribute to Tokodon, and Joshua Goins has also been a very active contributor.| Carl Schwan
Just a small note that Kirigami Addons 0.5 was released yesterday. This update only contains some small cleanups here and there (e.g. moving some implementation details from the public api to the private one). The package is available on download.kde.org and was signed with my new GPG key| Carl Schwan
Last month, I was in Saumur (France) to attempt a KDE Promo sprint. This was my first sprint since the pandemic, actually this might even be my first ever official KDE sprint as before the pandemic I primarely attended conferences (Akademy, Fosdem, Libre Graphics Meeting, Linux App Summit, …) but no official sprint. The sprint took place during the weekend and was a great occassion to meet Allon, Aron and Neophytos for the first time.| Carl Schwan
Tuesday night, I managed to break the screen of my laptop. This is particular annoying when you don’t have any external screen at home and need to work. Fortunately the scren wasn’t completely broken, and I managed to survice Wednesday, with half of the screen working. From half of the screen working on Wednesday, the situation got worse on Tursday and I was forced to find another solution. My only other Linux powered devices at home were a PinePhone and my SteamDeck.| Carl Schwan
KDE PIM is the set of applications that helps you manage your email, contacts, appointments, tasks and more. In the months since the KDE PIM March-April report there have been two patch releases for Kontact, and over 1300 changes made by more than 30 contributors have been integrated. Here are some of the highlights. General Improvements Laurent continued working on the Qt6 support. The KDE PIM packages are now compiling with Qt6.| Carl Schwan
During my long train trip to the Linux App Summit 2022, I started working on a contact book feature in Kalendar. There was already a small contact integration in the event editor to select attendees for an event and I wanted to extend it with a simple contact info viewer and editor. When I started it, I was full of hope that this would be a simple task and would be easy to finish.| Carl Schwan
In the months since the KDE PIM July-August report there have been two patch releases for Kontact, and over 1400 changes made by more than 40 contributors have been integrated. Here are some of the highlights. KOrganizer A lot has happened over the last two months in KOrganizer development. First of all, Friedrich has been working on reviving the calendar decoration feature. This feature was introduced in 2007, but has since suffered from a lack of maintenance and multiple regressions.| Carl Schwan
Last Saturday we had an improvised NeoChat mini development sprint in a small hotel room in Berlin in the occasion of the 25th anniversary of KDE. In a good KDE tradition, Carl spent this time on improving NeoChat settings. He ported both the NeoChat general settings and the specific room settings to the new Kirigami.CategorizedSetting component. Tobias fixed a lot of papercuts and now the power level should be fetched correctly, we show the number of joined users instead of joined+invited us...| Carl Schwan
I’m happy to announce the 0.2 release of KQuickImageEditor. KQuickImageEditor is a QML library providing basic image editing functionality. It is currently used by Koko, NeoChat and Maui Pix. In this release, Noah Davis worked on improving the usability and design of the the existing croping feature. It now features more touch friendly handles that are consistently looking with the one from Spectacle. The old ReziseRectangle component is now deprecated and will be removed in the next versio...| Carl Schwan
The NeoChat is happy to announce the 3 major version of NeoChat. This release is the product of more than 3 months worth of work. Bubbles everywhere 🗨️ The first thing you will see then opening NeoChat 1.2 is that we are now using message bubbles. Bubbles 🗨️ everywhere 🗨️ We also replaced the not so great green line used as read marker with a better looking separator. Advanced Chatbar The text input component was completely redesigned.| Carl Schwan
Last week I attended and even gave a small talk to the Linux App Submit (LAS). LAS is a cross-distro and cross-desktop event around Linux applications. It’s a good place to learn about all the new cool thing making it easier to build and distribute Linux applications. This motivated me to improve a bit more the presence of Plasma Mobile applications in Flathub, but also make various improvements to apps.kde.org.| Carl Schwan
Over the last few weeks, I redesigned the default Plasma Calendar bringing it more in line with the design we want for Breeze Evolution. The new design removes the lines between the days, uses the default Plasma highlighting element and uses the Plasma Header component to provide a consistent look for the headers. The new calendar design There were also improvements in term of usability. Most notably, it is now easier to switch between the month, year and decade overview.| Carl Schwan
There was many changes over the last few months in KDE developer documentation tooling. The hope is to make KDE development easier to both newcomers but also long-time KDE contributors to use KDE technologies to build cool stuff. Api documentation The tooling for our generated documentation tooling improved. First of all, KApiDox got a new theme with a cleaner appearance and a better dark theme. But the improvement goes beyond just theming.| Carl Schwan
Exactly 2 months after NeoChat 1.0, the NeoChat team is happy to announce a new release of NeoChat. NeoChat is a native client for the decentralized communication network Matrix. Aside from the many bug fixes, performance improvements, and subtle appearance improvements, NeoChat 1.1 brings many new features that will make your experience with it more convenient. Thanks to the work of Hannah, Nicolas, and Tobias, this release also brings NeoChat to many more platforms.| Carl Schwan
This version fixes several bugs. NeoChat doesn’t require a .well-know configuration in the server to work. (Tobias and Kitsune) Edited messages won’t show up duplicated anymore. (Carl) NeoChat now ask for consent to terms and conditions if required instead of displaying nothing. (Tobias) Users avatar in the room list are now displayed correctly. (Carl) Fix image saving (Tobias) Various graphic glitches have been fixed. (Various authors) Tarball is available in download.| Carl Schwan
I’m happy to announce the release of Doxyqml 0.5.1. Doxyqml is a python program allowing to document QML APIs with the help of Doxygen. This version includes a single commit contributed by Olaf Mandel adding supports for recent versions of Doxygen (> 1.8.20). Pypi page for this release Invent page for this release| Carl Schwan
The Season of KDE is a 3 weeks long program that provides an opportunity for people to do mentored projects for KDE. We are still looking for more mentors for SoK 2021. So please consider mentoring for this year season and adding ideas related to the project you are working on in the Wiki page. And joining the #kde-soc channel. Possible ideas includes but not limited to: Updating your application user documentation Write technical documentation for a framework Port your application to non-dep...| Carl Schwan
This month a few cool things happened to the KDE websites. The wiki instance we use was migrated to MediaWiki 3.34 (latest LTS version), bringing a few improvements in the translations module and fixing the problem where translated pages couldn’t be moved around. The commenting plugin was sadly discountinued in this version and instead the Echo extension was added which provides a way to ping people. Another improvement related to the wikis is the creation of a small module allowing user to...| Carl Schwan
Kontrast is a contrast checker available for desktop and mobile devices. You can use Kontrast to choose background and text color combinations for your website or app that your users will find easy to read. Kontrast can help you improve the accessibility for your site or app for people with vision problems. Kontrast won’t catch all the problems, but it should still be very helpful to catch many issues early on, when designing your interface.| Carl Schwan
Started a long time ago and only finished now, I have the pleasure to announce the publication of a new homepage for the KDE community. I hope you will enjoy it as much as I did creating it. This is only a small preview. Head over to kde.org to see the complete webpage. First of all I have removed the carousel. Some studies show that a carousel is a very bad way to convey information.| Carl Schwan
This month KDE web developers worked on updating more websites and some progress was made in a new identity provider and a lot of other exiting stuff and a lot of background work was also done. Updated Websites Calligra, the KDE office suite, launched a new website. This was done during Season of KDE by Anuj Bansal. This replaces the old Wordpress website. See repository. Planet KDE is an aggregator of all the individual blogs of KDE contributors.| Carl Schwan
This is the first post in a monthly series about improvements to the KDE websites. I plan to publish it every last Saturday of the month. Since a lot happened in January and I didn’t mention it anywhere, I will also mention those things in this post. New Websites KDE Connect gained a new website and a promotional video. This was done during the Season of KDE project. (Arjun Thekoot Harisankar, see repository).| Carl Schwan
The Bugzilla integration in the KDE wikis is now usable again. KDE wikis were using a long time ago the Bugzilla integration extension developed by Mozilla. This was used for example by some KDE components to keep track of the feature planned for a new release. Sadly this extension wasn’t keep up to date and was not compatible with recent MediaWiki extension. So I developed a new extension. This doesn’t have all the features of the old extension but all the one needed for KDE.| Carl Schwan
Halloween was the perfect occasion for me to hack together a dark theme for more KDE websites. So now a dark theme version is also available for kde.org and planetkde. It is using prefers-color-scheme: dark media query so it’s only available if you browser prefers the dark theme version.| Carl Schwan
Announcing a small update for the goal: KDE is All About the Apps. kde.org/applications is now listing the stores where the application is available. For the moment, it’s only listing Linux and the Windows Store, but support for F-Droid and the Play Store is planned. Stay tuned!| Carl Schwan
Windows download link in kde.org/applications| Carl Schwan
Story about the new webpage for Plasma Desktop| Carl Schwan
Since my latest post two months ago, a lot of things changed regarding the KDE websites. More and more KDE websites are switching to the Aether theme designed by Ken Vermette. You can follow the progress at the Phabricator task T10827. New websites All three wikis were updated to MediaWiki 1.31 and are now using the Aether MediaWiki theme. There are some visual glitches when using the dark theme version that can still be observed.| Carl Schwan
KDE userbase, the wiki where users can learn about everything KDE, gets a make over: cleaner, clearer and easier to use.| Carl Schwan
A neat trick to debug the keyboard navigation in your QML application is to put the following code snippet in your main.qml: Kirigami.ApplicationWindow { ... title: activeFocusItem + " " + (activeFocusItem ? activeFocusItem.Accessible.name : "") ... } Afterward, then you open your application, you will see the following in your title bar: Title bar containing the following text: “PrivateActionToolButton Sort - Merkuro Calendar” “PrivateActionToolButton_QMLTYPE_XX(0x00000000)” is the t...| Carl Schwan
One design characteristic of our QtWidgets is that they contain a lot of frames and frames inside other frames. This worked well with Oxygen style and its skeuomorphism shadow, less so with Breeze. I first thought this was inheriten with QtWidgets and couldn’t be fixed without much effort. But fortunately, after looking a bit into Qt source codes and in particular in the internals of QDockAreaLayout, I discovered that the engine to draw and style the built-in components of QtWidgets: QStyle...| Carl Schwan
Happy new year! To get a good start in this new new year, I’m happy to announce that Tokodon 23.01.0 is out! This is a new major release for Tokodon and while it’s been only 2 weeks since the last major release, this release is packed with new features and improvements. Tokodon is a Mastodon/Pleroma/Nextcloud Social client built with Kirigami that I started back in spring 2021. Tokodon has a great integration with KDE Plasma and Plasma Mobile, but it also work on other desktop environment...| Carl Schwan
People are often asking the same questions again and again about some of my projects, so it might be a good opportunity to write a small FAQ. If you get redirected here, don’t take it personally; I am getting asked these questions very often, and I feel people often misunderstand how open-source projects work. Why does X not have feature Y? The most likely reason is that it still needs to be implemented.| Carl Schwan
I’m happy to announce the release of Tokodon 22.11.2 (and 22.11.1 who I released earlier this month and forgot to properly announce). These releases contain mostly bug fixes but also some welcome interface improvements. First this adds an account switcher (similar to the one Tobias Fella implemented in NeoChat). Very usefully when you need to manage multiple accounts and want to quickly switch between them. Tokodon This also change the image preview from appearing in a separate full screen ...| Carl Schwan
KDE is all about the Apps is one of the current goals of the KDE community. Since this goal was choosen and announced in 2019 (remember it’s last year that was ‘normal’), I got a new hobby and it’s improving our apps infrastructure (e.g. apps.kde.org) and developing new KDE apps. I already talked previously about NeoChat (a Matrix client), Kontrast (a contrast checker), Koko (an image viewer) and Pikasso (a simple Rust-powered drawing app for the Plasma Mobile).| Carl Schwan
QML is a nice technology but it sometimes feels that some parts of KDE Frameworks aren’t neatly integrated with it. For example, until recently KNotification didn’t have QML bindings, which was the same for KSyntaxHighlighting. Thankfully Volker Krause took care of both. Another part of the often-used KDE Frameworks but had missing QML bindings was Sonnet. Sonnet is a very nice KDE framework powering KDE text areas with spell checking.| Carl Schwan
A few weeks ago, the Krita project announced the Krita Dev Fund. This project scope was the same as the Blender Dev Fund. Provide a stable way to fund the development of Krita via recurring donations. Since I was the one who helped with the technical bits on the website and I heard that were are interested FOSS communities that want to deploy something similar, I decided to write a small tech report about how we did it in Krita.| Carl Schwan
Today, I decided to look at KDE git history and look at the project’s health as a whole. It’s inspired by the work of Hans Petter Jansson for GNOME and use the tool he made (fornalder). fornalder is easy to use and the documentation in the readme was beneficial. I don’t know if this is because it was programmed in Rust but fornalder was blazingly fast and most of the time spent during this analysis was spent on cloning the repos.| Carl Schwan
In the Linux world, gettext is the gold standard for translating content. It’s powerful; there is a significant amount of tooling around it: there are editors like Lokalize, poedit, weblate and many others, and also libraries and bindings for many languages. But in the web development world, a unified internalization solution isn’t a solved problem yet. Django uses gettext; many js frameworks are using JSON as a key-value store of strings, but other formats exist and sometimes some framew...| Carl Schwan
Apps.kde.org is a great website listing all the KDE applications and their addons. Under the hood, it’s using AppStream, a standard for adding metadata to Linux applications. The Linux application managers (Discover, GNOME Softwares, …) are displaying them, so they stay up to date and are translated. There was only one problem, apps.kde.org has always been a bit slow to load. It is a problem since slow websites tend to be less visible on Google search results and for the users there aren...| Carl Schwan
Following my last blog post about using Rust and Lyon to create custom shapes. I’m happy to announce the creation of Pikasso, a very simple drawing program intended to be used on Plasma Mobile. Pikasso Pikasso is very basic and only supports drawing with the mouse/finger and adding rectangles and circles to the scene. An undo feature is also available as well as the possibility to export your beautiful artworks to SVGs.| Carl Schwan
One of the advantages of QWidgets when building a Qt application is the ability to build in a simple way custom widgets with the QPainter API. This gives the Qt developer almost total freedom to implement complex geometries for their widgets. On the other hands, QML contains by default only rectangles. These rectangles can change the radius to create circles and rounded rectangles, but more complex shapes are more complicated.| Carl Schwan
Season of KDE offers an opportunity to everyone (not just students) to participate in both code and non-code projects that benefits the KDE ecosystem| Carl Schwan
Matrix is an instant messaging system similar to Whatsapp or Telegram, but uses an open and decentralized network for secure and privacy-protected communications. NeoChat is a visually attractive Matrix client that works on desktop computers and mobile phones. Convergence NeoChat provides an elegant and convergent user interface, allowing it to adapt to any screen size automatically and gracefully. This means you can use it both on desktop computers, where you might want to have a small bar o...| Carl Schwan
KDE.org now uses Hugo. Hugo is a fast and modern static site generator written in Go. It provides a few improvements over the old system that was using plain PHP. A large part of the work was done by Anuj during GSoC 2020. This was a massive work, converting the repository storing more than 20 years of KDE history. The website is now generated once and no longer uses PHP to generate itself at runtime.| Carl Schwan
I’m happy to announce the successful deployment of the new identity system in KDE, codename MyKDE. The new identity system is now available in my.kde.org. You should be able to login into the my.kde.org website with your normal KDE credential. For the moment, only the wikis are using MyKDE but in the coming months this should change with more and more services switching to MyKDE. I will let you all know of the progress of the migration.| Carl Schwan
The new website for kde developement information was deployed during the Akademy and contains many information about building awesome stuff using KDE tools and large collection of Qt based libraries. The long term goal of this new website is to increase the first and third parties use of the KDE Frameworks and development tools. To achieve this goal, this website will provide high quality and complete documentation about the usage of the KDE Frameworks and other libraries (a quite ambitious g...| Carl Schwan
Koko is a great image viewer designed for Plasma Mobile. Unfortunately, up until recently it did not work great on desktop computers. This changed last week with various small patches to Koko’s code and Kirigami, KDE’s framework for developing apps for the desktop and mobile devices which is what Koko is based on. First the sidebar color was updated to use the view colorset instead of the window colorset. This change was initially only done in Koko but, seeing that various Kirigami apps h...| Carl Schwan
A unified theme? Why? Why not? Nearly all KDE websites use a unified theme across the board. This is part of the consistency goal, chosen as a KDE goal at the last Akademy in Milano (Italy). Using a unified theme has multiple advantages: It strengthens KDE’s brand, since websites are more visible than applications or projects part of the KDE community. Websites with a unified look help visitors immediately identify an application or subproject as being part of a bigger organization.| Carl Schwan
Konsole, KDE's terminal emulator got a new website.| Carl Schwan
New features for kde.org| Carl Schwan
My experience at the Libre Graphics Meeting 2019| Carl Schwan
This is the story about how I started more than one month ago contributing to the KDE project. So, one month ago, I found a task on the Phabricator instance from KDE, about the deplorable state of the KDE userbase wiki. The wiki contains a lot of screenshots dating back to the KDE 4 era and some are even from the KDE 3 era. It’s a problem, because a wiki is something important in the user experience and can be really useful for new users and experienced ones alike.| Carl Schwan
This last few months have been focused on improving the website tooling uing the Hugo framework. The base theme that was developed for kde.org was moved to a seperate repository and is now completely reusable for other projects to use. Other than the speed improvement other Jekyll, there are two big improvements in using Hugo instead of Jekyll for the KDE websites: the translation system is a lot more mature and by using go modules it is easier to share assets, scss modules, templates and tra...| Carl Schwan
This Monday, I was in Brussels to attend a stakeholder workshop for the Digital Market Act (DMA) organized by the European Commission. For those who don’t know that is the DMA, it’s a new law that the European Parliament voted on recently and one of its goals of it is to force some interoperability between messaging services by allowing small players to able to communicate with users from the so-called Gatekeepers (e.| Carl Schwan
Update 29.01.2023: Adapted the code to work with Mastodon 4.0 and replaced linuxrocks.online by floss.social Update 15.03.2023: Thanks to @veronica@mastodon.online, this code now handles replies in a lot nicer way. You might want check out her solution too. Update 07.07.2023: Thanks to @cassidy@blaede.family, the layout was improved and this now handle emojis One of the biggest disadvantages of static site generators is that they are static and can’t include comments.| Carl Schwan
Buttons are a fundamental element in user interfaces, but it’s easy to make some accessibility mistakes when using icon-only buttons in QML. First, please avoid icon-only buttons and only use then, when the icon is very well known (e.g. arrows, delete or favorite icons) and the space is limited. In case you still want to use an icon-only button. Make sure to set the text: property and that it is also translatable.| Carl Schwan