Git Product home page Git Product logo

sfp's Introduction

SFP (Formerly SteamFriendsPatcher)

This utility allows you to apply skins and scripts to the new Steam client.

Table of contents generated with markdown-toc

Instructions

  1. Download and extract the latest zip file under Releases for your operating system.
    • If you have .NET 7 installed, download the _net7.zip release; otherwise, download the _SelfContained.zip release.
  2. Run the SFP_UI application.
  3. By default, SFP_UI will automatically wait for Steam to start and inject, or inject if Steam is already running.
  4. For full functionality, SFP must be running with its injector started as long as Steam is running.
  5. Steam must be running with the -cef-enable-debugging argument for SFP to work.
    • If Steam is started with SFP, it will do this automatically. Otherwise, you can use the "Force Steam arguments" setting to automatically restart Steam with the chosen arguments if it does not already have them.
    • This setting is enabled by default
  6. Use the "Open File" button in SFP to access the files where your custom skins and scripts are applied from.

For more information and links to existing skins see Steam Skins Wiki

Features

Steam Skinning

  • Reads and applies custom CSS to Steam pages.
    • Customize which files apply to which pages in the skin config.
    • By default, SFP applies skins from:
      • Skins for the Steam client, library, and overlay go in Steam/steamui/libraryroot.custom.css.
      • Skins for the friends list and chat windows go in Steam/steamui/friends.custom.css.
      • Skins for the Steam store and community pages go in Steam/steamui/webkit.css.
      • Skins for Big Picture Mode go in Steam/steamui/bigpicture.custom.css.

Scripting

  • Reads and applies custom JavaScript to Steam pages.
    • Customize which files apply to which pages in the skin config.
    • By default, SFP applies scripts from:
      • Scripts for the Steam client, library, and overlay go in Steam/steamui/libraryroot.custom.js.
      • Scripts for the friends list and chat windows go in Steam/steamui/friends.custom.js.
      • Scripts for the Steam store and community pages go in Steam/steamui/webkit.js.
      • Scripts for Big Picture Mode go in Steam/steamui/bigpicture.custom.js.

Skins and Scripts in Separate Folders

  • Skins and scripts can also be added to their own folders within Steam/steamui/skins and then selected in SFP's settings.

Enable JavaScript Injection

  • JavaScript injection is disabled by default and must be enabled in SFP's settings.
  • JavaScript code can potentially be malicious, so only install scripts from people you trust!

Skin Authors

If you want to customize which Steam pages are skinned and which files are applied to each page, include a skin.json file in the root of your skin folder.

Default skin.json:

