Управляем приложениями при помощи геймпада

В данной статье мы подробно рассмотрим как реализовать управление любыми приложениями, запущенными под GNU/Linux, при помощи геймпада.

Введение

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

Полностью поддерживаются как проводные, так и беспроводные геймпады, совместимые со стандартом XInput. Для тестов мы использовали проводной геймпад Logitech F310, а также беспроводной Xbox 360.

Установка QJoyPad

Утилита QJoyPad уже доступна в репозиториях Russian Fedora и может быть установлена штатно если они подключены:

sudo dnf install qjoypad

Пользователи дистрибутива Fedora со стандартным набором репозиториев могут установить данный пакет из нашего COPR:

sudo dnf copr enable xvitaly/qjoypad
sudo dnf install qjoypad

Ручная сборка пакета QJoyPad

Пользователи других RPM-based дистрибутивов должны самостоятельно собрать RPM пакет из исходников по заготовленному SPEC-файлу (для сборки потребуется Qt5 SDK):

mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
wget https://github.com/xvitaly/qjoypad/raw/master/qjoypad.spec -O ~/rpmbuild/SPECS/qjoypad.spec
spectool --all --get-files ~/rpmbuild/SPECS/qjoypad.spec --directory ~/rpmbuild/SOURCES/
sudo dnf builddep ~/rpmbuild/SPECS/qjoypad.spec
rpmbuild -ba ~/rpmbuild/SPECS/qjoypad.spec

Результат можно найти в каталоге ~/rpmbuild/RPMS/`uname -m`/, а затем установить штатным для используемого дистрибутива способом.

Настройка QJoyPad

Сразу после запуска программа разместит свой значок в системном трее (или его заменителе). При нажатии на него появится графический конфигуратор.

Главное окно утилиты QJoyPad
Главное окно утилиты QJoyPad

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

Привязка действия событию
Привязка действия событию

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

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

Если что-то сделано неправильно, можно нажать Revert для отката к предыдущей версии настроек, либо Clear для их полного сброса.

Пример файла конфигурации

Пример нашего файла конфигурации для Logitech F310 (режим XInput):

# QJoyPad 4.2 Layout File

Joystick 1 {
	Axis 1: gradient, +key 114, -key 113
	Axis 2: gradient, +key 116, -key 111
	Axis 4: gradient, maxSpeed 5, mouse+h
	Axis 5: gradient, maxSpeed 5, mouse+v
	Axis 8: gradient, +key 111, -key 116
	Button 1: key 36
	Button 2: key 9
	Button 3: mouse 1
	Button 4: mouse 3
	Button 5: mouse 1
	Button 6: mouse 3
}

Данный файл можно импортировать при помощи пункта Import в главном окне.

2 commentary to post

  1. А как заставить джойстик с помощью этой программы управлять место мышки?

    1. Эта программа уже устарела и не поддерживается. Вместо неё рекомендуется использовать AntiMicro.

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

Обсуждение закрыто.