diff --git a/Cargo.lock b/Cargo.lock index 283bf9ba..9259e0d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,7 +46,7 @@ dependencies = [ [[package]] name = "asus-nb-ctrl" -version = "2.0.4" +version = "2.0.5" dependencies = [ "asus-nb", "ctrl-gfx", diff --git a/asus-nb-ctrl/src/daemon.rs b/asus-nb-ctrl/src/daemon.rs index 144c1cf0..2c5b353d 100644 --- a/asus-nb-ctrl/src/daemon.rs +++ b/asus-nb-ctrl/src/daemon.rs @@ -15,10 +15,10 @@ use std::io::Write; use std::sync::Arc; use std::sync::Mutex; -use zbus::fdo; -use zbus::Connection; use std::convert::Into; use std::convert::TryInto; +use zbus::fdo; +use zbus::Connection; pub fn main() -> Result<(), Box> { let mut logger = env_logger::Builder::new(); @@ -55,6 +55,7 @@ fn start_daemon() -> Result<(), Box> { .request_name(DBUS_NAME, fdo::RequestNameFlags::ReplaceExisting.into())?; let mut object_server = zbus::ObjectServer::new(&connection); + let enable_gfx_switching = config.gfx_managed; let config = Arc::new(Mutex::new(config)); match CtrlCharge::new(config.clone()) { @@ -93,18 +94,20 @@ fn start_daemon() -> Result<(), Box> { // Collect tasks for task thread let mut tasks: Vec>> = Vec::new(); - match CtrlFanAndCPU::new(config.clone()) { - Ok(mut ctrl) => { - ctrl.reload() - .unwrap_or_else(|err| warn!("Profile control: {}", err)); - let tmp = Arc::new(Mutex::new(ctrl)); - DbusFanAndCpu::new(tmp.clone()).add_to_server(&mut object_server); - tasks.push(tmp); - } - Err(err) => { - error!("Profile control: {}", err); - } - }; + if enable_gfx_switching { + match CtrlFanAndCPU::new(config.clone()) { + Ok(mut ctrl) => { + ctrl.reload() + .unwrap_or_else(|err| warn!("Profile control: {}", err)); + let tmp = Arc::new(Mutex::new(ctrl)); + DbusFanAndCpu::new(tmp.clone()).add_to_server(&mut object_server); + tasks.push(tmp); + } + Err(err) => { + error!("Profile control: {}", err); + } + }; + } if let Some(laptop) = laptop { let ctrl = CtrlKbdBacklight::new( @@ -128,10 +131,11 @@ fn start_daemon() -> Result<(), Box> { for ctrl in tasks.iter() { if let Ok(mut lock) = ctrl.try_lock() { - lock.do_task().map_err(|err| { - warn!("do_task error: {}", err); - }) - .ok(); + lock.do_task() + .map_err(|err| { + warn!("do_task error: {}", err); + }) + .ok(); } } }); @@ -140,7 +144,7 @@ fn start_daemon() -> Result<(), Box> { let x = obj.limit(); obj.notify_charge(x as u8) })?; - + loop { if let Err(err) = object_server.try_handle_next() { eprintln!("{}", err);