{
  "Patches": [
    {
      "MatchRegexString": "https://.*.steampowered.com",
      "TargetCss": "webkit.css",
      "TargetJs": "webkit.js"
    },
    {
      "MatchRegexString": "https://steamcommunity.com",
      "TargetCss": "webkit.css",
      "TargetJs": "webkit.js"
    },
    {
      "MatchRegexString": "^Steam$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "^OverlayBrowser_Browser$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "^SP Overlay:",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "Supernav$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "^notificationtoasts_",
      "TargetCss": "notifications.custom.css",
      "TargetJs": "notifications.custom.js"
    },
    {
      "MatchRegexString": "^SteamBrowser_Find$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "^OverlayTab\\d+_Find$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": "^Steam Big Picture Mode$",
      "TargetCss": "bigpicture.custom.css",
      "TargetJs": "bigpicture.custom.js"
    },
    {
      "MatchRegexString": "^QuickAccess_",
      "TargetCss": "bigpicture.custom.css",
      "TargetJs": "bigpicture.custom.js"
    },
    {
      "MatchRegexString": "^MainMenu_",
      "TargetCss": "bigpicture.custom.css",
      "TargetJs": "bigpicture.custom.js"
    },
    {
      "MatchRegexString": ".friendsui-container",
      "TargetCss": "friends.custom.css",
      "TargetJs": "friends.custom.js"
    },
    {
      "MatchRegexString": "Menu$",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": ".ModalDialogPopup",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    },
    {
      "MatchRegexString": ".FullModalOverlay",
      "TargetCss": "libraryroot.custom.css",
      "TargetJs": "libraryroot.custom.js"
    }
  ]
}

Each entry should have a "MatchRegexString" key, where the value is either a regex string that will be matched against a Steam page title or a url that begins with http:// or https:// that will be matched against a url.

Each entry can also have a TargetCss key and a TargetJs key, which will be the css and js files that are applied to the page if the regex matches.

An entry can have both a TargetCss and a TargetJs key, or just one of them.

Each target can only have one Css and one Js file injected at a time, with the first match taking precedence, so order your patches correctly.

If you would like to use SFP's default config you can simply omit the skin.json file or include this:

{
    "UseDefaultPatches": true
}

If that key is included along with custom patches, the custom patches will be applied first, followed by the default patches.

Matching against pages with variable titles

Certain pages will have titles that change either depending on the user's language settings or some other factor.

In order to match against these pages, you can match against a selector that exists within the page. SFP will match against a selector if MatchRegexString begins with ., #, or [.

For example:

  • The Friends List and Chat windows can be matched against with .friendsui-container

  • The library game properties dialog and most of the dialogs that pop up in the overlay menu can be matched against with .ModalDialogPopup

  • The sign in page can be matched against with .FullModalOverlay

Finding Steam Page Titles

To find steam page titles to match against, make sure Steam is running with cef-enable-debugging and then visit http://localhost:8080 in your web browser.

Using System Accent Color

When the user has the UseAppTheme setting enabled, SFP passes the System Accent Color to Steam via CSS variables.

You can use these variables in your skin to match the system accent color.

The variables are as follows:

  • --SystemAccentColor
  • --SystemAccentColorLight1
  • --SystemAccentColorLight2
  • --SystemAccentColorLight3
  • --SystemAccentColorDark1
  • --SystemAccentColorDark2
  • --SystemAccentColorDark3

These variables contain hex colors.

When using these variables, make sure to fallback to sane defaults as these variables may not exist if the user does not enable UseAppTheme or uses a different patcher.

Todo

  • Add ability to install and customize skins directly from SFP

Known Issues

  • None currently

Dependencies

All

  • .NET 7.0 (Only if not using self contained version)

Linux

  • ttf-ms-fonts
    • run fc-cache --force after installing

Credits

sfp's People

Contributors

dependabot[bot] avatar maracko avatar phantomgamers avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sfp's Issues

Arch Linux, Font Issue

SFP.log

Switched to Arch so I could have a better performance experience after the Big Steam UI update, problem is, everytime i try to launch, it crashes because of an font error. Saying that The Font Family cannot be null or empty. I just want to inject my skin so I dont cringe every second I look at the new UI. (Or in many other peoples cases, have their computer crash due to an memory leak.)

Old SFP patch method still works

Hey hey! This isn't really an issue persay, however library CSS patches that patch in the way 0.0.14 did still do work for the library and are a permanent (and revertable) means to patch Steam without having SFP open. Would it be possible to readd the patching method for the library?

Auto-update?

If possible it would be nice to have an auto-updating feature or at least something that prompts you for it to auto-install so that manual downloading and extracting isn't necessary.

If this isn't possible at the moment then sorry!

SFP does not work on Windows 8.1

I think I managed to follow the installation instructions but when I open the SFP_UI.exe, there are SFP.log and SFP.config files appearing but the UI isn't opening (should it?). And when I go to the tray to look for the icon, it's there for a while but until I move my mouse towards it, the icon disappears.

My OS is Windows 8.1 and Steam version is the latest one available. I am wondering if the issue is related to my OS not being Windows 10 or 11 but let's hope that's not the case.

The log file looks like the following:

2023-06-22 12:49:41.3752|INFO|SFP.Models.Log|Initializing SFP version 0.0.47 on platform win81-x64
2023-06-22 12:49:41.6650|DEBUG|SFP.Models.Log|SelectedSkin is steamui.
2023-06-22 12:49:41.8465|INFO|SFP.Models.Log|Monitoring Steam state
2023-06-22 12:49:41.8465|ERROR|SFP.Models.Log|System.EntryPointNotFoundException: Unable to find an entry point named 'AdjustWindowRectExForDpi' in DLL 'user32.dll'.
   at FluentAvalonia.Interop.Win32Interop.AdjustWindowRectExForDpi(RECT* lpRect, Int32 dwStyle, BOOL bMenu, Int32 dwExStyle, Int32 dpi)
   at FluentAvalonia.UI.Windowing.Win32WindowManager.HandleNCCALCSIZE(WPARAM wParam, LPARAM lParam)
   at FluentAvalonia.UI.Windowing.Win32WindowManager.WndProc(HWND hWnd, UInt32 msg, WPARAM wParam, LPARAM lParam)
   at FluentAvalonia.UI.Windowing.Win32WindowManager.WndProcStatic(IntPtr hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam)

Add feature to inject JavaScript code to steam ui

Since steam 2023-04-27 beta version, SFP use CEF devtools to inject code. This way also supports JS besides CSS.
Steam has many elements with id like somethingFixed_someHash, JS code inject is suitable for this situation but pure CSS is difficult to match this thing. Even if it is successfully matched, once the hash changes, the user needs to manually find and fix it again. JS, on the other hand, can provide more flexible matching and modification capabilities.

https://github.com/ShadowMonster99/millennium-steam-patcher has supported this feature, and some theme like https://github.com/AikoMidori/SteamSkins has used it.

suggestion: add an option to increase font size

This may not fall under the scope of this project, but for the life of me I can't find any way (that works) to increase the font size of Steam. Stuff like the "ABOUT THIS GAME" sections on the store page, or the descriptions for Workshop addons, all of that text is getting too small for my eyes to read, but Steam has no way to increase the font size. I'd love if SFP had an extra option to adjust the sizes of text like that.

Windows 7 support

As a windows 7 user its very sad that this program does not support windows 7.
Windows 7 is maybe old but is getting still official ESU updates, also last year 5% of all steam users where using Windows 7*
so its still very popular os and for a reason cause its "last good windows version"

Please consider adding windows 7 support as there is really no any reason to not add that and Steam does also support windows 7

*(source https://www.statista.com/statistics/265033/proportion-of-operating-systems-used-on-the-online-gaming-platform-steam/)
(Error i got: System.NotSupportedException: Windows versions earlier than 10 are not supported)

Linux Release appears to be a Windows-only executable?

Not sure if I'm doing something wrong - I've not run into a lot of programs on Linux that are based in C# - but the Linux .ZIP doesn't seem to... work? It's been packaged as an executable in such a way that Linux doesn't know what to do with it. Any assistance would be appreciated.

Scanner does not pick up on friends list

Since the old patcher has been deprecated, I'm forced to update to this patcher that never work since the first version. I already reset steam and everything.

log:

[5/15/2022 5:47:44 PM][Info] Parsing cache...
[5/15/2022 5:47:44 PM][Info] Found 0 matches...
[5/15/2022 5:47:44 PM][Info] Scanner started
[5/15/2022 5:47:44 PM][Info] friends.css is already patched.
[5/15/2022 5:49:37 PM][Info] Resetting Steam
[5/15/2022 5:49:37 PM][Info] Shutting down Steam
[5/15/2022 5:49:39 PM][Info] Deleting c:\program files (x86)\steam\steamui\css
[5/15/2022 5:49:39 PM][Info] Deleting C:\Users\micro\AppData\Local\Steam\htmlcache\Cache
[5/15/2022 5:49:39 PM][Info] Starting Steam
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:17 PM][Info] Parsing cache...
[5/15/2022 5:50:17 PM][Info] Found 0 matches...
[5/15/2022 5:50:32 PM][Info] Parsing cache...
[5/15/2022 5:50:32 PM][Info] Found 0 matches...

this is the log when I use the old patcher (that works):

[5/15/2022 5:57:32 PM] [Info] Downloaded friends.css with etag: "D18GcwC82oVA"
[5/15/2022 5:57:33 PM] [Info] Downloaded friends.css with etag: "D18GcwC82oVA"
[5/15/2022 5:57:33 PM] [Info] Successfully downloaded friends.css files.
[5/15/2022 5:57:33 PM] [Info] Cache Watcher Started.
[5/15/2022 5:57:33 PM] [Info] Cache Watcher Stopped.
[5/15/2022 5:57:33 PM] [Info] Force scan started.
[5/15/2022 5:57:33 PM] [Info] Finding list of possible cache files...
[5/15/2022 5:57:33 PM] [Info] Found 73 possible cache files.
[5/15/2022 5:57:33 PM] [Info] Checking cache files for match...
[5/15/2022 5:57:33 PM] [Info] Successfully found matching friends.css for "D18GcwC82oVA" at C:\Users\micro\AppData\Local\Steam\htmlcache\Cache\f_000012.
[5/15/2022 5:57:33 PM] [Info] Overwriting with patched version...
[5/15/2022 5:57:33 PM] [Info] Reloading friends window...
[5/15/2022 5:57:34 PM] [Info] Done! Put your custom css in c:\program files (x86)\steam\clientui\friends.custom.css
[5/15/2022 5:57:34 PM] [Info] Close and reopen your Steam friends window to see changes.
[5/15/2022 5:57:34 PM] [Info] Cache Watcher Started.

current config:

{
  "userSettings": {
    "roaming": {
      "SFP.Properties.Settings": {
        "CacheDirectory": "C:\\Users\\micro\\AppData\\Local\\Steam\\htmlcache\\Cache",
        "CheckForUpdates": "False",
        "MinimizeToTray": "True",
        "RestartSteamOnPatch": "True",
        "ScanOnly": "False",
        "ShouldPatchFriends": "True",
        "ShouldPatchLibrary": "False",
        "ShouldPatchOnStart": "True",
        "ShouldScanFriends": "True",
        "ShouldScanLibrary": "False",
        "ShouldScanOnStart": "True",
        "ShowTrayIcon": "True",
        "StartMinimized": "True",
        "SteamDirectory": "c:\\program files (x86)\\steam",
        "SteamLaunchArgs": "-silent"
      }
    }
  }
}

Does this hard or soft patch Steam Client?

Is this in-memory patching or does it patch the files on the HDD/SSD? The latter would likely be erased any time Steam is updated. I realize the issue tracker is not the best place for such a question but I'm not entirely sure of where else to ask it.

Thanks,

Crash if files are already patched.

If the files are already patched then when it tries to patch them again it crashes entirely.

If you set it to patch on app launch this also causes it to instantly crash if the files are already patched.

SFP.log

Enable cef debugging through file

Just an fyi, if you place an empty file next to the steam executable called .cef-enable-remote-debugging it should also enable debugging. Seems to work for me on both windows with beta and steam deck

As of the newest steam update, this happens.

I tried to go back to steam's 2022 version, which I love, and it still gives the same error. Also, the css doesn't work--which was basically the entire reason I use this.

* {
   font-family: Arial !important;
}

When clicking on the friendname drop down arrow, it produces the following:

New Steam Big Picture - steamloopback.host

New Steam Big Picture

Steam is updating its Big Picture UI, this new design is entirely html & css and based on the UI the steam deck uses.

This update is no longer only in beta, but does need a launch arg to enable it.

Updated Big Picture is now available for testing. You can read more about it in this blog post. Modify your Steam client shortcut and add -gamepadui on the command-line to automatically start Steam in the new Big Picture Mode. Alternatively, pass -newbigpicture to start in Desktop mode and have access to the new Big Picture Mode at any time.

Investigation

We finally have a steamloopback.host, and so can enable our approach to skinning. This host is in Steam/steamui, the same directory the library currently uses.

It also looks like the new UI shares most of the code the existing friends/chat use.

Desktop Friends/Chat

<link href="https://community.akamai.steamstatic.com/public/shared/css/shared_global.css?v=ovy6qNJipq47&amp;l=english" rel="stylesheet" type="text/css">
<link href="https://community.akamai.steamstatic.com/public/css/webui/friends.css?v=mHhi5-MxW4Rq&amp;l=english" rel="stylesheet" type="text/css">

Desktop Library

<link href="/css/library.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css\156.css">
<link rel="stylesheet" type="text/css" href="/css\1010.css">

Big Picture - one set of imports

<link href="https://community.akamai.steamstatic.com/public/shared/css/shared_global.css?v=ovy6qNJipq47&amp;l=english" rel="stylesheet" type="text/css">
<link href="https://community.akamai.steamstatic.com/public/css/webui/friends.css?v=mHhi5-MxW4Rq&amp;l=english" rel="stylesheet" type="text/css">
<link href="/css/library.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css\156.css">
<link rel="stylesheet" type="text/css" href="/css\1010.css">
<link rel="stylesheet" type="text/css" href="/css\5742.css">

So Big Picture uses the same CSS files, plus one additional file. Presumably 5742.css contains the styles applied to the new big picture mode specific UI.


An existing Library skin works to some degree (when looking at a specific games page).

However, a friends/chat skin does not. This is primarily due to the files for the friends list needing to be in the Steam/steamui directory when theming Big Picture mode.
If the files are located in that directory they will be applied and work.

Application appears to be compiled in debug mode

There are debugging information files (*.pdb) in the program's Windows version's directory. This is usually evidence of building applications with debugging enabled, which is not recommended for production/release builds.
This isn't critical, but I just thought I'd let you know.

Enable Full TrimMode

This would give a nice file size reduction to the self contained version of the app.

However, currently SFP produces a lot of trim warnings and does not properly function with full TrimMode.

The biggest holdup is MartinKuschnik/WmiLight#11 for the Windows version as this causes the app to fully crash.

Aside from that, pages fail to load when TrimMode is set to full. I'm unsure what causes this, as when I tested the FluentAvalonia sample app it worked fine with full trimming. Perhaps it is due to SFP's use of ReactiveUI, but this needs further investigation.

SFP_UI_RXIvVpW7GD

Add Skin browser to SFP

Skin authors should be able to add their skins to some database that SFP polls, displaying all of the possible skins with a preview image.

Skins should have a name, description, an author field, and a link to the original project.

Problems that need to be solved:

  • If users are able to install skins with javascript files directly from SFP there needs to be some way to make sure that malicious code is never distributed. Maybe JS support will be disabled from skins obtained through the browser, but then this limits the usefulness of this feature.
  • How will the database be managed? I suppose it'd probably just be its own github repo where authors can submit pull requests to add their own skins to the repo.

Will this get me VAC banned?

My friend told me that modifying the Steam client could result in a vac ban or not being able to play on Secure servers...

SFP crashes on exit

As the title says it gives a pop up saying it crashes with some error code. But after clicking continue windows resumes restarting.

SFP fails to reinject when Steam updates

This issue seems to be reproducible 100% of the time, however it is hard to debug as it only seems to occur when a steam update is applied and I don't know of a way to reproduce the restart that happens on update.

The last time this happened, SFP failed to detect the launch arguments.

SFP/SFP/Models/Steam.cs

Lines 361 to 366 in b13ac09

var cmdLine = GetCommandLine();
if (!cmdLine.Any())
{
Log.Logger.Error("Arguments are empty, cannot check arguments");
return false;
}

I think either SFP tries to get the command line of the process too soon after it starts, or during this update mechanism the process opens and restarts again too quickly so by the time SFP checks the arguments the process is no longer running.

SFP sometimes injects wrong file

There's some race condition with the relative skin directory detection logic that, in rare cases, causes the injected file to be in the steamui root even if a custom skin folder is selected.

var relativeSkinDir = Steam.GetRelativeSkinDir().Replace('\\', '/');
if (!string.IsNullOrWhiteSpace(relativeSkinDir))
{
relativeSkinDir += '/';
}
var resourceType = fileRelativePath.EndsWith(".css") ? "css" : "js";
fileRelativePath = $"{relativeSkinDir}{fileRelativePath}";

This happens very rarely so it's hard to debug, and in the cases that it happens, if JS and CSS are both enabled it'll usually only be one that has the incorrect link.

Multiple errors of the same kind

[Warn] Could not delete C:\Users\user\AppData\Local\Steam\htmlcache\Cache\SFP\index which links to C:\Users\user\AppData\Local\Steam\htmlcache\Cache\index

[Error] System.UnauthorizedAccessException: Access to the path 'C:\Users\user\AppData\Local\Steam\htmlcache\Cache\SFP\index' is denied.

The error messages mention \SFP\index and \SFP\data_1 multiple times.

Crash when resetting Steam files to stock under Linux

When attempting to revert all patches made to Steam, SFP throws the following stack trace before exiting as soon as the reset button is pressed.

Unhandled exception. System.InvalidCastException: Unable to cast object of type 'Gameloop.Vdf.Linq.VValue' to type 'System.Int32'.
   at SFP.Models.Steam.get_RunningGameID() in D:\a\SFP\SFP\SFP\Models\Steam.cs:line 23
   at SFP.Models.Steam.ResetSteam() in D:\a\SFP\SFP\SFP\Models\Steam.cs:line 146
   at SFP_UI.ViewModels.MainPageViewModel.OnResetSteamCommand() in D:\a\SFP\SFP\SFP_UI\ViewModels\MainPageViewModel.cs:line 187
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0() in /_/src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs:line 33
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
   at Avalonia.X11.X11PlatformThreading.CheckSignaled() in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 164
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 244
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 65
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 120
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 209
   at SFP_UI.Program.Main(String[] args) in D:\a\SFP\SFP\SFP_UI\Program.cs:line 202023-01-07 12:05:10.2097|ERROR|SFP.Models.Log|System.InvalidCastException: Unable to cast object of type 'Gameloop.Vdf.Linq.VValue' to type 'System.Int32'.
   at SFP.Models.Steam.get_RunningGameID() in D:\a\SFP\SFP\SFP\Models\Steam.cs:line 23
   at SFP.Mod
els.Steam.ResetSteam() in D:\a\SFP\SFP\SFP\Models\Steam.cs:line 146
   at SFP_UI.ViewModels.MainPageViewModel.OnResetSteamCommand() in D:\a\SFP\SFP\SFP_UI\ViewModels\MainPageViewModel.cs:line 187
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0() in /_/src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs:line 33
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
   at Avalonia.X11.X11PlatformThreading.CheckSignaled() in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 164
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 244
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 65
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 120
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 209
   at SFP_UI.Program.Main(String[] args) in D:\a\SFP\SFP\SFP_UI\Program.cs:line 20

In case this is part of the issue, I am running SFP under Artix Linux x64. If there's anything else I should clarify let me know.

Port 8080

Good afternoon.
i apologize for my ignorance but i would like to ask you something.
the thing is that when i install SFP i get an error:
[Error] Could not fetch browser, SFP either tried to inject too early or another service is running on port 8080
just the thing is that this port is used by a server on Docker that i installed.
i would like to know if there is a possibility... i dont know how to explain. to move the SFP "server", or something like that, to not use port 8080?
thank you.

Title/Menu bars disappear when in Library view

The menu and title bars are disappearing now when in Library view. It makes navigating to other areas, like Store and Community only possible through the system tray context menu. Don't know exactly which Steam update version this began with but it was some time in January.

Untitled

JavaScript: Feature to open links with native browser

Could it be possible to add in a custom JavaScript function (I am not sure if there's already a way to do this regularly) that, instead of opening links within Steam, it'll open links directly within the native browser?

I am creating a custom script that adds niche buttons to find specific mods for the game on NexusMods, GameBanana, or any website, except that it opens those links with the built-in browser of Steam. The CEF on Steam isn't quite well equipped like most browsers are, and it especially doesn't like when a webpage requests a custom protocol or uses newer JavaScript and HTML5 features.

Launch SFP

good time.
I'm new here, I was wondering if I need to run SFP every time for the skin to work or is there a way to run Steam as before with the themes working?
thanks

New steam update removing skins

https://steamcommunity.com/games/593110/announcements/detail/3687931965598323437
Steam Client Update - June 14th
https://steamcommunity.com/app/593110/eventcomments/5514142341086067567
And the update comment thread (as usual, a mixed bag of praise and harsh criticism)

It seems like steam completely dropped support for skins, and had the gall to not even mention this in their so-called patch notes.
Does this mean the end for SFP? I hope Valve reverts some of this to give us skins back at least, but considering their track record I'm very doubtful.
It's a shame, too, I only set up SFP a week ago for a custom skin.

Add option to hide window without system tray icon

I want to Hide the program from both tray and taskbar so I have these settings. But with these settings when I minimize it keeps the taskbar icon which I don't want, and when I close the window it closes the whole program. But I wish to have it running in the background in case steam decides to update it self. I was able to achieve this on Steam Friend Patcher.

2022-05-15_07-34

Image of Taskbar
2022-05-15_07-36

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.