Open L144563 opened 3 months ago
yes please, I need this to continue working without needing admin privileges
Refer to #669. Basically, this is not a possibility without losing at least some functionality, since GWM V3 not only is a signed application and must be installed globally, but it also depends on Zebar, which may or may not require global installation as well to maintain functionality. You can either compile it and see where that gets you, or stick with V2 for the moment.
Refer to #669. Basically, this is not a possibility without losing at least some functionality, since GWM V3 not only is a signed application and must be installed globally, but it also depends on Zebar, which may or may not require global installation as well to maintain functionality. You can either compile it and see where that gets you, or stick with V2 for the moment.
Don't see why any of those in particular would require global installation and/or elevation.
That is actually part of the requirements for full management of windows, including Admin-based windows: it must be a signed application, and it must be installed to Program Files. Lars went over it a bit in #dev-chat on the Discord server a while back. Basically, it's Microsoft's BS that's the reason. As to the Zebar part, as mentioned, that's speculation, given how it's a separate program and communicates to a signed app, but it's much less likely that Zebar needs a global install.
Don't get me wrong, I wish we could have a portable/custom installer too, but the path taken to manage all windows for sure with no real hiccups requires those two attributes. Any workarounds could be appreciated.
Is there any chance for a variant that has less functionality but is still portable? I don't know how much of the underlying architecture that would change...However, I am curious because the admin install requirement makes this a 100% no-go for my work/corporate computer (ultimately I would rather have a limited tiling WM than none) when working 8-10 hours a day. :(
Also looking for a portable option. I'm perfectly fine with not having elevated windows managed by GlazeWM.
I'd be fine with a reduced functionality version.
As some background/insight portable is a no-go for me as the only time I even use Windows is when I'm forced to for contract work and it's usually inside a heavily locked-down VDI with no admin privileges.
It must be a solvable problem since AHK/bug.n manage to distribute a portable tiling WM with similar functionality. Plus I also use portable versions of:
and many others
I think simply asking the user if he wants to install a self-elevating version in program files or if he wants to install in a user location with no admin requirements, during installation, is the best option.
You need to make the installer not require elevation by default for this, and only elevate if the admin version has been selected. This is doable
On Tue, 13 Aug 2024, 19:19 CEUK, @.***> wrote:
I'd be fine with a reduced functionality version.
As some background/insight portable is a no-go for me as the only time I even use Windows is when I'm forced to for contract work and it's usually inside a heavily locked-down VDI with no admin privileges.
It must be a solvable problem since AHK/bug.n manage to distribute a portable tiling WM with similar functionality. Plus I also use portable versions of:
- Git
- Msys2
- Windows Terminal
- VS Code
- (Neo)Vim
- FlowLauncher
and many others
— Reply to this email directly, view it on GitHub https://github.com/glzr-io/glazewm/issues/656#issuecomment-2286853722, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEH4B5IIM7YRKCP45R7GO63ZRJE4XAVCNFSM6AAAAABMD4QA2KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBWHA2TGNZSGI . You are receiving this because you commented.Message ID: @.***>
Yeah as @ParasiteDelta mentioned, we switched to be a global install for the sake of enabling uiAccess
which is a special privilege that can only be enabled if installed to C:\Program Files\**
.
How uiAccess
affects the WM:
We also separated out the watcher into its own executable (in v2 we had a hacky impl where the executable launches itself again with a flag to spawn a watcher process).
It's possible to have a portable version but with the caveat of no watcher and no uiAccess
. It'll be a bit of a pain dealing with the fragmentation and different behaviors depending on how it's installed but it's understandable that some have a need for a portable version
If we add a separate release asset on the GH release, it's hard to make it clear that the behavior is different on portable vs. normal installs. IMO the ideal would be something like what Rainmeter does:
If portable install is enabled, then show a destination folder screen:
If we add a separate release asset on the GH release, it's hard to make it clear that the behavior is different on portable vs. normal installs. IMO the ideal would be something like what Rainmeter does:
Looks like Glaze uses Wix for the installer bundling. Wix natively supports installation scope selection with InstallScopeDlg
. It's not super well documented, as is tradition with most of Wix v4/v5, but I used the following fragments for the entire installer on an app I recently developed to do this.
MainUI.wxs:
<Wix xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui"
xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<Property Id="WixAppFolder" Value="WixPerUserFolder"/>
<Property Id="ALLUSERS" Value="2"/>
<Property Id="Privileged" Value="0"/>
<Property Id="MSIINSTALLPERUSER" Value="1"/>
<UI Id="MainUI">
<ui:WixUI Id="WixUI_Advanced"/>
<UIRef Id="WixUI_ErrorProgressText"/>
<Publish Dialog="InstallScopeDlg"
Control="Next"
Property="MSIINSTALLPERUSER"
Value="1"
Order="3"
Condition='WixAppFolder = "WixPerUserFolder"'/>
<Publish Dialog="InstallScopeDlg"
Control="Next"
Property="MSIINSTALLPERUSER"
Value="{}"
Order="2"
Condition='WixAppFolder = "WixPerMachineFolder"'/>
<Publish Dialog="InstallScopeDlg"
Control="Next"
Event="DoAction"
Value="WixSetDefaultPerMachineFolder"
Order="3"
Condition='WixAppFolder = "WixPerMachineFolder"'/>
<Publish Dialog="InstallScopeDlg"
Control="Next"
Event="DoAction"
Value="WixSetDefaultPerUserFolder"
Order="3"
Condition='WixAppFolder = "WixPerUserFolder"'/>
</UI>
</Fragment>
</Wix>
Folders.wxs:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<StandardDirectory Id="ProgramFiles6432Folder">
<Directory Id="INSTALLFOLDER"
Name="!(bind.Property.ProductName)"/>
</StandardDirectory>
<!-- Pretty sure the GUID seed can be any valid GUID as long as it's different than the INSTALLFOLDER GUID-->
<Directory Id="APPLICATIONFOLDER"
Name="!(bind.Property.ProductName)"
ComponentGuidGenerationSeed="GUID-SEED-HERE"/>
</Fragment>
</Wix>
The new Rust update does not have a portable .exe file like the previous version. This makes it impossible to use the app for people who don't have admin priviliges on their machines (f. e. because they have been forced to use Windows by their employer 😅). Also the new Zebar should either be included in that .exe or have its own portable file. If making a standalone .exe is not longer possible for some reason, consider making an option to install GlazeWM in the user appdata directory without the need for admin rights.