есть игра в которой уровень повышается в зависимости от проведенного времени в игре , если окно потеряет фокус , то персонаж входит в афк и уровень не насчитывается
Ну, вообще-то только одно окно может быть активным. Но это еще надо выяснить, как они считают, что окно активно. вариант - запустить вложенный X server и в нем твое окно. (см. Xephyr).
Еще как вариант (умозрительно). Посылать окну фейковые сообщения мыши или клавиатуры через xdotool (метод через XSendEvent или XTEST - и тот, и тот пробовать), например. Но надо смотреть, что получится. Но не ясно, будет ли это считаться приложением за пребывание в окне.
Так цель же, как я понимаю, не активно пользоваться двумя окнами одновременно, а чтобы одно окно было всегда активным, даже если используются другие. Вот и запускать это окно в отдельных иксах, где оно будет всегда активным, а другие окна запускать в другой сессии.
и что, реально на одном компе одновременно «активно пользоваться» двумя иксами?
На одном компе можно запустить много иксов. Но большой необходимости в отдельных настоящих иксах нет в данном случае. Вложенный сервер должен помочь, кроме тех случаев, когда программа отказывается по каким-то причинам в нем запускаться. Ну и остается вопрос, как программа считает, что она активна. Ведь не только фокус может приниматься во внимание, но и какая-то пользовательская активность в окне: что-то нажимает, что-то печатает, мышкой водит в окне. Если так, то одним фокусом не отделаться - надо будет имитировать фейковую активность .