Compare commits

3 Commits
Author SHA1 Message Date
molluskandClaude Opus 4.7 a152c9b188 Bump pkgver to r30.4ba3aa0
Catches the cached pkgver up to the current HEAD so makepkg's
displayed version matches what the dynamic pkgver() function
would compute.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 21:13:29 -04:00
mollusk 4ba3aa06a7 Merge branch 'feature/readme-update' 2026-05-08 21:11:19 -04:00
molluskandClaude Opus 4.7 29dfe43d3f 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>
2026-05-08 21:11:06 -04:00
3 changed files with 37 additions and 12 deletions
+2 -2
View File
@@ -1,14 +1,14 @@
# Maintainer: Mollusk <silvernode@gmail.com>
pkgname=steam-dice-git
_pkgname=steam-dice
pkgver=r17.be764eb
pkgver=r30.4ba3aa0
pkgrel=1
pkgdesc="A PyQt6 desktop app that picks a random game from your Steam library"
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")
+35 -10
View File
@@ -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
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 60 KiB