Rem0o / FanControl.Releases

This is the release repository for Fan Control, a highly customizable fan controlling software for Windows.
Other
13.78k stars 437 forks source link

Linux Version? :pray: #535

Open vexersa opened 2 years ago

vexersa commented 2 years ago

I would love to know if there are any plans to make a Linux compatible version of FanControl?

Rem0o commented 2 years ago

Nop, it's an old shcool .NET 4.7 app.

vexersa commented 2 years ago

Arg but it's so good.

On Tue, 15 Mar 2022 at 16:21, Rem0o @.***> wrote:

Nop, it's an old shcool .NET 4.7 app.

— Reply to this email directly, view it on GitHub https://github.com/Rem0o/FanControl.Releases/issues/535#issuecomment-1068044485, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB47W45L3ICB3CF6AUT6RLLVACMGBANCNFSM5QXR67KQ . You are receiving this because you authored the thread.Message ID: @.***>

Rem0o commented 2 years ago

Sorry. If I ever modernize its stack there would be a possibility for Linux, but that would be a huge task still.

MostHated commented 2 years ago

Just throwing it out there that I +1 a Linux version.

zeus86 commented 2 years ago

would love to see a linux version, too. it would be really awesome this project to become the platform-independent "OpenRGB" for just for fans.

8836290 commented 2 years ago

+1 for Linux please.

DradeAW commented 2 years ago

+1 for Linux !!

ghost commented 2 years ago

+1 for Linux

dongryphon commented 2 years ago

I would pay $ for you to get a linux version if that would help... maybe other linux folks would also? Being a programmer myself, I could help with the UI ... not familiar with the hardware stuff at all though

vhouriet commented 2 years ago

I would also be willing to contribute financially to this app if it would help create a potential Linux version

Ryder17z commented 2 years ago

+1 for Linux

Rem0o commented 2 years ago

What backend could be used on Linux?

Does https://github.com/LibreHardwareMonitor/LibreHardwareMonitor picks up fan controls ?

zeus86 commented 2 years ago

What backend could be used on Linux?

pretty sure best bet would be lm-sensors, which already does most of the heavy lifting...

Rem0o commented 2 years ago

One thing that bothers me is .NET 6. I like 4.7/4.8 apps because that framework is built-in into windows and people don't have to download it and install it. Whereas .NET Core++ apps either you bundle the whole damn framework with your app, for a whopping 100+ mb app, or you require the user to download the framework. Both options are awful imo.

MostHated commented 2 years ago

One thing that bothers me is .NET 6. I like 4.7/4.8 apps because that framework is built-in into windows and people don't have to download it and install it. Whereas .NET Core++ apps either you bundle the whole damn framework with your app, for a whopping 100+ mb app, or you require the user to download the framework. Both options are awful imo.

Maybe it's just me, but I would gladly accept a 100mb app size if it meant I finally got a much-needed and sought-after tool. I would also venture a guess that many folks who are using Linux and want/need a tool like this would have absolutely no issue installing .Net in order to have it, or already have it installed.

mtabbakh commented 2 years ago

A Linux version, please!

nick987 commented 2 years ago

I would definitely be keen to financially contribute to a project like this if a linux version was created!

mail2onur commented 2 years ago

A Linux GUI version built on top of lm-sensors would be awesome

dongryphon commented 2 years ago

there is a fancontrol package for accessing the fans but I have not had tons of success configuring it ... hence my interest :) I would imagine one could make a daemon process that the GUI talks to so the policies it defines could be enforced w/o the (large) GUI running. Not sure if you are thinking to port the .NET app or move it to a new stack so just throwing ideas out there

scchow commented 2 years ago

+1 would definitely be willing to contribute code /test to help work towards a Linux version. Current solutions available on Linux are so much more limited and clunky compared to what you have here.

Rem0o commented 2 years ago

Since I guess lm-sensors is a process, how would it look if we query it for let say 30 sensors every second? Will each call spawn a new process?

dongryphon commented 2 years ago

The README for lm-sensors https://github.com/lm-sensors/lm-sensors mentions the libsensors library for writing more intricate programs

Inshal240 commented 2 years ago

