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

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

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

Благодарю.

  • Исправлена ​​пересылка X11 на OSX
  • Программа, запускаемая из udev, не может открыть окно
  • Не удается запустить определенные полноэкранные приложения
  • Где Linux vncserver (Xvnc) получает список возможностей геометрии
  • как использовать xrandr для зеркального отображения только части моего главного экрана?
  • Как выйти из TTY и в X сеанс
  • Кто начал xterm в моей системе киевских xterm + lightdm?
  • Скрипт для переключения setxkbmap
  • 2 Solutions collect form web for “Захват управления клавиатурой в сценарии оболочки”

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

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

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

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

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

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

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

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

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

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