Skip to content

BlueManCZ/SIF

Repository files navigation

SIF (Steam Icons Fixer)

Dock with icons after fix

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.

Animation

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.

Description

Visit wiki/Description.

Installation

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-steam

The COPR is maintained by Chapien. Send installation issues to inquiries@chapien.net

Usage

See ./sif.py --help for all options.

Check

You can check which games can be fixed before applying the fix:

./sif.py --icons

or:

./sif.py --pretend

Apply

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

Restore

If you want to remove all changes and restore the default icons:

./sif.py --restore

Contribution

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.

Get APP_ID

There are multiple ways to get an APP_ID of a Steam game.

  1. You can use ./sif.py --games to get APP_IDs of all installed games.
  2. From SteamDB.
  3. From Steam's URL address.

Get WM_CLASS

Users with xorg can use the xprop tool.

  1. Start your game from your Steam library.
  2. Open a new terminal window and run xprop WM_CLASS.
  3. Switch to the game window with Alt-Tab and left click on it with the mouse.
  4. Switch back to the terminal and get your WM_CLASS.

Missing WM_CLASS?

Some games have their WM_CLASS missing. In this case you can get the WM_NAME of the game. xprop WM_NAME

Proton games are supported natively

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.

Create an issue or append the database

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.

About

🎮 Steam Icons Fixer - Fix runtime icons of Steam games on Linux.

Topics

Resources

License

Stars

Watchers

Forks

Contributors