Donated for potential linux support. Hope that helps!

foursixnine commented 2 years ago

@Rem0o Hey! Wanna work together trying to see if it works with Mono framework on linux? I guess that by the recent exposure from Jayz you might get a considerable amount of requests, and I'm sure a lot of us can help :)

Dark3clipse commented 2 years ago

I came here from JayZ only to find out it doesn't support linux... I really hope there will be a linux version in the future

Rem0o commented 2 years ago

@SophiaHadash It would be basically a completely different software. Software that plays with hardware like that is really OS specific. I ain't a linux user myself, so not much incentive to work on such a new project.

foursixnine commented 2 years ago

Hey @Rem0o See my comment above, perhaps there's something that can be done? (Specially that LibreHardwareMonitor seems to work on Linux with mono too... but I'm not sure how your software works in windows :)

cc @scherenhaenden

Rem0o commented 2 years ago

Did some preliminary testing for fun:

1) LHM does have a basic lm-sensors readout, but no fan control. However, with a bit of code, managed to get manual fan control for all detected PWM in ubuntu. Surprisingly easy to do so. Must be root user though. 2) FanControl is a WPF app, and WPF works in dotnet 6, but on windows only. Which means, would have to create a whole new UI project with an other UI tech stack. That's a whole new project by itself. Also, AFAIK, there is no mature dotnet GUI framework on Linux right now worth investing time in.

TLDR: FanControl isn't directly portable to Linux. Most of the logic could, but the app structure, UI and everything else would need to be started over from scratch.

mail2onur commented 2 years ago

TLDR: FanControl isn't directly portable to Linux. Most of the logic could, but the app structure, UI and everything else would need to be started over from scratch.

Yes. I wished that you would have created Fancontrol on a cross platform toolkit when i first saw the application. That was the first thing came to my mind when i saw how greatly useful the application

CZEMacLeod commented 2 years ago
  1. LHM does have a basic lm-sensors readout, but no fan control. However, with a bit of code, managed to get manual fan control for all detected PWM in ubuntu. Surprisingly easy to do so. Must be root user though.
  2. FanControl is a WPF app, and WPF works in dotnet 6, but on windows only. Which means, would have to create a whole new UI project with an other UI tech stack. That's a whole new project by itself. Also, AFAIK, there is no mature dotnet GUI framework on Linux right now worth investing time in.

TLDR: FanControl isn't directly portable to Linux. Most of the logic could, but the app structure, UI and everything else would need to be started over from scratch.

I have to admit, I would quite like to see a version of this that runs as a service in the background on windows and linux, with a config/monitor UI separate. The UI could either be WPF on windows, or perhaps rewritten as blazor so it could be web or app based. I think that would make this already excellent tool just that little bit better. It would also make it (more) suitable for headless devices, servers and such too, which would also be great!

vexersa commented 2 years ago
  1. LHM does have a basic lm-sensors readout, but no fan control. However, with a bit of code, managed to get manual fan control for all detected PWM in ubuntu. Surprisingly easy to do so. Must be root user though.
  2. FanControl is a WPF app, and WPF works in dotnet 6, but on windows only. Which means, would have to create a whole new UI project with an other UI tech stack. That's a whole new project by itself. Also, AFAIK, there is no mature dotnet GUI framework on Linux right now worth investing time in.

TLDR: FanControl isn't directly portable to Linux. Most of the logic could, but the app structure, UI and everything else would need to be started over from scratch.

I have to admit, I would quite like to see a version of this that runs as a service in the background on windows and linux, with a config/monitor UI separate. The UI could either be WPF on windows, or perhaps rewritten as blazor so it could be web or app based. I think that would make this already excellent tool just that little bit better. It would also make it (more) suitable for headless devices, servers and such too, which would also be great!

This is an awesome idea!

zeus86 commented 2 years ago

I have to admit, I would quite like to see a version of this that runs as a service in the background on windows and linux, with a config/monitor UI separate. The UI could either be WPF on windows, or perhaps rewritten as blazor so it could be web or app based. I think that would make this already excellent tool just that little bit better. It would also make it (more) suitable for headless devices, servers and such too, which would also be great!

