Every little girl wants a pony . <| sep |> I love how a lot of people turn this around with the entitlement tactic and come with You ' re expecting developers to cater to your specific use case . No , I ' m expecting protocol designers to allow me to cater to my own specific use case #! binsh set eu traditionalsexplorer . exe SC 2 . exe SC 2 Editor . exe runconf if $ last ! $ 1 then last $ 1 runconf $ last fi while true do stdbuf o 0 xev root event property head c 1 devnull sleep 0 . 5 class $ xprop id $ xdotool getactivewindow WMCLASS sed r ' s . , $ 1 ' case $ traditionals in $ class runconf xsetuptraditional runconf xsetup esac doneWhat is this ? This is a 25 line shell script that changes keyboard layout depending on which window has focus because I need certain video games to have a ' traditional ' layout opposed to my highly customized one to work and changing it manually is annoying . How does it work ? It uses X 11 ' s ability for a script to query what window currently has focus , to get notified on window focus change , examine the class of that window and to change the keyboard layout programmatically . All very open ended primitives , but they allow me to write this simple functionality of automatically changing keyboard layouts based on what window has focus . I never asked Wayland compositor devs to cater to my specific use case . I just feel the protocol needs to have the querying that allows me to do so if all else fails .