Хочу забиндить гироскоп на правый (или левый) стик.
Что бы камерой крутить (или рулем в случае с левым стиком).
У ds4drv нет мана, а по пояснениям в дефолтном конфиге ничего не могу понять:
# Many of the settings used here are directly connected to their command line
# counterparts, see "ds4drv --help" for more information about available options.
##
# Global options
##
[ds4drv]
# Run ds4drv in background as a daemon
#daemon = true
# Location of the log file in daemon mode
#daemon-log = ~/.cache/ds4drv.log
# Location of the PID file in daemon mode
#daemon-pid = /tmp/ds4drv.pid
# Enable hidraw mode
#hidraw = true
##
# Controller settings
#
# This is the default profile for each controller.
# Multiple controllers slots are defined by increasing the number.
#
# Controller sections contain:
# Key: A option, these are the same options that can used on the command line
# but without the "--" prefix.
# Value: The option's value, should be "true" if no value is needed.
#
# See "ds4drv --help" for a complete list of available options.
##
[controller:1]
# Enables LED flash on low battery
#battery-flash = true
# Sets LED color
#led = 0000ff
# Enables profile switching
#profile-toggle = PS
# Profiles to cycle through
#profiles = xpad,kbmouse
##
# Profiles
#
# Profiles allows switching controller settings during runtime.
#
# Profile sections always require a name and are then enabled on a controller
# with "profiles = <profile1>[,<profile2>]".
#
# The same settings available for controllers are used here.
##
[profile:xpad]
led = ff0000
# Emulate the same button mapping as wired Xbox 360 controllers
emulate-xpad = true
[profile:kbmouse]
led = 00ff00
# Enable trackpad mouse
trackpad-mouse = true
# Custom button mapping
mapping = keyboard
# Custom action bindings
bindings = exec_stuff
##
# Mappings
#
# Mappings let you map buttons and sticks to mouse, key and joystick events.
#
# Mapping sections always require a name and are then enabled in a profile
# with "mapping = <name>".
#
# Mapping sections contain:
# Key: A Linux input event, see /usr/include/linux/input-event-codes.h for a complete list
# Value: Button on the DS4, use --dump-reports to see all the available buttons
##
[mapping:keyboard]
# General button to key mapping
KEY_UP = dpad_up
KEY_LEFT = dpad_left
KEY_DOWN = dpad_down
KEY_RIGHT = dpad_right
KEY_Z = button_cross
KEY_X = button_circle
# Turn analog stick directions into buttons
KEY_W = -left_analog_y
KEY_A = -left_analog_x
KEY_S = +left_analog_y
KEY_D = +left_analog_x
# Map relative mouse movement to a analog stick
REL_X = right_analog_x
REL_Y = right_analog_y
# Map mouse buttons
BTN_LEFT = button_r2
BTN_RIGHT = button_l2
# Emulate mouse wheel on r1 and l1
REL_WHEELUP = button_l1
REL_WHEELDOWN = button_r1
# Mouse settings
#mouse_sensitivity = 0.6
#mouse_deadzone = 5
# Scroll wheel emulation settings (values are in seconds)
#mouse_scroll_repeat_delay = 0.25 # How long to wait before continual scrolling
#mouse_scroll_delay = 0.05 # Lower this to scroll faster; raise to scroll slower
##
# Bindings
#
# Bindings let you bind button combos to special built-in actions.
#
# Binding sections can be defined with a name and are then enabled in a profile
# with "bindings = <name>".
#
# It's also possible to define a global bindings section that is enabled
# on all profiles.
#
# Sections contains:
# Key: A button combo
# Value: An action, see next section for valid actions.
#
#
# Valid actions:
# next-profile Loads the next profile
# prev-profile Loads the previous profile
# load-profile <profile> Loads the specified profile
# exec <command> [arg1] [arg2] ... Executes the command with
# specified arguments
# exec-background <command> [arg1] [arg2] ... Same as exec but launches in
# the background
#
#
# Actions will be pre-processed and replace variables with real values.
#
# Valid variables:
# $profile The current profile
# $name Pretty name of the current device
# $device_addr Bluetooth address of the device
# $report.<attribute> Replace <attribute> with a valid attribute,
# use --dump-reports to see which are available
##
[bindings]
# Cycle profiles
#PS+Right = next-profile
#PS+Left = prev-profile
# Go directly to specified profile
#PS+Up = load-profile kbmouse
#PS+Down = load-profile default
[bindings:exec_stuff]
# Execute a command in the foreground, blocking until it has finished
PS+Cross = exec echo '$name'
# Execute a command in the background
PS+Triangle = exec-background sh -c 'echo "disconnect $device_addr" | bluetoothctl'
Посмотрел через --dump-reports
обозначения кнопок:
[info][controller 1] Report dump
left_analog_x: 128
left_analog_y: 128
right_analog_x: 128
right_analog_y: 128
l2_analog: 0
r2_analog: 0
dpad_up: False
dpad_down: False
dpad_left: False
dpad_right: False
button_cross: False
button_circle: False
button_square: False
button_triangle: False
button_l1: False
button_l2: False
button_l3: False
button_r1: False
button_r2: False
button_r3: False
button_share: False
button_options: False
button_trackpad: False
button_ps: False
motion_y: -3
motion_x: -2
motion_z: 4
orientation_roll: -107
orientation_yaw: 7463
orientation_pitch: -21
trackpad_touch0_id: 1
trackpad_touch0_active: False
trackpad_touch0_x: 29
trackpad_touch0_y: 766
trackpad_touch1_id: 2
trackpad_touch1_active: False
trackpad_touch1_x: 1249
trackpad_touch1_y: 0
timestamp: 14
battery: 8
plug_usb: False
plug_audio: False
plug_mic: False
Теперь судя по всему нужно указать профиль
[profile:default]
right_analog_y = orientation_yaw
И т.д…
Но ds4drv банально выдает ошибку.
ЧЯДНТ?