Fix sortof notifs

This commit is contained in:
Luke D. Jones
2024-05-24 18:49:23 +12:00
parent d203fab70d
commit 4730e645ba
6 changed files with 125 additions and 139 deletions

View File

@@ -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();

View File

@@ -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(&notif)?)
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));

View File

@@ -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;

View File

@@ -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 {