Detect muOS board for keybindings

This commit is contained in:
2026-05-07 19:38:05 +02:00
parent 486fea38e7
commit 5233294b26
2 changed files with 79 additions and 4 deletions
+15
View File
@@ -1,5 +1,6 @@
# This file contains the Controls class, which is responsible for handling user input. # This file contains the Controls class, which is responsible for handling user input.
import configparser
import json import json
import os import os
from pathlib import Path from pathlib import Path
@@ -79,6 +80,20 @@ def _profile_candidates(profile_name):
def _detect_linux_hardware_profile(): def _detect_linux_hardware_profile():
muos_config_path = Path("/opt/muos/device/current/config.ini")
if muos_config_path.exists():
parser = configparser.ConfigParser()
try:
parser.read(muos_config_path, encoding="utf-8")
board_name = parser.get("board", "name", fallback="").strip().casefold()
except (configparser.Error, OSError):
board_name = ""
if "rg40xx" in board_name:
return "rg40xx", f"muos:{board_name}"
if "r36s" in board_name:
return "r36s", f"muos:{board_name}"
hints = [] hints = []
for path_like in [ for path_like in [
"/proc/device-tree/model", "/proc/device-tree/model",
+64 -4
View File
@@ -1,7 +1,67 @@
#!/bin/sh #!/bin/sh
eval "$(/home/ark/miniconda3/bin/conda shell.bash hook)"
set -eu
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
find_game_dir() {
for candidate in \
"$SCRIPT_DIR" \
"$SCRIPT_DIR/mice" \
/roms/ports/mice \
/root/mice \
"$HOME/mice"; do
if [ -f "$candidate/rats.py" ]; then
printf '%s\n' "$candidate"
return 0
fi
done
return 1
}
find_conda() {
for candidate in \
/home/ark/miniconda3/bin/conda \
/root/miniconda3/bin/conda \
"$HOME/miniconda3/bin/conda" \
/usr/bin/conda; do
if [ -x "$candidate" ]; then
printf '%s\n' "$candidate"
return 0
fi
done
return 1
}
detect_keybindings_profile() {
if [ -f /opt/muos/device/current/config.ini ]; then
board_name=$(sed -n 's/^name = //p' /opt/muos/device/current/config.ini | head -n 1 | tr '[:upper:]' '[:lower:]')
case "$board_name" in
*rg40xx*)
printf 'rg40xx\n'
return 0
;;
*r36s*)
printf 'r36s\n'
return 0
;;
esac
fi
return 1
}
GAMEDIR=$(find_game_dir)
CONDABIN=$(find_conda)
export MICE_PROJECT_ROOT="$GAMEDIR"
if [ -z "${MICE_KEYBINDINGS_PROFILE:-}" ]; then
MICE_KEYBINDINGS_PROFILE=$(detect_keybindings_profile || true)
export MICE_KEYBINDINGS_PROFILE
fi
eval "$($CONDABIN shell.bash hook)"
conda activate myenv conda activate myenv
cd /roms/ports/mice/
#git pull cd "$GAMEDIR"
python rats.py python rats.py
sleep 3