{"id":15116889,"url":"https://github.com/berarma/oversteer","last_synced_at":"2026-02-04T23:08:47.161Z","repository":{"id":37902979,"uuid":"171569216","full_name":"berarma/oversteer","owner":"berarma","description":"Steering Wheel Manager for GNU/Linux","archived":false,"fork":false,"pushed_at":"2025-07-31T16:58:05.000Z","size":494,"stargazers_count":806,"open_issues_count":42,"forks_count":74,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-09-25T08:47:51.566Z","etag":null,"topics":["fanatec","gnome","linux","logitech","steering-wheel","thrustmaster"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berarma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-02-19T23:55:37.000Z","updated_at":"2025-09-20T11:44:12.000Z","dependencies_parsed_at":"2023-02-02T04:32:04.269Z","dependency_job_id":"464e2112-6844-4110-b79e-7d26504845ad","html_url":"https://github.com/berarma/oversteer","commit_stats":{"total_commits":291,"total_committers":17,"mean_commits":17.11764705882353,"dds":"0.12371134020618557","last_synced_commit":"6e4d34bec290f29ec000f9f6e2151f3ebee8f672"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/berarma/oversteer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berarma%2Foversteer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berarma%2Foversteer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berarma%2Foversteer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berarma%2Foversteer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berarma","download_url":"https://codeload.github.com/berarma/oversteer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berarma%2Foversteer/sbom","scorecard":{"id":234048,"data":{"date":"2025-08-11","repo":{"name":"github.com/berarma/oversteer","commit":"f53787d5623ef55a12b86f91bb347dd14de50e35"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":10,"reason":"1 commit(s) and 12 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":5,"reason":"Found 12/23 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch 'v0.8.x'","Warn: branch protection not enabled for branch '0.5.x'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T05:17:35.748Z","repository_id":37902979,"created_at":"2025-08-17T05:17:35.748Z","updated_at":"2025-08-17T05:17:35.748Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277302072,"owners_count":25795357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fanatec","gnome","linux","logitech","steering-wheel","thrustmaster"],"created_at":"2024-09-26T01:45:22.436Z","updated_at":"2026-02-04T23:08:47.146Z","avatar_url":"https://github.com/berarma.png","language":"Python","readme":"# Oversteer - Steering Wheel Manager for Linux\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"data/oversteer-readme.png\"\u003e\n\u003c/p\u003e\n\n\u003ca href=\"https://repology.org/project/unit/versions\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/oversteer.svg\" alt=\"Packaging status\" align=\"right\" style=\"margin-left:2em;\"\u003e\n\u003c/a\u003e\n\n[_Oversteer_](https://github.com/berarma/oversteer) manages steering wheels on\nLinux using the features provided by the loaded modules. It doesn't provide\nhardware support, you'll still need a driver module that enables the hardware\non Linux.\n\nMost wheels will work but won't have FFB without specific drivers that support\nthat feature.\n\nI can test only on a Logitech G29 Driving Force. Please, report your\nresults with other devices. More wheel models will be added to this list\nas they are requested.\n\n__Use at your own risk. Suggestions, bugs and pull requests welcome.__\n\n## Supported devices\n\n_Oversteer_ maintains a list of known wheel devices. If your wheel isn't\nrecognized, please contact me.\n\nThis section lists devices currently recognized. Being in this list doesn't\nimply good hardware support. __When thinking about buying a wheel don't rely\nsolely on the information here__.\n\n_Oversteer_ recognizes the following Logitech wheels which are supported by the\ndefault in-kernel module:\n\n- Wingman Formula GP\n- Wingman Formula Force GP\n- Driving Force / Formula EX\n- Driving Force Pro\n- Driving Force GT\n- Momo Force\n- Momo Racing Force\n- Speed Force Wireless\n- G25 Racing Wheel\n- G27 Racing Wheel\n- G29 Driving Force Racing Wheel (PS3 mode)\n- G920 Driving Force Racing Wheel\n- Logitech G923 for XBox (since Linux 6.3)\n- OpenFFBoard, (https://github.com/Ultrawipf/OpenFFBoard).\n\nWheels using the Logitech driver (except XBOX/PC versions) can get improved\nsupport using [new-lg4ff](https://github.com/berarma/new-lg4ff), with more\neffects and features. Some games won't have full FFB without it.\n\nThe following wheels will need custom driver modules for FFB support.\nThese drivers are still being worked on. **(I'm NOT claiming they will fully\nwork. Please, check the related projects for more information.)**:\n\n- Logitech G923 for PS/PC with [new-lg4ff](https://github.com/berarma/new-lg4ff).\n- Thrustmaster T150 with [t150_driver](https://github.com/scarburato/t150_driver).\n- Thrustmaster TMX Force Feedback with [t150_driver](https://github.com/scarburato/t150_driver).\n- Thrustmaster T300 RS with [hid-tmff2](https://github.com/Kimplul/hid-tmff2).\n- Thrustmaster T248 with [hid-tmff2](https://github.com/Kimplul/hid-tmff2).\n- Thrustmaster TS-XW Racer with [hid-tmff2](https://github.com/Kimplul/hid-tmff2).\n- FANATEC CSL Elite Wheel Base with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n- FANATEC CSL Elite Wheel Base PS4 with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n- FANATEC ClubSport Wheel Base V2 with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n- FANATEC ClubSport Wheel Base V2.5 with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n- FANATEC Podium Wheel Base DD1/DD2 with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n- FANATEC CSL DD / GT DD Pro Wheel with [hid-fanatecff](https://github.com/gotzl/hid-fanatecff).\n\nThese wheels are recognized but don't have driver support (Force Feedback and\nother features won't work):\n\n- Thrustmaster Force Feedback Racing Wheel\n- Thrustmaster TX Racing Wheel\n- Thrustmaster T500 RS\n- Thrustmaster T80\n- Thrustmaster Ferrari 458\n\n\n## Features\n\nWhen supported by the device and the driver:\n\n- Change rotation range.\n- Change emulation/working modes.\n- Combine accelerator/brakes pedals for games that use just one axis.\n- Change autocentering force strength.\n- Change force feedback gain.\n- Device configuration profiles.\n- Overlay window to display/configure range.\n- Use wheel buttons to configure range.\n- Hardware performance testing.\n- Combine accelerator/clutch pedals. Useful for flight\n  simulators. (Not supported with in-kernel modules)\n- Change global force feedback gain. (Not supported with in-kernel modules)\n- Change each conditional force feedback effect type gain. (Not supported with in-kernel modules)\n- FFBmeter to monitor FFB clipping using wheel leds or overlay\n  window. (Not supported with in-kernel modules)\n\n## Installation\n\nDISCLAIMER: When running commands starting with `sudo` you're requesting admin\nrights to perform the operation. These commands will make changes to your\nsystem that should only performed by a system administrator or someone knowing\nwhat they're doing.\n\n### AppImage\n\n@Samueru-sama has kindly created an [AppImage](https://github.com/pkgforge-dev/Oversteer-AppImage/releases) that can run on any distribution without installing\nanything.\n\n### Arch\n\nDarvin Delgado (@DNModder) has kindly created an [AUR\npackage](https://aur.archlinux.org/packages/oversteer/). Install following\nthe [Arch Wiki\ninstructions](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).\n\n### Gentoo\n\n@gripped has kindly created a [Gentoo ebuild](https://github.com/gripped/Logitech-wheel-ebuilds).\n\n### Flathub\n\nJoshua John (@jo5huajohn) has kindly made a [Flatpak\npackage](https://flathub.org/apps/io.github.berarma.Oversteer) available at\nFlathub.\n\n#### Permissions\n\nAfter installing the Flatpak package, permission files have to be installed manually.\n\nCopy the contents of\n[https://github.com/berarma/oversteer/tree/master/data/udev](https://github.com/berarma/oversteer/tree/master/data/udev)\ninto `/usr/lib/udev/rules.d`.\n\nIf you're using the terminal, these commands will install the permission files:\n\n```\nsudo wget https://github.com/berarma/oversteer/raw/refs/heads/master/data/udev/99-fanatec-wheel-perms.rules -P /usr/lib/udev/rules.d/\nsudo wget https://github.com/berarma/oversteer/raw/refs/heads/master/data/udev/99-logitech-wheel-perms.rules -P /usr/lib/udev/rules.d/\nsudo wget https://github.com/berarma/oversteer/raw/refs/heads/master/data/udev/99-thrustmaster-wheel-perms.rules -P /usr/lib/udev/rules.d/\n```\n\nRestart your computer, or reload udev rules with command:\n\n`sudo udevadm control --reload-rules \u0026\u0026 sudo udevadm trigger`.\n\n### Other distributions\n\n#### Requirements\n\nInstall all dependencies on Debian systems with the following command:\n\n`sudo apt git install python3 python3-distutils python3-gi python3-gi-cairo\npython3-pyudev python3-xdg python3-evdev gettext meson appstream-util\ndesktop-file-utils python3-matplotlib python3-scipy`\n\nInstall all dependencies on Fedora systems with the following command:\n\n`sudo dnf git install python3 python3-distutils-extra python3-gobject\npython3-pyudev python3-pyxdg python3-evdev gettext meson appstream\ndesktop-file-utils python3-matplotlib-gtk3 python3-scipy libappstream-glib`\n\nInstall all dependencies on OpenSUSE systems with the following command:\n\n`sudo zypper in git python3 python3-distutils-extra python3-gobject\npython3-pyudev python3-pyxdg python3-evdev meson AppStream desktop-file-utils\npython3-matplotlib-gtk3 python3-scipy gettext-tools`\n\nFor other distributions, use your package manager to find and install the\nequivalent packages.\n\n#### Permissions\n\nAccessing the wheel settings requires some permissions.\n\n**_Oversteer_ will automatically install udev rules to grant these permissions\nto any user in the system after a reboot.**\n\nBy default, the udev rules will be installed at\n`/usr/local/lib/udev/rules.d` when installing to prefix `/usr/local` or\n`/lib/udev/rules.d` when installing to any other prefix. The location can\nbe changed using meson option `udev_rules_dir` but it shouldn't be\nrequired except maybe for packagers.\n\nOlder rules might be already installed at `/etc/udev/rules.d` or\n`/lib/udev/rules.d`. You may need to remove these files manually in case\nyou're experiencing issues with permissions.\n\nThe installed udev rules files will have these names:\n\n- `99-fanatec-wheel-perms.rules`\n- `99-logitech-wheel-perms.rules`\n- `99-thrustmaster-wheel-perms.rules`\n\n#### Build and install\n\nStart by downloading `Oversteer` and change your working directory to it. It\ncould be a release package or the master branch.\n\n```\ngit clone https://github.com/berarma/oversteer.git\ncd oversteer\n```\n\nPrepare build system:\n\n```shell\nmeson setup build\ncd build\n```\n\nInstalling (needs administration rights):\n\n`ninja install`\n\nA reboot will be needed to reload the newly installed udev rules.\nAlternatively, running the command `udevadm control --reload-rules \u0026\u0026 udevadm\ntrigger` will do the same.\n\n#### Uninstalling\n\nRun these commands inside the project directory to uninstall:\n\n```shell\ncd build\nninja uninstall\n```\n\n#### Updating\n\nTo avoid leaving old files behind, it's recommended to always uninstall the old\nversion first, then install the new version.\n\nFollow the uninstall instructions for the old version, then follow the install\ninstructions for the new version.\n\n## Using it\n\n_Oversteer_ can be launched as any desktop application. It doesn't need to\nbe running for the settings to remain changed, but some features require\nit.\n\nIt can also be used from the console to change wheel settings. Run\n`oversteer --help` to see the command line help.\n\nLeillo1975 has kindly created a [video explaining the basics of Oversteer\n(Spanish)](https://www.youtube.com/watch?v=WdIV1FOkFsw).\n\n### Using it as a companion app to your games\n\nYou can configure game launchers to run _Oversteer_ and load a profile or change\nsettings so that it automatically configures the wheel when the game runs. When\nthe game exits the app will close too. Please, refer to the command line help\nfor more info.\n\nIt can also stop before the game runs so you can change some settings manually\neach time. This can be done from the command line or from a setting in the UI.\n\nAn example that would work for any Steam game would be:\n\n`oversteer -p myprofile -g \"%command%\"`\n\n## Known issues\n\n- Most drivers don't support Global Gain and Autocenter settings, only\n  `new-lg4ff` for now. The Linux API is used instead when they aren't\n  available. If this happens, Oversteer has to reset their values everytime it\n  starts. Also, games will be able to override these settings.\n\n## Updating translations (for translators)\n\nFrom the project root directory:\n\n```shell\nninja oversteer-pot\nninja oversteer-update-po\n```\n\n## Contributing\n\nWe could all greatly benefit from your help as with any other free software\nproject.\n\nReports about what works and what not on different devices and systems are very\nwelcome. You can also help by contributing specific notes for your distro, or\ndoing the packaging work and everything else.\n\n## Disclaimer\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","funding_links":[],"categories":["Hardware \u0026 Force Feedback","Peripherals"],"sub_categories":["WRC Rally","Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberarma%2Foversteer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberarma%2Foversteer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberarma%2Foversteer/lists"}