su дает вам права root, но не меняет переменную PATH и текущий рабочий каталог. поэтому вы не можете запускать файлы в папке / usr / sbin.
su- тоже изменяет ПУТЬ ... и домашний каталог root становится вашим текущим рабочим каталогом. вы становитесь настоящим пользователем root и можете выполнять все команды.
getWindowState :: X (WindowSet)
getWindowState = do
XState { windowset = old } <- get
return $ old
Вышеупомянутое дает вам WindowSet
, затем вы ищете «сфокусированное» окно, как только оно у вас есть, вы можете выполнить простое if else и соответствующее действие.