Monday meeting notes for 27/3/2023

Marco Martin notmart at gmail.com
Mon Mar 27 16:00:51 BST 2023


Marco
* Directly related to plasma, working mostly in the Svg/Framesvg refactor.
* lives in git at invent.kde.org:mart/plasmasvg.git but will be called
KSvg (namespace already updated)
* A thing that changes is that what is now Plasma::Theme is just about
"retrieving the proper svg file"
* Colors go away, what i would like is to rely on Kirigami::Theme for
colors so one can do:
    KSvg.FrameSvgItem {
        Kirigami.Theme.colorSet: Kirigami.Theme.Header
        imagePath: "widgets/background"
    }
* and even this which gives problems for the cache:
    KSvg.FrameSvgItem {
        Kirigami.Theme.textColor: "blue"
        imagePath: "widgets/background"
    }
* with this it means that every color (at the moment 10 colors
supported) needs to be encoded somehow in the cache key, which could
give problems as computing the cache key is not super efficient
already
* I would like to go completely with QPalette on ksvg side (with
kirigami::theme only on the qml bindings side), which means dropping
* it means that i need dropping support for the named colors in the
stylesheet (like buttontextcolor and what not)

[arjen] there are some options here, what we probably need is some
sort of multi-level key so that we don't need to calculate the full
key just to check if an image exists for example, but this requires
some extensive thinking
[marco] ok, i'll start to remove those extra names and try to go
qpalette and see if that is feasible, then when is simpler is easier
to think about making the cache better
[d_ed] to be seen if cachekey is stable between sessions


DavidE
* I nearly have the digital clock ported to the new libclock import,
didn't encounter any big issues

Arjen
* I've mainly been working on rdp support
* today spent a bit of time on kirigami and currently looking at a
related issue in systemsettings/kcmmodule that causes an infinite loop
in delegate creation
* because systemsettings ends up using a qml engine without a proper
async incubation controller

Nico
* Sprint!
* I'm still missing names in the poll

Vlad
* spent a good chunk of the week on Window stuff
* killed Workspace::clientList,unmanagedList,internalWindows
* patch to drop Deleted is on review
* fixed a few wayland related bugs while was working on Deleted stuff
in meanwhile
* did some tabbox cleanups
* create a patch in qtwayland to add popup hooks so plasmashell
doesn't need to carry its own xdg-shell shell integration fork
* dropped KWin.registerWindow() scripting workaround
* any thoughts about dropping javascript scripting in favor of qml? (in kwin)
[d_ed] having two APIs isn't great
[d_ed] IMHO the JS API is kinda the better one for the usages kwin has
[Natalie] I would imagine the hurdle of needing both QML and JS would
be discouraging to many potential KWin script developers (or those who
want to port existing ones), but I don't know how much in addition one
would really need, if it's as simple as that snippet you showed that
we'd put in the KWin scripting tutorial I think that's manageable

Xaver
* I'm looking into reducing cursor latency by having a thread in KWin
that more or less simulates mailbox presentation on top of the drm
API. * There are some problems with proprietary drivers though,
because they don't give us any timing information.
* I've also attempted to make some progress with multi gpu as my new
CPU has an integrated GPU, but it's kind of stalled again because of
driver issues on AMD+AMD systems
    - with some additional work it could at least be usable on
Intel+NVidia systems, but the potential for regressions appears to be
relatively large too
    - there is the alternative possibility to make the existing CPU
copy path be done in a separate thread, which would alleviate at least
part of the performance problems. Both performance and battery life
would still not be good though so I'd rather avoid that
    - another alternative is to start using Vulkan for the specific
purpose of buffer allocations and multi GPU, which completely
sidesteps most of the problems, at the cost of more code and
potentially more edge cases like one GPU supporting Vulkan but not the
other

Joshua
* prepping Tokodon for the next gear release. I can say that this week
I'll finally begin opening MRs for the documentation improvements I've
been sitting on.
* If you haven't seen, I'm improving the doxyqml output so it includes
import statements, and slowly working my way through fixing frameworks
doc comments (p-framework is the first one up) and doing the same for
our custom QQuickItems.
* Also found a really odd syncColors bug (and fixed it?) in
desktop-style, if anyone is more familiar with that please take a
look: https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/244.
I'm also curious why this only affects desktop style, and not breeze
style (AFAIK, they have similar mechanisms for syncing theme colors).


More information about the Plasma-devel mailing list