The linux kernel has no concept of "active window process". It has the concept of "current process", and deciding which process that is, is exactly the job of the scheduler. :P
I'd love to see more focus on this in the Linux scheduler, at least allowing an optional mode for interactive use. It's frustrating to have my entire system occasionally grind to a halt because of compilation or a particularly beefy test suite.
That's what (in)famous kernel dev Con Kolivas[1] was doing up to late noughties. I'm not sure if he's still active in maintaining out of tree schedulers though.