Feed aggregator

Terminal-Style Login [SDDM Login Themes]

KDE Store - Sat, 2024/03/23 - 5:21pm
An SDDM theme that looks like a terminal (console, tty) Features: * Fully controllable by keyboard * Allows power management * Allows session...

Where is my SDDM theme [SDDM Login Themes]

KDE Store - Sat, 2024/03/23 - 4:45pm
That feeling when your SDDM theme suddenly disappeared... The most minimalistic SDDM theme among all themes. Only black screen and password input...

Compact Pager [Plasma 6 Applets]

KDE Store - Sat, 2024/03/23 - 4:22pm
A compact pager for the KDE Plasma desktop. For those who don't like how much space the normal plasma pager takes. It can be configured to always...

Flight-Dark-Global [Global Themes (Plasma 5)]

KDE Store - Sat, 2024/03/23 - 3:14pm
Dark Round Global Theme, Transparent and Blur. Enabled Blurred Widgets and Adaptive Transparency ___________________ Icons [COLOR="#5e81ac"]...

Flight-Dark-Plasma [Plasma Themes]

KDE Store - Sat, 2024/03/23 - 3:13pm
Dark Rounded Plasma Theme, Transparent and Blur. Enabled Blurred Widgets and Adaptive Transparency ___________________ Icons [COLOR="#5e81ac"]...

Flight-Dark-Icons [Full Icon Themes]

KDE Store - Sat, 2024/03/23 - 3:12pm
Icons for Dark Plasma Themes __________________________ Dark Rounded Plasma Theme [COLOR="#5e81ac"] [B]Flight-Dark-Plasma[/B] [/COLOR]:...

Flight-Light-Icons [Full Icon Themes]

KDE Store - Sat, 2024/03/23 - 3:11pm
Icons for Light Plasma Themes __________________________ Dark Rounded Plasma Theme [COLOR="#5e81ac"] [B]Flight-Dark-Plasma[/B] [/COLOR]:...

Flight-Blur-Dark-Aurorae [Plasma Window Decorations]

KDE Store - Sat, 2024/03/23 - 3:10pm
BLUR Dark Rounded Window Decorations (Aurorae Theme) Dark Rounded KVANTUM Theme, Blur and Transparent [COLOR="#5e81ac"]...

Flight-Color-Dark-Aurorae [Plasma Window Decorations]

KDE Store - Sat, 2024/03/23 - 3:10pm
Dark Rounded Window Decorations (Aurorae Theme) Follows any Dark color scheme and hence is usable with any Dark Global...

Flight-Color-Light-Aurorae [Plasma Window Decorations]

KDE Store - Sat, 2024/03/23 - 3:09pm
Light Rounded Window Decorations (Aurorae Theme) Follows any Light color scheme and hence is usable with any Light Global...

Apus [Global Themes (Plasma 5)]

KDE Store - Sat, 2024/03/23 - 2:38pm
Apus Global theme. Dark theme, with lines combined in two tones, lilac and bluish. Apus Plasma theme:...

Apus [Plasma Themes]

KDE Store - Sat, 2024/03/23 - 2:37pm
Dark theme, with lines combined in two tones, lilac and bluish

Apus [Plasma Window Decorations]

KDE Store - Sat, 2024/03/23 - 2:37pm
Aurorae theme for Apus plasma theme. Based on McMojave by Vinceliuice https://github.com/vinceliuice/McMojave-kde

Apus [Plasma Color Schemes]

KDE Store - Sat, 2024/03/23 - 2:37pm
Apu's color-schemes for Apus plasma theme https://store.kde.org/p/1264370/

Apus [Kate]

KDE Store - Sat, 2024/03/23 - 2:36pm
Color scheme for kate from the global theme for plasma Apus. https://store.kde.org/p/1737857/

Girl with headphones [Wallpapers KDE Plasma]

KDE Store - Sat, 2024/03/23 - 2:36pm
Girl with headphones. Suggested for Apus theme. https://www.pling.com/p/1737857/

Apus [Konsole Color Schemes]

KDE Store - Sat, 2024/03/23 - 2:35pm
Apu's konsole for Apus plasma theme https://store.kde.org/p/1264370/

Apus Colors V1.5 [Wallpapers KDE Plasma]

KDE Store - Sat, 2024/03/23 - 2:35pm
Wallpapers for Apus v1.5 plasma theme.

Time Progress Bar [Plasma 6 Calendars]

KDE Store - Sat, 2024/03/23 - 1:15pm
A progress bar plasmoid for your KDE Plasma desktop (only Plasma 6) showing the progress of time. Inspired by the year progress bar, it can show...

Using the QML Language Server for KDE Development

Planet KDE - Sat, 2024/03/23 - 1:00pm

For a while Qt has been offering qmlls, a Language Server Protocol implementation for QML. This allows popular text editors like Kate (and some lesser known ones like Visual Studio Code) to work with QML code without having to write dedicated support for it.

Naturally many people are eager to use it to hack on KDE code. When trying to do that you probably have encountered some frustration with things not working as expected. So what’s going on there, and how can we make it work?

First and foremost one must mention that qmlls is still under heavy development. There’s a number of things missing that you’d expect from a fully featured LSP implementation. If you encounter something that looks like it should work but doesn’t, don’t hesitate to file a bugreport.

So how does one use qmlls? In Kate it should be activated out-of-the-box when opening a QML file. If that doesn’t work you might need to tweak the LSP-Client settings. For other editor please consult their documentation on how to enable LSP support.

One problem you are likely to encounter when using qmlls on KDE code is that it fails to find KDE-provided QML modules like Kirigami. This happens when the modules are installed into e.g. ~/kde/usr, which isn’t searched by Qt. One way to get around this is to build and install your own Qt into ~/kde/usr too, since that way the modules will be installed into the same prefix as Qt and Qt will find them. While building your own Qt is a worthwile thing to do in general it’s not a very satisfying solution. I hope we can find a better solution for this soon. See here for a related bugreport.

If your installation is set up in a way that qmlls can find the KDE-provided modules you might still encounter it warning on unknown modules or types. In order for qmlls to show information for a module the module needs a qmltypes file. These files provide machine-readable information about the types that the module exposes. The easiest way to make these available is porting the module to ecm_add_qml_module and declarative type registration. This was done for many KDE modules already, but there’s still a number of them missing. Help on that is very welcome! Something that isn’t obvious is that in order for the tooling to work correctly module dependencies need to be marked explicity via the DEPENDENCIES parameter in ecm_add_qml_module.

If all the modules and types are found correctly you will still encounter some warnings, but most of these should correspond to actual issues and non-optimal practices like using unqualified property lookups and context properties. qmlls is a great tool to guide you towards resolving those and thus modernizing and optimizing the code. There are however some classes of warnings for which we don’t have proper solutions yet:

  • Our translation functions, i18n and friends, are considered unqualified lookups by qmllint/qmlls. This is because they are magically injected into the engine at runtime. It’s not clear how a solution for this could look like.
  • When writing KCMs we expose the module’s C++ class via the kcm context property, which is opaque to the tools. A different approach is needed.

Despite the current limitations qmlls is already a very useful tool for working on QML code, assuming the project is set up properly.

Happy QML hacking!