Как я могу переадресовать глобальные горячие клавиши программе, которая слушает только тогда, когда окно находится в фокусе?

Канал — это форма перенаправления (передачи стандартного вывода в другое место назначения ), которое используется в Linux и других Unix-подобных -операционных системах для отправки вывода одной команды/программы/процесса в другая команда/программа/процесс для дальнейшей обработки. Системы Unix/Linux позволяют подключать стандартный вывод команды к стандартному выводу другой команды. Вы можете сделать это, используя символ вертикальной черты «|».

Конвейер используется для объединения двух или более команд, и в этом случае выходные данные одной команды действуют как входные данные для другой команды, а выходные данные этой команды могут действовать как входные данные для следующей команды и так далее. Его также можно представить как временное соединение между двумя или более командами/программами/процессами. Программы командной строки, выполняющие дальнейшую обработку, называются фильтрами.

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

Синтаксис:

command_1 | command_2 | command_3 |.... | command_N 

Пример :Список всех файлов и каталогов и его ввод в команду more.

$ ls -l | more 

Команда moreиспользует вывод ls -lв качестве входных данных. Чистый эффект этой команды заключается в том, что вывод ls -lотображается по одному экрану за раз. Трубы действуют как контейнер, который принимает выходные данные ls -lи передает их moreв качестве входных данных. Эта команда не использует диск для подключения стандартного вывода ls -lк стандартному вводу more, поскольку конвейер реализован в основной памяти. С точки зрения операторов перенаправления ввода/вывода приведенная выше команда эквивалентна следующей последовательности команд.

$ ls -l -> temp
more -> temp (or more temp)
[contents of temp]
rm temp

Еще 1 , 2 , 3

0
04.01.2021, 02:00
1 ответ

Вы можете сделать это,

  1. Найдя оба,
    • Текущее активное окно.(src)
    • Целевое окно.(dst).
  2. Сценарии,
    1. отскочить наdst
    2. передача ключа
    3. возврат кsrc

Чтобы найти открытое окно, вы можете использовать xdotool,

src=$(xdotool getwindowfocus)
dst=$(xdotool search --onlyvisible --class "Chromium")

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

export key="Ctrl+P"
xdotool windowfocus --sync "$dst" key "$key" windowfocus --sync "$src"
3
18.03.2021, 22:39

Теги

Похожие вопросы