System settings animation

Duncan 1i5t5.duncan at cox.net
Thu Aug 22 06:57:58 BST 2024


René J.V. Bertin posted on Sun, 18 Aug 2024 02:33:40 +0200 as excerpted:

> On Saturday August 17 2024 14:36:27 Dave Close wrote:
> 
>>But animation in system settings has annoyed me for a long time and
>>still does. It ignores that I've turned animation off everywhere I can.
>>Moving from one item in the list to the associated page and back again
>>insists on sliding the page, slowly. Is there a way to disable this
>>behavior and return to a sane presentation?

FWIW... While I don't have the no-animations "compulsion" of the OP, being 
on the autism spectrum of course I have various compulsions of my own 
including the "need" to highly customize so it works /just/ they way I 
want (thus the fact that I run kde plasma on gentoo's distribution of gnu 
linux, all three known for being more highly customizable than many/most 
of their peers), so I well understand the importance of being able to set 
these to work as one wishes/needs.

> It's been over 5 years that I last updated the systemsettings package
> I'm still using (ahhhh, the stability, tranquility and productivity you
> can enjoy spending your time working *with* your system rather than *on*
> it ;)).

As you know (given that we're both list regulars) our personal preferences 
are polar opposite in that regard. =:^)  I not only run gentoo ~arch (aka 
"unstale" aka "unstable") for faster updates, but run most of kde/plasma 
as well as other selected applications built from live-git, because it's 
far easier to track down bugs (to report) and unwanted new "features" (to 
occasionally patch back out at least until they're less bbugged, or modify 
to my own ends, given the git-commit pointer as to where to do so) at the 
individual commit level than it is even consistently running the latest 
release, let alone something months or years and many releases outdated, 
as is the case with many sta(b)le distro options (and it seems you're 
beyond that, running your own old versions without feeling the need to 
update, just as strongly as I feel the need/compulsion to be current).

But because we're both out of the norm tho on opposite ends we both need 
deeper than average knowledge of the subject area, and I can  hope that 
over the years here you've come to respect my knowledge of the subject 
area at the latest bleeding edge just as I've come to respect yours at the 
sta(b)le trailing edge. =:^)

> I do recall getting a hissing fit about it trying to shove a
> QML-based UI down my throat (after updating to v5.13.5, which I'm still
> using).
> I'm not entirely certain how I got it back to a proper, qtwidget-based
> UI. It may have been as simple as re-selecting the icon-based interface,
> it may also have required getting rid of (not building) the
> `systemsettings_sidebar_mode` plugin.
> 
> Of course I have no idea if any part of K??6 Plasma6 is still
> widgets-based or if the goal is to migrate everything to QML.

As I understand it after running kde/plasma live-git and closely following 
development for some years now...

While the goal isn't to migrate /everything/ (particularly for old code, 
but for new apps to eventually replace the old it's a more open question) 
to qml, in large part because that's basically high-level scripting and 
for some use-cases the performance is simply not acceptable, the general 
deliberate policy does seem to be to migrate to qml where it's not going 
to be a performance or ongoing maintenance issue, because while the 
initial port is a pain, it /usually/ results in far less complex and more 
maintainable code going forward.

Additionally, native code must of course be built for and in many cases 
coded for a specific platform, while qml code tends to "just work" across 
most platforms qt is supported on -- there's far less "#ifdef-ing" when 
targeting GNU-Linux vs. Android Linux vs. plasma-mobile vs. the open-
source BSDs vs. the semi-proprietary AppleOS vs. the proprietary MS 
Windows vs. ... , and with qt6/frameworks6/plasma6/gear24+ primary 
targeting emphasis for new apps in particular tends to be at least plasma-
mobile as well as the various free desktops, with secondary targets of 
android/aos/msw depending on the app and its author preferences.  
Restating, for qt6/kde-frameworks6/plasma6 and beyond, qml tends to be 
strongly favored where it's performant "enough" because it tends to "just 
work" across qt-supported platforms without much porting or ifdef-ing.

