Skip to content
This repository has been archived by the owner on Jul 1, 2024. It is now read-only.

Improve Windows installer with proper System install location, Current User install method, and better UI #930

Merged
merged 8 commits into from
Sep 17, 2022

Conversation

Xaymar
Copy link
Owner

@Xaymar Xaymar commented Sep 17, 2022

Explain the Pull Request

This is a combination of multiple related changes to make one thing better:

  • The directory page is no longer conditionally hidden. For some reason people keep moving the obs-studio directory instead of just installing it into the correct location in the first place. What can you do, other than to tell people to stop doing it... 🤷‍♂️
  • We now check for the correct mutexes, instead of some weird names.
  • The portable installation now has a proper uninstaller extracted to it.
  • System wide installations now follow the standard introduced in OBS Studio v0.15.0, which allows loading plugins from %ProgramData%\obs-studio\plugins\. This change appears to have gone unnoticed entirely, as even @obsproject's own obs-plugintemplate does not use this installation location. Hopefully this change will also silence the random people claiming StreamFX modifies OBS Studio - it never has, and never will.
  • Thanks to a PR by abcdw it is finally possible to support user installations in addition to system installations. We currently force it to load from %LocalAppData%\Programs\obs-studio\plugins which may cause some issues with other plugins already using these environment variables - but we can't support every use case anyway. Plus our location adheres to Microsoft's standards of where user software should go to anyway.

Completion Checklist

  • I have added myself to the Copyright and License headers and files.
  • I will maintain this code in the future and have added myself to CODEOWNERS.
  • I have tested this change on the following platforms:
    • MacOS 10.15
    • MacOS 11
    • MacOS 12
    • Ubuntu 20.04
    • Ubuntu 22.04
    • Windows 10
    • Windows 11

…gramData

With OBS Studio 0.15.0 came a better location for plugins to install to, which solves many of the current issues. While this location still requires Administrator rights to write to, it is a much safer location than writing directly into the OBS Studio installation directory.
Thanks to the PR by @abcdw (obsproject/obs-studio#4067) we can support 'local user' installations. These will allow end users to install StreamFX without requiring Administrator rights, or learning how to use OBS Studio in portable mode.
@Xaymar Xaymar marked this pull request as ready for review September 17, 2022 09:18
@Xaymar Xaymar merged commit 257549a into master Sep 17, 2022
@Xaymar Xaymar deleted the patch/bundle/windows branch September 17, 2022 09:20
@Copy-link
Copy link

Copy-link commented Sep 17, 2022

@Xaymar My previous method for installing with portable mode was /VERYSILENT /CURRENTUSER /DIR="<dir here>" but now it seems this no longer extracts the proper files into the "obs-plugins" directory, at the very least.

Additionally, I really hate that the uninstaller is now mandatory. I'm not a fan of something portable touching the registry at all. Is there a way to prevent it from being created?

@Xaymar
Copy link
Owner Author

Xaymar commented Sep 17, 2022

Additionally, I really hate that the uninstaller is now mandatory. I'm not a fan of something portable touching the registry at all

The portable uninstaller doesn't touch the registry.

@Copy-link
Copy link

Additionally, I really hate that the uninstaller is now mandatory. I'm not a fan of something portable touching the registry at all

The portable uninstaller doesn't touch the registry.

An uninstaller entry is added into the Apps section of my Windows 10 settings, that has to use the registry.

@Xaymar
Copy link
Owner Author

Xaymar commented Sep 17, 2022

That is the "Current User" mode, the Portable installation has "CreateUninstallRegKey=not IsPortableMode()" preventing it from creating registry keys, which did work in testing. There shouldn't be a need for portable installations anyway - both the new methods are far preferred ways to keep StreamFX around.

@Copy-link
Copy link

That is the "Current User" mode, the Portable installation has "CreateUninstallRegKey=not IsPortableMode()" preventing it from creating registry keys, which did work in testing. There shouldn't be a need for portable installations anyway - both the new methods are far preferred ways to keep StreamFX around.

So what parameter do I use for portable mode using the installer in CLI mode now?

@Xaymar
Copy link
Owner Author

Xaymar commented Sep 17, 2022

Cli mode is unsupported, and has never been supported. You can write a PR to make it work again, or start using the GUI.

@Copy-link
Copy link

Copy-link commented Sep 17, 2022

Cli mode is unsupported, and has never been supported. You can write a PR to make it work again, or start using the GUI.

Well shit.

EDIT: Also, disregard the comment that was below I just deleted, I was thinking of another project.

@Xaymar
Copy link
Owner Author

Xaymar commented Sep 19, 2022

Well shit

According to Stackoverflow it is trivial to support this with an ExpandConstant call. Not sure how true the statement is, but I'll look into it anyway.

@Copy-link
Copy link

Well shit

According to Stackoverflow it is trivial to support this with an ExpandConstant call. Not sure how true the statement is, but I'll look into it anyway.

Appreciated!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants