mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Fix sortof notifs
This commit is contained in:
@@ -25,6 +25,7 @@ use tokio::runtime::Runtime;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
dbg!(notify_rust::get_capabilities().unwrap());
|
||||
#[cfg(feature = "tokio-debug")]
|
||||
console_subscriber::init();
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ use std::process::Command;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::time::Duration;
|
||||
|
||||
use log::{error, info, warn};
|
||||
use notify_rust::{Hint, Notification, NotificationHandle, Urgency};
|
||||
use log::{debug, error, info, warn};
|
||||
use notify_rust::{Hint, Notification, Timeout, Urgency};
|
||||
use rog_dbus::zbus_platform::PlatformProxy;
|
||||
use rog_platform::platform::GpuMode;
|
||||
use rog_platform::power::AsusPower;
|
||||
@@ -60,7 +60,7 @@ fn start_dpu_status_mon(config: Arc<Mutex<Config>>) {
|
||||
std::thread::spawn(move || {
|
||||
let mut last_status = GfxPower::Unknown;
|
||||
loop {
|
||||
std::thread::sleep(Duration::from_millis(1000));
|
||||
std::thread::sleep(Duration::from_millis(1500));
|
||||
if let Ok(status) = dev.get_runtime_status() {
|
||||
if status != GfxPower::Unknown && status != last_status {
|
||||
if let Ok(config) = enabled_notifications_copy.lock() {
|
||||
@@ -72,7 +72,11 @@ fn start_dpu_status_mon(config: Arc<Mutex<Config>>) {
|
||||
}
|
||||
// Required check because status cycles through
|
||||
// active/unknown/suspended
|
||||
do_gpu_status_notif("dGPU status changed:", &status).ok();
|
||||
do_gpu_status_notif("dGPU status changed:", &status)
|
||||
.show()
|
||||
.unwrap()
|
||||
.on_close(|_| ());
|
||||
debug!("dGPU status changed: {:?}", &status);
|
||||
}
|
||||
last_status = status;
|
||||
}
|
||||
@@ -240,7 +244,11 @@ pub fn start_notifications(
|
||||
}
|
||||
// Required check because status cycles through
|
||||
// active/unknown/suspended
|
||||
do_gpu_status_notif("dGPU status changed:", &status).ok();
|
||||
do_gpu_status_notif("dGPU status changed:", &status)
|
||||
.show_async()
|
||||
.await
|
||||
.unwrap()
|
||||
.on_close(|_| ());
|
||||
}
|
||||
last_status = status;
|
||||
}
|
||||
@@ -269,19 +277,15 @@ where
|
||||
T: Display,
|
||||
{
|
||||
let mut notif = Notification::new();
|
||||
|
||||
notif
|
||||
.summary(NOTIF_HEADER)
|
||||
.body(&format!("{message} {data}"))
|
||||
.timeout(-1)
|
||||
//.hint(Hint::Resident(true))
|
||||
.appname(NOTIF_HEADER)
|
||||
.summary(&format!("{message} {data}"))
|
||||
.timeout(Timeout::Milliseconds(3000))
|
||||
.hint(Hint::Category("device".into()));
|
||||
|
||||
notif
|
||||
}
|
||||
|
||||
fn do_gpu_status_notif(message: &str, data: &GfxPower) -> Result<NotificationHandle> {
|
||||
// eww
|
||||
fn do_gpu_status_notif(message: &str, data: &GfxPower) -> Notification {
|
||||
let mut notif = base_notification(message, &<&str>::from(data).to_owned());
|
||||
let icon = match data {
|
||||
GfxPower::Suspended => "asus_notif_blue",
|
||||
@@ -291,7 +295,7 @@ fn do_gpu_status_notif(message: &str, data: &GfxPower) -> Result<NotificationHan
|
||||
GfxPower::Unknown => "gpu-integrated",
|
||||
};
|
||||
notif.icon(icon);
|
||||
Ok(Notification::show(¬if)?)
|
||||
notif
|
||||
}
|
||||
|
||||
fn do_gfx_action_notif(message: &str, action: GfxUserAction, mode: GpuMode) -> Result<()> {
|
||||
@@ -302,13 +306,12 @@ fn do_gfx_action_notif(message: &str, action: GfxUserAction, mode: GpuMode) -> R
|
||||
|
||||
let mut notif = Notification::new();
|
||||
notif
|
||||
.summary(NOTIF_HEADER)
|
||||
.body(&format!("Changing to {mode}. {message}"))
|
||||
.timeout(2000)
|
||||
.appname(NOTIF_HEADER)
|
||||
.summary(&format!("Changing to {mode}. {message}"))
|
||||
//.hint(Hint::Resident(true))
|
||||
.hint(Hint::Category("device".into()))
|
||||
.urgency(Urgency::Critical)
|
||||
.timeout(-1)
|
||||
.timeout(Timeout::Never)
|
||||
.icon("dialog-warning")
|
||||
.hint(Hint::Transient(true));
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ export component PageSystem inherits Rectangle {
|
||||
}
|
||||
|
||||
if SystemPageData.available.ppt-pl1-spl: SystemSlider {
|
||||
text: @tr("ppt_pl1_spl" => "PL1, Sustained Power Limit");
|
||||
text: @tr("ppt_pl1_spl" => "PL1, sustained power limit");
|
||||
minimum: 5;
|
||||
maximum: 250;
|
||||
value <=> SystemPageData.ppt_pl1_spl;
|
||||
@@ -205,7 +205,7 @@ export component PageSystem inherits Rectangle {
|
||||
}
|
||||
|
||||
if SystemPageData.available.ppt-fppt: SystemSlider {
|
||||
text: @tr("ppt_fppt" => "fPPT, fast power limit");
|
||||
text: @tr("ppt_fppt" => "FPPT, Fast Power Limit");
|
||||
minimum: 5;
|
||||
maximum: 250;
|
||||
value <=> SystemPageData.ppt_fppt;
|
||||
@@ -215,7 +215,7 @@ export component PageSystem inherits Rectangle {
|
||||
}
|
||||
|
||||
if SystemPageData.available.ppt-apu-sppt: SystemSlider {
|
||||
text: @tr("ppt_apu_sppt" => "sPPT, APU slow power limit");
|
||||
text: @tr("ppt_apu_sppt" => "SPPT, APU slow power limit");
|
||||
minimum: 5;
|
||||
maximum: 130;
|
||||
value <=> SystemPageData.ppt_apu_sppt;
|
||||
@@ -225,7 +225,7 @@ export component PageSystem inherits Rectangle {
|
||||
}
|
||||
|
||||
if SystemPageData.available.ppt-platform-sppt: SystemSlider {
|
||||
text: @tr("ppt_platform_sppt" => "Slow Package Power Tracking Limit");
|
||||
text: @tr("ppt_platform_sppt" => "Slow package power tracking limit");
|
||||
maximum: 130;
|
||||
minimum: 5;
|
||||
value <=> SystemPageData.ppt_platform_sppt;
|
||||
|
||||
@@ -17,7 +17,7 @@ export component SystemSlider inherits RogItem {
|
||||
callback released(int);
|
||||
HorizontalLayout {
|
||||
HorizontalLayout {
|
||||
width: 30%;
|
||||
width: 50%;
|
||||
alignment: LayoutAlignment.space-between;
|
||||
padding-left: 10px;
|
||||
Text {
|
||||
|
||||
Reference in New Issue
Block a user