Of course what we're specifically talking about here is plasma 
systemsettings (and its kcms, kde control modules, a legacy term but there 
it is), which is by definition customization and thus not performance-
critical hot-path.  That makes it and all its component kcms by 
definition /prime/ targets for rewriting to qml, particularly the ones 
that are needed on plasma-mobile too, and you'd surely find your plasma 
systemsetting bare indeed if you tried to go qtwidget-only with plasma6 
(which I doubt is even possible) as you did with plasma5.  And of course 
there's only the sidebar display format now, the icons interface option is 
long gone.

> Here's an idea: all the KCMs shown in the systemsettings application
> must have .desktop files. Copy or symlink the ones you want to a folder
> of your own, or create a submenu in your favourite launcher for them.
> Selecting one from there should launch `kcmshell6 $kcm` with as much or
> as little eyecandy as you configured.

I have in fact done just this, except I don't bother with the *.desktop 
files at all, instead directly using kcmshell6 $kcm, with $kcm substituted 
as necessary, for the commandlines.

Hint: In konsole (or your $term of choice), kcmshell6 --list will spit out 
a list of the available kcms.  Most will be prefixed kcm_, but the kcm_ 
bit seems to (usually? always?) be optional.  So for example kcmshell6 
(kcm_)mouse should invoke the mouse kcm with or without the kcm_ prefix.  
The two exceptions --list displays here are kcmspellchecking, no underline 
in the prefix but simply spellchecking appears to work as well, and 
kwincompositing, no kcm prefix at all and it does not appear to work when 
called as kcm_kwincompositing.  (In fact, since I'm on wayland via 
kwin_wayland not X via kwin_x11, running kcmshell6 kwincompositing gives 
me an empty kcm window as well, but running kcmshell6 kcm_kwincompositing 
give me an error to the effect that it can't find that kcm, that the 
unprefixed version does not, so it seems to find and load the kcm without 
the prefix just as it's listed, but there's just nothing for the kcm to 
configure on wayland.)

Also note that there are a few kcms available via direct kcmshell6 lauch 
that aren't available through plasma's systemsettings.  
kcm_qtquicksettings, for example, which displays a caution when run to 
only change settings if you know what you are doing.  (I just found it 
using --list while writing this and was curious so ran it; I've not 
experimented -- yet -- but knowing how to run it again without running it 
via the plasmashell menu if messing with it screws up plasmashell enough 
so it keeps crashing so I couldn't get to it that way, could definitely be 
useful!!)

But a caveat... at least with plasma6 I don't believe the kcmshell 
commandline route will entirely eliminate /all/ kcm animations.  For 
instance, when running kcmshell6 (kcm_)kwinrules is I believe entirely 
qml-based (and has been since 5.something).  You may or may not have any 
window rules setup, but while it's a single window listing the rules, 
hitting the edit button (the pencil) for an individual entry will animate 
a slide-in of that entry.  I've not tried disabling animations here, but 
from the OP's description of behavior when he did, I'd expect that to 
still animate regardless.

But direct kcm launches should still be /less/ animations than 
systemsettings, which should be better for him. =:^)

(Meanwhile, FWIW my custom menu/launcher of choice is pdmenu, run in 
kconsole as it's a slang-based TUI, not CLI or X/wayland GUI.  I have 
pdmenu's colors set and use a custom transparent konsole profile, calling 
konsole with options to hide the toolbar, tabbar, etc as well as to launch 
it with that profile, plus I have a kwin window rule for it to hide the 
titlebar and border, so it's transparent except for the TUI menu itself, 
making the menu appears to popup as its own borderless text-based window.  
And I have an entire "ecosystem" of custom pdmenus setup with the a main 
menu and initial children each configured with their own (kde level) 
hotkeys.  This includes a general "config" menu with a "kde" submenu, 
which has an "all" entry which launches plasma systemsettings, along with 
all my individual kcmshell6 $kcm entries.  Given this pdmenu "ecosystem" I 
rarely invoke the normal kde app menu unless it's just to explore options 
I use seldom enough that I don't have a direct hotkey setup for them or a 
pdmenu entry, and even then if I know the name (say for something like 
kruler or kcharselect), I'll tend to use krunner to run them by name 
instead.  So I might open the main plasma launcher maybe a couple times a 
month if that?  In any case it's definitely less often than I update it 
since I'm running kde from live-git!)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



More information about the kde mailing list