bash, найдите порядок фокусированных окон (аналогично меню alt + tab) - PullRequest
0 голосов
/ 24 мая 2019

Высокий уровень, я пытаюсь создать утилиту, в которой я могу сопоставить определенные ключи, чтобы сфокусировать самое последнее окно с определенным именем.

Например, нажатие sup + c приведет к фокусировке хрома;если хромированные окна не открыты, это создаст новое хромированное окно;если открыто несколько окон Chrome, оно будет фокусироваться на последнем.Точно так же sup + t может сделать то же самое для терминала и т. Д.

Я могу использовать xdotool search --name <window-name>, чтобы найти идентификаторы окон с определенным именем.Я могу следовать с xdotool windowactivate <id>, чтобы сфокусировать это окно.

Однако, xdotool search возвращает все идентификаторы соответствующих окон;тогда как я хочу найти последнее сфокусированное подходящее окно.

1) Есть ли способ отсортировать это по последним?

2) Или, возможно, способ получить все окна по последнему фокусу, и тогда я смогу сравнить этот список с идентификатором, возвращенным xdotool search?

3) Или, возможно, способ вызывать обратный вызов всякий раз, когда изменяется фокус окна, чтобы я мог вручную отслеживать окна, упорядоченные по последнему фокусу?

4) Есть ли другие подходы?

1 Ответ

0 голосов
/ 24 мая 2019

Случайно выяснилось, кажется, что xdotool search уже упорядочено, начиная с окон с самым старым фокусом (вверху) и до самого последнего фокусированного (внизу).

Если вы откроете 4 окна терминала и напечатаете их идентификаторы, используя xdotool getactivewindow, то в одном типе xdotool search --name terminal их идентификаторы будут напечатаны в порядке, описанном выше.

Редактировать: очевидно, это не всегда так. Хотя это работало для меня последние несколько дней, я заметил, что окна Chrome будут перечислены выше других окон независимо от порядка фокусировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...