You can write a Kwin script and connect to the windowActivated
function. Unfortunately you can't run arbitrary command from Kwin script, but as suggested in the comment you can use DBus to workaround that.
workspace.windowActivated.connect(function(client) {
if (client != null && client.caption == "name") {
callDBus(...); // call your DBus function which call ddcutil
}
})
Just an example, you will have to do some trial and error yourself!
Not specified for this research but... if you rely on LLM to write code that is security-sensitive, I don't expect you to write secured code without LLM anyway