A GNOME Shell extension that allows you to check game compatibility on Linux (Proton) directly from your panel. It uses the Steam API to search for games and the ProtonDB API to fetch compatibility reports.
- Search Steam Games: Quickly find games by name directly from the popup menu.
- ProtonDB Integration: View Tier (Platinum, Gold, Silver, etc.), Score, and Confidence levels.
- Color Coded: Visual indicators for different compatibility tiers matching ProtonDB's style.
- Modern Stack: Built with ESM (ECMAScript Modules) and LibSoup 3 for GNOME 45+.
- GNOME Shell 45 or later.
libsoup-3.0(Standard on most modern distributions).gettext(Required for building translations).
To install the latest version directly from the source, you need git, gettext, and zip.
-
Clone the repository:
git clone https://github.com/CarvDev/proton-checker.git cd proton-checker -
Build the extension: Run the build script to compile translations and generate the extension package:
chmod +x scripts/build.sh ./scripts/build.sh
(This will create a
proton-checker.zipfile with all translations compiled). -
Install the package: Use the standard GNOME tool to install the generated zip:
gnome-extensions install proton-checker.zip --force
-
Restart GNOME Shell:
- Wayland: Log out and log back in.
- X11: Press
Alt+F2, typer, and hitEnter.
-
Enable the extension:
gnome-extensions enable proton-checker@carvdev.github.com
extension.js: Main logic.stylesheet.css: Styling for the popup menu.scripts/: Automation scripts for building and translating.locale/: Compiled translation files (.mo) - Ignored by Git.po/: Source translation files (.poand.pot).
We provide a helper script to manage translations automatically. Ensure you have the gettext package installed.
Using the Helper Script (Recommended):
1. Update/Create translation files:
-
To update existing translations: Run the script without arguments. It will update the template (
.pot) and sync all language files (.po).chmod +x ./scripts/manage-translations.sh ./scripts/manage-translations.sh
-
To create a NEW translation (e.g., for French): Pass the language code as an argument.
./scripts/manage-translations.sh fr
Note: It's recommended to use the standard POSIX format
ll_CC(Language_COUNTRY) (e.gpt_BR). You can also use the two-letter code (e.g., fr, de) if you want the translation to apply to all regions of that language. However, for languages with major regional differences (like Portuguese), use the full code.If unsure, check the GNU Locale Names reference or run
localectl list-localesin your terminal.
2. Translate the file:
Edit the .po file created in the po/ directory using a text editor or a tool like Poedit.
3. Test Locally (Optional): To test your translation in GNOME Shell, you need to rebuild and reinstall the extension. Go back to the Installation > From Source section and repeat steps 2 to 5 (Build, Install, Restart, Enable).
Note: The compiled translation binaries (
.mo) generated in thelocale/folder are for local testing only. Do not commit them to the repository.
Click to view Manual Translation Instructions (Advanced)
Replace LANG_CODE from all commands below with your locale. It's recommended to use the standard POSIX format ll_CC (Language_COUNTRY) (e.g pt_BR). You can also use the two-letter code (e.g., fr, de) if you want the translation to apply to all regions of that language. However, for languages with major regional differences (like Portuguese), use the full code.
If unsure, check the GNU Locale Names reference or run localectl list-locales in your terminal.
-
Generate the template:
xgettext --from-code=UTF-8 --output=po/proton-checker@carvdev.github.com.pot extension.js sed -i 's/charset=CHARSET/charset=UTF-8/g' po/proton-checker@carvdev.github.com.pot -
Update or Create language file:
- New translation:
msginit --input=po/proton-checker@carvdev.github.com.pot --output=po/LANG_CODE.po --locale=LANG_CODE
- Update existing:
msgmerge -U po/LANG_CODE.po po/proton-checker@carvdev.github.com.pot
- New translation:
-
Translate the file: Edit the
.pofile created in thepo/directory using a text editor or a tool like Poedit. -
. Test Locally (Optional): To test your translation in GNOME Shell, you need to rebuild and reinstall the extension. Go back to the Installation > From Source section and repeat steps 2 to 5 (Build, Install, Restart, Enable).
Note: The compiled translation binaries (
.mo) generated in thelocale/folder are for local testing only. Do not commit them to the repository.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
- Data provided by ProtonDB and Steam (this extension is not affiliated with Valve or ProtonDB).
- Translations:
| Language | Contributor |
|---|---|
| 🇧🇷 Portuguese | CarvDev |
| 🇪🇸 Spanish | juanmagdev |
