Итак, у нас есть руль от logitech и Euro Truck Simulator 2. Предположим, что вы уже поставили и настроили Oversteer, но вот беда - при запуске игры все ваши настройки сбрасываются. Искали решение, чтоб постоянно не запускать Oversteer руками после запуска игры? Их есть у меня.
Итак, после часа эксперементов и чтения логов я понял следующую мансу: Steam запускает игры в своём runtime-окружении, подменяя системные библиотеки. Из-за этого flatpak не может найти нужные библиотеки и падает с ошибкой вида:
version `CURL_GNUTLS_4' not found
Решение — очистить окружение Steam перед запуском flatpak через env -i, передав только необходимые переменные. Магия вот тут:
%command% & sleep 30 && env -i HOME=$HOME DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS PATH=/usr/bin:/bin LD_PRELOAD="" /usr/bin/flatpak run io.github.berarma.Oversteer -p "my"
Здесь %command% запускает игру в фоне, через 30 секунд Oversteer применяет профиль (у меня он называеется my) в чистом окружении без вмешательства Steam runtime. Задержка нужна чтобы дать игре время полностью инициализировать руль.
Если логировать это дело дальше, то всплывёт
ERROR: ld.so: object '/home/mikanight/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Эта ошибка возникает потому что Steam пытается подгрузить свой Game Overlay (тот самый оверлей с Shift+Tab) в виде 32-битной библиотеки (ELFCLASS32), но процесс Oversteer — 64-битный (ELFCLASS64). Они просто несовместимы по разрядности.
Ignored в конце сообщения — ключевое. Это не наша ошибка и не краш, тут вам в терминале объясняют, что ошибка проигнорирована и работа продолжается. На Oversteer это никак не влияет — ему оверлей Steam и не нужен.