mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Actually enable/disable gfx switch control
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -46,7 +46,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "asus-nb-ctrl"
|
name = "asus-nb-ctrl"
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"asus-nb",
|
"asus-nb",
|
||||||
"ctrl-gfx",
|
"ctrl-gfx",
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ use std::io::Write;
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
|
|
||||||
use zbus::fdo;
|
|
||||||
use zbus::Connection;
|
|
||||||
use std::convert::Into;
|
use std::convert::Into;
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
|
use zbus::fdo;
|
||||||
|
use zbus::Connection;
|
||||||
|
|
||||||
pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let mut logger = env_logger::Builder::new();
|
let mut logger = env_logger::Builder::new();
|
||||||
@@ -55,6 +55,7 @@ fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
.request_name(DBUS_NAME, fdo::RequestNameFlags::ReplaceExisting.into())?;
|
.request_name(DBUS_NAME, fdo::RequestNameFlags::ReplaceExisting.into())?;
|
||||||
let mut object_server = zbus::ObjectServer::new(&connection);
|
let mut object_server = zbus::ObjectServer::new(&connection);
|
||||||
|
|
||||||
|
let enable_gfx_switching = config.gfx_managed;
|
||||||
let config = Arc::new(Mutex::new(config));
|
let config = Arc::new(Mutex::new(config));
|
||||||
|
|
||||||
match CtrlCharge::new(config.clone()) {
|
match CtrlCharge::new(config.clone()) {
|
||||||
@@ -93,18 +94,20 @@ fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
// Collect tasks for task thread
|
// Collect tasks for task thread
|
||||||
let mut tasks: Vec<Arc<Mutex<dyn CtrlTask + Send>>> = Vec::new();
|
let mut tasks: Vec<Arc<Mutex<dyn CtrlTask + Send>>> = Vec::new();
|
||||||
|
|
||||||
match CtrlFanAndCPU::new(config.clone()) {
|
if enable_gfx_switching {
|
||||||
Ok(mut ctrl) => {
|
match CtrlFanAndCPU::new(config.clone()) {
|
||||||
ctrl.reload()
|
Ok(mut ctrl) => {
|
||||||
.unwrap_or_else(|err| warn!("Profile control: {}", err));
|
ctrl.reload()
|
||||||
let tmp = Arc::new(Mutex::new(ctrl));
|
.unwrap_or_else(|err| warn!("Profile control: {}", err));
|
||||||
DbusFanAndCpu::new(tmp.clone()).add_to_server(&mut object_server);
|
let tmp = Arc::new(Mutex::new(ctrl));
|
||||||
tasks.push(tmp);
|
DbusFanAndCpu::new(tmp.clone()).add_to_server(&mut object_server);
|
||||||
}
|
tasks.push(tmp);
|
||||||
Err(err) => {
|
}
|
||||||
error!("Profile control: {}", err);
|
Err(err) => {
|
||||||
}
|
error!("Profile control: {}", err);
|
||||||
};
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(laptop) = laptop {
|
if let Some(laptop) = laptop {
|
||||||
let ctrl = CtrlKbdBacklight::new(
|
let ctrl = CtrlKbdBacklight::new(
|
||||||
@@ -128,10 +131,11 @@ fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
|
|
||||||
for ctrl in tasks.iter() {
|
for ctrl in tasks.iter() {
|
||||||
if let Ok(mut lock) = ctrl.try_lock() {
|
if let Ok(mut lock) = ctrl.try_lock() {
|
||||||
lock.do_task().map_err(|err| {
|
lock.do_task()
|
||||||
warn!("do_task error: {}", err);
|
.map_err(|err| {
|
||||||
})
|
warn!("do_task error: {}", err);
|
||||||
.ok();
|
})
|
||||||
|
.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -140,7 +144,7 @@ fn start_daemon() -> Result<(), Box<dyn Error>> {
|
|||||||
let x = obj.limit();
|
let x = obj.limit();
|
||||||
obj.notify_charge(x as u8)
|
obj.notify_charge(x as u8)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
if let Err(err) = object_server.try_handle_next() {
|
if let Err(err) = object_server.try_handle_next() {
|
||||||
eprintln!("{}", err);
|
eprintln!("{}", err);
|
||||||
|
|||||||
Reference in New Issue
Block a user