Это команда xboxdrv, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
xboxdrv - драйвер геймпада для Xbox / Xbox360, работающий в пользовательском пространстве.
СИНТАКСИС
xboxdrv [ВАРИАНТ] ... [-] [КОМАНДА] [АРГУМЕНТЫ]
ОПИСАНИЕ
xboxdrv - это драйвер для геймпадов Xbox и Xbox360. Он работает путем чтения необработанных данных из
контроллер с библиотекой пользовательского пространства libusb, а затем передает интерпретированные данные в
ядро через uinput. Это позволяет xboxdrv предоставить штатные джойстики и устройства событий,
что делает его совместимым со всем программным обеспечением Linux.
Помимо чистого драйвера, xboxdrv также включает богатый набор параметров конфигурации, которые
позволяют настраивать возможности виртуальных устройств ввода, которые создает xboxdrv.
Это включает в себя базовое переназначение кнопок и осей, а также более сложные вещи, такие как
эмуляция мыши и клавиатуры, эмуляция автоматического огня и управления дроссельной заслонкой.
Также возможно xboxdrv для чтения входных данных непосредственно с устройства событий, это
позволяет использовать конфигурируемость xboxdrv на обычных ПК-джойстиках, клавиатурах и
мышей и, таким образом, позволяет xboxdrv служат той же цели, что и радость2ключ. Посмотреть вариант --евдев
ниже для получения дополнительной информации.
Когда КОМАНДА при условии, что xboxdrv запустит это приложение и будет работать до этого
приложение выходит. Это удобная функция, упрощающая использование xboxdrv в
сценарии оболочки. См. Раздел [Написание сценариев запуска для игр] для получения дополнительной информации.
Информация.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
ОБЩАЯ ИНФОРМАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-h, --Помогите
Показать текст справки и выйти.
-V, --версия
Распечатайте номер версии и выйдите.
-v, --подробный
Печатать подробные сообщения.
--отлаживать
Тогда печатайте еще более подробные сообщения --подробный.
-s, --тихий
Не отображать события контроллера на терминале. Для регулярного использования эта опция
всегда следует использовать, поскольку выходные данные для терминала могут потреблять довольно много ресурсов ЦП.
--тихий
Не отображать стартовый текст и подавлять большинство других выводов.
- приоритет ПРИОРИТЕТНЫЕ
Возможные значения для ПРИОРИТЕТНЫЕ бывают «нормальные» и «в реальном времени». Планирование в реальном времени дает
процесс xboxdrv имеет более высокий приоритет и, таким образом, позволяет ему функционировать должным образом даже
когда машина находится под нагрузкой.
Обратите внимание, что для приоритета реального времени требуется запуск xboxdrv от имени пользователя root при запуске xboxdrv.
как пользователь нет возможности повысить приоритет.
Эта опция устарела, используйте CHRT(1) вместо этого для достижения того же эффекта.
СПИСОК ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
- подсказка
Перечислите возможные значения светодиода.
--help-устройства
Список поддерживаемых устройств.
--list-поддерживаемые-устройства
Список поддерживаемых устройств (используемых xboxdrv-daemon.py).
--list-поддерживаемые-устройства-xpad
Список поддерживаемых устройств в xpad.c стилю.
--help-абс
Перечислите все разрешенные символы EV_ABS.
--help-rel
Перечислить все разрешенные символы EV_REL.
--help-ключ
Перечислить все разрешенные символы EV_KEY.
--help-x11keysym
Перечислите все разрешенные символы X11 Keysym.
--help-ось
Перечислите все разрешенные символы XboxAxis.
- кнопка помощи
Перечислите все разрешенные символы XboxButton.
--help-all
Перечислите все символы, которые можно использовать в --ui-buttonmap, --ui-осевая карта, --buttonmap и
--axismap. Этот вариант аналогичен --help-абс, --help-rel, --help-ключ,
--help-x11keysym, --help-ось и - кнопка помощи.
CONFIG ФАЙЛОВ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-c, --config ФАЙЛОВ
Считывает информацию о конфигурации из ФАЙЛОВ. Конфигурации из файла обрабатываются
как если бы они были параметрами командной строки в позиции --config ФАЙЛОВ.
Синтаксис ФАЙЛОВ - это знакомый синтаксис INI, используемый для многих файлов конфигурации.
Обычные пары ключ / значение должны попадать в раздел [xboxdrv]. '#' а также ';' может быть использован
для комментариев. Имена клавиш по большей части совпадают с именами параметров командной строки.
Параметры командной строки, которые принимают список сопоставлений ввода (--ui-buttonmap,
--ui-axismap, --evdev-absmap, ...) можно разделить на отдельный раздел для
лучшая читаемость.
Команда Примеры/ каталог содержит несколько примеров файлов конфигурации.
[xboxdrv]
тихий = правда
мертвая зона = 6000
dpad-as-button = правда
триггер как кнопка = истина
[UI-осевая карта]
x2 = REL_X: 10
y2 = REL_Y: -10
x1 = КЛЮЧ_A: КЛЮЧ_D
y1 = KEY_W: KEY_S
[UI-карта кнопок]
a = KEY_LEFTSHIFT
b = BTN_C
x = BTN_EXTRA
y = KEY_C
[UI-карта кнопок]
фунт = BTN_RIGHT
rb = ПРОБЕЛ_КЛЮЧА
[UI-карта кнопок]
lt = KEY_Z
rt = BTN_LEFT
[UI-карта кнопок]
dl = KEY_4
dr = KEY_2
du = REL_WHEEL: -1: 150
dd = REL_WHEEL: 1: 150
[UI-карта кнопок]
назад = KEY_TAB
start = KEY_ESC
# конец файла #
--alt-config ФАЙЛОВ
Ярлык для записи --next-config --config ФАЙЛОВ.
Для загрузки нескольких параметров конфигурации используйте:
xboxdrv --config first.ini --alt-config second.ini --alt-config Third.ini
-o, --вариант ИМЯ = ЗНАЧЕНИЕ
Установите параметр, как если бы он был взят из файла конфигурации из командной строки.
--write-config ФАЙЛОВ
Напишите пример файла конфигурации в ФАЙЛОВ.
ДЕЙМОН ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-D, - демон
Запустите xboxdrv как демон. Если задана эта опция, xboxdrv будет слушать udev для USB.
события подключения и потоки драйверов запуска для вновь подключенных контроллеров.
Варианты конфигурации могут быть предоставлены в обычном режиме. Однако обратите внимание, что xboxdrv
при запуске как демон не будет создавать новые устройства uinput по запросу, вместо этого он будет
создавать устройства только один раз при запуске для заданных конфигураций, а затем назначать
новые контроллеры для этих конфигураций. Хотя это означает, что xboxdrv не может поддерживать
неограниченное количество контроллеров, это также означает, что xboxdrv может допускать горячее подключение
даже для приложений, которые не поддерживают его сами, поскольку приложения будут только
увидеть постоянные файлы устройства, а не контроллер, который изменит xboxdrv
под капотом.
Пример конфигурации, поддерживающей три контроллера, будет выглядеть так:
xboxdrv --демон
# параметры конфигурации для первого контроллера
--следующий-контроллер
# параметры конфигурации для второго контроллера
--следующий-контроллер
# параметры конфигурации для третьего контроллера
Команда --соответствие опцию можно использовать, чтобы ограничить слоты контроллера только теми
контроллеры, которые соответствуют данному ПРАВИЛУ и, таким образом, могут использоваться для назначения конфигураций
только для определенных контроллеров.
--отсоединить
Отсоединяет xboxdrv от текущей оболочки, действует только в том случае, если - демон дано.
--pid-файл ФАЙЛОВ
Запишите идентификатор процесса демона xboxdrv в ФАЙЛ.
--dbus АВТОБУС
Установите, к какому типу шины должен подключаться xboxdrv. Допустимые значения для шины: сеанс,
система, отключена и авто. По умолчанию установлено значение «Авто», при котором будут обнаружены соответствующие
Тип шины зависит от того, запущен ли xboxdrv как root (системный или как пользователь (сессия).
Запуск с отключенным полностью отключит поддержку D-Bus.
- при подключении EXE
Запуски EXE когда подключается контроллер. В качестве аргументов "БУСДЕВ:ДЕВНУМ",
"idVendor:idProduct,ИМЯ предоставлены.
- при отключении EXE
Запуски EXE когда контроллер отключается. В качестве аргументов "БУСДЕВ:ДЕВНУМ",
"idVendor:idProduct,ИМЯ предоставлены.
УСТРОЙСТВО ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-L, --список-контроллер
Список доступных контроллеров в системе.
-i, --я бы N
Используйте контроллер с идентификатором N (по умолчанию: 0), используйте --список-контроллер получить список
доступный контроллер.
-w, --вид N
Используйте беспроводной контроллер с wid N (по умолчанию: 0).
--устройство по пути АВТОБУС: DEV
Используйте контроллер на BUS: DEV, не выполняйте автоматическое сканирование. Полезно для кейсов
когда контроллер не известен xboxdrv, но поддерживает один из указанных протоколов.
- устройство по идентификатору ПОСТАВЩИК: ПРОДУКТ
Используйте устройство, которое соответствует VENDOR: PRODUCT (как было возвращено lsusb). Полезно для кейсов
когда контроллер не известен xboxdrv, но поддерживает один из указанных протоколов.
--тип ТИП
Игнорировать автоопределение и принудительно указать тип контроллера. Возможные значения для ТИП:
· Xbox
· Xbox-mat
· Xbox 360
· Xbox360-беспроводной
· Xbox360-гитара
· Огненная буря
· Firestorm-vsb
· Saitek-p2500
· Generic-usb
Команда универсальный-usb type - это особый тип, который будет работать с любым контроллером USB, он будет
однако не интерпретируйте вводимые данные, а просто выгружайте их на консоль для разработки.
целей. Видеть --generic-usb-спецификация для дополнительной информации.
-d, --detach-ядро-драйвер
Отсоединяет драйвер ядра, который в настоящее время связан с данным устройством. Этот
полезно, когда у вас загружен модуль xpad и вы хотите использовать xboxdrv без
разгружая его.
--generic-usb-спецификация ИМЯ = ЗНАЧЕНИЕ, ...
Позволяет указать, с какой конечной точки универсальный-usb буду читать. Спецификация как
форма ИМЯ = ЗНАЧЕНИЕ, .... Допустимые значения:
vid = HEX
Идентификатор поставщика контроллера, к которому применяется данная спецификация.
pid = HEX
Идентификатор продукта контроллера, к которому применяется данная спецификация.
if = NUM Интерфейс, из которого следует читать GenericUSBController
ep = NUM Конечная точка, из которой следует читать GenericUSBController
ЕВДЕВ ВАРИАНТ
--евдев УСТРОЙСТВО
Позволяет читать входные данные с обычного устройства событий. Это позволяет использовать
xboxdrv на штатных джойстиках ПК. Данные, которые считываются с устройства событий,
внутренне преобразован в объект XboxMsg, а затем передан через тот же
конвейер конфигурации, как это было бы для обычного контроллера Xbox360. Это позволяет
вы можете использовать все стандартные возможности настройки, но ограничивает вас количеством
ось и кнопки, которые предоставляет контроллер Xbox360.
Поскольку обычный компьютерный джойстик, скорее всего, уже создаст / dev / input / jsX устройство по
сам по себе, вам может потребоваться избавиться от этого, чтобы игра правильно обнаруживала
джойстик, созданный xboxdrv. Самый простой способ добиться этого - просто
удалите старый джойстик и переименуйте устройство, которое xboxdrv создан для
/ dev / input / js0. При использовании udev эта операция должна быть безвредной и
автоматически перевернуть себя, когда вы снимаете контроллер и снова подключаете его или
при перезагрузке компа.
--evdev-отладка
Обработчик событий evdev распечатает все полученные события в стандартный вывод, это делает его
легко увидеть, какие события отправляет данный контроллер.
--evdev-не-хватать
По умолчанию драйвер evdev захватывает устройство, что делает невозможным
другие приложения для получения событий с этого устройства. Это сделано, чтобы избежать
запутывающие приложения, иначе приложение получало бы каждое событие дважды, один раз
с исходного устройства и один раз с виртуального xboxdrv. В некоторых случаях это
поведение нежелательно, например, при отображении только необработанного подмножества
клавиши устройства, т. е. отображение мультимедийных клавиш на клавиатуре, поэтому этот параметр
выключает захват.
--evdev-absmap АБСМАП, ...
ABSMAP = EVDEV_ABS ["+", "-"] "=" XBOXAXIS;
Устанавливает, как события evdev сопоставляются с событиями оси Xbox. Пример конфигурации
будет выглядеть так:
--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_THROTTLE=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y
xboxdrv будет выводить при запуске полный список имен событий, которые данное событие
поддерживает устройства и может использоваться вместо ЭВДЕВ_АБС.
Также можно отобразить полуось с помощью такой команды, как:
--evdev-absmap ABS_Y + = LT, ABS_Y- = RT
Это отобразит восходящее движение оси Y на левый триггер и
движение вниз к правому курку.
--evdev-раскладка клавиатуры КЛАВИАТУРА
Устанавливает, как события evdev сопоставляются с событиями контроллера Xbox. Пример
конфигурация будет выглядеть так:
--evdev-keymap BTN_TRIGGER = a, BTN_THUMB = b, BTN_THUMB2 = x
xboxdrv будет выводить при запуске полный список имен событий, которые данное устройство событий
поддерживает.
статус ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-l, --вел NUM
Установите статус светодиода. Возможные значения для NUM составляют:
LED Статус: Коды
Число Поведение
0 выключен
1 все мигают
2 1 / верхний левый мигает, затем горит
3 2 / мигает в правом верхнем углу, затем горит
4 3 / нижний левый мигает, затем горит
5 4 / внизу справа мигает, затем горит
6 1 / вверху слева
7 2 / вверху справа на
8 3 / внизу слева вкл.
9 4 / внизу справа на
10 поворот
11 мигает
12 мигают медленнее
13 вращаются с двумя огнями
14 мигает
15 моргнуть один раз
- шарить-усиление СУММА
Вы можете изменить силу грохота с помощью:
$ xboxdrv --Rumble-gain 50%
Также возможны значения, превышающие 100%, которые будут усиливать небольшой гул.
Команды, гул команды уже на максимуме останутся без изменений.
-q, --покидать
Выйдите из xboxdrv после установки значений светодиода или грохота.
ЧАТПАД ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ (ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ)
Поддержка чат-панели все еще экспериментальная. Базовое использование клавиатуры будет работать, однако
в настоящее время нет поддержки настройки или клавиш-модификаторов зеленого и оранжевого цветов.
Запуск xboxdrv несколько раз подряд с --чатпад опция может привести к сбою
контроллер. Отключение и повторное включение должно сбросить его.
--чатпад
Включает поддержку панели чата Xbox360. ВНИМАНИЕ: это предварительный код, он
приведет к сбою вашего геймпада при многократном запуске xboxdrv и не предоставит
правильное отображение любых умляутов и специальных символов.
--chatpad-без-инициализации
Это запустит поддержку чат-панели без отправки последовательности инициализации, таким образом
потенциально избежать сбоя контроллера, если xboxdrv запускается несколько раз.
--chatpad-отладка
Выведите необработанные данные чат-панели в стандартный вывод для отладки.
ШЛЕМОФОН ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ (ЭКСПЕРИМЕНТАЛЬНАЯ, XBOX360 USB ТОЛЬКО)
Xboxdrv не поддерживает гарнитуру, варианты ниже предназначены только для разработчиков и будут
дампить необработанные данные гарнитуры, а не файлы .wav.
- гарнитура
Включите поддержку гарнитуры и выгрузите входящие данные в стандартный вывод.
- дамп гарнитуры ФАЙЛОВ
Включите поддержку гарнитуры и выгрузите входящие данные в ФАЙЛ.
- гарнитура-игра ФАЙЛОВ
Включите поддержку гарнитуры и отправьте ФАЙЛ на гарнитуру для воспроизведения.
ЗАСТАВИТЬ СВЯЗЬ
--с силовой обратной связью
Включает стандартный интерфейс обратной связи по усилию ядра. По умолчанию он отключен как
это вызывает проблемы с некоторыми приложениями, работающими в Wine.
Поскольку контроллер Xbox360 поддерживает только вибрацию, а не полную обратную связь по усилию, xboxdrv
пытается имитировать другие эффекты. Эта эмуляция не особо тестировалась и может
не всегда работают как положено. Отчеты об ошибках и тестовые примеры приветствуются.
Обратите внимание, что вы должны всегда закрыть приложение, которое использует обратную связь по усилию, прежде чем
вы закрываете драйвер xboxdrv, иначе вы можете столкнуться с зависанием не-
прерываемый процесс xboxdrv, для избавления от которого потребуется перезагрузка.
При использовании xboxdrv в режиме демона с несколькими слотами контроллеров необходимо включить
силовая обратная связь для каждого слота отдельно.
--ff-устройство ИДЕНТИФИКАТОР УСТРОЙСТВА
Выберите, к какому виртуальному устройству будут подключены обратные вызовы с принудительной обратной связью,
по умолчанию используется джойстик. Другие допустимые значения: мышь, клавиатура и любое целое число.
количество. Видеть --ui-buttonmap для получения дополнительной информации о том, как работают идентификаторы устройств.
-R, - тест-грохот
Нажатие LT переместит левый вибромотор, а нажатие RT переместит правый
один. Сила грохота мотора зависит от того, насколько сильно вы нажимаете. Это полезно для
проверка грохочущих моторов.
-r, - ворчать L, R
Установите скорость для обоих грохочущих двигателей. Принимаются значения от 0 до 255,
по умолчанию - 0,0.
КОНТРОЛЛЕР SLOT ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Слоты контроллера используются при запуске xboxdrv в режиме демона. Каждый слот представляет собой
полная конфигурация контроллера. Если вы хотите использовать несколько контроллеров в режиме демона
вам необходимо предоставить несколько слотов для контроллеров.
- слот контроллера N
Переключение на слот контроллера с номером N, нумерация начинается с нуля.
--следующий-контроллер
Переключает на следующий слот контроллера.
--соответствие ПРАВИЛО, ...
Ограничивает слот контроллера устройствами, которые соответствуют любому из заданных правил. Возможный
Правила матча:
usbid =ПОСТАВЩИК:ПРОДУКЦИИ
Сопоставьте контроллеры с указанными идентификаторами производителя и продукта USB.
vendor =ПОСТАВЩИК
Сопоставьте контроллеры с данным идентификатором USB idVendor.
продукт =ПРОДУКЦИИ
Сопоставьте контроллеры с данным USB idProduct.
свойство =ИМУЩЕСТВО:VALUE
Соответствует произвольному свойству udev с именем ИМУЩЕСТВО и значение
VALUE.
usbpath =АВТОБУС:DEV
Сопоставьте путь USB, указанный АВТОБУС и DEV.
usbserial =СЕРИЙНЫЙ
Сопоставьте с номером USB iSerial.
--матч-группа ПРАВИЛО, ...
Ограничивает слот контроллера устройствами, которые соответствуют всем заданным правилам. Возможный
правила совпадения такие же, как и для --соответствие.
CONFIG SLOT ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Вы можете использовать несколько конфигураций, называемых слотами конфигурации, с вашим контроллером. Вы переключаетесь
между этими несколькими конфигурациями, нажав кнопку Guide по умолчанию, но вы можете
также установите другую кнопку с помощью опции --переключать.
--config-слот NUM
Выберите слот конфигурации NUM.
--next-config
Позволяет создать альтернативную конфигурацию uinput, на которую можно переключиться
во время выполнения, нажав кнопку переключения пользовательского интерфейса (по умолчанию - руководство).
$ xboxdrv
- мышь
--next-config
--ui-axismap X1=ABS_X,Y1=ABS_Y
--ui-buttonmap A = JS_0, B = JS_1
Приведенная выше конфигурация установит эмуляцию мыши в качестве первой конфигурации и
простая эмуляция джойстика в качестве второй конфигурации. Разрешение переключения между мышью
эмуляция и управление джойстиком при нажатии управляющей кнопки.
Не то --next-config в настоящее время ограничивается только конфигурациями, выполненными с
--ui-buttonmap и --ui-осевая карта, автозапуск, эмуляция дроссельной заслонки, мертвые зоны и все
другие вещи в настоящее время нельзя переключить во время выполнения.
--переключать XBOXBTN
Устанавливает кнопку, которая будет использоваться для переключения между разными
конфигурации. Значение «void» отключит переключатель. Если нет переключателя
указана кнопка, направляющая кнопка будет использоваться для переключения между
конфигурации.
КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
--модификатор MOD
Добавьте модификатор в стек модификаторов, см. [Модификатор] для получения полного списка возможных
модификатор.
- тайм-аут MSEC
Укажите количество миллисекунд, в течение которых xboxdrv будет ожидать событий от
контроллер, прежде чем двигаться дальше и обрабатывать такие вещи, как автоматический огонь или относительная ось.
Значение по умолчанию - 10, меньшие значения дадут вам автоматический огонь с более высоким разрешением и
относительное движение событий, но потратит больше ресурсов ЦП.
-б, --buttonmap КНОПКА = КНОПКА, ...
Переназначение кнопок доступно через --buttonmap вариант. Если вы хотите поменять местами
кнопки A и B начинаются с:
$ xboxdrv --buttonmap A = B, B = A
Если вы хотите, чтобы все лицевые кнопки отправляли события кнопки A:
$ xboxdrv --buttonmap B = A, X = A, Y = A
Возможные названия кнопок (в скобках указаны псевдонимы):
Button Названия
┌──────────────────────────────────┬──────────────── ───────────────────
│ Имя │ Описание │
├──────────────────────────────────┼──────────────── ───────────────────
│пуск, назад │ пуск, назад
├──────────────────────────────────┼──────────────── ───────────────────
│направляющая │ большая X-кнопка посередине │
│ │ (только Xbox360) │
├──────────────────────────────────┼──────────────── ───────────────────
│a(1) b(2) x(3) y(4) │ лицевые кнопки │
├──────────────────────────────────┼──────────────── ───────────────────
│черный, белый │ черный, белый кнопки (Xbox1 │
Только │ │, сопоставлено с lb, rb на │
│ │ Xbox360) │
├──────────────────────────────────┼──────────────── ───────────────────
│lb(5) rb(6) │ плечевые кнопки (только Xbox360, │
│ │ отображается на черный, белый на Xbox1) │
├──────────────────────────────────┼──────────────── ───────────────────
│lt(7) rt(8) │ аналоговый триггер (требуется │
│ │ - вариант триггера как кнопки) │
├──────────────────────────────────┼──────────────── ───────────────────
│tl, tr │ нажатие влево или вправо │
│ │ аналоговый джойстик │
├──────────────────────────────────┼──────────────── ───────────────────
│du (вверх), dd (вниз), dl (влево), │ dpad направления (требуется │
│dr (справа) │ --dpad-as-button option) │
├──────────────────────────────────┼──────────────── ───────────────────
│зеленые, красные, желтые, синие, оранжевые │ гитарные кнопки │
└───────────────────────────────────┴──────────────── ────────────────────┘
Так же, как с --ui-buttonmap вы можете добавить фильтр кнопок к каждой кнопке.
--axismap ОСЬ = КАРТА, ...
Переназначение осей доступно через --axismap и работает так же, как отображение кнопок. В
Кроме того, вы можете указать знак, указывающий, что ось должна быть перевернута. Так что если
вы хотите инвертировать ось y1, начиная с:
$ xboxdrv --axismap -Y1 = Y1
Если вы хотите поменять местами левый и правый джойстики, начните с:
$ xboxdrv --axismap X2=X1,Y2=Y1,X1=X2,Y1=Y2
Возможные имена осей: x1, y1, x2, y2, lt, rt
Замена lt или rt на x1, y1, x2, y2 не будет работать должным образом, поскольку их диапазон равен
другой.
Так же, как с --ui-осевая карта вы можете добавить фильтр оси к каждой оси.
ИЗМЕНЕНИЕ ПРЕДУСТАНОВКА КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Параметры в этом разделе - это сортировки для --модификатор параметры. В отличие от --модификатор
не зависят от порядка, но имеют предопределенный порядок, который используется независимо от порядка в
какие варианты даны.
--автофаер КНОПКА = ЧАСТОТА, ...
Отображение автоматического огня позволяет разрешить кнопке автоматически срабатывать при заданном
частота в миллисекундах:
$ xboxdrv --autofire A = 250
Объединяя --автофаер с картой кнопок позволяет вам использовать одну кнопку как автозапуск
в то время как другой, излучающий тот же сигнал, действует нормально.
$ xboxdrv --autofire B = 250 --buttonmap B = A
--оси-чувствительности ОСЬ = ЧУВСТВИТЕЛЬНОСТЬ, ...
Чувствительность оси можно настроить с помощью --axis-sensitivty:
$ xboxdrv --axis-sensitivty X1 = -1.0, Y1 = -1.0
Значение 0 дает вам линейную чувствительность по умолчанию, значения больше 0 будут
даст вам более высокую чувствительность, а значения меньше 0 дадут вам более низкую
чувствительность. Значения чувствительности в диапазоне [-1, 1] обычно дают хорошие результаты.
результаты, все остальное не будет иметь практического применения.
Чувствительность работает за счет применения:
t = 2 ** чувствительность;
pos = (1.0f - (1.0f - pos)**t)**(1/t);
Для значения оси это означает, что и минимальное значение, и максимальное
значение оси всегда остается неизменным, просто реакция между изменениями.
Полный произвольный способ изменения отклика оси см. Режимы секции мощности кривая
ФИЛЬТР.
- калибровка КАЛИБРОВКА
Если ваш геймпад по какой-то причине не может достичь максимального значения или не отцентрован
правильно вы можете исправить это с помощью параметров калибровки:
$ xboxdrv --calibration X2 = -32768: 0: 32767
X2 - это имя оси, а за ней следуют три значения: min, center и max.
Просто вставьте значения, которые сообщает jstest, когда ваша ось находится в соответствующем
позиции.
Вы также можете использовать опцию калибровки, если хотите сделать свой джойстик более
чувствительный. Настройка:
xboxdrv --calibration AXIS = MIN: CENTER: MAX, ...
Заставит джойстик сообщать о максимальном положении, когда ваш стик
продвинулся на полпути.
--мертвая зона NUM
Мертвая зона - это зона, в которой стики не сообщают о каких-либо событиях. По умолчанию
равен нулю, что дает лучшую чувствительность, но может также вызвать проблемы в некоторых
игры, в которых персонаж или камера могут двигаться, не перемещая джойстика. Чинить
здесь нужно установить значение выше:
$ xboxdrv --мертвая зона 4000
Значение 4000 вполне подходит для большинства игр.
Также можно указать мертвую зону в процентах:
$ xboxdrv --мертвая зона 15%
--мертвая зона-триггер NUM
Левый и правый триггеры имеют отдельное значение мертвой зоны, которое можно указать.
с:
$ xboxdrv --мертвая зона-триггер 15%
--dpad-вращение СТЕПЕНЬ
Позволяет вращать dpad. СТЕПЕНЬ должно быть кратно 45. Это может быть полезно
в изометрических играх, где само игровое поле вращается, таким образом:
xboxdrv --dpad-ротация 45
Дает вам элементы управления, относящиеся к вашему персонажу, а не к вашему
точка зрения.
- четырехходовой ограничитель
Команда - четырехходовой ограничитель опция позволяет ограничить движение на обоих
аналоговые джойстики только в четырех направлениях (вверх, вниз, влево, вправо), диагонали
(вверх / влево, вверх / вправо, вниз / влево, вниз / вправо) отфильтровываются из вывода. Этот
опция полезна для таких игр, как Тетрис, в которых не нужны диагонали и где вы
не хочу случайно запускать движение вниз, пытаясь сделать левый / правый
двигаться.
- относительная ось ОСЬ = ЧИСЛО, ...
Функция - относительная ось позволяет изменить поведение оси так, чтобы
ваше движение перемещает его значение вверх или вниз вместо того, чтобы применять его напрямую.
Это позволяет имитировать управление дроссельной заслонкой для игр Flightim.
Поскольку ось может быть перевернута, вы можете использовать --axismap функция
чтобы отменить это.
$ xboxdrv - относительная ось y2 = 64000 --axismap -y2 = y2
- квадратная ось
Геймпад Xbox360, как и большинство других современных геймпадов, имеет круглую
диапазон движения, который ограничивает движение так, чтобы расстояние до центра
никогда не выходит за пределы 1. Это означает, что когда у вас есть контроллер вверху / слева
сообщается значение (0.7, 0.7) (т.е. длина 1, угол 45) вместо (1,1). Этот
поведение отличается от большинства классических джойстиков для ПК, которые имеют квадратный диапазон и
сообщит (1,1) при удерживании в верхнем / левом углу.
Некоторые старые игры (например, в основном вещи DOS) требуют квадратного диапазона движения и не будут
правильно работать с геймпадом Xbox360. Через - квадратная ось вариант вы можете
обойти эту проблему, и диагонали будут представлены как (1,1).
УИНПУТ ПРЕДУСТАНОВКА КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Следующие параметры представляют собой простые ярлыки для общих конфигураций, которые можно
выполняется вручную с помощью --ui-buttonmap и --ui-осевая карта.
- триггер как кнопка
Кнопка отправки LT и RT вместо событий оси
--триггер-как-zaxis
Вместо этого объедините LT и RT, чтобы образовать zaxis.
--dpad-как-кнопка
DPad отправляет кнопку вместо событий оси.
--dpad-только
Оба стика игнорируются, только DPad отправляет события оси. Полезно для игр, которые
может запутаться дополнительная аналоговая ось. Комбинируя этот вариант с
- триггер как кнопка рекомендуется в большинстве ситуаций.
- гитара
Устанавливает предопределенную кнопку и отображение оси для использования с гитарными контроллерами. Этот
в основном избавляется от нескольких ненужных кнопок и оси, не используемых на гитаре
Контроллер.
-м, - мышь
Позволяет контроллеру действовать как мышь. Не рекомендуется:
$ xboxdrv
--dpad-как-кнопка
--мертвая зона 4000
--триггер-как-zaxis
--axismap "-y2 = y2, -trigger = trigger"
--ui-axismap "x1=REL_X:15:20,y1=REL_Y:15:20,y2=REL_WHEEL:5:100,x2=REL_HWHEEL:5:100,trigger=REL_WHEEL:5:100"
--ui-buttonmap "a = BTN_LEFT, b = BTN_RIGHT, x = BTN_MIDDLE, y = KEY_ENTER, rb = KEY_PAGEDOWN, lb = KEY_PAGEUP,"
--ui-buttonmap "dl = KEY_LEFT, dr = KEY_RIGHT, du = KEY_UP, dd = KEY_DOWN,"
--ui-buttonmap "start = KEY_FORWARD, back = KEY_BACK, guide = KEY_ESC, tl = void, tr = void"
Вы можете настроить его обычными способами, просто убедитесь, что - мышь приходит раньше
ваши параметры настройки в командной строке.
Обратите внимание, что если у вас переключены кнопки мыши, вы должны настроить указанное выше на
соответствовать конфигурации вашей мыши, иначе события кнопок будут отображаться неправильно.
--mimic-xpad
Заставляет xboxdrv использовать те же имена осей и кнопок, что и драйвер ядра xpad для
проводной контроллер Xbox360
--mimic-xpad-беспроводной
Заставляет xboxdrv использовать те же имена осей и кнопок, что и драйвер ядра xpad для
проводной контроллер Xbox360
УИНПУТ КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
--no-uinput
Не запускать UInput, а просто читать события из контроллера, что полезно для
отладка.
- без дополнительных устройств
По умолчанию xboxdrv будет выделять несколько устройств uinput и сортировать события для каждого из
их. Таким образом, события, связанные с мышью, такие как BTN_LEFT или REL_X, будут передаваться виртуальной мыши.
устройство, в то время как события ABS_X будут передаваться на устройство виртуального джойстика, а KEY_ESC будет
перейти к устройству с виртуальной клавиатурой.
Эта опция отключает этот автоматизм, и все события будут идти в один и тот же виртуальный
устройства.
Ручное назначение определенному устройству (например, KEY_ESC @ клавиатура, BTN_A @ джойстик,
...) все еще возможно.
--без дополнительных событий
По умолчанию xboxdrv будет выделять несколько устройств uinput и сортировать события для каждого из
их. Таким образом, события, связанные с мышью, такие как BTN_LEFT или REL_X, будут передаваться виртуальной мыши.
устройство, в то время как события ABS_X будут передаваться на устройство виртуального джойстика, а KEY_ESC будет
перейти к устройству с виртуальной клавиатурой.
Чтобы убедиться, что мышь, клавиатура или джойстик правильно обнаруживаются
Xorg, ядро или библиотеки, такие как SDL xboxdrv, будут вставлять дополнительные фиктивные события. Для
Например, устройству мыши необходимо обнаруживать события REL_X и REL_Y как таковые, но
конфигурация, которая хочет только имитировать кнопки мыши, не предоставит их,
таким образом xboxdrv добавит их автоматически. В --без дополнительных событий опция переключится
это поведение выключено.
--имя устройства ИМЯ
Изменяет описательное имя, которое будет иметь устройство. Эта опция действует так же, как
- имена-устройств ТЕКУЩИЙ СЛОТ.auto =ИМЯ
- имена-устройств TYPE.SLOT = ИМЯ, ...
Изменяет описательное имя, которое будет иметь устройство. ТИП это одна из мыши, клавиатуры,
джойстик, авто или номер. SLOT - это номер слота или авто. Автоматическое имя действует как
wild card и соответствует всему.
--device-usbid ПРОДАЖА: ТОВАР: ВЕРСИЯ: АВТОБУС
Изменяет поставщика, продукт, версию и идентификатор шины, который будет иметь устройство. Последний
два аргумента необязательны. Этот параметр действует так же, как --device-usbids
ТЕКУЩИЙ СЛОТ.auto =ПРОДАЖА: ТОВАР: ВЕРСИЯ: АВТОБУС
--устройство-usbids TYPE.SLOT = VENDOR: PRODUCT: VERSION: BUS, ...
Изменяет поставщика, продукт, версию и идентификатор шины, который будет иметь устройство. ТИП один
мыши, клавиатуры, джойстика, авто или числа. SLOT - это номер слота или авто. В
Авто имя действует как подстановочный знак и соответствует всему.
--ui-очистить
Удаляет все сопоставления uinput и оставляет драйвер в пустом состоянии и только карту
те вещи, которые вы добавили сами. Если вы хотите избавиться только от отдельных кнопок
вы можете использовать событие void.
--ui-buttonmap UIBUTTONSPEC, ...
UIBUTTONSPEC = XBOXBUTTON ["+" XBOXBUTTON] ["^" ФИЛЬТР] ... "=" (RELSPEC | BTNSPEC | EXECSPEC);
RELSPEC = [DEVICEID "-"] "REL_" [":" [ЗНАЧЕНИЕ] [":" ПОВТОР]];
BTNSPEC = [DEVICEID "-"] (("BTN_" NAME) | ("KEY_" NAME)) {"+" BTNSPEC};
EXECSPEC = ПРОГРАММА {":" АРГУМЕНТ};
XBOXBUTTON = "а" | "б" | «х» | "у" | "фунт" | «рб» | "лт" | "РТ" |
"тл" | "тр" | "старт" | "выбрать" | "назад" | «гид» | «черный» | "белый" ;
FILTER = "переключатель" | «инвертировать» | "autofire" [":" RATE] [":" DELAY] | журнал [":" СТРОКА];
ИМЯ = СТРОКА;
ЗНАЧЕНИЕ = ЧИСЛО;
ПОВТОР = ЧИСЛО;
DEVICEID = НОМЕР;
Позволяет вам изменить код события, который отправляется ядру для кнопок. В
использование похоже на обычное отображение кнопок, за исключением того, что правая сторона
название события от /usr/include/linux/input.h. Вы можете использовать все КЛЮЧ_ or БТН_ Коды
для --ui-buttonmap.
Если правая часть останется пустой, все поставленные фильтры будут добавлены в
привязка уже существующей кнопки вместо новой.
Помимо названных клавиш, вы также можете указать входной код напрямую в виде числа с помощью
синтаксис КЛЮЧ_#NUM.
Вместо низкого уровня КЛЮЧ_ имена, которые представляют собой коды клавиш, вы также можете использовать
символы ключей X11 более высокого уровня ХК_, то ключевые символы имеют то преимущество, что они напрямую сопоставляют
к ключу, которого вы ожидаете, в то время как КЛЮЧ_ имя будет искажено раскладкой X11 и будет
часто не сообщают, что вы ожидаете, если вы используете раскладку клавиатуры, которая отличается от
ваша клавиатура (т.е. дворак на qwerty-клавиатуре).
Полный список допустимых символов ключей X11 можно выбрать с помощью --help-x11keysym.
Для кнопок джойстика помимо BTN_ДЖОЙСТИК, БТН_Xи др. макросы
специальное имя JS_ $ NUM, который устанавливает данную кнопку на кнопку джойстика $ NUMS,
то есть:
$ xboxdrv --ui-clear --ui-buttonmap A = JS_0, B = JS_1
Обратите внимание, что это будет работать только в том случае, если никакие другие идентификаторы кнопок джойстика не мешают.
Вы также можете сопоставить кнопку с РЕЛ_ мероприятие. В этом случае вы можете предоставить дополнительные
paramaters в виде:
$ xboxdrv --ui-buttonmap X = REL _ ???: VALUE: REPEAT
VALUE дает значение события (по умолчанию: 10)
ПОВТОРЕНИЕ дает количество миллисекунд, которое нужно пройти, прежде чем событие будет запущено снова
(по умолчанию: 5)
Специальное событие 'void' позволяет вам очистить любые существующие привязки для данного
кнопка, которая может быть полезна в случаях, когда игра поддерживает только ограниченное количество
кнопки.
Вы также можете добавить device_id к UIBUTTONSPEC, который позволяет вам создавать
несколько устройств ввода. По умолчанию auto принимается как device_id, который
автоматически пытается поступить правильно, отправляя события клавиатуры на клавиатуру
устройство и события мыши на устройство мыши. Другие возможные значения: mouse и
"клавиатура". Device_id, равный 0, относится к первому устройству джойстика, значения больше
затем 0 ко второму, третьему и т. д.
Обратите внимание, что имена device_id 'mouse' и 'keyboard' не указывают на мышь или
клавиатура устройства, это просто символические имена для устройств, в которые xboxdrv
отсортирует события, похожие на события мыши или клавиатуры. Окончательное определение
какое устройство обрабатывается, как то, что будет делать ядро или Xorg в зависимости от
на какие события предусмотрено устройство.
Пример конфигурации с использованием device_id будет выглядеть так:
xboxdrv -s
--ui-очистить
--ui-buttonmap A=JS_0@0,B=JS_1@0 --ui-axismap X2=ABS_X@0,Y2=ABS_Y@0
--ui-buttonmap X=JS_0@0,Y=1-JS_1@0 --ui-axismap X2=ABS_X@1,Y2=ABS_Y@1
В этом примере левый джойстик создает джойстик, а правый стик
создает отдельное устройство-джойстик.
При использовании нескольких слотов контроллера вы можете дополнительно добавить идентификатор слота и
таким образом назначайте события через границы слотов контроллера. Синтаксис для этого:
BTN_A@{ид_устройства}.{слотид}
Вместо того, чтобы давать только одну кнопку, также можно дать две кнопки для
--ui-buttonmap для переключения:
xboxdrv -s
--ui-очистить
--ui-buttonmap A = JS_0, B = JS_1, LB + A = JS_2, LB + B = JS_3
В этом примере LB действует как кнопка переключения, если A нажата без LB, он отправит
выдает событие JS_0, но если нажать LB, вместо этого будет отправлено событие JS_2. Этот
позволяет увеличить количество доступных кнопок на контроллере.
См. Раздел ЭМУЛЯЦИЯ КЛАВИАТУРЫ ниже о том, как решать проблемы с Xorg, не
обнаружение виртуальной клавиатуры, которую создает xboxdrv.
Вы также можете применять фильтры к событиям кнопок:
xboxdrv -s
--ui-buttonmap A ^ toggle = JS_0
Для документации по фильтрам, которые вы можете применить к событиям, см. [Фильтр кнопок].
--ui-осевая карта UIAXISSPEC, ...
UIAXISSPEC = [XBOXBTN "+"] XBOXAXIS {"^" ФИЛЬТР} "=" (RELSPEC | RELREP | KEYSPEC | ABSSPEC);
KEYSPEC = ["key:"] "KEY_" NAME ":" "KEY_" NAME ":" ПОРОГ;
RELSPEC = ["rel:"] "REL_" NAME ":" VALUE ":" REPEAT;
RELREP = "rel-repeat:" "REL_" ИМЯ ":" ЗНАЧЕНИЕ ":" ПОВТОР;
ABSSPEC = ["abs:"] НАЗВАНИЕ "ABS_";
ФИЛЬТР = ("калибровка" | "калибровка") ":" МИН ":" ЦЕНТР ":" МАКС |
("чувствительность" | "сен") ":" ЧУВСТВИТЕЛЬНОСТЬ |
("мертвая зона" | "мертвый") ":" МИН ":" МАКС ":" ГЛАДКИЙ |
("относительный" | "отн.") ":" СКОРОСТЬ |
("responsecurve" | "response" | "resp") {":" VALUE}
XBOXBTN = "а" | "б" | «х» | "у" | "старт" | "назад" | «гид» | "фунт" | «рб» | ...
XBOXAXIS = "x1" | "y1" | «x2» | "y2" | "z" | "лт" | "РТ" | "dpad_x" | "dpad_y";
ЗНАЧЕНИЕ = ЧИСЛО;
ПОВТОР = ЧИСЛО;
ПОРОГ = ЧИСЛО;
ИМЯ = СТРОКА;
Похожий на что --ui-buttonmap эта опция позволяет вам изменить код события, который
отправить в ядро для топоров. Доступные события такие же, как для
--ui-buttonmap.
$ xboxdrv --ui-axismap X1 = REL _ ???: VALUE: REPEAT
VALUE дает максимальное значение события, фактическое значение, которое получает отправка, равно
VALUE * axis_state. (по умолчанию: 10)
ПОВТОРЕНИЕ дает количество миллисекунд, которое нужно пройти, прежде чем событие будет запущено снова
(по умолчанию: 5).
Значение -1 имеет особое значение, оно приведет к срабатыванию события REL.
как можно скорее (т.е. каждый Тайм-аут миллисекунды). Это рекомендуемый способ
для обработки эмуляции мыши, так как он будет синхронизировать события REL и, таким образом, избежать
неровности движения, возникающие в результате ручного указания тайм-аута.
$ xboxdrv --ui-axismap X1 = KEY_UP: KEY_DOWN: THRESHOLD
KEY_UP дает код клавиши для отправки, когда ось перемещается вверх
KEY_DOWN дает код клавиши для отправки, когда ось перемещается вниз
ПОРОГ дает порог, который запускает отправку события
Так же, как --ui-buttonmap, вы также можете использовать клавиши Shift вместо XBOXAXIS:
$ xboxdrv --ui-axismap X1 = ABS_X, LB + X1 = ABS_RX
Это позволяет вам отправлять события ABS_X в обычном режиме и события ABS_RX, когда кнопка LB
удерживается.
Для получения информации о том, как использовать фильтры осей, см. [Фильтр осей].
ВХОД СОБЫТИЕ ОБРАБОТЧИК
Обработчик событий ввода решает, что выходит из виртуальных устройств ввода, которые xboxdrv
создает. Например, они решают, что при нажатии кнопки A на геймпаде
виртуальная клавиатура издаст нажатие клавиши пробела.
Кроме того, обработчик входных событий также может выполнять некоторые базовые преобразования входных данных.
сигналов, таким образом, джойстик можно использовать для отправки ключей WASD.
КНОПКА СОБЫТИЕ ОБРАБОТЧИК
Обработчик событий кнопки решает, что происходит при нажатии кнопки, это должно быть
указано с --ui-buttonmap вариант. В приведенном ниже примере показан простейший вариант использования:
$ xboxdrv --ui-buttonmap A = ключ: KEY_A
Здесь ключ имя обработчика события кнопки, а КЛЮЧ_А аргумент для события
обработчик. Какие аргументы допускает обработчик событий, зависит от обработчика событий.
Существует также сокращенная форма указания обработчиков событий, просто написав:
$ xboxdrv --ui-buttonmap A = KEY_A
Здесь обработчик явно не указан, в этом случае соответствующий обработчик будет
угадывать по типу события. События EV_KEY будут обрабатываться ключ обработчик,
EV_REL от отн обработчик и EV_ABS ABS обработчик.
ключ:KEY_EVENT, ключ:KEY_EVENT:KEY_EVENT:HOLD_THRESHOLD_МСЕК
Команда ключ обработчик - самый простой, он отображает кнопку непосредственно на виртуальную клавишу
или другую кнопку.
Если предоставлены дополнительные аргументы, кнопка сможет отправить два
разные события. Первое указанное событие будет отправлено при нажатии кнопки
обычно, в то время как второе событие будет отправлено, если кнопка удерживается в течение
время, указанное в HOLD_THRESHOLD_МСЕК.
Пример кнопки удержания будет выглядеть так:
xboxdrv
--ui-buttonmap A = JS_0: JS_1: 500
Это отправит события JS_0 при нажатии кнопки и переключится на события JS_1.
когда кнопка удерживалась 500 миллисекунд.
Функция кнопки удержания полезна для эффективного удвоения количества доступных
кнопки, таким образом, dpad может, например, использоваться для отправки восьми различных кнопок
событий вместо четырех, которых достаточно для обработки оружия в большинстве игр FPS.
ABS еще не реализовано
отн:REL_EVENT:VALUE:ПОВТОРЕНИЕ
Обработчик rel будет отправлять событие REL при каждом нажатии кнопки. VALUE
дает значение отправляемого события, а ПОВТОРЕНИЕ дает количество
в миллисекундах до повторной отправки события.
Типичное использование событий REL - эмуляция колеса прокрутки мыши,
пример конфигурации:
xboxdrv
--ui-buttonmap Y = rel: REL_WHEEL: 1: 500, A = rel: REL_WHEEL: -1: 500
Здесь Y прокручивает вверх, а A прокручивает вниз.
циклический ключ:KEY_EVENT: ...
Обработчик циклической клавиши переключит KEY_EVENT который отправляется с каждой кнопкой
Нажмите. Это полезно в ситуациях, когда диапазон кнопок должен быть сопоставлен с
один ключ. Например, в FPS может быть указано оружие от 1 до 6, но только
одна клавиша на геймпаде свободна, поэтому можно написать:
xboxdrv
--ui-buttonmap A=cycle-key:KEY_1:KEY_2:KEY_3:KEY_4:KEY_5:KEY_6
имя-ключ-цикл:ИМЯ:KEY_EVENT: ...
Команда цикл-ключ-имя обработчик работает точно так же, как циклический ключ обработчик, за исключением того, что
имя должно быть указано для последовательности цикла. Название последовательности используется
цикл-ключ-ссылка чтобы получить доступ к последовательности и повторно использовать ее для другой кнопки.
В этом простом примере A используется для переключения вперед всех клавиш оружия, а B
используется для переключения клавиш назад:
xboxdrv
--ui-buttonmap A = имя-ключа-цикла: оружие: KEY_1: KEY_2: KEY_3: KEY_4, B = ключ-цикла-ref: оружие
цикл-ключ-ссылка:ИМЯ:НАПРАВЛЕНИЕ, последовательность-ключ-ссылка:ИМЯ:НАПРАВЛЕНИЕ
Команда цикл-ключ-ссылка обработчик получит доступ и повторно использует указанную последовательность ключей указанного цикла.
by ИМЯ. Если НАПРАВЛЕНИЕ может быть «вперед» или «назад», если нет направления
при условии, что по умолчанию он будет «в обратном направлении».
Увидеть цикл-ключ-имя для полного примера.
имя-ключ-последовательность:ИМЯ:KEY_EVENT: ...
Команда последовательность-ключ-имя работает точно так же, как цикл-ключ-имя, с единственным
разница в том, что последовательность-ключ-имя не будет оборачиваться при достижении
начало или конец последовательности.
Такое поведение полезно в симуляторах полета или других играх, где двигатели могут
управляться с помощью цифровых клавиш, и не имеет смысла прыгать с нуля
до полной тяги за один раз.
Чтобы перейти в обратном направлении по последовательности, необходимо связать другую клавишу с
последовательность-ключ-ссылка.
Exec Обработчик кнопки exec позволяет запускать приложение, когда кнопка была
нажал. Пример мог бы выглядеть так:
xboxdrv
--ui-buttonmap A = exec: /home/juser/local/bin/screenshot.sh
Возможные варианты использования кнопки - это возможность делать снимки экрана или выполнять другие действия.
задачи, которые находятся за пределами основного приложения, с которым вы используете xboxdrv.
макрос Кнопка может быть привязана к макросу через:
xboxdrv
--ui-buttonmap A = макрос: /home/juser/.xboxdrv/somefile.macro
Команда .макрос файл имеет вид:
отправить KEY_LEFTSHIFT 1
ждать 500
отправить KEY_LEFTSHIFT 0
Все события abs, rel и key могут быть отправлены из файла макроса.
AXIS СОБЫТИЕ ОБРАБОТЧИК
Обработчик событий оси решает, что происходит при перемещении оси. Обработчик событий кнопки Like
они бывают разных форм и, как обработчик событий кнопки, предоставляют форму быстрого доступа.
События EV_KEY будут обрабатываться ключ обработчик, EV_REL от отн обработчик и EV_ABS
ABS обработчик.
ABS:ABS_EVENT
Команда ABS обработчик - самый простой из них, он просто отправит значение, которое он
получает в качестве входных данных как заданный ABS_EVENT событие для ядра. Таким образом, основная
конфигурация, позволяющая левому джойстику вести себя как джойстик, будет выглядеть следующим образом:
xboxdrv
--ui-axismap X1 = abs: ABS_X, Y1 = abs: ABS_Y
ключ:KEY_UP:KEY_DOWN:ПОРОГ
KEY_UP дает код клавиши для отправки, когда ось перемещается вверх
KEY_DOWN дает код клавиши для отправки, когда ось перемещается вниз
ПОРОГ дает порог, который запускает отправку события
Так же, как --ui-buttonmap, вы также можете использовать клавиши Shift вместо XBOXAXIS:
$ xboxdrv --ui-axismap X1 = ABS_X, LB + X1 = ABS_RX
Это позволяет вам отправлять события ABS_X в обычном режиме и события ABS_RX, когда кнопка LB
удерживается.
отн:REL_EVENT:VALUE:ПОВТОРЕНИЕ
VALUE дает максимальное значение события, фактическое значение, которое получает отправка, равно
VALUE * axis_state. (по умолчанию: 10)
ПОВТОРЕНИЕ дает количество миллисекунд, которое нужно пройти, прежде чем событие будет запущено снова
(по умолчанию: 5).
Значение -1 имеет особое значение, оно приведет к срабатыванию события REL.
как можно скорее (т.е. каждый Тайм-аут миллисекунды). Это рекомендуемый способ
для обработки эмуляции мыши, так как он будет синхронизировать события REL и, таким образом, избежать
неровности движения, возникающие в результате ручного указания тайм-аута.
Команда отн обработчик в основном полезен для эмуляции указателя мыши, если вы хотите
имитируйте колесо прокрутки мыши, используйте rel-повторить обработчик вместо этого.
rel-повторить:REL_EVENT:VALUE:ПОВТОРЕНИЕ
Команда rel-повторить обработчик похож на отн обработчик, но оптимизирован для эмуляции
колесо прокрутки мыши.
VALUE не масштабируется до того, как далеко переместилась ось, вместо этого он постоянный, вместо этого
время, указанное в ПОВТОРЕНИЕ масштабируется в соответствии с перемещением оси. Таким образом, дальнейшие
палка перемещена, тем больше событий будет отправлено.
Потребность в обоих rel-повторить и отн возникает из-за того, что Xorg конвертирует scroll
движение колеса к нажатию кнопки, прежде чем оно будет передано приложению, таким образом,
приложение никогда должным образом не видит изменения в VALUE, путем масштабирования ПОВТОРЕНИЕ вместо
эта проблема решена.
ВХОД ФИЛЬТР
Входной фильтр позволяет управлять событиями, поступающими от контроллера. Они могут быть
используется на --buttonmap, --axismap, --ui-buttonmap и --ui-осевая карта, Разница между
два в том, что --ui -... версии применяется к событиям uinput, в то время как другие
Версия применяется к событиям контроллера Xbox360.
КНОПКА ФИЛЬТР
одевать, тумблер
Фильтр переключения превратит кнопку в кнопку переключения, нажав кнопку
установит его в нажатое состояние, а повторное нажатие его разжмет. Полезный для
игры, в которых вы можете постоянно запускать или уклоняться, не удерживая кнопку
нажал.
инв, инвертировать
Инвертирующий фильтр будет держать кнопку в нажатом состоянии, когда она не нажата и
в нажатом состоянии при нажатии.
автоматический, автострельба:СТАВКА:DELAY
Фильтр автозапуска позволяет многократно отправлять события нажатия кнопки, когда
кнопка удерживается. Требуется два необязательных параметра:
СТАВКА - количество миллисекунд между событиями нажатия кнопки.
DELAY количество миллисекунд до начала автопожара, до этого задержка
кнопка будет работать как обычно.
клик-пресс
Команда клик-пресс фильтр передает однократное нажатие кнопки, когда кнопка
нажал.
клик-релиз
Команда клик-релиз фильтр передает однократное нажатие кнопки, когда кнопка
выпущенный.
нажмите оба
Команда нажмите оба фильтр передает однократное нажатие кнопки, когда кнопка
нажата и еще одна, когда она отпущена.
Const:VALUE
Фильтр const проигнорирует входной сигнал и отправит постоянное значение в
выход. Это можно использовать, например, в сочетании с несколькими конфигурациями для
сигнализировать игре или другому приложению, конфигурация которого активна в данный момент.
задерживать:ВРЕМЯ
Кнопка должна удерживаться в течение миллисекунд TIME, прежде чем она выдаст событие,
события прессы короче, чем это будет проигнорировано.
журнал:STRING
Фильтр журнала выводит на стандартный вывод все, что проходит через него, это
полезно для отладки фильтра. А STRING может быть предоставлен как параметр, который будет
выбыл перед событием.
AXIS ФИЛЬТР
известь, калибровка:MIN:ЦЕНТР:MAX
Увидеть - калибровка.
сен, чувствительность:Чувствительность
Увидеть - ось-чувствительность.
мертвый, мертвая зона:VALUE, мертвая зона:MIN:ЦЕНТР:MAX
Фильтр мертвой зоны применяет мертвую зону к текущей оси. Если только MIN предоставлен,
параметр будет интерпретироваться как -МИН: МИН: 1. Если аргумент 1, гладкий
будет применена фильтрация, так что конец мертвой зоны равен 0. Установка
аргумент 0 будет применять простой отсекающий фильтр, где все события меньше, чем
порог игнорируются.
отн, относительный:СКОРОСТЬ
Увидеть - относительная ось.
соответственно, ответ:ЦЕННОСТИ:: ...
Фильтр кривой отклика позволяет полностью изменить способ реакции оси.
Фильтр принимает список ЦЕННОСТИ: которые затем линейно интерполируются и распространяются
по всему диапазону оси. Пример мог бы выглядеть так:
xboxdrv
--ui-axismap x1^resp:-32768:-4000:0:4000:32767
Здесь осью X1 манипулируют так, чтобы она имела более низкую чувствительность в
центр и более высокий снаружи.
Const:VALUE
Фильтр const проигнорирует входной сигнал и отправит постоянное значение в
выход. Это можно использовать, например, в сочетании с несколькими конфигурациями для
сигнализировать игре или другому приложению, конфигурация которого активна в данный момент.
журнал:STRING
Фильтр журнала выводит на стандартный вывод все, что проходит через него, это
полезно для отладки фильтра. А STRING может быть предоставлен как параметр, который будет
выбыл перед событием.
ИЗМЕНЕНИЕ
Хотя фильтр кнопок и осей применяется только к одной оси или кнопке одновременно, модификаторы
применяется ко всему контроллеру сразу и, таким образом, может использоваться для внесения изменений
которые требуют ввода с нескольких осей или кнопок. Большинство модификаторов объяснено ниже
реплицировать функциональность, предоставляемую обычными опциями, но допускать более точную настройку, например
ограничение эффектов одним аналоговым джойстиком вместо того, чтобы просто применять их ко всем. Обратите внимание, что
модификаторы применяются один за другим, поэтому порядок важен.
dpad-поворот=СТЕПЕНЬ
Увидеть --dpad-вращение.
дпад-ограничитель=ОГРАНИЧЕНИЕ
Ограничивает движение dpad, значения для ОГРАНИЧЕНИЕ может быть:
Ось X: разрешить движение только по оси X
Ось Y: разрешить движение только по оси Y
четыре направления: разрешить движение по осям X и Y, но отфильтровать диагонали
4wayrest, четырехходовой ограничитель=КСАКСИС:ЯКСИС
Увидеть - четырехходовой ограничитель.
площадь, квадратная ось=КСАКСИС:ЯКСИС
Увидеть - квадратная ось.
вращать=КСАКСИС:ЯКСИС:СТЕПЕНЬ:ЗЕРКАЛО
Вращает палку, данную КСАКСИС и ЯКСИС by СТЕПЕНЬ и необязательно ЗЕРКАЛА его.
состояние, статистика
Модификатор статистики на самом деле ничего не изменяет, вместо этого он собирает
статистика на контроллере, например, сколько раз была нажата кнопка. В
результаты сборов будут отображаться при выключении xboxdrv.
Обратите внимание, что модификатор stat является частью стека модификаторов, чтобы получить правильный
результаты, вы должны убедиться, что он идет первым в стеке, когда он должен работать
реальные события и не должны быть запутаны автопожаром или аналогичными модификациями.
БЕГ XBOXDRV
С ПОМОЩЬЮ A SINGLE КОНТРОЛЛЕР
Подключите геймпад Xbox360, а затем выгрузите драйвер xpad через:
$ rmmod xpad
Если вы хотите выгрузить его навсегда, добавьте следующую строку в
/etc/modprobe.d/blacklist.conf:
черный список xpad
Затем вам нужно загрузить модуль ядра uinput, который позволяет программам пользовательского пространства создавать
виртуальные устройства ввода, а модуль joydev обрабатывает / dev / input / jsX устройства:
$ modprobe uinput
$ modprobe джойдев
Вы также должны убедиться, что у вас есть права доступа к / dev / input / uinput, либо добавьте
в соответствующую группу, настройте разрешения или запустите xboxdrv от имени пользователя root.
Убедившись, что xpad не мешает и все на месте, запустите пользовательское пространство
водитель с:
$ xboxdrv
Или в случае, если у вас нет необходимых прав (находясь в корневом каталоге группы,
достаточно) запустите драйвер как root через:
$ судо xboxdrv
Это создаст / dev / input / js0 и позволит вам получить доступ к геймпаду из любой игры. Выходить
водитель нажмите Ctrl-c.
По умолчанию xboxdrv выводит на консоль все события контроллера, это упрощает
посмотреть, правильно ли все работает, но будет съедать много ЦП, поэтому он сильно
рекомендация отключить этот вывод с помощью --тихий опцию.
Кнопки триггера обычно обрабатываются xboxdrv как ось, обеспечивая аналоговую обратную связь,
в то время как это воспроизводит контроллер Xbox360 наиболее точно, это запутает многих и
быть полезным только в некоторых, в основном в гоночных играх. Так что в большинстве случаев это рекомендация
изменить триггеры на обычные кнопки с помощью:
$ xboxdrv --триггер-как-кнопка
С ПОМОЩЬЮ НЕСКОЛЬКО КОНТРОЛЛЕР
Если вы хотите использовать несколько проводных контроллеров, вам нужно запустить несколько экземпляров
xboxdrv и добавьте аргумент -i, чтобы выбрать соответствующий контроллер следующим образом:
$ xboxdrv -я 1
Если у вас несколько беспроводных контроллеров, вам нужно запустить несколько экземпляров
xboxdrv и добавьте --вид вариант как этот:
$ xboxdrv --wid 1
Вы должны синхронизировать беспроводной контроллер как обычно.
Чтобы увидеть список всех контроллеров, которые xboxdrv обнаруживает подключенными к вашей системе
использование:
$ xboxdrv --list-контроллер
ГОРЯЧЕЕ ЗАГРУЗКА И XBOXDRV ДЕЙМОН
Чтобы разрешить горячее подключение геймпадов, xboxdrv должен быть запущен в режиме демона. Это
выполнено с - демон опции:
$ xboxdrv --демон
При запуске в режиме демона xboxdrv будет прослушивать события udev и, таким образом, получать уведомления
всякий раз, когда к компьютеру подключается новое USB-устройство. Затем он будет соответствовать этому устройству
в списке поддерживаемых устройств и запустить отдельный поток для обработки этого геймпада.
Обратите внимание, что xboxdrv не позволит использовать произвольно большое количество контроллеров в
в этом режиме он может обрабатывать столько контроллеров, сколько вы выделили слотов для контроллеров
при запуске. Новые слоты можно выделить с помощью --следующий-контроллер и по умолчанию один слот
всегда выделяется, поэтому для поддержки трех контроллеров, с которыми вы его запускаете:
$ xboxdrv --daemon --следующий-контроллер --следующий-контроллер
Каждый слот контроллера можно настроить индивидуально, и вы можете ограничить, какой геймпад получит
назначен слот с --соответствие опцию.
Обратите внимание, что xboxdrv будет создавать виртуальные устройства uinput при запуске, а не когда геймпад
подключается, это позволяет подключать геймпады даже после игры или приложения
как будто XBMC уже запущен и все еще работает нормально.
В режиме демона xboxdrv можно отсоединить от текущей оболочки через --отсоединить, чтобы получить
обработайте его, чтобы убить его, вы можете написать его pid через --pid-файл:
$ sudo xboxdrv --daemon --detach --pid-file /var/run/xboxdrv.pid
XBOXDRV ДЕЙМОН ДБУС ИНТЕРФЕЙС
Когда Xboxdrv запущен как демон, он экспортирует некоторые функции API через D-Bus, что позволяет
для внесения изменений в конфигурацию во время выполнения. Доступ к интерфейсу D-Bus можно получить с помощью
многочисленные языковые привязки, предоставляемые или через общий инструмент командной строки dbus-отправить or
более удобным для пользователя xboxdrvctl орудие труда. Примеры ниже приведены для необработанных dbus-отправить.
Самоанализ осуществляется обычными способами:
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv org.freedesktop.DBus.Introspectable.Introspect
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / ControllerSlots / 0 org.freedesktop.DBus.Introspectable.Introspect
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / Daemon org.freedesktop.DBus.Introspectable.Introspect
Информация о состоянии доступных слотов, конфигурации и активных контроллерах может быть
получено через:
dbus-отправить
--session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / Daemon org.seul.Xboxdrv.Daemon.Status
Настройку светодиода на контроллере 0 можно выполнить с помощью:
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / ControllerSlots / 0 org.seul.Xboxdrv.Controller.SetLed int32: 4
Настройка вибрационных двигателей на контроллере 0 может быть выполнена с помощью:
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / ControllerSlots / 0 org.seul.Xboxdrv.Controller.SetRumble int32: 255 int32: 255
Настройка конкретной конфигурации слота контроллера, как и --переключать BTN позволяет, можно сделать
с:
dbus-send --session --type=method_call --print-reply
--dest = org.seul.Xboxdrv / org / seul / Xboxdrv / ControllerSlots / 0 org.seul.Xboxdrv.Controller.SetConfig int32: 2
ТЕСТИРОВАНИЕ
Знание того, как тестировать конфигурацию xboxdrv, абсолютно необходимо для понимания того, что
неправильно в данной настройке. Тестирование конфигурации в игре чаще всего бесполезно,
поскольку вы не увидите истинной причины за пределами бесконечных слоев абстракции между вами и
фактические события. К счастью, есть несколько инструментов, которые можно использовать для тестирования. Все они
на основе командной строки, и рекомендуется, чтобы вы познакомились с ними, когда захотите
любая более сложная конфигурация.
ЕВТЕСТ
evtest позволяет читать необработанные входные события из / dev / input / eventX. Устройства событий - это
основа всей обработки событий, такие вещи, как джойстики, происходят от
устройство событий, поэтому, если вы хотите исправить какую-то проблему на устройстве с джойстиком, вам нужно исправить
устройство события.
evtest доступен в каталоге tools / или как часть вашего дистрибутива в пакете
Evtest. ваше распространение.
ДЖСТЕСТ
jstest позволяет считывать вывод с устройства событий джойстика (/ dev / input / js0).
jstest доступен в каталоге tools / или как часть вашего дистрибутива. джойстик.
SDL-JSTEST
sdl-jstest позволяет вам видеть события так, как их видят игры, использующие SDL. Это очень важно, когда
вы хотите установить и протестировать переменные среды SDL_LINUX_JOYSTICK.
В настоящее время он доступен через:
$ svn co svn: //svn.berlios.de/windstille/trunk/sdl-jstest
Или из того же PPA Ubuntu, который также содержит xboxdrv в пакете sdl-jstest.
XEV
xev позволяет вам видеть события, которые видит Xorg. Однако учтите, что вы можете увидеть не все
события, так как некоторые из них будут захвачены вашим оконным менеджером до того, как достигнут xev, это
Normal.
xev является частью каждого дистрибутива Linux, в Ubuntu он доступен через:
$ apt-get установить x11-utils
АОАЛК И АКАЛИБРАТОР
Оба этих инструмента позволяют откалибровать геймпад, но практически со всеми текущими
геймпады это больше не нужно и на самом деле вредно, так как может полностью перезаписать
хорошая рабочая конфигурация со сломанной (отключение геймпада или перезагрузка исправит
что). Так что избегайте их, если вы четко не понимаете проблемы их использования.
Если ваш геймпад выдает неверные данные, и вы все же хотите откалибровать его, возможно, вы захотите
проверить вариант - калибровка, который позволяет настроить способ интерпретации xboxdrv вашего
данные геймпада.
МЫШИ
Инструменты для тестирования вывода на / dev / input / mouseX неизвестны.
ЗАМЕТКА
Если инструменты не предоставляют никаких результатов, это может быть не из-за неправильной конфигурации, а из-за
из-за того, что Xorg захватил ваше устройство событий и заблокировал его, см. раздел Xorg, чтобы узнать о возможных
исправления.
ПРИМЕРЫ
Приведенные ниже конфигурации представляют собой лишь несколько случайных примеров, другие примеры можно найти в
Примеры/ каталог исходного дерева xboxdrv или в / usr / share / doc / xboxdrv / examples /.
ВКЛЮЧЕНИЕ ТРИГГЕРЫ INTO КНОПКИ
По умолчанию xboxdrv будет обрабатывать триггер как аналоговую ось, а не кнопки, в то время как это
полезен для гоночных игр, он запутает многие другие игры, поэтому xboxdrv предоставляет
простой способ изменить управление на кнопки с помощью - триггер как кнопка опции:
$ xboxdrv --триггер-как-кнопка
CONFIGURE A МЕРТВАЯ ЗОНА
Многие геймпады центрируются не точно на нуле, а на случайных значениях вокруг него. Этот "шум"
может сбивать с толку некоторые игры и поэтому лучше отфильтровывать это можно с помощью:
$ xboxdrv --мертвая зона 25%
Процент - это количество шума, которое будет отфильтровано, вы также можете указать необработанный
значения устройства, если вы не укажете знак%. Если вы хотите иметь мертвую зону только на
Для конкретной оси вы должны использовать фильтр оси:
$ xboxdrv --buttonmap X1 ^ мертвая зона: 15000
КЛАВИАТУРА ЭМУЛЯЦИЯ
Следующая конфигурация заставит xboxdrv имитировать клавиатуру, что может быть полезно
для игр, в которые играют с помощью клавиатуры, например, флеш-игр или игр, не поддерживающих
джойстик. Поскольку в разных играх используются разные клавиши клавиатуры, вам, возможно, придется отрегулировать
сочетания клавиш, подходящие для игры:
$ xboxdrv
--ui-очистить
--ui-buttonmap a=XK_a,b=XK_b,x=XK_x,y=XK_y
--ui-buttonmap dl = XK_Left, dr = XK_Right, du = XK_Up, dd = XK_Down
БОРЬБА ИГРЫ:
В этой конфигурации левый и правый триггеры превращаются в цифровые кнопки. Вся ось
за исключением dpad игнорируются. RB и RT отображаются так, как если бы кнопки 1,2 и 3 были
одновременное нажатие, что полезно для некоторых специальных атак. Вместо использования
собственные имена кнопок, используются псевдонимы 1,2,3, ..., что немного упрощает работу
читать:
$ xboxdrv
--dpad-только
- триггер как кнопка
--buttonmap lb=1,x=2,y=3,lt=4,a=5,b=6
--buttonmap rb=1,rb=2,rb=3
--buttonmap rt = 4, rt = 5, rt = 6
CH АВИАБИЛЕТ ЭМУЛЯЦИЯ IN ДОБОКС:
In dosbox.conf задавать:
[джойстик]
тип джойстика = ch
Запустите xboxdrv с:
$ xboxdrv -s
--trigger-as-zaxis --square-axis
- относительная ось y2 = 64000 --axismap -y2 = x2, x2 = y2
Ваш правый аналоговый джойстик будет действовать как регулятор троттлинга, а курок - как руль направления. С использованием
--модификатор для установки четырехходового ограничителя также стоит подумать, чтобы не
случайно коснуться дроссельной заслонки при перемещении руля направления.
С ПОМОЩЬЮ МЫШИ ЭМУЛЯЦИЯ И ROCKER AT SAME ВРЕМЯ
Для одновременного использования эмуляции мыши и джойстика необходимо зарегистрировать два
конфигурация с xboxdrv, это работает через:
$ xboxdrv --next-config --mouse
Команда --next-config опция откроет вторую конфигурацию и все параметры конфигурации
с правой стороны пойдет туда, а все с левой стороны пойдет
в первую конфигурацию. Переключение между конфигурациями работает с руководством
кнопку, вы можете иметь столько конфигураций, сколько захотите.
ОТОБРАЖЕНИЕ КАЖДЫЙ КНОПКА НЕСКОЛЬКО
В некоторых играх может потребоваться больше кнопок, чем на вашем геймпаде, в такой ситуации это может быть
полезно сопоставить кнопку дважды, используя сдвинутые кнопки:
$ xboxdrv
--ui-очистить
--ui-axismap X1=ABS_X,Y1=ABS_Y
--ui-buttonmap a=JS_0,b=JS_1,x=JS_2,y=JS_3
--ui-buttonmap lb+a=JS_4,lb+b=JS_5,lb+x=JS_6,lb+y=JS_7
--ui-buttonmap rb + a = JS_8, rb + b = JS_9, rb + x = JS_10, rb + y = JS_11
.fi
Здесь все лицевые кнопки отображаются трижды, один раз, когда
нажата нормально, один раз при нажатии при удержании LB и
один раз при нажатой кнопке RB, что дает вам шесть кнопок
12 виртуальных.
Зауэрбратен
Первый аналоговый джойстик отображается на клавиши управления курсором, второй аналоговый джойстик отображается на мышь.
Примечание: это всего лишь неполный пример, а не идеальная игровая конфигурация, у вас есть
делать настройки самостоятельно.
$ xboxdrv
--ui-axismap x2=REL_X:10,y2=REL_Y:-10,x1=KEY_LEFT:KEY_RIGHT,y1=KEY_UP:KEY_DOWN
--ui-buttonmap a=BTN_RIGHT,b=BTN_LEFT,x=BTN_EXTRA
--ui-buttonmap rb=KEY_5,lb=KEY_6,lt=BTN_LEFT,rt=BTN_RIGHT
--ui-buttonmap y=KEY_ENTER,dl=KEY_4,dr=KEY_2,du=KEY_1,dd=KEY_3,back=KEY_TAB,start=KEY_ESC
-s --мертвая зона 6000 --dpad-как-кнопка --триггер-как-кнопка
ВАРШАВА
Примечание: это всего лишь неполный пример, а не идеальная игровая конфигурация, у вас есть
делать настройки самостоятельно.
$ xboxdrv
--ui-axismap x2=REL_X:10,y2=REL_Y:-10,x1=KEY_A:KEY_D,y1=KEY_W:KEY_S
--ui-buttonmap a=KEY_LEFTSHIFT,b=BTN_C,x=BTN_EXTRA,y=KEY_C
--ui-buttonmap lb=BTN_RIGHT,rb=KEY_SPACE
--ui-buttonmap lt=KEY_Z,rt=BTN_LEFT
--ui-buttonmap dl=KEY_4,dr=KEY_2,du=REL_WHEEL:-1:150,dd=REL_WHEEL:1:150
--ui-buttonmap back=KEY_TAB,start=KEY_ESC
-s --мертвая зона 6000 --dpad-как-кнопка --триггер-как-кнопка
ПИСЬМО ЗАПУСКАТЬ СЦЕНАРИИ Для ИГРЫ
Если вам нужна полная настраиваемость игры и автоматический запуск xboxdrv, это
Проще всего написать небольшие сценарии запуска для ваших игр, которые будут запускать xboxdrv, запускать
ваша игра, а затем, когда игра закончится, снесите xboxdrv:
#!/ Бен / ш
исполнительный xboxdrv
--trigger-as-button -s
--
ваша_любимая_игра
# конец файла #
Здесь ваша_любимая_игра является исполняемым файлом вашей игры и передается на xboxdrv как последний
аргумент. Это заставит xboxdrv запустить игру и продолжать работу, пока игра
запущен, когда игра будет завершена, xboxdrv выйдет автоматически.
Если вы хотите передать параметры в игру, вам нужно добавить -- разделитель, иначе
ваши варианты игры были бы съедены xboxdrv.
СДЛ ПРИМЕЧАНИЯ
Чтобы SDL знал, какая ось действует как шляпа, а какая - как нормальная ось, вы должны установить
переменная окружения:
$ SDL_LINUX_JOYSTICK = "'Xbox Gamepad (драйвер пространства пользователя)' 6 1 0"
$ экспорт SDL_LINUX_JOYSTICK
Вам также может потребоваться дополнительно использовать это (зависит от способа компиляции SDL):
$ SDL_JOYSTICK_DEVICE = "/ dev / input / js0"
$ экспорт SDL_JOYSTICK_DEVICE
Это позволит DPad действовать как Hat в приложении на основе SDL. Для многих игр драйвер будет
работать без этого, но особенно в Dosbox эта переменная очень важна.
Если вы используете параметры в xboxdrv, которые изменяют количество осей, вам необходимо настроить
соответственно, см .:
· ⟨ftp://ptah.lnf.kth.se/pub/misc/sdl-env-vars⟩
SDL_LINUX_ДЖОЙСТИК
Специальная строка конфигурации джойстика для linux. Формат "название нумакс нумхеты
онемели » где name - строка имени джойстика (возможно, в одинарных кавычках), а
остальное количество топоров, шляп и мячей соответственно.
SDL_JOYSTICK_DEVICE
Устройство-джойстик для использования в драйвере джойстика linux в дополнение к обычному: / dev / js *,
/ dev / input / событие *, / dev / input / js *
УСТРАНЕНИЕ
"НЕТ XBOX OR XBOX360 КОНТРОЛЛЕР НАШЕЛ"
Это означает, что ваш контроллер либо не подключен, либо не распознается
Водитель. Чтобы исправить это, вам нужно знать номера idVendor и idProduct, которые вы можете
узнать через:
$ lsusb -v
После этого вы можете попробовать добавить их в этот массив в src / xpad_device.cpp:
XPadDevice xpad_devices [] = {...}
Если вам это удалось, отправьте патч по адресуgrumbel@gmail.com>, если нет, напишите мне
тоже, возможно, я смогу оказать дополнительную помощь.
В качестве альтернативы вы также можете использовать параметры --device и --type для принудительного использования USB-устройства.
а также тип контроллера обходить любое автоматическое обнаружение.
"НЕИЗВЕСТНЫЙ DATA: БАЙТОВ: 3 DATA: ... "
Это означает, что ваш контроллер отправляет данные, которые не понимаются драйвером. Если
ваш контроллер все еще работает, вы можете просто проигнорировать его, кажется, что контроллер Xbox360 отправляет
время от времени выводить бесполезные данные. Если ваш контроллер не работает и вы получаете много
этих строк, когда вы перемещаете стики или нажимаете кнопки, это означает, что ваш контроллер
говорит о непонятном протоколе, и требуется некоторая обратная инженерия. Контакт
<grumbel@gmail.com> и включить вывод:
$ lsusb -v
Вместе со всеми строками «Неизвестные данные» вы получите.
"ОШИБКА: НЕТ УДОБНЫЙ УИНПУТ УСТРОЙСТВО НАШЕЛ"
Убедитесь, что модули ядра uinput и joydev загружены. Убедитесь, что у вас есть
/ dev / input / uinput, / dev / uinput или / dev / misc / uinput и разрешения на доступ к ним.
Прежде чем сообщать об этом как об ошибке, убедитесь, что вы проверили, работает ли сам драйвер с:
$ xboxdrv --no-uinput -v
WIRELESS КОНТРОЛЛЕР НЕ РАБОТА
Вам необходимо синхронизировать контроллер, прежде чем его можно будет использовать, перезапуск драйвера не требуется.
и драйвер должен позволить вам теперь, когда он получает соединение после того, как вы синхронизируете
Контроллер.
КЛАВИАТУРА ЭМУЛЯЦИЯ
Когда вы пытаетесь разрешить xboxdrv отправлять события клавиатуры через --ui-buttonmap or --ui-осевая карта Xorg
для правильной работы необходимо зарегистрировать устройство как клавиатуру. Кажется, это работает
автоматически, когда вы привязываете более двух клавиш клавиатуры, если вы привязываете меньше, вам нужно
создать файл /etc/hal/fdi/preprobe/xboxdrv.fdi содержащий:
input.keys
Это сообщит HAL, а затем и Xorg, что xboxdrv действует как клавиатура.
WACOM ВОПРОСЫ
В некоторых старых ядрах графический планшет Wacom создает устройство-джойстик, поэтому xboxdrv или любой другой
другие настоящие джойстики заканчиваются как / dev / input / js1 вместо / dev / input / js0. Во многих играх
это приводит к тому, что джойстик больше не работает.
Временный обходной путь - просто удалить джойстик js0 и заменить его.
с символической ссылкой js1 через:
$ sudo ln -sf / dev / input / js1 / dev / input / js0
Этот обходной путь продлится только до следующей перезагрузки, так как имена устройств
динамически создается, но пока нет другого способа легко
обойти эту проблему.
В новых ядрах эта проблема исправлена.
УИНПУТ ВОПРОСЫ
В Ubuntu 9.04 разрешения устройства uinput изменены на 0640, то есть только
root имеет доступ к устройству. Чтобы изменить это обратно, чтобы пользователи в корневой группе имели
доступ к устройству и, в свою очередь, может запускать xboxdrv без sudo, вам нужно создать файл
под названием /etc/udev/rules.d/55-разрешения-uinput.rules с содержанием:
ЯДРО == "uinput", MODE = "0660", GROUP = "root"
ВИНО ВОПРОСЫ
При использовании геймпада Xbox360 в Wine он не обрабатывается специально как геймпад Xbox360, но
как обычный геймпад DirectInput. Это означает, что в играх не будет отображаться правильная кнопка.
ярлыки, а просто числа (например, «Btn1» вместо «A»). Помимо этого
должен работать нормально.
Поддержка XInput (замена Microsoft DirectInput, а не Xorg xinput) с
Январь 2011 г. не реализован в Wine, поэтому игры, требующие XInput и не имеющие
Резервный вариант DirectInput не будет работать с контроллером Xbox360, однако неофициальные исправления
существуют
XORG ВОПРОСЫ
Если вы запустите xboxdrv и вместо полностью рабочего джойстика вы получите
управление мышью, что может быть связано с недавними изменениями в Xorg и его горячее подключение устройства
умение обращаться. Есть четыре обходных пути, один из которых предполагает редактирование.
/etc/hal/fdi/policy/preferences.fdi рекомендуется.
ВРЕМЕННЫЙ Временное решение С ПОМОЩЬЮ HAL-УСТРОЙСТВО
Получите идентификатор устройства из hal:
$ hal-find-by-property --key 'info.product' --string 'Xbox Gamepad (драйвер пользовательского пространства)'
Затем снимите устройство с hal с помощью:
$ hal-device -r $ DEVICEID
ВРЕМЕННЫЙ Временное решение С ПОМОЩЬЮ xinput
Второй обходной путь работает с xinput:
список $ xinput
$ xinput set-int-prop $ DEVICEID 'Устройство включено' 32 0
ПОСТОЯННАЯ Временное решение С ПОМОЩЬЮ .ПИИ FILES
Первые два обходных пути являются временными и должны повторяться после каждого запуска
xboxdrv, последний обходной путь является постоянным:
Вам необходимо отредактировать:
/etc/hal/fdi/policy/preferences.fdi
И вставляем следующие строки:
ПОСТОЯННАЯ Временное решение BY ОТКЛЮЧЕНИЕ УСТРОЙСТВО AUTO ОБНАРУЖЕНИЕ
Четвертый обходной путь заключается в полном отключении автоопределения Xorg, вы можете сделать
что, добавив следующие строки в /etc/X11/xorg.conf:
Раздел «ServerFlags»
Вариант "AutoAddDevices" "False"
EndSection
Обратите внимание, что без автоматического определения вам придется вручную настраивать все свои мыши и
клавиатуры или ваш сервер Xorg не запускается должным образом. Итак, если вы уже не знакомы
при редактировании Xorg вам лучше избегать этого обходного пути. Обходной путь 3) в основном то же самое
эффект, за исключением того, что автоматическое обнаружение отключается только для одного устройства, которое оно вызывает
проблемы.
ЗАСТАВИТЬ СВЯЗЬ ПРОГРАММИРОВАНИЕ
Для документации по интерфейсу FF см .:
· ⟨http://github.com/github/linux-2.6/blob/f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b/Documentation/input/ff.txt⟩
· /usr/include/linux/input.h
Дополнительную информацию, связанную с обратной связью по усилию, не относящуюся к Linux, можно найти по адресу:
· ⟨http://www.immersion.com/developer/downloads/ImmFundamentals/HTML/⟩
· ⟨http://msdn.microsoft.com/en-us/library/bb219655(VS.85) .aspx⟩
ффтест - это приложение, которое можно использовать для тестирования интерфейса обратной связи по усилию.
По умолчанию принудительная обратная связь отключена, поскольку она вызывает проблемы в определенных приложениях. "Могила
Raider: Legend "например, при запуске в Wine вылетает при запуске, когда включен грохот,
при этом работает нормально при отключенном грохоте.
Используйте xboxdrv онлайн с помощью сервисов onworks.net