60d4653083
Ship a Steam Input controller layout (controller_config/punktfunk.vdf) whose always-on `ts_n` command enables native touchscreen delivery on the Deck, and have the backend auto-install it (apply_controller_config: copy to controller_base/templates + upsert the per-account configset entry, chown to the user, back up first). This is what makes the Deck touchscreen reach the client as native touch under gamescope without disabling Steam Input (impossible on the Deck) — no manual controller setup. Two shortcuts sharing the "Punktfunk" name (so one config key covers both): a hidden stateful stream entry and a visible stateless entry that launches straight into the gamepad UI. Both get full artwork (grid/gridwide/hero/logo/icon, replaced with exported PNGs). Drop the art-generation script. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
758 lines
9.7 KiB
Plaintext
Executable File
758 lines
9.7 KiB
Plaintext
Executable File
"controller_mappings"
|
|
{
|
|
"version" "3"
|
|
"revision" "2"
|
|
"title" "Punktfunk"
|
|
"description" "Native touchscreen + full gamepad passthrough for the Punktfunk streaming client."
|
|
"creator" "0"
|
|
"progenitor" "template://controller_neptune_gamepad_fps.vdf"
|
|
"url" "template://controller_neptune_gamepad_fps.vdf"
|
|
"export_type" "unknown"
|
|
"controller_type" "controller_neptune"
|
|
"controller_caps" "23117823"
|
|
"major_revision" "0"
|
|
"minor_revision" "0"
|
|
"Timestamp" "0"
|
|
"localization"
|
|
{
|
|
"english"
|
|
{
|
|
"title" "Punktfunk"
|
|
"description" "Native touchscreen + full gamepad for Punktfunk streaming."
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "0"
|
|
"mode" "four_buttons"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"button_a"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button A, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_b"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button B, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_x"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button X, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_y"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button Y, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "1"
|
|
"mode" "dpad"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"dpad_north"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button dpad_up, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_south"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button dpad_down, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_east"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button dpad_right, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_west"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button dpad_left, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "2"
|
|
"mode" "joystick_move"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Soft_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "3"
|
|
"mode" "joystick_move"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_LEFT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
"settings"
|
|
{
|
|
"deadzone_inner_radius" "7199"
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "4"
|
|
"mode" "trigger"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
}
|
|
"settings"
|
|
{
|
|
"output_trigger" "1"
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "5"
|
|
"mode" "trigger"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
}
|
|
"settings"
|
|
{
|
|
"output_trigger" "2"
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "6"
|
|
"mode" "joystick_move"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Soft_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "8"
|
|
"mode" "joystick_move"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "9"
|
|
"mode" "dpad"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"dpad_north"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button DPAD_UP, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_south"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button DPAD_DOWN, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_east"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button DPAD_RIGHT, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"dpad_west"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button DPAD_LEFT, , "
|
|
}
|
|
"settings"
|
|
{
|
|
"haptic_intensity" "1"
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
"settings"
|
|
{
|
|
"requires_click" "0"
|
|
"haptic_intensity_override" "0"
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "10"
|
|
"mode" "single_button"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Soft_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button START, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "11"
|
|
"mode" "single_button"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Soft_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button SELECT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "12"
|
|
"mode" "mouse_joystick"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Soft_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "13"
|
|
"mode" "flickstick"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "14"
|
|
"mode" "flickstick"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_LEFT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "15"
|
|
"mode" "flickstick"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_RIGHT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "16"
|
|
"mode" "flickstick"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"click"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button JOYSTICK_LEFT, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"group"
|
|
{
|
|
"id" "7"
|
|
"mode" "switches"
|
|
"name" ""
|
|
"description" ""
|
|
"inputs"
|
|
{
|
|
"button_escape"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button start, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_menu"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button select, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"left_bumper"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button shoulder_left, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"right_bumper"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "xinput_button shoulder_right, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_back_left"
|
|
{
|
|
"activators"
|
|
{
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_back_right"
|
|
{
|
|
"activators"
|
|
{
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_back_left_upper"
|
|
{
|
|
"activators"
|
|
{
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"button_back_right_upper"
|
|
{
|
|
"activators"
|
|
{
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
"always_on_action"
|
|
{
|
|
"activators"
|
|
{
|
|
"Full_Press"
|
|
{
|
|
"bindings"
|
|
{
|
|
"binding" "controller_action ts_n, , "
|
|
}
|
|
}
|
|
}
|
|
"disabled_activators"
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"preset"
|
|
{
|
|
"id" "0"
|
|
"name" "Default"
|
|
"group_source_bindings"
|
|
{
|
|
"7" "switch active"
|
|
"0" "button_diamond active"
|
|
"1" "left_trackpad active"
|
|
"11" "left_trackpad inactive"
|
|
"16" "left_trackpad inactive"
|
|
"2" "right_trackpad inactive"
|
|
"6" "right_trackpad inactive"
|
|
"10" "right_trackpad inactive"
|
|
"12" "right_trackpad active"
|
|
"15" "right_trackpad inactive"
|
|
"3" "joystick active"
|
|
"14" "joystick inactive"
|
|
"4" "left_trigger active"
|
|
"5" "right_trigger active"
|
|
"8" "right_joystick active"
|
|
"13" "right_joystick inactive"
|
|
"9" "dpad active"
|
|
}
|
|
}
|
|
"settings"
|
|
{
|
|
"left_trackpad_mode" "0"
|
|
"right_trackpad_mode" "0"
|
|
}
|
|
}
|