Захват управления клавиатурой в сценарии оболочки

У меня есть определенный скрипт shell (zsh), который читает по одному символу за раз и после этого выполняет действие. В оболочке это реализуется посредством «read -k» в цикле. Я хочу выполнить скрипт как комбинацию клавиш, не открывая оболочку.

Каков самый простой способ захватить клавиатуру для этого? Я мог бы использовать dmenu, если бы захотел прочитать целую строку, но сценарий должен иметь возможность анализировать символы по одному.

Благодарю.

  • выполнять команду по движению указателя, ждать и возвращаться?
  • Отладка паники ядра в X-сервере
  • Флаг -X (пересылка X11) не работает в Windows
  • Перемещение выделенной клип-карты в основную часть при поступлении нового контента
  • Что такое .serverauth. ##### файлы в моем домашнем каталоге?
  • Linux Mint 18: xmodmap и третий уровень не работают на firefox и texstudio
  • Клавиатура ноутбука иногда перестает работать
  • Что делает эта команда «xhost ...»?
  • 2 Solutions collect form web for “Захват управления клавиатурой в сценарии оболочки”

    (попытался опубликовать комментарий, но я получаю сообщение об ошибке – попробую ответить)

    Когда вы говорите «выполнить из ярлыка» «без открытия оболочки», вы говорите в графической среде (X11), не открывая окно эмулятора терминала?

    Команда командной оболочки считывает символы с символа «стандартный вход», не обязательно на клавиатуре.

    Терминальный эмулятор получает в своем окне события клавиатуры X11 и отображает поток символов (который обычно начинается как стандартный ввод).

    Если вы хотите использовать read но не эмулятор терминала, вам понадобится что-то еще, чтобы сопоставить события нажатия клавиш X11 в окне символа. (возможно, «корневое окно»)

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

    xbindkeys могут зарегистрироваться для горячих клавиш и выполнять все, что вы хотите. Таким образом, у вас может быть ключ, который активирует вашу программу, а затем сделает все, что вам нужно.

    Вещь для запуска будет эмулятором терминала с zsh, запускающим ваш скрипт, который непосредственно read -k . Таким образом, вам не нужно запускать терминал самостоятельно. Обратите внимание, что вы можете указать, что терминал подходит для любого размера (например, небольшой).

    Без ключа активации (или любой другой активации) мне непонятно, как вы хотите отличить, когда обычный ввод клавиатуры должен идти в вашу программу или другие приложения, которые вы можете использовать.

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