A Decky Loader plugin for tidying up your Steam Deck's storage (and getting rid of that pesky 'Other' storage eating it all up)! Quickly visualize, select and clear shader cache and compatibility data.
- Get disk usage data for your Steam Deck's shader cache and compatibility data
- Identify Steam and Non-Steam games
- Selectively clear the shader cache and compatibility data you don't want
- Clear all the shader cache or compatibility data all at once
- If you haven't already, install Decky Loader on your Steam Deck.
- With Decky Loader installed, press the Quick Access button on your Steam Deck.
- Navigate to the Plug icon (Decky) and press the Gear icon (settings).
- Find Storage Cleaner and press "Install".
Storage Cleaner is completely free-to-use. It is built and maintained in my spare time. With your help I can remain caffeinated and awake - squashing bugs, adding features and creating more useful plugins.
- Support microsd storage (move/clear)...?
- Clear depotcache...?
- Small disk analyser/visualizer...?
- Auto/scheduled cache cleanups...?
- Identify games with games saves stored in compatdata...?
- Empty Trash directory...?
- Native Python file methods are used to get all of the subdirectories in the
home/deck/.steam/steam/steamapps/shadercache
andhome/deck/.steam/steam/steamapps/compatdata
parent directories - Each subdirectory name is a steam appid/gameid
-
Since each game directory name is an appid/gameid, it can be used to fetch the game name via the client side Steam
appStore.GetAppOverviewByGameID(game.appid)
method. This method returns an object with adisplay_name
property, which is the name of the corresponding steam or non-steam game -
appStore.GetAppOverviewByGameID(game.appid)
also returns theapp_type
property, which is used to differentiate between Steam and Non-Steam games
-
Game specific shader cache is deleted recursively by appid (directory name) using the
shutil.rmtree('home/deck/.steam/steam/steamapps/shadercache/<appId>')
native Python methodShader Cache will regerenerate either during gameplay or preemptively via OTA (over the air) updates via Steam
appStore.GetAppOverviewByGameID(game.appid)
returns thelocal_per_client_data.cloud_status
object/property, which is used to check if an installed game is/has ever synced to Steam Cloud Saves