Interactive ReShade helper for Steam / Steam Deck. Installs ReShade, applies bundled presets, and safely removes/backs it up.
Features
- Detects Steam libraries and installed games (Deck paths supported).
- Installs/updates ReShade via
reshade-linux.sh(downloaded automatically). - Applies bundled presets (PSX CRT, Clean Bloom, Performance Sharp).
- Sets Steam launch options for Proton:
WINEDLLOVERRIDES="d3dcompiler_47=n;d3d9=n,b" %command%. - Non-destructive uninstall backs up ReShade files.
Requirements
- Bash, curl, python3, 7z, git, wine (all present on SteamOS/Deck).
- Optional:
fzffor nicer selection; falls back to numbered menus.
Install
git clone https://github.com/yourname/reshady.git
cd reshady
chmod +x reshady.shUsage
./reshady.shCLI (for automation / Decky backend)
./reshady.sh list-games
./reshady.sh install --appid 377840 --game-path "/path/to/game/x64" --api d3d9 --preset presets/psx_crt.ini
./reshady.sh preset --game-path "/path/to/game/x64" --preset presets/clean_bloom.ini
./reshady.sh toggle --appid 377840 --game-path "/path/to/game/x64"
./reshady.sh remove --game-path "/path/to/game/x64"Install guide: desktop / Deck (script)
- Clone this repo on the Deck (desktop mode) or any Linux box with Steam installed.
- Run
./reshady.shand pick “Install/Update ReShade”. - Choose the game, accept the suggested API (or pick one), choose a preset.
- Restart Steam, launch the game, press Home to open ReShade.
Decky plugin integration (recommended flow)
- Backend: call the existing CLI commands (
list-games,install,preset,toggle,remove). No extra binaries needed; the script auto-downloadsreshade-linux.shif missing and handles ReShade installation. - Frontend wire-up:
- On load, call
./reshady.sh list-gamesto populate games (format:appid|name|path). - “Install/Update” button ->
install --appid <id> --game-path <path> --api <d3d9|dxgi|opengl32|d3d8> --preset <ini>. - “Apply preset” button ->
preset --game-path <path> --preset <ini>. - “Toggle” button ->
toggle --appid <id> --game-path <path>(non-destructive rename + launch option change). - “Remove” button ->
remove --game-path <path>(backs up files).
- On load, call
- Ship the
presets/folder with the plugin; add a file picker that copies a user .ini intopresets/then callspresetso it shows up in-game. - Decky backend tip: run commands with
cwdset to the plugin directory so relativepresets/paths resolve. - Restart Steam after install/toggle because launch options are written to
userdata/<id>/config/localconfig.vdf.
Decky plugin in this repo
- The repo now includes a Decky plugin (backend + prebuilt frontend in
dist/index.js) that shells out toreshady.shandpresets/. - Build is optional because
dist/index.jsis already present. If you want to rebuild:npm install && npm run build(Node 18+), then copydist/back; otherwise skip. - Install to Decky: copy/symlink the repo into
~/homebrew/plugins/Reshady, or zip the contents and drop into Decky Loader. Ensurereshady.shremains executable (chmod +x reshady.sh); the backend runs it with cwd set to the plugin dir sopresets/resolve. - The plugin backend exposes
list_games,install,apply_preset,toggle,remove; the frontend provides buttons for each and preset/API selectors.
Decky quickstart (no build needed)
git clone https://github.com/samedayhurt/reshady.git && cd reshadychmod +x reshady.shmkdir -p ~/homebrew/plugins/Reshady && cp -r . ~/homebrew/plugins/Reshady- Restart Decky Loader; the “Reshady” tab should appear with game picker, preset/API selectors, and Install/Toggle/Remove buttons. Main menu options:
- Install/Update ReShade – choose a game; script suggests an API from a known list (else prompts), then pick a preset.
- Apply preset only – reuses existing ReShade install and just swaps the preset.
- Remove ReShade (backup) – moves ReShade files to
reshady_backup_<timestamp>inside the game folder. - Add custom preset – copies any .ini you point to into
presets/so it appears in the chooser. - Toggle ReShade on/off – renames the injected DLL and adds/removes the launch option (non-destructive, keeps presets intact).
Bundled presets
psx_crt.ini– CRT scanlines/curvature + light film grain + mild bloom (needsCRT_PSX.fxcopied automatically).clean_bloom.ini– subtle HDR bloom + clarity.perf_sharp.ini– lightweight sharpening only.
Notes
- The script copies
CRT.fxtoCRT_PSX.fxin the merged shader folder so the CRT preset shows up. - Steam launch options are written to
userdata/<id>/config/localconfig.vdf. Restart Steam after running. - For non-default Steam library locations, the script reads
libraryfolders.vdfautomatically. - API suggestions: map covers FFIX/FF7/FF8 (d3d9), Monster Hunter: World / Elden Ring / Cyberpunk (dxgi). Others will prompt you to choose (d3d9, dxgi, opengl32, or d3d8).
- Toggle is non-destructive: it just renames the override DLL (d3d9/dxgi/opengl32/d3d8) to
.reshady.offand removes/restores the launch option. - Adding presets: drop any ReShade preset .ini into
presets/or use “Add custom preset”. Sources: reshade.me forums, NexusMods ReShade section, or your own exported.ini. Ensure required shaders exist; this tool installs the standard packs fromreshade-linux.shonly.
Uninstall manually (if ever needed)
- Delete/move
ReShade.ini,ReShade_shaders/, and override dll (d3d9.dllordxgi.dll) from the game directory, or use menu option 3 which backs them up.