Выполнение скрипта при смене окна

Есть ли простой способ выполнить скрипт при смене активного окна?
Есть ли универсальное решение для Xorg и Wayland ?

Моя цель - выполнить скрипт, который будет определять, выполнять или не выполнять другой скрипт при смене текущего окна.

Другими словами, когда я меняю активное окно (не обращая внимания на тип события: событие мыши или клавиатуры, ...), должен выполняться скрипт.
[ Затем скрипт проверяет имя текущего окна и выполняет скрипт, если оно соответствует определенному шаблону (например, "является ли текущее окно интернет-браузером?"). Но эта часть не обсуждается. ]

Как бы вы это сделали?
. Я думал сделать демон опроса (каждые .5s), который запускает скрипт и использует xdotool для получения имени окна.
Но опять же я хотел бы услышать больше идей.

Заранее спасибо.

-1
задан 20 December 2019 в 14:20

1 ответ

Для тех, кому интересно, вот как мне удалось заставить это работать.

Я создал скрипт:

#!/usr/bin/sh

while true
do
    if [[ "$(xdotool getwindowfocus getwindowname)" =~ "Chrome" ]]
    then
        xbindkeys 2>/dev/null
    else
        killall xbindkeys 2>/dev/null
    fi
    sleep 0.5
done

Я запускаю этот скрипт при входе в систему, когда я переключаюсь в окно Chrome xbindkeys запускается вместе с файлом конфигурации ~/.xbindkeysrc, содержащим Ключи Emacs.
Это не очень элегантно, но работает.

0
ответ дан 22 December 2019 в 12:57

Другие вопросы по тегам:

Похожие вопросы: