this post was submitted on 07 Mar 2024
10 points (100.0% liked)

Linux Questions

1059 readers
2 users here now

Linux questions Rules (in addition of the Lemmy.zip rules)

Tips for giving and receiving help

Any rule violations will result in disciplinary actions

founded 1 year ago
MODERATORS
 

Title. Plasma 6 just dropped on my arch-based distro, and it came with an option for a colorblindness correction filter:

Neat little tool that my Protanope ass was very excited about, and it works.

The thing is.

Some time ago Windows also introduced one of those, and in Windows, you can turn it on and off with a key-combination shortcut. I use that a lot on Windows, to keep the filter off and turn it on just when it is necessary (look, every person experiences colorblindness differently, and on my end, these filters while useful for certain kinds of work, are very ugly most other times)

Now, I already know I can set a key-combination shortcut to a terminal command on plasma. Easy peasy.

But for me to do that on plasma I'd need to have a way to switch the effect on and off from the terminal.

I know that I can do systemsettings kcm_kwin_effects to launch the configs app straight into the relevant tab. But now I'm wondering if I could make that even more automatic, maybe using the --args thing, which apparently is literally meant for sending commands directly to the configuration module. But then I wouldn't know what the command is.

top 7 comments
sorted by: hot top controversial new old
[–] possiblylinux127 5 points 8 months ago (1 children)

I think the tool you are looking for is kwriteconfig. I am not sure how to use it but it seems like it can do what you want.

[–] [email protected] 2 points 8 months ago* (last edited 8 months ago) (1 children)

Thanks to your hint I did some tinkering.

Made a backup of my kwinrc file, enabled the effect plugin, checked the diff between the backup and the now-changed-by-the-settings-gui file -- And indeed there it was, a line saying colorblindnesscorrectionEnabled=true in there.

However:

  • kwriteconfig seemingly doesn't work like I thought it did, as just doing kwriteconfig6 colorblindesscorrectionEnabled false does nothing -- This, I imagine, is just me not knowing how to work the command itself.

But ALSO!

  • Manually editing the rc file to remove/change that line in a text editor did not remove the effect, HOWEVER, upon opening the settings gui app, the checkbox for the plugin was unchecked (requiring me to check and uncheck and apply to disable it proper) -- Which tells me that "editing the file might work but I'd have to run some command to reload the configs and make it go through" -- I did however try qdbus org.kde.KWin /KWin reconfigure (after searching "how to reload kde configs from terminal") and it did nothing, so that is NOT the command I need.

Overall promising discoveries, hoping someone can see this and give me the clue I need to make it work.

EDIT: I FOUND IT!

[–] possiblylinux127 2 points 8 months ago (1 children)

Well good luck finding an answer. Just remember to keep this post updated.

[–] [email protected] 2 points 8 months ago

Just did, posted a comment explaining it, will update the main post to mark it solved

[–] [email protected] 5 points 8 months ago

I figured it out. After another comment mentioned qdbus, I realised I had qdbusviewer, so I ran that and fucked around in it looking at the services and methods from them and trial-and-erroring for a bit

And I found the command I needed to make it happen. It's a single command too, no need for scripts:

It's: qdbus6 org.kde.KWin /Effects toggleEffect colorblindnesscorrection

It was under Effects rather than Plugins

[–] [email protected] 3 points 8 months ago (1 children)

I'm not on Plasma 6 yet, so I can't tell you exactly what to run, but you can find out yourself.

First, figure out what needs to be changed in the config files.
To do so, you can run git init in ~/.config. Then run git add . in there.
Now change the setting you want to change in the UI.
And now run git diff to see what changed.

I'll use enabling the Wobbly Windows effect as an example.

So, my diff looks like this:

[Plugins]
...
+ wobblywindowsEnabled=true

(The wobblywindows-line got added into the Plugins group.)

Now you can switch off Wobbly Windows in the UI settings and then use these commands (with the appropriate parameters in kwriteconfig5) to switch it on again, and tell KWin to load the new settings:

kwriteconfig5 --file ~/.config/kwinrc --group Plugins --key wobblywindowsEnabled true
qdbus-qt5 org.kde.KWin /KWin reconfigure

Presumably, those "5"s need to be "6"s on Plasma 6.

You can also check git diff again to see whether it changes the config file correctly.

To actually toggle the value, you'll have to write a script. You can use kreadconfig to read out the current value:

kreadconfig5 --file ~/.config/kwinrc --group Plugins --key wobblywindowsEnabled

Make sure, you clean up the Git repo we created in your ~/.config folder once you're done:

rm -rf ~/.config/.git/
[–] [email protected] 2 points 8 months ago* (last edited 8 months ago)

I am thankful for you explaining how to ACTUALLY work with kwriteconfig. It did work with kwriteconfig6 --file ~/.config/kwinrc --group Plugins --key colorblindnesscorrectionEnabled false in that the file changed the way I expected it to.

BUT

While the command does work for changing the configuration on the file -- the qdbus command to reload it doesn't seem to work.

EDIT: I FOUND IT!

See my post (assuming that's already up, am writing it) if you care about the details