Added/Changed
- Added an option to auto-hide widgets on the main screen
Video_2026-10-27_11-39-48.mp4
- Added a progress bar to the splash window
- Updated the splash window strings
- Added tooltips to most options in the Settings window
- Most settings can now be changed in real time without restarting the app
Settings that still require a restart are marked with an asterisk (*) after their names - The gamecontrollerdb is now updated weekly
- Categories in the Overview panel are now sorted alphabetically
- Implemented smooth scrolling
- Kept Proton runners read-only during extraction. Thanks @vsharha
- Long game titles are now truncated in List mode to prevent the window from stretching
- The absolute path is now set for PROTONPATH to prevent issues
- Improved carousel animations
Fixed
- Fixed some inconsistencies in interface customization
- Fixed an issue where scrolling would stop before reaching the end when navigating through games using the keyboard or gamepad
- Fixed an issue where the post-launch script would be killed when closing the game
Performance Improvements
- Covers and banners are now loaded on demand
- Images are resized to match their display scale
- Image memory is now freed when scrolling
- Banners are now loaded in a separate thread
- Removed and modified visual effects to reduce rendering overhead
- These changes reduced resource usage and improved scrolling smoothness.
In a small library, these changes should go unnoticed. However, in a large library, especially in Covers mode, the difference is huge.
This synthetic test was performed in Covers mode, scrolling through a library of 1,000 games on a display with 100% scaling.
The increase in CPU usage during scroll is expected, as the 1,000 images are now loaded on demand instead of all at once during startup.
Preview
| Phase | Metric | Stat | 2.4.4 | 2.5.4 | Δ% |
|---|---|---|---|---|---|
| Idle, 30s after boot | CPU | MIN | 0.00% | 0.00% | - |
| Idle, 30s after boot | CPU | MAX | 0.06% | 0.06% | - |
| Idle, 30s after boot | RAM (RSS) | MIN | 274.4 MB | 237.4 MB | -13.5% |
| Idle, 30s after boot | RAM (RSS) | MAX | 278.4 MB | 237.5 MB | -14.7% |
| Idle, 30s after boot | GPU | MIN | 0% | 0% | - |
| Idle, 30s after boot | GPU | MAX | 0% | 0% | - |
| During scroll | CPU | MIN | 0.81% | 1.56% | +92.4% |
| During scroll | CPU | MAX | 1.12% | 3.99% | +255.5% |
| During scroll | RAM (RSS) | MIN | 448.0 MB | 300.6 MB | -32.9% |
| During scroll | RAM (RSS) | MAX | 3914.7 MB | 582.9 MB | -85.1% |
| During scroll | GPU | MIN | 0% | 0% | - |
| During scroll | GPU | MAX | 79% | 24% | -69.6% |
| During scroll | Frame pacing | Median | 6.94 ms | 6.94 ms | - |
| During scroll | Frame pacing | P99 | 13.84 ms | 6.99 ms | -49.5% |
| During scroll | Frame pacing | Max | 34.90 ms | 13.90 ms | -60.2% |
| During scroll | Frame pacing | Slow frames | 138 | 1 | -99.3% |
| During scroll | Frame pacing | Slow % | 3.5% | 0.0% | -100.0% |
| Idle, 30s after scroll | CPU | MIN | 0.00% | 0.00% | - |
| Idle, 30s after scroll | CPU | MAX | 0.12% | 0.12% | - |
| Idle, 30s after scroll | RAM (RSS) | MIN | 1449.8 MB | 233.7 MB | -83.9% |
| Idle, 30s after scroll | RAM (RSS) | MAX | 1459.1 MB | 235.7 MB | -83.8% |
| Idle, 30s after scroll | GPU | MIN | 0% | 0% | - |
| Idle, 30s after scroll | GPU | MAX | 0% | 0% | - |
Updated translations
- Bulgarian. Thanks @Любомир Василев
- Chinese (Simplified). Thanks @EyKettle
- Chinese (Traditional). Thanks @orange-seele
- French. Thanks @loïc
- German. Thanks @HosteD Weblate user 158752
- Italian. Thanks @CAS9 @nixxo
- Polish. Thanks @adam
- Portuguese (Brazil).
- Spanish. Thanks @grego9
- Ukrainian. Thanks @Михайло Щетінін
The following dependencies are required for the AppImage, as they cannot be bundled with it.
pygobject gtk4 libadwaita libmanette