bluemancz / sif Goto Github PK
View Code? Open in Web Editor NEW:video_game: Steam Icons Fixer - Fix runtime icons of Steam games on Linux.
License: Apache License 2.0
:video_game: Steam Icons Fixer - Fix runtime icons of Steam games on Linux.
License: Apache License 2.0
APP_ID: 367520
WM_CLASS: "hollow_knight.x86_64", "hollow_knight.x86_64"
Icon Theme: Numix (Square)
APP_ID: 286160
WM_CLASS: Tabletop Simulator.x86_64
Icon Theme: Papirus-Dark
APP_ID: 270880
WM_NAME: American Truck Simulator
Icon Theme: Papirus-Dark
APP_ID: 208580
WM_CLASS: "KOTOR2", "KOTOR2"
Icon Theme: Numix (Square)
Of all the times I've applied the script, I've done it with Steam closed, but it would be interesting to have clarification in the script description about whether this is necessary or not.
Thanks in advance.
My libraryfolders.vdf
is in ~/.steam/steam/steamapps/
, but it's looking for it in /.steam/steam/config/
instead.
❯ sif --verbose
Working with Papirus-Dark icon theme.
[ok] Found Steam installation directory:
- /home/yochanan/.steam/steam
[ok] Found Steam configuration file:
- /home/yochanan/.steam/steam/config/config.vdf
Traceback (most recent call last):
File "/usr/bin/sif", line 349, in <module>
library_folders = get_steam_libraries()
File "/usr/bin/sif", line 59, in get_steam_libraries
libraries_config = vdf.load(open(STEAM_INSTALL_DIR + '/config/libraryfolders.vdf'))
FileNotFoundError: [Errno 2] No such file or directory: '/home/yochanan/.steam/steam/config/libraryfolders.vdf'
I symlinked it to ~/.steam/steam/config/
, but it doesn't seem to like my file:
Working with Papirus-Dark icon theme.
[ok] Found Steam installation directory:
- /home/yochanan/.steam/steam
[ok] Found Steam configuration file:
- /home/yochanan/.steam/steam/config/config.vdf
Traceback (most recent call last):
File "/usr/bin/sif", line 349, in <module>
library_folders = get_steam_libraries()
File "/usr/bin/sif", line 61, in get_steam_libraries
for library in libraries_config['libraryfolders'].values():
KeyError: 'libraryfolders'
My libraryfolders.vdf
:
"LibraryFolders"
{
"TimeNextStatsReport" "1623265925"
"ContentStatsID" "3289963266067000499"
"1" "/mnt/storage/Games/steam"
}
Manjaro GNOME
sif-git
r101.f3354aa-1
steam-manjaro
1.0.0.71-1
steam-native
1.0.0.70-2
APP_ID: 346900
WM_CLASS: adventure-capitalist.x86
Icon Theme: Papirus-Dark
APP_ID: 10
WM_CLASS: hl_linux
WM_NAME: Counter-Strike
Icon Theme: Papirus-Dark
(Last Database Request for now)
APP_ID: 240
WM_CLASS: hl2_linux
WM_NAME: Counter-Strike Source - OpenGL
Icon Theme: Papirus-Dark
Script does not fix the icons and also causes the game to not close automatically (the game closes but Steam's "Playing" status does not change and the game needs to be forcefully closed).
Tested with Team Fortress 2 with Papirus icon theme.
I am on Ubuntu 20.04, with Python 3.8.5. I've made sure to install everything but when I run the python file I just get an error. At first, it will work fine and ask me to terminate steam but then that's when it messes up.
Creating .desktop files in /home/litleck/.local/share/applications/steam-icons-fixed
Traceback (most recent call last):
File "./sif.py", line 492, in <module>
fix_launch_option(game, game_wm_name, game_wm_name_alt)
File "./sif.py", line 157, in fix_launch_option
apps = loaded['UserLocalConfigStore']['Software']['Valve']['Steam']['Apps']
KeyError: 'Apps'
I have no clue what this means but I was hoping maybe I could get help here.
Installed from AUR. Log below.
$ ./sif.py --pretend --verbose
Current icon theme: Papirus-Light
Steam version: steam-runtime_0.20220315.0
[ok] Found Steam installation directory:
- /home/ujhhgtg/.local/share/Steam
[ok] Found Steam configuration file:
- /home/ujhhgtg/.local/share/Steam/config/config.vdf
[ok] Found Steam libraryfolders.vdf file:
- /home/ujhhgtg/.local/share/Steam/config/libraryfolders.vdf
[ok] Found Steam library folders:
- /home/ujhhgtg/.local/share/Steam/steamapps
[ok] Found Steam localconfig.vdf file:
- /home/ujhhgtg/.local/share/Steam/userdata/1123682541/config/localconfig.vdf
[ok] Found database.json file:
- /usr/share/SIF/database.json
Traceback (most recent call last):
File "/usr/bin/sif", line 561, in <module>
if any(x in games_with_compat[str(game)]["name"] for x in ["proton", "Proton"]):
File "/usr/bin/sif", line 561, in <genexpr>
if any(x in games_with_compat[str(game)]["name"] for x in ["proton", "Proton"]):
KeyError: 'name'
Installed steam games: Superliminal(native), Among Us(Steam Play: Proton Experimental), Bridge Constructor Portal(native)
APP_ID: 413150
WM_CLASS: StardewValley.bin.x86_64
WM_NAME: Stardew Valley
Icon Theme: Papirus-Dark
APP_ID: 317400
WM_CLASS: portal2_linux
WM_NAME: Portal Stories: Mel - OpenGL
Icon Theme: Papirus-Dark
WM_CLASS is used to connect running applications with existing .desktop files containing application icons.
There are currently two types of games. Games that have WM_CLASS window property already set from the start and games that don't. If they don't, it's usually the fault of game developers and I've been thinking for a long time how to workaround this.
I came up with the script fix-wm-class.sh that can be automatically executed from the game launch options and this script finds window by WM_NAME and sets WM_CLASS to the same value.
This works fine with docks as Dash to Dock or Plank. But we have encountered problems with default KDE panel and Latte dock. (#10)
I think these problems are connected with some kind of dynamic WM_CLASS fetching or something similar.
Also Half-Life 2: Lost Coast, Half-Life 2: Episode One and Half-Life 2: Episode Two
It seems like HL2 is already in the database but the icon doesn't match the icon I've seen in the Papirus icon theme.
APP_ID: 220, 340, 380, 420
WM_CLASS: hl2_linux
WM_NAME: HALF-LIFE 2 - OpenGL
Icon Theme: Papirus-Dark
APP_ID: 4000
WM_CLASS: hl2_linux
WM_NAME: Garry's Mod - OpenGL
Icon Theme: Papirus-Dark
APP_ID: 413150
WM_CLASS: "StardewModdingAPI", "StardewModdingAPI"
Icon Pack: Numix Square
I want it to just have the same icon as the base, unmodded Stardew Valley game.
APP_ID: 236390
WM_CLASS: War Thunder
Icon Theme: Papirus-Dark
APP_ID: 105600
WM_CLASS: "Terraria.bin.x86_64", "Terraria.bin.x86_64"
Icon Theme: Numix (Square)
APP_ID: 300
WM_CLASS: hl2_linux
WM_NAME: Day of Defeat Source - OpenGL
Icon Theme: Papirus-Dark
App ID: 677620
WM_CLASS: PortalWars-Linux-Shipping
App ID: 677620
WM_CLASS: PortalWars-Linux-Shipping
I'm playing https://store.steampowered.com/app/787480/Phoenix_Wright_Ace_Attorney_Trilogy/, which runs through Proton, but it uses its default .exe
icon instead of the system-provided icon.
By the way, I'm using the latest version of Proton-GE, but I don't think this causes any problems related to the icons.
Thanks in advance.
APP_ID: 80
WM_CLASS: hl_linux
WM_NAME: Condition Zero
Icon Theme: Papirus-Dark
Only requested the launcher/settings menu last time, adding the proper game here.
APP_ID: 236390
WM_CLASS: War Thunder (OpenGL3, 64bit)
Icon Theme: Papirus-Dark
APP_ID: 427520
WM_CLASS: factorio
Icon Theme: Papirus-Dark
Appid: "236850"
WM_CLASS: "eu4", "paradox launcher"
Icon from papirus: "/home/user/.local/share/icons/Papirus/48x48/categories/steam_icon_236850.svg"
Edit:
Added launcher WM_CLASS also in case you need it. Beware that the other paradox games use the same launcher
Steam reports the game as open after the game is exited because the script doesn't close itself after the game closes.
APP_ID: 262060
WM_CLASS: "darkest.bin.x86_64"
Icon Pack: Numix Square
SIF on master via v3.8.5
❯ ./sif.py --icons
These icons for your installed Steam games were found in Papirus-Dark icon theme:
Counter-Strike - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_10.svg
~ Team Fortress Classic - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_20.svg
Day of Defeat - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_30.svg
Deathmatch Classic - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_40.svg
~ Half-Life: Opposing Force - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_50.svg
~ Half-Life - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_70.svg
Counter-Strike: Condition Zero - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_80.svg
~ Half-Life: Blue Shift - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_130.svg
~ Half-Life 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_220.svg
Counter-Strike: Source - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_240.svg
Half-Life 2: Deathmatch - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_320.svg
Half-Life 2: Lost Coast - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_340.svg
~ Half-Life Deathmatch: Source - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_360.svg
Half-Life 2: Episode One - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_380.svg
~ Portal - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_400.svg
Half-Life 2: Episode Two - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_420.svg
~ Team Fortress 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_440.svg
~ Left 4 Dead 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_550.svg
* Dota 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_570.svg
* Portal 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_620.svg
* Counter-Strike: Global Offensive - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_730.svg
Killing Floor - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_1250.svg
Garry's Mod - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_4000.svg
* BioShock Infinite - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_8870.svg
LIMBO - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_48000.svg
Borderlands 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_49520.svg
Spec Ops: The Line - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_50300.svg
Amnesia: The Dark Descent - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_57300.svg
Terraria - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_105600.svg
* Crusader Kings II - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_203770.svg
Castle Crashers - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_204360.svg
Sanctum 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_210770.svg
PAYDAY 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_218620.svg
* Insurgency - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_222880.svg
POSTAL 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_223470.svg
No More Room in Hell - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_224260.svg
~ Euro Truck Simulator 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_227300.svg
Company of Heroes 2 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_231430.svg
POSTAL - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_232770.svg
War Thunder - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_236390.svg
Outlast - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_238320.svg
Amnesia: A Machine for Pigs - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_239200.svg
Skullgirls - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_245170.svg
* Cities: Skylines - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_255710.svg
Borderlands: The Pre-Sequel - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_261640.svg
Broforce - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_274190.svg
* A Story About My Uncle - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_278360.svg
Tabletop Simulator - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_286160.svg
F1 2015 - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_286570.svg
Lovely Planet - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_298600.svg
Robocraft - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_301520.svg
Floating Point - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_302380.svg
Unturned - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_304930.svg
* DiRT Rally - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_310560.svg
Double Action: Boogaloo - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_317360.svg
Portal Stories: Mel - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_317400.svg
Don't Starve Together - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_322330.svg
* Black Mesa - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_362890.svg
Blender - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_365670.svg
DOOM - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_379720.svg
* Teeworlds - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_380840.svg
POSTAL Redux - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_401680.svg
Godot Engine - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_404790.svg
Becalm - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_999830.svg
Classic Racers - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_1037480.svg
* Dota Underlords - /usr/share/icons/Papirus-Dark/48x48/categories/steam_icon_1046930.svg
* - game is in our database and can be fixed
~ - game is fixable, but we have to edit its launch options
SIF on master via v3.8.5
❯ ./sif.py --pretend
Installed games whose icons can be fixed:
20 - Team Fortress Classic
50 - Half-Life: Opposing Force
70 - Half-Life
130 - Half-Life: Blue Shift
220 - Half-Life 2
360 - Half-Life Deathmatch: Source
400 - Portal
440 - Team Fortress 2
550 - Left 4 Dead 2
570 - Dota 2
620 - Portal 2
730 - Counter-Strike: Global Offensive
8870 - BioShock Infinite
203770 - Crusader Kings II
222880 - Insurgency
227300 - Euro Truck Simulator 2
255710 - Cities: Skylines
278360 - A Story About My Uncle
310560 - DiRT Rally
362890 - Black Mesa
380840 - Teeworlds
1046930 - Dota Underlords
No changes were made because --pretend option was used.
SIF on master via v3.8.5
❯ ./sif.py
Creating .desktop files in /home/pm/.local/share/applications/steam-icons-fixed
Running Steam instance was found.
It is necessary to exit Steam for some changes to take effect.
Would you like to terminate Steam now? [Y/n]: Y
Terminating Steam processes.
20 * - Team Fortress Classic
50 * - Half-Life: Opposing Force
70 * - Half-Life
130 * - Half-Life: Blue Shift
220 * - Half-Life 2
360 * - Half-Life Deathmatch: Source
400 * - Portal
440 * - Team Fortress 2
550 * - Left 4 Dead 2
570 - Dota 2
620 - Portal 2
730 - Counter-Strike: Global Offensive
8870 - BioShock Infinite
203770 - Crusader Kings II
222880 - Insurgency
227300 * - Euro Truck Simulator 2
255710 - Cities: Skylines
278360 - A Story About My Uncle
310560 - DiRT Rally
362890 - Black Mesa
380840 - Teeworlds
1046930 - Dota Underlords
* - added fix to game launch options
Could not parse file "/home/pm/.local/share/applications/discord-577632370602278912.desktop": Key file contains line ? %u? which is not a key-value pair, group, or comment
SIF on master via v3.8.5 took 10s
❯ cd /home/pm/.local/share/applications
.local/share/applications
❯ ls
'An Octave Higher - Basic Soundtrack.desktop' 'Driftland The Magic Revival - Soundtrack.desktop' 'Half-Life 2 Episode Two Soundtrack.desktop' lstopo.desktop picom.desktop 'SPLIT BULLET Original Soundtrack.desktop' 'Unhack - Original Soundtrack.desktop'
arandr.desktop 'Dying Light Original Soundtrack.desktop' 'Half-Life 2 Soundtrack.desktop' 'Lucid9 - Soundtrack.desktop' 'Portal 2 Soundtrack.desktop' 'Squids Odyssey Soundtrack.desktop' 'Unruly Heroes - Soundtrack.desktop'
'Audio Party Pack.desktop' electron4.desktop 'Half-Life 2 Update.desktop' 'Master of Orion Soundtrack & Score.desktop' 'Portal Soundtrack.desktop' 'Squirm OST.desktop' 'Unsung Kingdom Soundtrack.desktop'
'Beholder - Original Soundtrack.desktop' electron5.desktop 'Half-Life Soundtrack.desktop' 'Meegah Mem II Official Soundtrack.desktop' 'POSTAL 2.desktop' 'Stardust Galaxy Warriors - Strike Update Soundtrack.desktop' 'Until You Fall - A Swordwave OST.desktop'
'Blast Rush Original Soundtrack.desktop' electron6.desktop 'Halfquake Trilogy Complete Soundtrack.desktop' mimeinfo.cache 'Probe Soundtrack.desktop' steam-icons-fixed urxvtc.desktop
"bob's game.desktop" electron7.desktop hardcode-fixer.desktop mintstick.desktop 'Project DeepWeb Soundtrack.desktop' 'Steam Summer Monsters Soundtrack.desktop' urxvt-tabbed.desktop
' Bonus Track.desktop' electron8.desktop hardinfo.desktop 'Mission Demolition - Soundtrack.desktop' 'Project Genesis Soundtrack.desktop' 'Steam Summer Saliens Soundtrack.desktop' userapp-Nightly-J4FOP0.desktop
bssh.desktop electron9.desktop 'Have a N.I.C.E day! Soundtrack.desktop' 'Monster RPG 3 Soundtrack.desktop' 'QT Soundtrack.desktop' 'SubDivide Soundtrack.desktop' volumeicon.desktop
bvnc.desktop electron.desktop hidamari.desktop 'Monument Soundtrack.desktop' quick-system-info.desktop 'Super Arcade Racing Soundtrack.desktop' vsls-launcher.desktop
ca.desrt.dconf-editor.desktop 'Enderal - Original Soundtrack.desktop' 'Hotline Miami Soundtrack.desktop' 'Music To Go POSTAL By.desktop' qv4l2.desktop 'SUPERHOT MIND CONTROL DELETE Soundtrack.desktop' 'Walden, a game - Soundtrack.desktop'
"Clean'Em Up OST.desktop" 'Epic Battle Fantasy 3 - Soundtrack.desktop' htop.desktop 'N.I.C.E. 2 Soundtrack.desktop' "Sable's Grimoire A Dragon's Treasure Soundtrack.desktop" 'TAL Arctic 3 - Soundtrack.desktop' 'Wallpaper Engine.desktop'
'Colum and His Friends Soundtrack.desktop' 'Evil Cult Soundtrack.desktop' 'Human Resource Machine Soundtrack.desktop' nitrogen.desktop "Sable's Grimoire Man And Elf Soundtrack.desktop" 'Tallowmere Soundtrack.desktop' 'WARPZONE DRIFTER.desktop'
compton.desktop 'Flat Trip OST and Art.desktop' 'ICEY OST.desktop' 'Nyanco Channel Soundtrack.desktop' "Sable's Grimoire Soundtrack.desktop" 'The Dota 2 Remixes EP.desktop' 'Winter Polaris C97 Drama CD.desktop'
conky.desktop 'Freakshow soundtrack.desktop' 'Jelly Brawl Classic.desktop' 'Nyanco Dream Soundtrack.desktop' 'Samorost 2 Soundtrack.desktop' 'The Executioner Soundtrack.desktop' 'World of Art - learn with Jigsaw Puzzles Soundtrack.desktop'
'Counter-Strike Global Offensive.desktop' 'Free to Play Soundtrack.desktop' 'Keep the Balance Soundtrack.desktop' obconf.desktop 'Scanner Sombre Original Soundtrack.desktop' 'The Search Soundtrack.desktop' 'World of Goo Soundtrack.desktop'
'Cyber Seraph Soundtrack.desktop' 'Frostpunk Original Soundtrack.desktop' 'Kingdom Under Fire Heroes Soundtrack.desktop' obkey.desktop 'Scythe Digital Edition - Soundtrack.desktop' 'The Void Rains Upon Her Heart - Soundtrack.desktop' 'World of Warships Composers Choice.desktop'
'Cymatically Muffed - Soundtrack.desktop' 'Fruit Postal Service.desktop' 'Kingdom Under Fire The Crusaders Soundtrack.desktop' obmenu3.desktop 'Sector Six OST.desktop' ' The Wind Road Soundtrack.desktop' yad-icon-browser.desktop
'Das Geisterschiff Remixed.desktop' gparted.desktop 'Kinoko Soundtrack.desktop' 'Odyssey Soundtrack.desktop' ' Servants of Harvest Wish Soundtrack.desktop' tint2conf.desktop ZACH-LIKE.desktop
'Dear Devere Soundtrack.desktop' grub-customizer.desktop kite-copilot.desktop 'Oh My Girl Soundtrack.desktop' 'Session Seven Soundtrack.desktop' tint2.desktop 'Zatorski, Ph.D. Soundtrack.desktop'
'DEEP SPACE ANOMALY Soundtrack + ART.desktop' 'G String Sample Soundtrack.desktop' kite.desktop 'One Thousand Lies Soundtrack.desktop' 'Skeletal Dance Party - Soundtrack.desktop' 'Tomboys Need Love Too! Soundtrack.desktop' 'Zombie Panic! Source Official Soundtrack.desktop'
'Demon King Domination - Soundtrack.desktop' gtk-lshw.desktop 'Leaving Lyndow Original Soundtrack.desktop' org.gnome.DiskUtility.desktop 'Slimey Champions Soundtrack.desktop' 'Tower Unite - Soundtrack.desktop' 'Zup! 6 - OST.desktop'
'Desktop Agents - Cov1d-999 Soundtrack.desktop' 'Hacknet Official Soundtrack.desktop' 'Leon'\''s crusade (La cruzada de Len) Soundtrack.desktop' 'Ori and the Blind Forest (Additional Soundtrack).desktop' 'Sloth Heart to Heart Soundtrack.desktop' 'Toy Robot Soundtrack.desktop'
'Die Again - Soundtrack.desktop' 'Half-Life 2 Deathmatch.desktop' 'Liberated Soundtrack Mixtape Vol.1.desktop' 'OSK - Soundtrack.desktop' 'Smart Cube - Soundtrack.desktop' TTV3.desktop
"Dirty Harry's Thunder Drive Soundtrack.desktop" 'Half-Life 2 Episode One Soundtrack.desktop' 'Little Inferno Soundtrack.desktop' 'Party Jousting.desktop' 'Spark & Sparkle Soundtrack.desktop' UBERMOSHOMEGA.desktop
discord-577632370602278912.desktop 'Half-Life 2 Episode Two.desktop' 'Logistique Soundtrack.desktop' pavucontrol.desktop 'Spark & Sparkle Soundtrack Extra Sounds.desktop' UBERMOSHSANTICIDE.desktop
.local/share/applications
❯ bat discord-577632370602278912.desktop
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: discord-577632370602278912.desktop
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ [Desktop Entry]
2 │ Name=Game 577632370602278912
3 │ Exec=/mnt/Ventilateur/SteamLibrary/steamapps/common/Source SDK Base 2013 Multiplayer/hl2_linux -game "/home/pm/.steam/steam/steamapps/sourcemods/open_fortress/" -novid -steam
4 │ %u
5 │ Type=Application
6 │ NoDisplay=true
7 │ Categories=Discord;Games;
8 │ MimeType=x-scheme-handler/discord-577632370602278912;
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
.local/share/applications
❯
As you can see, for some weird reasons, sif.py modified my Source SDK Base 2013 Multiplayer .desktop shortcut, to Discord for some strange reason.
I can´t even really understand why the odd discord number. Is it conflicting with the Open Fortress game path ?
Here's the following errors. This is after a fresh install.
tucker@tucker-desktop:~/SIF$ ./sif.py --icons
Traceback (most recent call last):
File "./sif.py", line 13, in <module>
import vdf
ModuleNotFoundError: No module named 'vdf'
tucker@tucker-desktop:~/SIF$ ./sif.py --pretend
Traceback (most recent call last):
File "./sif.py", line 13, in <module>
import vdf
ModuleNotFoundError: No module named 'vdf'
tucker@tucker-desktop:~/SIF$ ./sif.py
Traceback (most recent call last):
File "./sif.py", line 13, in <module>
import vdf
ModuleNotFoundError: No module named 'vdf'
When I try to use the browse function of SIF it throws me this:
Gtk-Message: 12:41:34.361: Failed to load module "unity-gtk-module"
Working with Papirus icon theme.
These Steam games have icon in Papirus icon theme:
(Fetching names from https://steamdb.info/. This may take a while.)
Traceback (most recent call last):
File "/home/paulo/Papirus/SIF/./sif.py", line 298, in <module>
name = get_game_name(fetch_json(game))
File "/home/paulo/Papirus/SIF/./sif.py", line 140, in get_game_name
data = loads(json_string)
File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
APP_ID: 30
WM_CLASS: hl_linux
WM_NAME: Day of Defeat
Icon Theme: Papirus-Dark
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.