This fork wouldn't exist without the original work by kasvtv.
Huge thanks for creating such a practical and well-documented tool for the Steam Deck community.
If you haven't already, take a look at the original project this fork builds upon: kasvtv/steam_deck_overwrite_trigger_cal.
Fork goal Automatically set both trigger MAX values on startup. No prompts, no manual input.
Ideal for users who found their Steam Decks ideal values (mine is 1785) using the kasvtv original project method.
I strongly advise using the original project first to determine your ideal trigger calibration values: kasvtv/steam_deck_overwrite_trigger_cal
The Steam Deck's analog triggers have a very large deadzone in them. This deadzone is added by the firmware when they are calibrated. It can make games using the analog triggers not feel as nice or responsive. For example, in a racing game, if you want to slightly accelerate or slightly press the brake, during the first few millimeters of pressing the trigger, nothing happens. Only after a considerable distance does the trigger suddenly kick in. This tool can solve that problem by overwriting the calibration values in the firmware. Now you can press that analog trigger just a millimeter and it will start registering.
This tool gives you complete control over the calibration values of the Steam Deck's triggers. If you read the instructions carefully and follow them properly, you’ll likely be okay. But if you enter incorrect values, it could make the triggers unresponsive.
In any case, usage is at your own risk. I do not accept liability for any damage that may occur.
After testing the original utility and identifying 1785 as an optimal MAX value for my triggers, I modified the script to:
- Use hardcoded values (1785)
- Remove all prompts
- Run automatically at boot using a systemd service
-
Download
overwrite_trigger_calfrom the Releases. -
Move it to your home folder and make it executable:
chmod +x ~/overwrite_trigger_cal -
Create the systemd service:
sudo nano /etc/systemd/system/overwrite_trigger_cal.service
Paste the following:
[Unit] Description=Steam Deck Trigger Calibration Overwrite After=graphical.target [Service] Type=oneshot ExecStart=/home/deck/overwrite_trigger_cal RemainAfterExit=true [Install] WantedBy=multi-user.target
-
Enable and start the service:
sudo systemctl enable overwrite_trigger_cal.service sudo systemctl start overwrite_trigger_cal.service
If you want to customize the values and rebuild:
- Copy
/usr/bin/trigger_calfrom your Steam Deck to your project folder. - Install Docker.
-
Clone this repository and edit
src/overwrite_trigger_cal.py, changing:lmax = 1785 rmax = 1785
-
Build Docker image:
docker build --progress=plain -t=steam_deck_overwrite_trigger_cal .- Repack the binary
docker run --rm -it \
-v $(pwd)/src/overwrite_trigger_cal.py:/app/overwrite_trigger_cal.py \
-v $(pwd)/dist:/app/dist \
steam_deck_overwrite_trigger_caldocker run --rm -it `
-v ${PWD}\src\overwrite_trigger_cal.py:/app/overwrite_trigger_cal.py `
-v ${PWD}\dist:/app/dist `
steam_deck_overwrite_trigger_cal- Copy
dist/overwrite_trigger_calto your Deck and follow the usage steps above.
Currently, this fork does not automatically run after waking from suspend. If you discover a working solution, please open an issue or submit a pull request – I’d love to learn how you did it :)
- Do not redistribute Valve’s
trigger_calbinary. - This project only modifies Python code and instructions.
- You assume all risk.
Fork based on kasvtv/steam_deck_overwrite_trigger_cal
Original license and disclaimers apply.