Compare commits

4 Commits
Author SHA1 Message Date
molluskandClaude Opus 4.7 3b852d0f5a Bump pkgver to r34.3e84c3a
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 19:36:05 -04:00
mollusk 3e84c3a210 Merge branch 'feature/store-page-button' 2026-05-09 19:35:12 -04:00
molluskandClaude Opus 4.7 2221636e18 Add Store Page button next to Play
Opens https://store.steampowered.com/app/<appid>/ via xdg-open for
the currently rolled game. Toggles visibility in lockstep with Play.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 19:35:10 -04:00
molluskandClaude Opus 4.7 b43eb11924 Use relative path for README screenshot
The previous absolute URL pointed at the Gitea instance and was
proxied by GitHub's camo image cache, which kept serving an old
copy after the screenshot was updated. A relative path lets each
forge (GitHub, Gitea) resolve and serve the image from its own
repo blob, bypassing camo.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 21:17:18 -04:00
3 changed files with 37 additions and 6 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
# Maintainer: Mollusk <silvernode@gmail.com>
pkgname=steam-dice-git
_pkgname=steam-dice
pkgver=r30.4ba3aa0
pkgver=r34.3e84c3a
pkgrel=1
pkgdesc="A PyQt6 desktop app that picks a random game from your Steam library"
arch=('any')
+1 -1
View File
@@ -2,7 +2,7 @@
A small desktop app that picks a random game from your Steam library and lets you launch it directly. Stop staring at your backlog — let the dice decide.
![Steam Dice screenshot](https://gitbutter.xyz/mollusk/steam-dice/raw/branch/main/screenshot.jpg)
![Steam Dice screenshot](screenshot.jpg)
## Features
+35 -4
View File
@@ -1157,12 +1157,13 @@ class SteamDice(QMainWindow):
self.image_label.setVisible(False)
layout.addWidget(self.image_label)
# Play button
self.play_btn = QPushButton(" Play")
self.play_btn.setIcon(QIcon.fromTheme("media-playback-start"))
# Action buttons: Play | Store Page
play_font = QFont()
play_font.setPointSize(11)
play_font.setBold(True)
self.play_btn = QPushButton(" Play")
self.play_btn.setIcon(QIcon.fromTheme("media-playback-start"))
self.play_btn.setFont(play_font)
self.play_btn.setFixedHeight(34)
self.play_btn.setCursor(Qt.CursorShape.PointingHandCursor)
@@ -1179,7 +1180,31 @@ class SteamDice(QMainWindow):
""")
self.play_btn.setVisible(False)
self.play_btn.clicked.connect(self._launch_game)
layout.addWidget(self.play_btn)
self.store_btn = QPushButton(" Store Page")
self.store_btn.setIcon(QIcon.fromTheme("applications-internet"))
self.store_btn.setFont(play_font)
self.store_btn.setFixedHeight(34)
self.store_btn.setCursor(Qt.CursorShape.PointingHandCursor)
self.store_btn.setStyleSheet("""
QPushButton {
background-color: #316282;
color: #c6d4df;
border: none;
border-radius: 4px;
padding: 0 16px;
}
QPushButton:hover { background-color: #4082a3; }
QPushButton:pressed { background-color: #1f4257; }
""")
self.store_btn.setVisible(False)
self.store_btn.clicked.connect(self._open_store_page)
action_row = QHBoxLayout()
action_row.setContentsMargins(0, 0, 0, 0)
action_row.addWidget(self.play_btn)
action_row.addWidget(self.store_btn)
layout.addLayout(action_row)
# Status / loading text
self.status_label = QLabel("Loading library…")
@@ -1651,6 +1676,7 @@ class SteamDice(QMainWindow):
self.image_label.setText("Loading…")
self.image_label.setVisible(True)
self.play_btn.setVisible(False)
self.store_btn.setVisible(False)
self.status_label.setText("")
if self.image_thread is not None:
@@ -1662,6 +1688,7 @@ class SteamDice(QMainWindow):
def _on_image_loaded(self, pixmap):
self.dice_btn.setEnabled(True)
self.play_btn.setVisible(True)
self.store_btn.setVisible(True)
if pixmap.isNull():
self.image_label.setText("No image available")
else:
@@ -1677,6 +1704,10 @@ class SteamDice(QMainWindow):
if self.current_appid is not None:
subprocess.Popen(["xdg-open", f"steam://rungameid/{self.current_appid}"])
def _open_store_page(self):
if self.current_appid is not None:
subprocess.Popen(["xdg-open", f"https://store.steampowered.com/app/{self.current_appid}/"])
def closeEvent(self, a0):
if self.genres_thread and self.genres_thread.isRunning():
self.genres_thread.stop()