Настройка кнопки большого пальца MX Master для мыши на Mint 18.1

Оператор перенаправления меняетнаправление вывода (или источник ввода). 3>&1означает «сделать так, чтобы файловый дескриптор 3 указывал туда, куда в данный момент указывает файловый дескриптор 1» (который является терминалом). 3>fileозначает «сделать так, чтобы файловый дескриптор 3 указывал на file». За то короткое время, когда fd 3 указывал на терминал, ничего не произошло, так что вы не получите никакого вывода терминала.

Чтобы получить одни и те же данные в двух местах, что-то должно копировать данные. Это работа tee.Для каждого прочитанного байта он выводит этот байт дважды (если задан один файловый аргумент плюс его стандартный вывод).

Пусть вас не смущает тот факт, что >&иногда называют дублированием. Он дублирует файловый дескриптор: 3>&1дублирует fd 1 в fd 3, что означает, что данные, идущие в fd 1, и данные, идущие в fd 3, объединяются — они оба идут туда, куда указывал fd 1.

Если вы предпочитаете графические пояснения, см. , что подразумевается под соединением STDOUT и STDIN? и Как команда может иметь более одного вывода?

В любом случае ваша команда ничего не выводит на файловый дескриптор 3, поэтому перенаправление fd 3 ничего не меняет. Команда dateзаписывает в свой стандартный вывод, то есть fd 1, и вы не перенаправляете его.


В Zsh есть функция, называемая multios, которая изменяет значение перенаправления вывода. Если существует несколько перенаправлений вывода для одной и той же команды в одном файловом дескрипторе, то первое изменяетместо, куда указывает этот дескриптор, а последующие реплицируютданные в указанные цели. Например, чтобы получить вывод в файл в дополнение к тому, куда указывал стандартный вывод, вы можете использовать

date >&1 >file

Zsh выполняет работу tee.Обратите внимание, что порядок перенаправления имеет значение – date >file >&1будет дважды записывать в file, поскольку к тому времени, когда оператор >&1вычислит стандартный вывод от датыуже собирается в файл.

1
14.02.2017, 18:31
1 ответ

Используя evtest для проверки входных устройств evdev ядра и xev , чтобы проверить, какие события получает X, вы можете увидеть, что это действительно Ctrl Alt Последовательность вкладок (первые три события - это нажатия клавиш, последние три события - отпускание клавиш в обратном порядке).

Из журнала xev также видно, что какое-то приложение, возможно, ваш оконный менеджер, распознает последовательность: оно подавляет событие Tab и вместо этого начинает действовать самостоятельно (что поэтому xev получает FocusOut ). Следующие события PropertyNotify и KeymapNotify указывают, что это действительно очень вероятно оконный менеджер и, возможно, он пытается изменить раскладку клавиатуры или что-то подобное.

Это означает, что все работает по назначению: MX-мастер мыши отправляет последовательность, последовательность понимается X, и некоторая программа реагирует на последовательность.

Если реакция не та, которую вы хотите, вам необходимо определить программу, которая на нее реагирует (закройте все приложения, попробуйте еще раз с помощью xev , если то же самое произойдет, это еще один признак того, что это окно manager), найдите файлы конфигурации этой программы, выясните, где последовательность появляется в файлах конфигурации, и измените ее на то, что вам нравится.В любом случае, будет хорошей идеей внимательно прочитать документацию для вашего оконного менеджера, потому что именно там должны быть настроены реакции на последовательности , даже если оказывается какая-то другая программа ( xbindkeys ] и т. д.) проглатывает этот.

0
28.01.2020, 01:01

Теги

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