CompactGUI

repository·master·Indexed 25 days ago

https://github.com/iridiumio/compactgui

A graphical interface for the Windows compact.exe utility that enables transparent, high-ratio compression of games and programs to save disk space. It supports multiple compression algorithms (XPRESS4K, XPRESS8K, XPRESS16K, and LZX) and includes features such as a Background Watcher for automatic re-compression, community-sourced compression databases, and Windows File Explorer context menu integration. Note: Not suitable for games utilizing the Windows 11 DirectStorage API.

Tokens
2.4K
Snippets
3
Records
16
Agent score
93%

What's inside CompactGUI

  1. Overview of CompactGUI transparent compression

    master
    CompactGUI is a graphical interface for the Windows compact.exe tool. It allows you to transparently compress games, programs, and folders to reduce disk space usage without affecting functionality. Files remain accessible and runnable exactly as they were before, but they are decompressed on-the-fly by the CPU during use. This can even improve loading times on slower HDDs as smaller files are read into RAM faster.
  2. Use CompactGUI to compress folders

    master

    CompactGUI provides a graphical interface to transparently compress games, programs, and other folders using the Windows compact.exe API. This reduces disk space usage without changing how files are accessed or run.

    Common use cases include:

    • Reducing game sizes (e.g., ARK: Survival Evolved from 169 GB to 91.2 GB).
    • Reducing software sizes (e.g., Adobe Photoshop from 1.71 GB to 886 MB).
    • Compressing any other large folders on your computer.
  3. CompactGUI Features

    master

    CompactGUI includes several advanced features for managing compressed data:

    • Visual Progress: Real-time indication of compression progress and statistics.
    • File Exclusion: Customizable list of poorly compressible file types to skip.
    • Community Database Integration: View community-reported compression results and submit your own Steam game compression results.
    • Shell Integration: Integration into the Windows Explorer context menu.
    • Folder Analysis: Analyze the current state of existing folders.
    • Background Watcher: Monitors folders (e.g., Steam game updates) and automatically maintains their compressed state in the background.
  4. CompactGUI features and capabilities

    master

    CompactGUI includes several advanced features for managing folder compression:

    • Visual Feedback: Progress bars and statistics for compression tasks.
    • Exclusion List: Configurable list of file types to skip during compression.
    • Community Database: Access to community-sourced compression results to estimate space savings.
    • Steam Integration: Ability to submit Steam game compression results to the online database.
    • Context Menu Integration: Integration into Windows File Explorer for easier access.
    • Folder Analysis: Analyze the current state of existing folders.
    • Background Watcher: Monitor folders (e.g., Steam games) and automatically re-compress them when they update.
  5. Compress games and programs with CompactGUI

    master
    CompactGUI provides a graphical interface for the Windows compact.exe utility. It allows you to perform lossless compression on folders (such as games or software installations) to reduce disk space usage without affecting functionality. Files remain accessible and can be launched normally, as they are decompressed on-the-fly by the CPU during use.
  6. Avoid compression for DirectStorage games on Windows 11

    master
    Do not use CompactGUI on games that utilize the DirectStorage API on Windows 11. DirectStorage bypasses the CPU to load assets directly from the SSD to the GPU; because compressed files must be decompressed by the CPU first, using compression on these games will negate any performance benefits.
  7. Important compatibility caveat for DirectStorage

    master
    CompactGUI is not suitable for games that utilize Windows 11 DirectStorage. DirectStorage allows games to bypass the CPU to load resources directly from the SSD to the GPU. Since compressed files must be decompressed by the CPU before being sent to the GPU, using compression with DirectStorage will negate any performance benefits.
  8. Avoid using CompactGUI with DirectStorage games

    master

    Do not use CompactGUI for games that utilize the DirectStorage API in Windows 11.

    DirectStorage allows games to load resources directly from an SSD to the GPU, bypassing the CPU. Because compressed files require CPU decompression before being sent to the video card, using CompactGUI on these games will negate any performance gains provided by DirectStorage.

  9. Configure ResXManager MoveToResources patterns

    master

    The ResXManager.config.xml file allows you to define how the MoveToResources feature identifies resource keys across different file extensions. You can specify custom patterns for various file types (e.g., .cs, .razor, .ts, .html) to automate the movement of hardcoded strings to resource files. Patterns use placeholders like $Namespace, $File, and $Key to match the structure of your code.

    <Values xmlns="urn:tom-englert.de/Configuration/1/0">
      <Value Key="MoveToResources">
        {
          "Items":[
            {
              "Extensions":".cs,.vb",
              "Patterns":"$Namespace.$File.$Key|$File.$Key|StringResourceKey.$Key|$Namespace.StringResourceKey.$Key|nameof($File.$Key), ResourceType = typeof($File)|ErrorMessageResourceType = typeof($File), ErrorMessageResourceName = nameof($File.$Key)|local:Localize $Key"
            },
            {
              "Extensions":".cshtml,.vbhtml",
              "Patterns":"@$Namespace.$File.$Key|@$File.$Key|@StringResourceKey.$Key|@$Namespace.StringResourceKey.$Key"
            },
            {
              "Extensions":".razor",
              "Patterns":"@$Namespace.$File.$Key|@$File.$Key|@StringResourceKey.$Key|@$Namespace.StringResourceKey.$Key|@localizer["$Text"]"
            },
            {
              "Extensions":".cpp,.c,.hxx,.h",
              "Patterns":"$File::$Key"
            },
            {
              "Extensions":".aspx,.ascx",
              "Patterns":"<% Resources:$File,$Key %>| <%= $File.$Key %>| <%= $Namespace.$File.$Key %>"
            },
            {
              "Extensions":".xaml",
              "Patterns":""{x:Static properties:$File.$Key}"|"{local:Localize $Key}""
            },
            {
              "Extensions":".ts",
              "Patterns":"resources.$Key"
            },
            {
              "Extensions":".html",
              "Patterns":"{{ resources.$Key }}"
            }
          ]
        }
      </Value>
    </Values>
  10. Limitations of CompactGUI

    master
    CompactGUI is designed to compress individual folders and files only. It cannot be used to compress entire drives or the Windows installation itself. For full-drive or OS-level compression, use the compact /compactOS command via the Windows command line.