Giter Club home page Giter Club logo

decky-storage-cleaner's Introduction

Storage Cleaner (Decky Loader Plugin)

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.

Features

  • 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

Installation

  1. If you haven't already, install Decky Loader on your Steam Deck.
  2. With Decky Loader installed, press the Quick Access button on your Steam Deck.
  3. Navigate to the Plug icon (Decky) and press the Gear icon (settings).
  4. Find Storage Cleaner and press "Install".

Support My Work

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.

Buy Me A Coffee

Possible Future Features

  • 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...?

Methodologies

Getting Shader Cache and Compat Data

  • Native Python file methods are used to get all of the subdirectories in the home/deck/.steam/steam/steamapps/shadercache and home/deck/.steam/steam/steamapps/compatdata parent directories
  • Each subdirectory name is a steam appid/gameid

Getting Steam and Non-Steam App Names/Types

  • 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 a display_name property, which is the name of the corresponding steam or non-steam game

  • appStore.GetAppOverviewByGameID(game.appid) also returns the app_type property, which is used to differentiate between Steam and Non-Steam games

Clearing Shader Cache and Compat Data

  • Game specific shader cache is deleted recursively by appid (directory name) using the shutil.rmtree('home/deck/.steam/steam/steamapps/shadercache/<appId>') native Python method

    Shader Cache will regerenerate either during gameplay or preemptively via OTA (over the air) updates via Steam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.