dominiksalvet / asus-fan-control

Fan control for ASUS devices running Linux
MIT License
317 stars 37 forks source link

GUI #37

Closed Greifent closed 4 years ago

Greifent commented 4 years ago

I was thinking of adding a GUI, to submit temperatures, etc, to help users who aren't familiar with the terminal. (see this post)

dominiksalvet commented 4 years ago

Great! It would be awesome if you could start working on it. :rocket:

But, just like with afc-scout, I cannot incorporate it directly into asus-fan-control. :disappointed: Asus-fan-control is simple and CLI is probably the simplest program interface. Furthermore, asus-fan-control should be one-shot install. You install it and never ever think about it anymore - it just does its work. :cyclone:

However, if you still want to bring GUI to the table, I have an idea. :bulb: Create it as your repository and I would suggest calling it afc-gui to keep the asus-fan-control naming consistent. That way, you can focus only on GUI in your repository and the asus-fan-control core functionality will be separated. I don't have to deal with GUI-related issues and you don't have to deal with core-related issues. This way you will state asus-fan-control as a dependency for afc-gui and you are good to go. I would say that asus-fan-control has a pretty stable API nowadays (it should after #20), so that should not be a problem.

If you do not have idea about afc-gui distribution, feel free to take a look at GitPack. You can start with it but you will need to compile your program on the end user side, which is not so convenient for both you and end users. And it is going to be remastered (not so soon, though)... :smile: So at least you would have something to start with. :thinking:

Next thing I would like to mention is the afc GitHub topic. It would be great to add all asus-fan-control related projects to that topic. I will add my projects soon and it would be great to see afc-gui here as well. :tada:

Once you will have afc-gui in a decent state, we can mention it somewhere in readme.md or in our Wiki. Maybe we can mention it together with afc-scout to create a collection of asus-fan-control related projects. Obviously, afc-gui would be more visible as I expect it will be more valuable than afc-scout. :bowing_man:

So what do you think? :thinking: :thought_balloon:

Greifent commented 4 years ago

OK, I'll try to start this weekend, I can't promise you anything, this is basically my first project and I want to learn something new.

dominiksalvet commented 4 years ago

Great! Thank you so much for any effort! :heart: I hope it will at least fulfill your wishes about getting knowledge. :rocket: :clap:

I will leave this issue opened until you feel that afc-gui is usable and quite stable. :smile: Until then, I am here to answer your questions mostly about GitPack API. Afc-gui is your thing and I do not want to affect it significantly. For almost any possible decision, I am for a simpler one. In case you still feel that you have to ask something specifically, feel free to do so. :ear:

This is also probably the best place for others to talk about asus-fan-control GUI and related matter - at least until afc-gui settles down a bit.


BTW, do you know which technologies you will use/try to use for the GUI? :thinking:

Greifent commented 4 years ago

Yes, I'm currently working on Python 3.7 with Gtk3; I'll send you update as soon as I complete the basic. I'll see more about Gitpack later on

Greifent commented 4 years ago

BasicGUI

This is a basic window, in the following days I will add the option to set temperatures (custom or default). Let me know what you think!

Greifent commented 4 years ago

I have uploaded the first version here

dominiksalvet commented 4 years ago

Man, it is just awesome how quickly you are moving forward with it... :astonished: I would never believe that a simple personal utility, called ux430ua-fan-speed back then, can grow into something like today's asus-fan-control with a possibility of having a GUI! :tada:

BTW, since you are doing it in Python, GitPack is a great fit as it is interpreted language and GitPack can just copy files, which is and will be its main goal even after the upcoming changes. Furthermore, all asus-fan-control software will be under one roof. :star:


About the GUI application itself - I was worrying a bit about the root permissions integration but now that I have briefly examined the source code, it is quite straightforward and very elegant! :smile: For some reason I thought that it would be problematic.

I have not tried afc-gui.py on my physical machine to be honest. I have tried only the testing.py to have idea how it would look like. I have tried afc-gui.py (after some little asus-fan-control modification) on a virtual machine. Why? Since the afc-gui is in an early development stage and it is running with root permissions, I still worry a bit to run it on my device. But I will definitely try it once you can say it is stable. :tada: :balance_scale:

About the application design - it is sufficient for what it does. :art: But it would be great to improve design a bit. As the Holy Grail of the design of asus-fan-control GUI (and probably any GTK application in general) I would consider Gnome HID. GNOME applications follow it, so you have a lot of places to get inspired in case you decide to go this way. That GNOME window top bar would so freaking neat! :smile:

BTW, if you decide to go this way, you can center all content in GUI and hide asus-fan-control information to a dialog opened from the window top bar icon and simplify everything and... I am just thinking loud... :thought_balloon:

But it is up to you at the end of the day. Nevertheless, I am certainly for improving the design a bit.

What do you think? :thinking:


Still, so far good job! :clap: :clap: :rocket:

Greifent commented 4 years ago

I'm glad that you liked it, it is pretty stable, I'm testing directly on my PC and I have zero problems. The design will improve in the future, as for the functions. I'm trying to do the top menu. For the root permission: I had already used the subprocess function on a school project, so I knew how it worked and was easy to use.

Greifent commented 4 years ago

I have added the support to GitPack for the local installation

Greifent commented 4 years ago

May I add the reference to the wiki?

dominiksalvet commented 4 years ago

Of course but it would be good to add afc-scout as well. It would be great to create a new page for that if possible.

Greifent commented 4 years ago

What do you mean: add afc-scout in the GUI?

dominiksalvet commented 4 years ago

What do you mean: add afc-scout in the GUI?

I meant to add it to wiki to a common wiki page with afc-gui. Something like asus-fan-control related software.

Greifent commented 4 years ago

I've added both of them, fell free to modify the position in the wiki, they are under the Full Usage section

dominiksalvet commented 4 years ago

I've added both of them, fell free to modify the position in the wiki, they are under the Full Usage section

Well done, their position and order are correct! :clap: :+1: You even didn't require to create a new wiki page! :rocket:

Greifent commented 4 years ago

Thanks

dominiksalvet commented 4 years ago

I guess that this issue has fulfilled its purpose and can be closed. afc-gui seems to be in good shape and all asus-fan-control's core functionality has been implemented. From now on it should be about improvements only. :rocket:

And as you may know -- the difference between good and great is in details. :gem:

@Greifent I still cannot believe that you have dealt with this so quickly! Good job :clap: and thank you so much for extending asus-fan-control with a GUI!! :heart: :+1:

Feel free to continue in the discussion even if closed and should you have any questions in the future, feel free to ask! :octocat:

dominiksalvet commented 4 years ago

I have finally tried afc-gui on my hardware and it worked well! :+1: I have also created a new subsection GUI in readme.md file to make it more reachable because it may be useful for some people! :rocket:

Greifent commented 4 years ago

Glad to hear that, I'll take a look at the update readme.md