Skip to content

Instantly share code, notes, and snippets.

@tonybaltovski
Created March 28, 2016 10:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tonybaltovski/fc4fbfdb4d715e2dcec8 to your computer and use it in GitHub Desktop.
Save tonybaltovski/fc4fbfdb4d715e2dcec8 to your computer and use it in GitHub Desktop.
# 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.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
# Emulate mouse wheel on r2 and l2
REL_WHEELUP = button_l1
REL_WHEELDOWN = button_r1
# 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'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment