ahoneybun / keyboard-color-switcher

An application to change the keyboard backlight color on System76 laptops
15 stars 7 forks source link

Breathing feature #8

Open ahoneybun opened 3 years ago

ahoneybun commented 3 years ago

I love this would be a good first 1.1/1.2 feature to add to the application (KCS) since it looks like it is in the kcc_cli folder (which we do need to rename). What are your thoughts @JeffLabonte ?

JeffLabonte commented 3 years ago

I am thinking about merging what I have done here and what I have done in System76-Utilities into my repository.

I am also contemplating the idea of making the kcc_cli disappear in favour of integrating my tool into KCS. It would change nothing, except that the UI code would be exclusively in this repository and the "backend" work in my repository.

I am thinking about putting you as a contributor to my other project to review and test on hardware what we can. We will be able to QA afterwards the UI part here and integrate what has been done in the backend to the interface.

What are your thoughts?

ahoneybun commented 3 years ago

What would be the main benefit of splitting the parts into two repos? I believe a main project repo may be better then doing that but if your process works then I'm not 100% against it.

I think it really depends on how far we want to go with the project. Do we want to add more UI elements for more features then what I have in the README?

JeffLabonte commented 3 years ago

When it comes to working on applications, web-application or whatever, in businesses I have work with. We usually split the backend work and the front-end work so we don't mix both together. I could make a submodule and leave it as part of the project, but I like the fact that the CLI (backend) can have its own version and be a service to be connected to rather than a block within the application.

We could add control over starting, stopping, enabling, or disabling a backlight service. To make the breathing effect work, I have created a systemd service that would run my script as a CLI tool and run the effect on a loop.

We could add brightness control, more or less light. On the service side, we could detect changes in the brightness and keep that brightness level.

We could integrate the battery backlight mode that your keyboard backlight changes depending on your battery level, make the threshold configurable. We could make the colour configurable as well.

We could give all the information about the backlight, like current colour, current keyboard brightness, the max brightness ( mostly for debugging purposes :smile: )

JeffLabonte commented 3 years ago

I wonder if we could have the models that are 1 backlight or multiple backlights in the list of supported S76 devices. Where could we find this information :thinking:?

ahoneybun commented 3 years ago

Alright you sold me on the split of the backend and frontend. I'm not sure of a list with those models though I can ask some folks about the keyboard on models.

ahoneybun commented 3 years ago

I've sent you an invite to contributor on this project.

JeffLabonte commented 3 years ago

@ahoneybun I did the same for you.

ahoneybun commented 3 years ago

So for the split it sounds like the features will be in the backend repo and the buttons will be on the frontend repo correct? Should we rename the project(s)?

JeffLabonte commented 3 years ago

I don't think we need to rename them. I will add information in my readme to say that there is a UI to work with the CLI. It will leave users with the possibility of using the CLI or the UI. IMO It doesn't matter that our names don't match at all.

I might add a git submodule here to make changes to the back-end code when you need, for debugging purposes.

Let me know what you think. 😄

ahoneybun commented 3 years ago

That sounds like a plan to me!