SIF is a simple Python script allowing you to fix runtime icons of Steam games displayed in a dock or panel to match the 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 the ~/.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 the following Python modules: PyGObject, requests and vdf. You can use your package manager or pip3 to install them.
Example (after you clone the repository): 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.
Fedora and other RPM-based distro users can use the COPR Repository. Install it with:
sudo dnf copr enable chapien/SIF
sudo dnf install sif-steamThe COPR is maintained by Chapien. Send installation issues to inquiries@chapien.net
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 the 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 the default icons:
./sif.py --restore
For the fix to work, I need to know the 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 to append your game to our database, you have to know the APP_ID and WM_CLASS of the game.
There are multiple ways to get an APP_ID of a Steam game.
- You can use
./sif.py --gamesto get APP_IDs of all installed games. - From SteamDB.
- From Steam's URL address.
Users with xorg can use the xprop tool.
- Start your game from your Steam library.
- Open a new terminal window and run
xprop WM_CLASS. - Switch to the game window with Alt-Tab and left click on it with the mouse.
- Switch back to the terminal and get your WM_CLASS.
Some games have their WM_CLASS missing. In this case you can get the 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 the 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.
