glzr-io / glazewm

GlazeWM is a tiling window manager for Windows inspired by i3wm.
GNU General Public License v3.0
4.89k stars 143 forks source link

[Feature Request] Add portable .exe back #656

Open L144563 opened 1 month ago

L144563 commented 1 month ago

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.

zadirion commented 1 month ago

yes please, I need this to continue working without needing admin privileges

ParasiteDelta commented 1 month ago

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.

zadirion commented 1 month ago

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.

ParasiteDelta commented 1 month ago

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.

akthe-at commented 1 month ago

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. :(

alimbada commented 1 month ago

Also looking for a portable option. I'm perfectly fine with not having elevated windows managed by GlazeWM.

ceuk commented 1 month ago

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

zadirion commented 4 weeks ago

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: @.***>

lars-berger commented 4 weeks ago

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

lars-berger commented 3 weeks ago

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: image

If portable install is enabled, then show a destination folder screen: image