SIF is a simple Python script allowing you to fix runtime icons of Steam games displayed in dock or panel to match Linux system icon theme.
It aims to be safe, simple and intuitive.
The script must be run by a regular
user and modifies only files in ~/.local/share/applications
directory.
I created this script because I find it very frustrating when the game icons don't fit the selected icon theme.
The script was tested on Gnome and KDE with Dash to Dock, Plank, Latte and Numix-Circle, Numix-Square, Papirus and Suru++ icon themes.
Visit wiki/Description.
Make sure you have installed Python modules PyGObject, requests and vdf. You can use your package manager or pip3 to install them.
Example (after you clone the respository): pip3 install -r requirements.txt --user
Also make sure you have xdotool installed. It should be available in the official repositories.
After that, all you need to do is clone this repository:
git clone https://github.com/BlueManCZ/SIF.git
cd SIF
Gentoo users may use ebuild in the Edgets overlay.
Arch users may use pkgbuild from the AUR.
See ./sif.py --help
for all options.
You can check which games can be fixed before applying the fix:
./sif.py --icons
or:
./sif.py --pretend
If commands above worked without a problem, you can apply the fix:
./sif.py
If you want to clear previous fixes before applying new ones:
./sif.py --clear
You can also fix only one specific game:
./sif.py --single APP_ID
If you want to remove all changes and restore default icons:
./sif.py --restore
For the fix to work, I need to know WM_CLASS of each individual game. I can create fixes only for games which I have installed and I can get their WM_CLASS.
If you want append your game to our database, you have to know APP_ID and WM_CLASS of this game.
There are multiple ways, how to get APP_ID of Steam game.
- You can use
./sif.py --games
to get APP_IDs of all installed games. - From the steamdb.info.
- From the store.steampowered.com URL address.
Users with xorg can use xprop tool.
- Start your game from Steam library.
- Open new terminal window and run
xprop WM_CLASS
. - Switch to the game window with Alt-Tab and left click with mouse on it.
- Switch back to the terminal and get your WM_CLASS.
Some games have their WM_CLASS missing. In this case you can use a WM_NAME of the game. xprop WM_NAME
Do not contribute Proton games to the database, because they are supported natively.
WM_CLASS of each Proton game is steam_app_<APP_ID>
. It is calculated automatically.
You can open a new issue, where you provide APP_ID, WM_CLASS (and your icon theme), and I will add your game to the database as soon as possible.
You can also fork this repository, edit database.json yourself and create a pull request. Please keep the file sorted by APP_ID.
Your contribution is welcome.