Skip to content

Commit

Permalink
feat(waydroid): Fix controller integration, add automatic DPI scaling…
Browse files Browse the repository at this point in the history
… for Deck & Legion Go, others can be added to /etc/default/waydroid-launcher
  • Loading branch information
KyleGospo committed Feb 5, 2024
1 parent 615299f commit 61ae746
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Steam Deck Controller - USB
#

# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html

key 304 BUTTON_A
key 305 BUTTON_B
key 307 BUTTON_X
key 308 BUTTON_Y

key 310 BUTTON_L1
key 311 BUTTON_R1

# Triggers.
axis 0x02 LTRIGGER
axis 0x05 RTRIGGER

# Left and right stick.
axis 0x00 X
axis 0x01 Y

# Right stick / mousepad
axis 0x03 Z
axis 0x04 RZ

key 317 BUTTON_THUMBL
key 318 BUTTON_THUMBR

# Hat.
axis 0x10 HAT_X
axis 0x11 HAT_Y

# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
# Left arrow
key 314 BUTTON_SELECT
# Right arrow
key 315 BUTTON_START

# Steam key
key 316 BUTTON_MODE
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
WAYDROID_DENSITY=215
WAYDROID_GRALLOC=minigbm_gbm_mesa

# Handle custom Waydroid DPI for known devices.
case "$(cat /sys/devices/virtual/dmi/id/product_name)" in
"Jupiter" | "Galileo" | "AYANEO GEEK" | "G1619-05")
WAYDROID_DENSITY=215 ;;
"83E1")
WAYDROID_DENSITY=340 ;;
esac
11 changes: 10 additions & 1 deletion system_files/desktop/shared/usr/libexec/waydroid-container-start
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/bash

source /etc/default/waydroid-launcher
source /etc/default/steamos-nested-desktop

# Ensure needed props are present
if ! grep -q "persist.waydroid.udev=true" "/var/lib/waydroid/waydroid_base.prop"; then
Expand All @@ -11,7 +12,15 @@ if ! grep -q "persist.waydroid.uevent=true" "/var/lib/waydroid/waydroid_base.pro
sudo sh -c 'echo -e "persist.waydroid.uevent=true" >> /var/lib/waydroid/waydroid_base.prop'
fi

sudo sed -i "s/ro.sf.lcd_density=.*/ro.sf.lcd_density=${WAYDROID_DENSITY:-215}/g" /var/lib/waydroid/waydroid_base.prop
if [[ ! -z "$WAYDROID_DENSITY" ]]; then
sudo sed -i "s/ro.sf.lcd_density=.*/ro.sf.lcd_density=${WAYDROID_DENSITY}/g" /var/lib/waydroid/waydroid_base.prop
fi
sudo sed -i "s/ro.hardware.gralloc=.*/ro.hardware.gralloc=${WAYDROID_GRALLOC:-minigbm_gbm_mesa}/g" /var/lib/waydroid/waydroid_base.prop

# Add controller fixes automatically
if [[ -f "/usr/share/ublue-os/waydroid/Vendor_28de_Product_11ff.kl" ]]; then
mkdir -p "/var/lib/waydroid/overlay/system/usr/keylayout"
cp "/usr/share/ublue-os/waydroid/Vendor_28de_Product_11ff.kl" "/var/lib/waydroid/overlay/system/usr/keylayout/"
fi

sudo systemctl start waydroid-container.service
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/usr/bin/bash

sudo sh -c 'for i in $(seq 7 9); do echo add > /sys/class/input/event$i/uevent; done'
sudo sh -c 'echo add > /sys/devices/virtual/input/input*/event*/uevent'

0 comments on commit 61ae746

Please sign in to comment.