Hi, fluke here!
So in the last month I think a lot was achieved. First I did a very large refactor of code in asusctl to remove a dependency on libdbus. This involved switching parts of a crate API to use the excellent wholly rustlang written zbus. A very nice benefit of this is that crate deps are down by a dozen for faster compile times.
While I was doing that I took the chance to refactor even further and split out many parts of the daemon project in to sub-crates specific to their purpose - for example a "types" crate which contains helper types and structures for working with profiles, keyboard RGB, graphics switching and more. I also split out the dbus client stuff to make it easier to use these crates in other projects without pulling in the whole daemon part.
Other changes in that code are:
- fix support for the 0x1854 keyboard which is in the GL553VE
- fix the multizone LED modes available on some models
- fix misc bugs in code and make some things clearer
- fix some bad logic in profile handling
- add a controller used for setting some ROG bios functions like boot-sound and nvidia-only mode
- try to gracefully handle config file layout changes between versions
Changes coming up are:
- improved gfx mode switching - intending to make this rebootless
The nvidia-only mode mentioned above is available only on some G-Sync capable models. It allows the laptop to switch completely to Nvidia only graphics using the bios muxer - the OS will see the laptop as containing only the Nvidia card.
I've also been working on some of the linux kernel code again. This was required for both the old GL553VE above, and for the newer 2021 G14 and G15 laptops. The 2021 machines have a slightly revised keyboard with a new product ID of 0x19b6 and thankfully the existing code I wrote to initialise and enable the N-Key keyboards works with this version. Additional improvements were made to the ASUS WMI code in kernel for the G14 and G15 laptops.
All HID patches above are submitted upstream, but not the WMI patch as I'm awaiting test results.
Contributions from others were also pulled in for a few things!
- Asere: contributed udev rule changes in asusctl to help start or restart asusd if dependent hardware changes
- Tim: Contributed dkms module build rules to hid-asus-rog for better compatibility
Hope I got everyone there - let me know if I missed someone.
Lastly, I've begun soliciting donations to fund a G14 laptop with an AniMe display so that I can begin fixing some of the issues that still remain with it. You will notice that there is now a donation button using paypal in the sidebar. You may also support me on patreon if you prefer - and I will be making the occasional Patreon only blog post (time limited) to keep monthly supporters updated.