From 22605e57cc8ee359d265517c37928de2b958eec1 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 21 Jul 2022 14:56:30 +1200 Subject: [PATCH] Properly set full defaults for LED power --- daemon/src/ctrl_aura/config.rs | 39 ++++++++++++++++++++++++++++-- daemon/src/ctrl_aura/controller.rs | 2 +- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/daemon/src/ctrl_aura/config.rs b/daemon/src/ctrl_aura/config.rs index 2ae6feda..6f736773 100644 --- a/daemon/src/ctrl_aura/config.rs +++ b/daemon/src/ctrl_aura/config.rs @@ -1,4 +1,4 @@ -use crate::laptops::LaptopLedData; +use crate::laptops::{LaptopLedData, ASUS_KEYBOARD_DEVICES}; use log::{error, warn}; use rog_aura::usb::{AuraDev1866, AuraDev19b6, AuraPowerDev}; use rog_aura::{AuraEffect, AuraModeNum, AuraZone, Direction, LedBrightness, Speed, GRADIENT}; @@ -7,6 +7,8 @@ use std::collections::{BTreeMap, HashSet}; use std::fs::{File, OpenOptions}; use std::io::{Read, Write}; +use super::controller::CtrlKbdLed; + pub static AURA_CONFIG_PATH: &str = "/etc/asusd/aura.conf"; /// Enable/disable LED control in various states such as @@ -81,13 +83,46 @@ pub struct AuraConfig { impl Default for AuraConfig { fn default() -> Self { + let mut prod_id = String::new(); + for prod in ASUS_KEYBOARD_DEVICES.iter() { + if let Ok(_) = CtrlKbdLed::find_led_node(prod) { + prod_id = prod.to_string(); + break; + } + } + + let enabled = if prod_id == "19b6" { + AuraPowerConfig::AuraDev19b6(HashSet::from([ + AuraDev19b6::BootLogo, + AuraDev19b6::BootKeyb, + AuraDev19b6::SleepLogo, + AuraDev19b6::SleepKeyb, + AuraDev19b6::AwakeLogo, + AuraDev19b6::AwakeKeyb, + AuraDev19b6::ShutdownLogo, + AuraDev19b6::ShutdownKeyb, + AuraDev19b6::AwakeBar, + AuraDev19b6::BootBar, + AuraDev19b6::SleepBar, + AuraDev19b6::ShutdownBar, + ])) + } else { + AuraPowerConfig::AuraDev1866(HashSet::from([ + AuraDev1866::Awake, + AuraDev1866::Boot, + AuraDev1866::Sleep, + AuraDev1866::Keyboard, + AuraDev1866::Lightbar, + ])) + }; + AuraConfig { brightness: LedBrightness::Med, current_mode: AuraModeNum::Static, builtins: BTreeMap::new(), multizone: None, multizone_on: false, - enabled: AuraPowerConfig::AuraDev1866(HashSet::new()), + enabled, } } } diff --git a/daemon/src/ctrl_aura/controller.rs b/daemon/src/ctrl_aura/controller.rs index e47e2f5d..3543744b 100644 --- a/daemon/src/ctrl_aura/controller.rs +++ b/daemon/src/ctrl_aura/controller.rs @@ -306,7 +306,7 @@ impl CtrlKbdLed { Ok(()) } - fn find_led_node(id_product: &str) -> Result { + pub(crate) fn find_led_node(id_product: &str) -> Result { let mut enumerator = udev::Enumerator::new().map_err(|err| { warn!("{}", err); RogError::Udev("enumerator failed".into(), err)