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

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

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

Благодарю.

2 Solutions collect form web for “Захват управления клавиатурой в сценарии оболочки”

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

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

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

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

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

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

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

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

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

  • Почему система X Window использует сервер?
  • Возможно ли использовать мышь в ярлыке?
  • x11vnc оконный менеджер
  • Bumblebee: Как исправить «Экран 1 удаленный» -Error
  • Счетные окна
  • Сообщение emacsclient отказано
  • Использование переназначенной клавиши Left Control <LCTL> в качестве ярлыка
  • Как использовать параметр setxkbmap -geometry?
  • Уменьшает ли окно использование свободной памяти?
  • Графические сбои на Intel HD Graphics 530
  • Какой сигнал отправляет X своим клиентам, когда он получает SIGINT?
  • Interesting Posts

    Как остановить повторяющиеся сообщения об ошибках в сообщениях и auditd.log?

    Функция Shell, которая потребляет два аргумента за одну итерацию цикла

    Странная escape-последовательность

    Сервер и клиент OpenVPN – больше не может подключиться к сети?

    Звук HDMI выходит из строя, решает, спустя несколько месяцев повторяет отказ (Intel NUC – монитор Viewsonic)

    zsh с использованием процессора на 100% после запуска редактора атома

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

    системный администратор проблемы (например, GNS3 для сетей)

    Расширение расширения * в эхо

    Что означает ESRCH?

    Тест Bash на успешной команде subshell возвращает false

    Как отправить текст команде, а затем читать с терминала

    Как установить задание Cron, которое выполняется каждые три часа в течение неопределенного периода времени; с регистрацией?

    перенаправить в тот же файл, что и исходный файл, обработанный командой

    Используйте X на промежуточной машине

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