Сначала генерируйте индексы для mainFile,
sed 's/ /\n/g' mainFile | sort | uniq > mainFile.idx
Затем сделайте grep для фиксированных строк:
grep -F -f mainFile.idx file*
Я не полагаю, что можно использовать xev
обнаружить джойстики. Я использую Fedora 19 и существует названный пакет joystick
который устанавливает этот пакет, linuxconsoletools
. Этот проект - то, что Вы ищете.
Это содержит много инструментов для снятия трубки джойстиков так, чтобы их сигналы были получены Ядром Linux.
выборка с linuxconsole веб-сайта
Этот проект поддерживает инструменты Linux Console, которые включают утилиты, чтобы протестировать и настроить джойстики, подключить устройства прежней версии к входной подсистеме ядра (оказывающий поддержку для мышей с последовательным подключением, сенсорные экраны и т.д.), и протестировать входной слой события.
Пакет включает исполняемые файлы, такие как они
$ rpm -ql linuxconsoletools.x86_64
/usr/bin/ffcfstress
/usr/bin/ffmvforce
/usr/bin/ffset
/usr/bin/fftest
/usr/bin/inputattach
/usr/bin/jscal
/usr/bin/jscal-restore
/usr/bin/jscal-store
/usr/bin/jstest
/usr/libexec/joystick/extract
/usr/libexec/joystick/filter
/usr/libexec/joystick/ident
Я не имею установку Debian в наличии, но Ubuntu также имеет тот же пакет, joystick
. Выполнение команды apt-file list joystick
показывает те же файлы об/мин, которого я упомянул выше.
Я также предложил бы смотреть на названную тему ArchLinux Wiki: Джойстик. Это - вероятно, самый исчерпывающий ресурс по теме, связанной с Linux.
Вышеупомянутое получит Ваш джойстик, работающий в Linux, но не предлагает метода для отображения джойстика к сценарию, по крайней мере, не легким способом. Чтобы сделать что-то как этот, необходимо будет включить в список справку другого приложения. Существует тот, что я знаком с названным jkeys
.
Необходимо будет установить некоторые зависимости сначала для установки его, python-xlib
& python-pygame
. Они должны быть в repos большинства дистрибутивов.
Однако устанавливать jkeys
необходимо будет загрузить его с репозитория подверсии проекта.Примечание: Это записано в Python.
$ svn checkout http://jkeys.googlecode.com/svn/trunk/ jkeys-read-only
После загрузки его можно выполнить его как так:
$ ./jkeys
usage: jkeys joystick.conf application [params]
Для отображения ключа, необходимо будет создать собственное joystick.conf
файл:
<config>
<joystick id="0">
<axis number="0" low="Left" high="Right" />
<axis number="1" low="Down" high="Up" />
<button number="0" key="Space" />
<button number="1" key="Return" />
<button number="2" key="a" />
<button number="3" key="b" />
<button number="4" key="c" />
<button number="5" key="d" />
<button number="6" key="z" />
<button number="7" key="x" />
<button number="9" key="Escape" />
<button number="10" key="p" />
</joystick>
</config>
Теперь, когда Вы готовы выполнить свою игру, Вы делаете это как так:
$ ./jkeys joystick.py <somegame>
Переопределенные кнопки джойстика отправят любую клавишу, которую Вы нажимаете вместо кнопок джойстика к приложению.
Другая альтернатива должна использовать приложение QJoyPad. Я не мог протестировать это, так как у меня нет джойстика. GUI должен быть похожим на это.
От этого GUI Вы могли отобразить любые нажатия кнопки на нажатия клавиш довольно легко.
Хорошо с вышеупомянутыми методами Вы могли использовать другое приложение под названием XBindKeys для отображения любых нажатий клавиатуры для выполнения фактической команды или сценария.
Примечание: Мой пример ниже создает сочетание клавиш так, чтобы Наутилус запустился с определенными открытыми каталогами.
Вы должны будете сначала удостовериться пакеты xbindkeys
установлен.
Затем необходимо будет выполнить следующую команду, только один раз, для создания шаблона xbindkeys
конфигурационный файл.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
С файлом, созданным, можно открыть его в текстовом редакторе и добавить правило как это:
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
С вышеупомянутым изменением, внесенным, мы должны уничтожить xbindkeys
если это уже работает, и затем перезапустите его.
$ killall xbindkeys
$ xbindkeys
Теперь с этим выполнением любого времени я ввожу Наутилус Mod+Shift+Q, откроется соответствующей открытой папкой.
Я пошел немного другим путем и разработал легкий фоновый демон для запуска скрипта после нажатия специальных кнопок:
Я знаю, что вопрос очень старый, но я пишу здесь как ссылку для других пользователей. Я столкнулся с такой же проблемой на своем Raspberry Pi 4. Я хотел запустить графическое приложение, основанное на нажатии определенной кнопки джойстика.
Решение, которое я придумал, основано на модуле Python pygame
.Он позволяет взаимодействовать с событиями, запускаемыми джойстиком -, с довольно простым сценарием уровня -. Это позволило мне вызвать приложение с
os.system("lxterminal -e <application_name>")
так как в моем случае приложение нужно было запускать с терминала. Но, я думаю, любая скриптовая команда сработает. Если вы уже настроили свой джойстик, вам нужен только какой-то другой инструмент тестирования, чтобы узнать номер кнопки, который нужно проверить в коде. По другим предположениям, jstest
из пакета joystick
работает хорошо.
Вероятно, не самый умный вариант, но он работает и довольно прост, если вы немного знакомы с Python. Сценарий «прослушивания» также может быть запущен автоматически в фоновом режиме как служба с помощью systemd
.