Update README + screenshot for genre/tag/friend filters
The README still described the install-state filter as the only top-row control. Bring it in line with what the app actually offers now: install state, genre, multi-select tags (with search, AND'd), and multi-select friends (intersection). Document the friends-filter prerequisites (friend's profile privacy must expose friends list + game details). Adds keyring and xdg-utils to the hard-dep list (already required at runtime; previously omitted from the README) and python-steam as the optional dep that unlocks instant genre + tag filtering via appinfo.vdf. Replaces the Void Linux install hint with an Arch one that mirrors what the PKGBUILD installs. PKGBUILD optdepends wording updated alongside: it now reflects that python-steam unlocks both genre AND tag filters, not just genre. Screenshot replaced with one taken on the current build showing all four filter controls. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@ arch=('any')
|
||||
url="https://github.com/silvernode/steam-dice"
|
||||
license=('GPL-2.0-only')
|
||||
depends=('python' 'python-pyqt6' 'python-requests' 'python-keyring' 'xdg-utils')
|
||||
optdepends=('python-steam: instant genre filter via Steam'\''s local appinfo.vdf cache (otherwise falls back to rate-limited Steam API)')
|
||||
optdepends=('python-steam: instant genre + tag filters via Steam'\''s local appinfo.vdf cache (without it, genres fall back to the rate-limited Steam API and tag filtering is unavailable)')
|
||||
makedepends=('git')
|
||||
provides=("$_pkgname")
|
||||
conflicts=("$_pkgname")
|
||||
|
||||
@@ -7,10 +7,14 @@ A small desktop app that picks a random game from your Steam library and lets yo
|
||||
## Features
|
||||
|
||||
- Rolls a random game from your Steam library and displays its header art
|
||||
- **Installed / Not installed / All** filter so you can limit rolls to games you can actually play right now
|
||||
- Combinable filters in the top row, all AND'd together:
|
||||
- **Install state** — All / Installed / Not installed, to limit rolls to games you can actually play right now
|
||||
- **Genre** — official Steam genre (Action, Strategy, RPG, …)
|
||||
- **Tags** — multi-select popup with a search box; a game must carry every selected tag to survive
|
||||
- **Friends** — multi-select popup; picks games every selected friend also owns, perfect for "what should we play tonight?"
|
||||
- **Play** button launches the selected game immediately via Steam
|
||||
- Settings dialog for your API key and Steam ID, persisted across sessions
|
||||
- Refresh button with a 60-second cooldown to avoid hammering the Steam API
|
||||
- Settings dialog for your API key and Steam ID, persisted across sessions (API key kept in your system keyring)
|
||||
- Refresh button with a 60-second cooldown to avoid hammering the Steam API; refreshing also re-fetches selected friends' libraries
|
||||
- Clean Steam-themed dark UI built with PyQt6
|
||||
- Wayland-native with X11 fallback
|
||||
|
||||
@@ -19,18 +23,26 @@ A small desktop app that picks a random game from your Steam library and lets yo
|
||||
- Python 3.8+
|
||||
- [PyQt6](https://pypi.org/project/PyQt6/)
|
||||
- [requests](https://pypi.org/project/requests/)
|
||||
- [keyring](https://pypi.org/project/keyring/) — used to store your Steam API key in the system keyring
|
||||
- `xdg-utils` — used to launch games via `steam://` URLs
|
||||
- Steam installed locally (for the "Installed" filter and launching games)
|
||||
|
||||
Install dependencies with pip:
|
||||
**Optional:** [python-steam](https://pypi.org/project/steam/) enables instant genre **and** tag filters by reading Steam's local `appinfo.vdf` cache. Without it, genres fall back to a rate-limited Steam Store API fetch and tag filtering is unavailable (no API fallback exists for tags).
|
||||
|
||||
Install with pip:
|
||||
|
||||
```bash
|
||||
pip install PyQt6 requests
|
||||
pip install PyQt6 requests keyring
|
||||
# optional, for instant genre + tag filters
|
||||
pip install steam
|
||||
```
|
||||
|
||||
Or with your distro's package manager, e.g. on Void Linux:
|
||||
Or on Arch (mirrors what the [PKGBUILD](PKGBUILD) installs):
|
||||
|
||||
```bash
|
||||
xbps-install python3-PyQt6 python3-requests
|
||||
pacman -S python-pyqt6 python-requests python-keyring xdg-utils
|
||||
# optional
|
||||
pacman -S python-steam
|
||||
```
|
||||
|
||||
## Setup
|
||||
@@ -66,10 +78,23 @@ On first launch the settings dialog will open automatically. Enter your API key
|
||||
Once loaded:
|
||||
|
||||
- Click the **dice** button to roll a random game
|
||||
- Use the **filter dropdown** to restrict rolls to installed or uninstalled games
|
||||
- Combine the four filter controls in the top row to narrow the pool:
|
||||
- **All games / Installed / Not installed**
|
||||
- **All genres** dropdown — pick one Steam genre
|
||||
- **Tags ▾** — opens a popup with a search box and checkboxes; selected tags are AND'd, so a game must carry every checked tag
|
||||
- **Friends ▾** — opens a popup listing your Steam friends; check any number to keep only games every selected friend also owns
|
||||
- Click **Play** to launch the rolled game via Steam
|
||||
- Click the **refresh** button (⟳) to re-fetch your library (60s cooldown applies)
|
||||
- Click the **settings** button (⚙) to update your credentials at any time
|
||||
- Click ⟳ to re-fetch your library (60s cooldown applies); selected friends' libraries refresh too
|
||||
- Click ⚙ to update your credentials at any time
|
||||
|
||||
### Friends filter prerequisites
|
||||
|
||||
For a friend to appear and contribute to filtering, the **friend's** Steam profile privacy must allow:
|
||||
|
||||
- Friends list visibility (so you can see them in the popup at all)
|
||||
- Game details visibility (so their owned-game list is fetchable)
|
||||
|
||||
Friends with private game details show as `(private / 0 games)` in the popup and never narrow the result.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 60 KiB |
Reference in New Issue
Block a user