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.

  • Possibly linuxM
    link
    fedilink
    English
    53 months ago

    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.

    • Count Regal InkwellOP
      link
      English
      2
      edit-2
      3 months ago

      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!

      • Possibly linuxM
        link
        fedilink
        English
        23 months ago

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

        • Count Regal InkwellOP
          link
          English
          23 months ago

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

  • Count Regal InkwellOP
    link
    English
    53 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

  • Ephera
    link
    fedilink
    English
    33 months ago

    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/
    
    • Count Regal InkwellOP
      link
      English
      2
      edit-2
      3 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