...this would also enable native frontends for different flavors (gtk/qt5) especially including an ncurses-interface, which would enable users to use the backend on the shell and thus not limiting the functionality to Instances with gut but also servers and headless-machines and such.

Quatshcop commented 2 years ago

I guess a good UI Framework would be Avalonia (avaloniaui.net). It's essentially WPF but Cross Platform. The lack of this app on linux is one of the major blockers for me to completely move over. xD

Thank you so much for your work!

Rem0o commented 2 years ago

I got a long term goal to make "engine" of fancontrol stand-alone and dotnet6 compatible, to be able to then create any front-end/service I want out of it.

I'm already ready to port it to dotnet6, however, I really hate the fact that the user experience for dotnet6 app on windows is bad. With 4.X app it's easy, Windows has it installed by default. With .NET6, either I have to ship the framework with the app (portable), for a whooping 180 mb + app, or I rely on every user to download the framework and install the framework.

mail2onur commented 2 years ago

Ohh please don't do that. No one wants to download 200 mb file and install yet another dot.net framework. Could you please skip dot.net all together if/when you overhaul your app engine? Imo dot.net is even worse than Java based apps

Rem0o commented 2 years ago

@mail2onur Well, it does uses .NET, 4.8 right now to be exact. I'm based on LHM, so I can't escape .NET. But 4.X is legacy at this point, and will have to be phased out at some point.

bartimaeusnek commented 2 years ago

With .NET6, either I have to ship the framework with the app (portable), for a whooping 180 mb + app, or I rely on every user to download the framework and install the framework.

From .NET Core 1 onwards, the app itself will ask the user to install the framework by providing a download link in a window that opens itself. It should be no problem for Users to interact with it and install the framework.

Rem0o commented 2 years ago

@bartimaeusnek yup saw that, but it's not a direct download link, you still have to choose like x86, x64 and so on, and I can guarantee that at least 25% of users will do it wrong.

Ryder17z commented 2 years ago

Related, but it only lists up to version 4.8 https://docs.microsoft.com/en-us/dotnet/framework/deployment/deployment-guide-for-developers

You should be able to construct the same for newer versions but that seems to lack documentation so i don't know if it's still doable.

SourTrigger commented 2 years ago

@bartimaeusnek yup saw that, but it's not a direct download link, you still have to choose like x86, x64 and so on, and I can guarantee that at least 25% of users will do it wrong.

I genuinely don't believe that this is true. I would wager that those people couldn't even figure out how to download a release off of Github either, nor would they likely be inclined to even care about fan curves or temperatures beyond stock functionality. If I were to draw a Venn diagram, I bet the circles of people that could easily install the latest .NET Core Runtime from Microsoft's website and download a release of FanControl from GitHub and run it (or even figure out how to configure it) would overlap by 99%.

I think you're fine excluding it from the app and having users download it directly from Microsoft's site. This is enthusiast level software and should cater to that crowd, imho.

ghost commented 1 year ago

+1 for Linux. Even a headless "engine" would go a long way and I'd be willing to pay for linux support as well.

jrentsch commented 1 year ago

Another +1 for Linux. Love this on Windows, Linux would be awesome.

icavalheiro commented 1 year ago

@Rem0o have you considered the upcoming .net version's native compilation? I know it's precisely build for this kind of scenario, smaller file sizes, instant start ups, ....

I would also like to contribute to the development iof you ever decide to open up the source code.

Rem0o commented 1 year ago

@icavalheiro I have checked it out, but it has so many limitations, that porting an app that has any user interface to native compilation is basically impossible.

https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities

wiiznokes commented 1 year ago

Hi, I made an open source alternative here for those interested. Works also on Linux.

san616mofo commented 1 year ago

@Rem0o, what about Flutter (as a graphical interface)? I have a system with 13 fans (including two liquid cooling ones), and I would like to have full control over them on Linux. Looking forward to this version.

nijahplays commented 1 year ago

+1 for Linux :)

DaRacci commented 1 year ago

+1 for Linux

don-dolarson commented 9 months ago

+1 for Linux here too

funny-family commented 6 months ago

+1 for Linux