TamtamHero / fw-fanctrl

A simple systemd service to better control Framework Laptop's fan(s)
BSD 3-Clause "New" or "Revised" License
178 stars 33 forks source link

Windows support #57

Open leopoldhub opened 1 month ago

leopoldhub commented 1 month ago

At this stage, we have a working installer/uninstaller and the service running as expected 🎉

The only blocking parts are the sockets, so we cannot interact with the script yet.

Also, I now understand why nobody wants to port anything to windows... every single one of their provided tools sucks...

The install script can certainly be improved in many ways, but I will stop here for now and focus on the socket part.

If you have any questions or comments, please let me know 👍

leopoldhub commented 1 month ago

Also an important part

The crosec driver being unsigned and the secure boot having to be disabled, causes windows to ask for the bitlocker key on boot if it is enabled. (see https://github.com/DHowett/FrameworkWindowsUtils/releases for more details) This can lock inexperienced users out of their computer if done incorrectly.

To mitigate this, I have added an acknowledgement part with a clear red warning.

I don't know if this is the right way to do things, so I would like to know your thoughts.

TamtamHero commented 1 month ago

Ahem... LGTM ? You're kind of on your own for Windows related stuff... not only do I lack a Windows install, but I also lack knowledge about how things are supposed to be there :grimacing: I've been Linuxing ever since I got into software engineering, sorry :grin: I think you should go on with it. People will certainly come and open an issue if there's something to improve.

I don't know if this is the right way to do things, so I would like to know your thoughts.

That's the way our beloved @DHowett does, and since the dude works at M$ I guess that's the way :sparkles:

leopoldhub commented 3 weeks ago

Hi @TamtamHero,

I have found some time and motivation to continue this and hope to finish by the end of next week.

However, I have a question, should we:

  1. Merge the Windows related stuff (install script, socket controller, services...) into the main branch? This would be easier for us to maintain, but would add a lot of unnecessary complexity and files that are not relevant to users of each OS (Windows stuff in Linux and vice versa).
  2. Create a separate branch, like we do with packaging solutions like NixOs (e.g. /windows, /packaging/windows...) and get rid of linux stuffs in it? This would make things much cleaner, but maintaining a new separate branch and keeping it up to date can be time consuming in the long run.
  3. Something else?

What do you think? Which one do you think we should go for?

Have a nice day.

leopoldhub commented 2 weeks ago

Hi @TamtamHero,

After much thought, I have come to the conclusion that we should go with a separate branch and exclude Unix specific scripts, services and Socket Controllers.

Do you share this point of view?

I am currently working on the documentation and it should be ready for merging this weekend.

Have a great day.

leopoldhub commented 1 week ago

Up to date and (hopefully) ready to merge.

I will wait for a week and test it thoroughly, and if all is well and no one objects, I will push it to the packaging/windows branch.

Have a nice day.