Skip to content

DiscreteTom/kontroller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kontroller

version license rust

A demo project to read all SteamDeck input (including trackpad and gyro) via SteamInput without using a game engine.

demo

Run

  1. Switch to Desktop Mode on SteamDeck.
  2. Download kontroller from release page, or build it yourself. Put it in SteamDeck.
  3. Put redistributable_bin/libsteam_api.so in the PATH (e.g. /usr/lib).
  4. Copy kontroller.vdf into /home/deck/.local/share/Steam/controller_config (create the folder if it doesn't exist), rename it to game_actions_480.vdf.
  5. Run kontroller on SteamDeck. This should open a new window, but your input can't be captured now. Close the window.
  6. Start steam client on the Desktop Mode. In your library, you should find a game called Spacewar. Edit its input mapping.
  7. Run kontroller again, you should get the input you want.

Build

Note

You'd better build the project on SteamDeck.

cargo build --release

FAQ

  • Why not to use a game engine?
    • This app doesn't need high quality UI update, but need to read input as fast as possible.
    • Besides, I want the built binary to be as small as possible.
  • What GUI library do you use?
    • iced.
    • Steam Input requires a window to be focused to read input, so a GUI library is required.
    • WebView-based GUI lib seems not working. Tested with Tauri and web-view
    • The GUI process should be the same as the main process.
  • Why the name is Spacewar and the app id is 480?
    • 480 is a commonly used app id for testing for steamworks developers. The name Spacewar is the name for the app with app id 480.
  • I tried to start the executable file on SteamDeck but no window shows up.
    • Make sure you have libsteam_api.so in the PATH.
    • Start the executable in a terminal and show me the output by opening an issue.
  • What if I just want to use joysticks and buttons?
    • That is much easier. See my another project stickdeck.

About

A demo project to read all SteamDeck input (including trackpad and gyro) via SteamInput without using a game engine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages