Steam Frame Lepton添加手柄映射支持
Steam Frame Lepton添加手柄映射支持
About
目前lepton并没有启用steam input和硬件手柄的直接输入,所以需要手动在容器启动时手动把宿主机的/dev/input/ 手动映射到podman容器中,需要修改mounting.sh添加以下字段
配置路径:~/.local/share/Steam/steamapps/common/Lepton/liblepton/mounting.sh# Steam Input exposes Frame controllers as virtual Xbox gamepads on SteamOS.
# Event numbers change across boots, so select devices by their kernel name
# instead of hard-coding event numbers (or exposing all of /dev/input).
local gamepad_count=0
local input_node input_name is_gamepad
for input_node in /dev/input/event*; do
[[ -c "${input_node}" ]] || continue
# udev's ID_INPUT_JOYSTICK can also be set on Steam Ctrl mouse/keyboard
# interfaces on Frame, so use the kernel-reported name to avoid passing
# those unrelated devices into Android.
input_name="$(cat "/sys/class/input/${input_node##*/}/device/name" 2>/dev/null || true)"
is_gamepad=false
if [[ "${input_name,,}" == *gamepad* || "${input_name,,}" == *joystick* || "${input_name,,}" == *"x-box"* || "${input_name,,}" == *xbox* ]]; then
is_gamepad=true
fi
[[ "${is_gamepad}" == true ]] || continue
podman_cmdline --device "${input_node}:${input_node}:r"
println "Passing gamepad input ${input_node} into Lepton"
((gamepad_count += 1))
done
if [[ "${gamepad_count}" -eq 0 ]]; then
println "No host evdev gamepad found; Android apps will not receive Linux gamepad input"
fi