Как можно запустить скрипт, инициированный входом джойстика?

Сначала генерируйте индексы для mainFile,

sed 's/ /\n/g' mainFile | sort | uniq > mainFile.idx

Затем сделайте grep для фиксированных строк:

grep -F -f mainFile.idx file*

3
10.03.2015, 01:14
3 ответа

xev

Я не полагаю, что можно использовать xev обнаружить джойстики. Я использую Fedora 19 и существует названный пакет joystick который устанавливает этот пакет, linuxconsoletools. Этот проект - то, что Вы ищете.

проект linuxconsole

Это содержит много инструментов для снятия трубки джойстиков так, чтобы их сигналы были получены Ядром 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

Ubuntu

Я не имею установку 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>

Переопределенные кнопки джойстика отправят любую клавишу, которую Вы нажимаете вместо кнопок джойстика к приложению.

QJoy

Другая альтернатива должна использовать приложение QJoyPad. Я не мог протестировать это, так как у меня нет джойстика. GUI должен быть похожим на это.

                               ss of qjoypad

От этого 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, откроется соответствующей открытой папкой.

Ссылки

2
27.01.2020, 21:23
  • 1
    Последний комментарий OP был для Вас, я думаю. спасибо –  terdon♦ 05.01.2014, 10:48
  • 2
    за Ваш всесторонний ответ. Я думаю, что у меня почти есть все, что я должен сделать то, что я хочу. Заключительная часть загадки - то, как отобразить комбинацию нажатий кнопки к ключу или запускать скрипт. Еще раз спасибо, Jody.Править: на самом деле я думаю, что Вы показали мне, как уже сделать это, извините. Я буду делать попытку и сообщать. –  Jody 06.01.2014, 12:22

Я пошел немного другим путем и разработал легкий фоновый демон для запуска скрипта после нажатия специальных кнопок:

https://github.com/workinghard/jslisten

1
27.01.2020, 21:23

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

Решение, которое я придумал, основано на модуле Python pygame.Он позволяет взаимодействовать с событиями, запускаемыми джойстиком -, с довольно простым сценарием уровня -. Это позволило мне вызвать приложение с

os.system("lxterminal -e <application_name>")

так как в моем случае приложение нужно было запускать с терминала. Но, я думаю, любая скриптовая команда сработает. Если вы уже настроили свой джойстик, вам нужен только какой-то другой инструмент тестирования, чтобы узнать номер кнопки, который нужно проверить в коде. По другим предположениям, jstestиз пакета joystickработает хорошо.

Вероятно, не самый умный вариант, но он работает и довольно прост, если вы немного знакомы с Python. Сценарий «прослушивания» также может быть запущен автоматически в фоновом режиме как служба с помощью systemd.

0
07.11.2020, 23:06

Теги

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