Git Product home page Git Product logo

oversteer's Introduction

Oversteer - Steering Wheel Manager for Linux Packaging status

Oversteer manages steering wheels on Linux using the features provided by the loaded modules. It doesn't provide hardware support, you'll still need a driver module that enables the hardware on Linux.

Most wheels will work but won't have FFB without specific drivers that support that feature.

I can test only on a Logitech G29 Driving Force. Please, report your results with other devices. More wheel models will be added to this list as they are requested.

Use at your own risk. Suggestions, bugs and pull requests welcome.

Supported devices

Oversteer maintains a list of known wheel devices. If your wheel isn't recognized, please contact me.

This section lists devices currently recognized. Being in this list doesn't imply good hardware support. When thinking about buying a wheel don't rely solely on the information here.

Oversteer recognizes the following Logitech wheels which are supported by the default in-kernel module:

  • Wingman Formula GP
  • Wingman Formula Force GP
  • Driving Force / Formula EX
  • Driving Force Pro
  • Driving Force GT
  • Momo Force
  • Momo Racing Force
  • Speed Force Wireless
  • G25 Racing Wheel
  • G27 Racing Wheel
  • G29 Driving Force Racing Wheel (PS3 mode)
  • G920 Driving Force Racing Wheel

The Logitech G923 TRUEFORCE Sim Racing Wheel for XBOX/PC should be supported by the in-kernel HIDPP module when this patch is accepted upstream.

Most Logitech wheels, except XBOX/PC versions, can get improved support from new-lg4ff with more effects and features. Some games won't have full FFB without it.

The following wheels are supported by the in-kernel PIDFF module:

The following wheels will need custom driver modules for FFB support. These drivers are still being worked on. (I'm NOT claiming they will fully work. Please, check the related projects for more information.):

These wheels are recognized but don't have driver support (Force Feedback and other features won't work):

  • Thrustmaster Force Feedback Racing Wheel
  • Thrustmaster TX Racing Wheel.
  • Thrustmaster T500 RS.

Features

When supported by the device and the driver:

  • Change rotation range.
  • Change emulation/working modes.
  • Combine accelerator/brakes pedals for games that use just one axis.
  • Change autocentering force strength.
  • Change force feedback gain.
  • Device configuration profiles.
  • Overlay window to display/configure range.
  • Use wheel buttons to configure range.
  • Hardware performance testing.
  • Combine accelerator/clutch pedals. Useful for flight simulators. (Not supported with in-kernel modules)
  • Change global force feedback gain. (Not supported with in-kernel modules)
  • Change each conditional force feedback effect type gain. (Not supported with in-kernel modules)
  • FFBmeter to monitor FFB clipping using wheel leds or overlay window. (Not supported with in-kernel modules)

Installation

Packaging status

Arch

User DNModder has created an AUR package. Install following the Arch Wiki instructions.

Gentoo

User gripped has created a Gentoo ebuild.

Other distributions

Requirements

Install all dependencies on Debian systems with the following command:

apt install python3 python3-distutils python3-gi python3-pyudev python3-xdg python3-evdev gettext meson appstream-util desktop-file-utils python3-matplotlib python3-scipy

Install all dependencies on Fedora systems with the following command:

dnf install python3 python3-distutils-extra python3-gobject python3-pyudev python3-pyxdg python3-evdev gettext meson appstream desktop-file-utils python3-matplotlib-gtk3 python3-scipy

Install all dependencies on OpenSUSE systems with the following command:

zypper in python3 python3-distutils-extra python3-gobject python3-pyudev python3-pyxdg python3-evdev meson AppStream desktop-file-utils python3-matplotlib-gtk3 python3-scipy gettext-tools

For other distributions, use your package manager to find and install the equivalent packages.

Permissions

Accessing the wheel settings requires some permissions.

Oversteer will automatically install udev rules to grant these permissions to any user in the system after a reboot.

By default, the udev rules will be installed at /usr/local/lib/udev/rules.d when installing to prefix /usr/local or /lib/udev/rules.d when installing to any other prefix. The location can be changed using meson option udev_rules_dir but it shouldn't be required except maybe for packagers.

Older rules might be already installed at /etc/udev/rules.d or /lib/udev/rules.d. You may need to remove these files manually in case you're experiencing issues with permissions.

The installed udev rules files will have these names:

  • 99-fanatec-wheel-perms.rules
  • 99-logitech-wheel-perms.rules
  • 99-thrustmaster-wheel-perms.rules

Build and install

Start by downloading Oversteer and change your working directory to it. It could be a release package or the master branch.

git clone https://github.com/berarma/oversteer.git
cd oversteer

Prepare build system:

meson build
cd build

Installing (needs administration rights):

ninja install

A reboot will be needed to reload the newly installed udev rules. Alternatively, running the command udevadm control --reload-rules && udevadm trigger will do the same.

Uninstalling

Run these commands inside the project directory to uninstall:

cd build
ninja uninstall

Updating

To avoid leaving old files behind, it's recommended to uninstall the old version first, then install the new version.

Follow the uninstall instructions inside the old version directory, then follow the install instructions inside the new version directory.

Using it

Oversteer can be launched as any desktop application. It doesn't need to be running for the settings to remain changed, but some features require it.

It can also be used from the console to change wheel settings. Run oversteer --help to see the command line help.

Leillo1975 has kindly created a video explaining the basics of Oversteer (Spanish).

Using it as a companion app to your games

You can configure game launchers to run Oversteer and load a profile or change settings so that it automatically configures the wheel when the game runs. When the game exits the app will close too. Please, refer to the command line help for more info.

It can also stop before the game runs so you can change some settings manually each time. This can be done from the command line or from a setting in the UI.

An example that would work for any Steam game would be:

oversteer -p myprofile -g "%command%"

Known issues

  • Most drivers don't support Global Gain and Autocenter settings, only new-lg4ff for now. The Linux API is used instead when they aren't available. If this happens, Oversteer has to reset their values everytime it starts. Also, games will be able to override these settings.

Updating translations (for translators)

From the project root directory:

ninja oversteer-pot
ninja oversteer-update-po

Contributing

We could all greatly benefit from your help as with any other free software project.

Reports about what works and what not on different devices and systems are very welcome. You can also help by contributing specific notes for your distro, or doing the packaging work and everything else.

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.