Skip to content

Commit 87dfc0a

Browse files
authored
README
Expanded README with detailed features, installation instructions, and usage guidelines.
1 parent 8d963a4 commit 87dfc0a

1 file changed

Lines changed: 123 additions & 19 deletions

File tree

README.md

Lines changed: 123 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,133 @@
11
# PrefixHQ
22

3-
**PrefixHQ** is a Linux GUI tool for managing Steam Proton/Wine prefixes. It helps identify and handle orphaned or leftover prefixes, making it easy to clean up your system and manage game configurations.
3+
![Linux](https://img.shields.io/badge/Platform-Linux-%23FCC624?logo=linux)
4+
![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python)
5+
![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg?logo=gnu)
46

5-
## Features
7+
A modern, visual manager for Steam CompatData (Proton/Wine prefixes) on Linux.
8+
Transform your folder structure into a beautiful game library with automatic cover art and multi-library awareness.
69

7-
* **Scan Installed Games:** Automatically detects installed Steam games.
8-
* **Orphan Prefix Management:** Lists prefixes in `~/.local/share/Steam/steamapps/compatdata` that no longer correspond to installed games.
9-
* **Safe Deletion:** Delete selected prefixes with warnings for non-Steam programs to prevent accidental data loss.
10-
* **Open Prefix Directory:** Quickly open a prefix folder in your file manager.
11-
* **Rename Games:** Customize display names for games or prefixes.
12-
* **Local Database:** Stores installed games and custom names in `~/.config/PrefixHQ/games.json` for faster access.
10+
---
1311

14-
## Installation
12+
## ✨ Features
1513

16-
1. Download the latest precompiled binary from the [Releases](https://github.com/Nastas95/PrefixHQ/releases) page.
17-
2. Run it!
14+
### 🖼️ Visual Game Library
15+
- **Responsive Grid Layout** – Card-based interface with high-quality Steam cover art
16+
- **Automatic Cover Downloads** – Fetches official header images from Steam API
17+
- **Local Image Caching** – Saves covers to `~/.config/PrefixHQ/cache/` for instant reloads
18+
- **Custom Cover Support** – Override covers via URL, local file, or SteamGridDB search
1819

19-
## Requirements
20+
### 📚 Multi-Library Awareness
21+
- **Automatic Library Detection** – Parses `libraryfolders.vdf` to discover *all* Steam libraries (primary + secondary drives, external SSDs)
22+
- **Cross-Library Matching** – Correctly pairs prefixes with game names even when game files reside in a different library
23+
- **Installation Status Tracking** – Visual indicators distinguish installed vs. orphaned prefixes:
24+
-**Green** = Game currently installed
25+
- ⚠️ **Red** = Prefix orphaned (game uninstalled)
2026

21-
* Linux with Steam installed
22-
* No need to install Python or dependencies — all required libraries are bundled in the binary
23-
* (*Optional*) Internet connection (**upon launch PrefixHQ tries to download the Steam appID from [this source](https://store.steampowered.com/api/appdetails) and save it to the config folder**)
27+
### ⚙️ Universal Compatibility
28+
- Works out-of-the-box with:
29+
- Native Steam (`~/.steam/steam`)
30+
- Flatpak (`~/.var/app/com.valvesoftware.Steam/`)
31+
- Snap (`~/snap/steam/common/`)
2432

25-
## Notes
33+
### ⚡ Performance & Safety
34+
- **Background Scanning** – Async prefix detection via `QThread` (no UI freezing)
35+
- **Smart Deduplication** – Handles edge cases where same AppID appears across libraries
36+
- **Permission-Aware** – Skips unreadable directories gracefully
37+
- **Safe Deletion** – Confirmation dialogs before removing prefixes
2638

27-
* Uses `~/.local/share/Steam/steamapps/compatdata` to detect Proton/Wine prefixes.
28-
* Stores configuration in `~/.config/PrefixHQ/`.
29-
* Safe for managing Steam prefixes, but deletion of non-Steam prefixes may remove important files — proceed with caution.
39+
### 🖱️ Context Menu Actions (Right-Click)
40+
- `Open Prefix Folder` – Jump directly to `compatdada` directory
41+
- `Search on SteamGridDB` – Find community artwork alternatives
42+
- `Load Cover from File...` – Use local image
43+
- `Load Cover from URL...` – Fetch custom cover from web
44+
- `Mark as Installed/Uninstalled` – Override detection status manually
45+
46+
---
47+
48+
## 🛠️ Requirements
49+
50+
| Component | Requirement |
51+
|-----------|-------------|
52+
| **OS** | Linux |
53+
| **Python** | 3.8+ |
54+
| **Dependencies** | `PyQt6>=6.4.0`, `requests>=2.28.0` |
55+
56+
> 💡 All other dependencies (`os`, `sys`, `json`, `pathlib`, etc.) are part of Python's standard library.
57+
58+
---
59+
60+
## 🚀 Installation & Usage
61+
62+
63+
### Option 1: Binary Releases
64+
Download the latest Binary from the [Releases Page](https://github.com/yourusername/PrefixHQ/releases).
65+
66+
67+
### Option 2: Run from Source
68+
69+
```bash
70+
# Clone the repository
71+
git clone https://github.com/Nastas95/PrefixHQ
72+
cd PrefixHQ
73+
74+
# Install dependencies
75+
pip install -r requirements.txt
76+
77+
# Launch the application
78+
python PrefixHQ.py
79+
```
80+
81+
---
82+
83+
## 🎮 How It Works
84+
85+
1. **Scanning**
86+
On launch, PrefixHQ scans all Steam installations (Native/Flatpak/Snap) and parses `libraryfolders.vdf` to discover every library location.
87+
88+
2. **Matching**
89+
Scans `steamapps/compatdata/` folders and matches AppID-named directories to installed games using:
90+
- Local `.acf` manifest files (primary method)
91+
- Steam API fallback (if needed)
92+
93+
3. **Visualizing**
94+
Presents prefixes as visual cards with:
95+
- Game cover art
96+
- AppID and custom name
97+
- Status indicator (installed vs. uninstalled)
98+
99+
4. **Cleaning**
100+
Safely delete orphaned prefixes to reclaim disk space — with confirmation dialogs to prevent accidents.
101+
102+
---
103+
104+
## ⚙️ Configuration & Data Storage
105+
106+
All data is stored locally under `~/.config/PrefixHQ/`:
107+
108+
| File/Folder | Purpose |
109+
|-------------|---------|
110+
| `prefix_db.json` | Database storing custom names, manual status overrides, and API cache |
111+
| `cache/` | Local storage for downloaded cover art (avoids repeated API calls) |
112+
113+
> 🔁 First launch may take 10–30 seconds while cover art downloads. Subsequent launches are instant thanks to caching.
114+
115+
---
116+
117+
## ⚠️ Important Warning
118+
119+
> [!WARNING]
120+
> **Deleting a prefix permanently removes all data inside that Proton container**, including:
121+
> - Windows game saves
122+
> - Configuration files
123+
> - Installed mods and custom content
124+
>
125+
> **Always verify** a prefix is truly orphaned before deletion. When in doubt, back up the folder first.
126+
127+
---
128+
129+
## 📝 License
130+
131+
Distributed under the **GNU General Public License v3.0**
132+
133+
See [`LICENSE`](LICENSE) for the full license text.

0 commit comments

Comments
 (0)