mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Update egui and supergfxctl deps
Requires running with supergfxctl v5.1.0-RC5 if installed
This commit is contained in:
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
### Added
|
||||||
|
- Support for G733Z LED modes
|
||||||
### Changed
|
### Changed
|
||||||
- Adjustments to Anime system events thread
|
- Adjustments to Anime system events thread
|
||||||
- Add "sleep" animetion config options to anime config
|
- Add "sleep" animetion config options to anime config
|
||||||
|
|||||||
515
Cargo.lock
generated
515
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,13 @@
|
|||||||
basic_zones: [],
|
basic_zones: [],
|
||||||
advanced_type: PerKey,
|
advanced_type: PerKey,
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
board_name: "G733Z",
|
||||||
|
layout_name: "g513i-per-key",
|
||||||
|
basic_modes: [Static, Breathe, Strobe, Rainbow, Star, Rain, Highlight, Laser, Ripple, Pulse, Comet, Flash],
|
||||||
|
basic_zones: [],
|
||||||
|
advanced_type: PerKey,
|
||||||
|
),
|
||||||
(
|
(
|
||||||
board_name: "GA401Q",
|
board_name: "GA401Q",
|
||||||
layout_name: "ga401q",
|
layout_name: "ga401q",
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ edition = "2021"
|
|||||||
mocking = []
|
mocking = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
egui = { git = "https://github.com/flukejones/egui", branch = "wayland_dark_theme" }
|
egui = { git = "https://github.com/emilk/egui", commit = "d486c76a9f146c12321b2a3fd0cedfe732e5783d"}
|
||||||
eframe = { git = "https://github.com/flukejones/egui", branch = "wayland_dark_theme" }
|
eframe = { git = "https://github.com/emilk/egui", commit = "d486c76a9f146c12321b2a3fd0cedfe732e5783d"}
|
||||||
|
|
||||||
libappindicator = "0.7" # Tray icon
|
libappindicator = "0.7" # Tray icon
|
||||||
gtk = "0.15.5"
|
gtk = "0.15.5"
|
||||||
@@ -42,5 +42,9 @@ png_pong.workspace = true
|
|||||||
nix = "^0.26.1"
|
nix = "^0.26.1"
|
||||||
tempfile = "3.3.0"
|
tempfile = "3.3.0"
|
||||||
|
|
||||||
|
# [patch.crates-io]
|
||||||
|
# egui = { git = "https://github.com/flukejones/egui" }
|
||||||
|
# eframe = { git = "https://github.com/flukejones/egui" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
cargo-husky.workspace = true
|
cargo-husky.workspace = true
|
||||||
@@ -11,6 +11,7 @@ pub enum Error {
|
|||||||
XdgVars,
|
XdgVars,
|
||||||
Zbus(zbus::Error),
|
Zbus(zbus::Error),
|
||||||
Notification(notify_rust::error::Error),
|
Notification(notify_rust::error::Error),
|
||||||
|
Eframe(eframe::Error),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for Error {
|
impl fmt::Display for Error {
|
||||||
@@ -24,6 +25,7 @@ impl fmt::Display for Error {
|
|||||||
Error::XdgVars => write!(f, "XDG environment vars appear unset"),
|
Error::XdgVars => write!(f, "XDG environment vars appear unset"),
|
||||||
Error::Zbus(err) => write!(f, "Error: {}", err),
|
Error::Zbus(err) => write!(f, "Error: {}", err),
|
||||||
Error::Notification(err) => write!(f, "Notification Error: {}", err),
|
Error::Notification(err) => write!(f, "Notification Error: {}", err),
|
||||||
|
Error::Eframe(err) => write!(f, "Eframe Error: {}", err),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -53,3 +55,9 @@ impl From<notify_rust::error::Error> for Error {
|
|||||||
Error::Notification(err)
|
Error::Notification(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<eframe::Error> for Error {
|
||||||
|
fn from(err: eframe::Error) -> Self {
|
||||||
|
Error::Eframe(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -105,6 +105,6 @@ pub fn get_ipc_file() -> Result<File, crate::error::Error> {
|
|||||||
Ok(OpenOptions::new()
|
Ok(OpenOptions::new()
|
||||||
.read(true)
|
.read(true)
|
||||||
.write(true)
|
.write(true)
|
||||||
.truncate(true)
|
// .truncate(true)
|
||||||
.open(&fifo_path)?)
|
.open(&fifo_path)?)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
use std::env::args;
|
use std::env::args;
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
use std::thread;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
use eframe::{IconData, NativeOptions};
|
use eframe::{IconData, NativeOptions};
|
||||||
use gumdrop::Options;
|
use gumdrop::Options;
|
||||||
@@ -72,7 +75,9 @@ fn main() -> Result<()> {
|
|||||||
"ROG Control Center",
|
"ROG Control Center",
|
||||||
native_options.clone(),
|
native_options.clone(),
|
||||||
Box::new(move |_| Box::new(AppErrorShow::new(e.to_string()))),
|
Box::new(move |_| Box::new(AppErrorShow::new(e.to_string()))),
|
||||||
);
|
)
|
||||||
|
.map_err(|e| error!("{e}"))
|
||||||
|
.ok();
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
@@ -83,14 +88,16 @@ fn main() -> Result<()> {
|
|||||||
"ROG Control Center",
|
"ROG Control Center",
|
||||||
native_options.clone(),
|
native_options.clone(),
|
||||||
Box::new(move |_| Box::new(AppErrorShow::new(e.to_string()))),
|
Box::new(move |_| Box::new(AppErrorShow::new(e.to_string()))),
|
||||||
);
|
)
|
||||||
|
.map_err(|e| error!("{e}"))
|
||||||
|
.ok();
|
||||||
SupportedFunctions::default()
|
SupportedFunctions::default()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Startup
|
// Startup
|
||||||
let mut config = Config::load()?;
|
let mut config = Config::load()?;
|
||||||
let mut start_closed = config.startup_in_background;
|
let running_in_bg = Arc::new(AtomicBool::new(config.startup_in_background));
|
||||||
|
|
||||||
if config.startup_in_background {
|
if config.startup_in_background {
|
||||||
config.run_in_background = true;
|
config.run_in_background = true;
|
||||||
@@ -184,7 +191,8 @@ fn main() -> Result<()> {
|
|||||||
init_tray(supported, states.clone());
|
init_tray(supported, states.clone());
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
if !start_closed {
|
if !running_in_bg.load(Ordering::Acquire) {
|
||||||
|
// blocks until window is closed
|
||||||
start_app(states.clone(), native_options.clone())?;
|
start_app(states.clone(), native_options.clone())?;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,15 +202,21 @@ fn main() -> Result<()> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.run_in_background {
|
if config.run_in_background && !running_in_bg.load(Ordering::Acquire) {
|
||||||
let mut buf = [0u8; 4];
|
running_in_bg.store(true, Ordering::SeqCst);
|
||||||
// blocks until it is read, typically the read will happen after a second
|
|
||||||
// process writes to the IPC (so there is data to actually read)
|
let running_in_bg = running_in_bg.clone();
|
||||||
if get_ipc_file()?.read(&mut buf).is_ok() && buf[0] == SHOW_GUI {
|
thread::spawn(move || {
|
||||||
start_closed = false;
|
let mut buf = [0u8; 4];
|
||||||
continue;
|
// blocks until it is read, typically the read will happen after a second
|
||||||
}
|
// process writes to the IPC (so there is data to actually read)
|
||||||
|
if get_ipc_file().unwrap().read(&mut buf).is_ok() && buf[0] == SHOW_GUI {
|
||||||
|
running_in_bg.store(false, Ordering::SeqCst);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
// Prevent hogging CPU
|
||||||
|
thread::sleep(Duration::from_millis(500));
|
||||||
}
|
}
|
||||||
|
|
||||||
// loop {
|
// loop {
|
||||||
@@ -240,7 +254,7 @@ fn start_app(states: Arc<Mutex<SystemState>>, native_options: NativeOptions) ->
|
|||||||
"ROG Control Center",
|
"ROG Control Center",
|
||||||
native_options,
|
native_options,
|
||||||
Box::new(move |cc| Box::new(RogApp::new(Config::load().unwrap(), states, cc).unwrap())),
|
Box::new(move |cc| Box::new(RogApp::new(Config::load().unwrap(), states, cc).unwrap())),
|
||||||
);
|
)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -295,9 +295,9 @@ impl ROGTray {
|
|||||||
e
|
e
|
||||||
})
|
})
|
||||||
.unwrap_or(GfxMode::None);
|
.unwrap_or(GfxMode::None);
|
||||||
if mode != GfxMode::Egpu {
|
if mode != GfxMode::AsusEgpu {
|
||||||
gfx_dbus
|
gfx_dbus
|
||||||
.set_mode(&GfxMode::Egpu)
|
.set_mode(&GfxMode::AsusEgpu)
|
||||||
.map_err(|e| {
|
.map_err(|e| {
|
||||||
error!("ROGTray: set_mode: {e}");
|
error!("ROGTray: set_mode: {e}");
|
||||||
e
|
e
|
||||||
@@ -344,7 +344,7 @@ impl ROGTray {
|
|||||||
if let Ok(mode) = self.bios_proxy.gpu_mux_mode() {
|
if let Ok(mode) = self.bios_proxy.gpu_mux_mode() {
|
||||||
// TODO: this is not taking in to account supergfxctl
|
// TODO: this is not taking in to account supergfxctl
|
||||||
let mode = match mode {
|
let mode = match mode {
|
||||||
GpuMode::Discrete => GfxMode::AsusMuxDiscreet,
|
GpuMode::Discrete => GfxMode::AsusMuxDgpu,
|
||||||
_ => GfxMode::Hybrid,
|
_ => GfxMode::Hybrid,
|
||||||
};
|
};
|
||||||
reboot_required = mode != current_mode;
|
reboot_required = mode != current_mode;
|
||||||
@@ -352,7 +352,7 @@ impl ROGTray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let active = match current_mode {
|
let active = match current_mode {
|
||||||
GfxMode::AsusMuxDiscreet => "Discreet".to_owned(),
|
GfxMode::AsusMuxDgpu => "Discreet".to_owned(),
|
||||||
_ => current_mode.to_string(),
|
_ => current_mode.to_string(),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -377,7 +377,7 @@ impl ROGTray {
|
|||||||
let mut reboot_required = false;
|
let mut reboot_required = false;
|
||||||
if let Ok(mode) = gfx_dbus.gpu_mux_mode() {
|
if let Ok(mode) = gfx_dbus.gpu_mux_mode() {
|
||||||
let mode = match mode {
|
let mode = match mode {
|
||||||
GpuMode::Discrete => GfxMode::AsusMuxDiscreet,
|
GpuMode::Discrete => GfxMode::AsusMuxDgpu,
|
||||||
_ => GfxMode::Hybrid,
|
_ => GfxMode::Hybrid,
|
||||||
};
|
};
|
||||||
reboot_required = mode != current_mode;
|
reboot_required = mode != current_mode;
|
||||||
@@ -407,7 +407,7 @@ impl ROGTray {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let active = match current_mode {
|
let active = match current_mode {
|
||||||
GfxMode::AsusMuxDiscreet => "Ultimate".to_owned(),
|
GfxMode::AsusMuxDgpu => "Ultimate".to_owned(),
|
||||||
GfxMode::Hybrid => "Optimus".to_owned(),
|
GfxMode::Hybrid => "Optimus".to_owned(),
|
||||||
_ => current_mode.to_string(),
|
_ => current_mode.to_string(),
|
||||||
};
|
};
|
||||||
@@ -508,7 +508,7 @@ pub fn init_tray(
|
|||||||
lock.gfx_state.mode
|
lock.gfx_state.mode
|
||||||
} else {
|
} else {
|
||||||
match lock.bios.dedicated_gfx {
|
match lock.bios.dedicated_gfx {
|
||||||
GpuMode::Discrete => GfxMode::AsusMuxDiscreet,
|
GpuMode::Discrete => GfxMode::AsusMuxDgpu,
|
||||||
_ => GfxMode::Hybrid,
|
_ => GfxMode::Hybrid,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user