Делайте работу «читать», когда не фокусируетесь на терминале

У меня есть следующий скрипт, который спамает кнопку в программе при нажатии кнопки V

#!/bin/bash winid=$(xdotool search "application name here" | head -n1) while true; do read -rsn1 input if [ "$input" = "v" ]; then xdotool keydown --window $winid "button" xdotool keyup --window $winid "button" fi done 

Однако это работает только тогда, когда терминал сконцентрирован, есть ли способ заставить его прослушивать все нажатия клавиш?

One Solution collect form web for “Делайте работу «читать», когда не фокусируетесь на терминале”

Это работает для пользователя root :

 cat /dev/input/$(grep -E 'Handlers|EV=' /proc/bus/input/devices | \ grep -B1 'EV=120013' | grep -Eo 'event[0-9]+') | \ while read -rsn1 foo ; do echo "$foo" ; done | nl 

Вывод (до Ctrl-C ):

  1 ԥ 2  W 3 ^ 4 5 

Код читается от того, какой файл / dev / input / event * в настоящее время соответствует клавиатуре. Echos каждое нажатие на отдельные строки, затем номера каждой строки – нажатия клавиш быстро накапливаются, поэтому номера строк помогают показать, что процедура работает.

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


Код grep выше заимствован из ответа JacobP здесь: захват клавиатуры клавиатуры Linux / dev / inputX

  • Каков синтаксис для передачи вывода команды в xargs?
  • Могу ли я имитировать движения мыши через терминал без xdotool?
  • xdotool и xbindkeys
  • Как я могу нажать клавишу Windows с помощью xdotool
  • Запускать программу при нажатии клавиши, не перебивая ключевое событие
  • X: узнать, видимо ли окно пользователю, т.е. не покрыто другими
  • Эмуляция клавиатуры в Wayland
  • Имитация нажатия клавиши PrintScreen
  • Можно ли использовать xdotool в каком-то окне не спереди?
  • минимизация и повышение окна из сценария оболочки
  • Как получить идентификатор окна из идентификатора процесса
  • Interesting Posts

    Не удается прочитать прежнюю внутреннюю файловую систему hdd через usb (конфликт имен группы томов fedora)

    Почему STREAMS отмечали устаревание в POSIX.1-2008?

    Что является преимуществом (-ами) запуска приложений в backgound?

    Является ли стандартом иерархии файловой системы стандартом UNIX или стандартом GNU / Linux?

    Отключить эффект перекрытия переключателя рабочего пространства

    linux – управление доступом на основе контекста

    Как можно перечитать образ с dd, чтобы он соответствовал тому, который вы только что написали?

    Как переносить текстовый файл на основе символов

    Создание зашифрованного раздела на существующем диске с одним основным разделом при сохранении данных

    Способ интерактивного редактирования некоторого текста из оболочки

    Перенаправление. Что такое «<>», «<&» и «> & -»?

    Как заблокировать Solaris 10?

    Почему мой скрипт медленно использует все больше и больше памяти? Это из-за мидори?

    Как изменить разрешение только внутри каталога?

    Начиная учиться Unix и Linux

    Linux и Unix - лучшая ОС в мире.