mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
In-progress
This commit is contained in:
84
README.md
84
README.md
@@ -13,6 +13,47 @@ captures from others with different ROG laptops then I should be able to add the
|
|||||||
|
|
||||||
I'm now looking at the kernel source to see if I can add the inputs correctly so they show up as proper evdev events.
|
I'm now looking at the kernel source to see if I can add the inputs correctly so they show up as proper evdev events.
|
||||||
|
|
||||||
|
## Implemented
|
||||||
|
|
||||||
|
- [X] Setting/modifying built-in LED modes
|
||||||
|
- [X] Per-key LED setting (PARTIALLY COMPLETE)
|
||||||
|
- [ ] Fancy LED modes (custom programs)
|
||||||
|
- [X] Daemon mode
|
||||||
|
- [X] Saving settings for reload
|
||||||
|
- [ ] System control
|
||||||
|
+ [X] Sleep
|
||||||
|
+ [X] Airplane mode
|
||||||
|
+ [X] Screen off? Now mapped to a keycode but has no effect
|
||||||
|
+ [X] Screen brightness up/down
|
||||||
|
+ [ ] ROG key custom mapping (Can be done in source)
|
||||||
|
+ [X] Fan/Performance mode
|
||||||
|
+ [ ] Screen off??
|
||||||
|
+ [X] Touchpad toggle (using a virtual keyboard to emit F21...)
|
||||||
|
- [X] Capture and use hotkeys **Partially completed: aura keys work**
|
||||||
|
+ [X] Aura control by Aura keys
|
||||||
|
+ [X] Volume + media controls work
|
||||||
|
- [X] Logging - required for journalctl
|
||||||
|
|
||||||
|
## Other Laptops
|
||||||
|
|
||||||
|
**Supported:**
|
||||||
|
|
||||||
|
- GX502 (product 0x1866) (Tested on GX502GW)
|
||||||
|
|
||||||
|
**Partial/Inprogress:**
|
||||||
|
- GM501 (multizone needs testing)
|
||||||
|
- G14 (no Lid LED support, all other functions appear to work)
|
||||||
|
|
||||||
|
Both of these laptops appear to have the same USB device ID as the GX502, but with different features enabled.
|
||||||
|
|
||||||
|
**Please help test or provide info for:**
|
||||||
|
|
||||||
|
- GL703(0x1869), GA502 (attempts to use same profile as GX502GW)
|
||||||
|
- GL553(0x1854) GL753 (attempted support from researching 2nd-hand info, multizone may work)
|
||||||
|
|
||||||
|
If the USB product ID is 0x1866 or 0x1869 then the per-key profile with hotkeys *should* work - 0x1866 is tested as this
|
||||||
|
is what I have.
|
||||||
|
|
||||||
## Requirements for compiling
|
## Requirements for compiling
|
||||||
|
|
||||||
- `rustc` + `cargo` + `make`
|
- `rustc` + `cargo` + `make`
|
||||||
@@ -46,7 +87,7 @@ sudo apt-get update
|
|||||||
sudo install rog-core
|
sudo install rog-core
|
||||||
```
|
```
|
||||||
|
|
||||||
and if the service isn't enabled:
|
enable and start the service:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo systemctl start rog-core.service
|
sudo systemctl start rog-core.service
|
||||||
@@ -106,47 +147,6 @@ If the daemon service is enabled then on boot the following will be reloaded fro
|
|||||||
The daemon also saves the settings per mode as the keyboard does not do this itself - this means cycling through modes
|
The daemon also saves the settings per mode as the keyboard does not do this itself - this means cycling through modes
|
||||||
with the Aura keys will use the settings that were used via CLI.
|
with the Aura keys will use the settings that were used via CLI.
|
||||||
|
|
||||||
## Implemented
|
|
||||||
|
|
||||||
- [X] Setting/modifying built-in LED modes
|
|
||||||
- [X] Per-key LED setting (PARTIALLY COMPLETE)
|
|
||||||
- [ ] Fancy LED modes (custom programs)
|
|
||||||
- [X] Daemon mode
|
|
||||||
- [X] Saving settings for reload
|
|
||||||
- [ ] System control
|
|
||||||
+ [X] Sleep
|
|
||||||
+ [X] Airplane mode
|
|
||||||
+ [X] Screen off? Now mapped to a keycode but has no effect
|
|
||||||
+ [X] Screen brightness up/down
|
|
||||||
+ [ ] ROG key custom mapping (Can be done in source)
|
|
||||||
+ [X] Fan/Performance mode
|
|
||||||
+ [ ] Screen off??
|
|
||||||
+ [X] Touchpad toggle (using a virtual keyboard to emit F21...)
|
|
||||||
- [X] Capture and use hotkeys **Partially completed: aura keys work**
|
|
||||||
+ [X] Aura control by Aura keys
|
|
||||||
+ [X] Volume + media controls work
|
|
||||||
- [X] Logging - required for journalctl
|
|
||||||
|
|
||||||
## Other Laptops
|
|
||||||
|
|
||||||
**Supported:**
|
|
||||||
|
|
||||||
- GX502 (product 0x1866) (Tested on GX502GW)
|
|
||||||
|
|
||||||
**Partial/Inprogress:**
|
|
||||||
- GM501
|
|
||||||
- G14
|
|
||||||
|
|
||||||
Both of these laptops appear to have the same USB device ID as the GX502, but with different features enabled.
|
|
||||||
|
|
||||||
**Please help test or provide info for:**
|
|
||||||
|
|
||||||
- GL703(0x1869), GA502 (attempts to use same profile as GX502GW)
|
|
||||||
- GL553(0x1854) GL753 (attempted support from researching 2nd-hand info, multizone may work)
|
|
||||||
|
|
||||||
If the USB product ID is 0x1866 or 0x1869 then the per-key profile with hotkeys *should* work - 0x1866 is tested as this
|
|
||||||
is what I have.
|
|
||||||
|
|
||||||
### Wireshark captures
|
### Wireshark captures
|
||||||
|
|
||||||
TODO: see `./wireshark_data/` for some captures.
|
TODO: see `./wireshark_data/` for some captures.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
config::Config,
|
config::Config,
|
||||||
core::*,
|
|
||||||
laptops::match_laptop,
|
laptops::match_laptop,
|
||||||
led_control::{AuraCommand, LedWriter},
|
led_control::{AuraCommand, LedWriter},
|
||||||
|
rogcore::*,
|
||||||
};
|
};
|
||||||
|
|
||||||
use dbus::{
|
use dbus::{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use crate::{config::Config, core::RogCore, led_control::AuraCommand};
|
use crate::{config::Config, led_control::AuraCommand, rogcore::RogCore};
|
||||||
use rog_aura::{error::AuraError, BuiltInModeByte};
|
use rog_aura::{error::AuraError, BuiltInModeByte};
|
||||||
//use keycode::{KeyMap, KeyMappingId, KeyState, KeyboardState};
|
//use keycode::{KeyMap, KeyMappingId, KeyState, KeyboardState};
|
||||||
use crate::virt_device::ConsumerKeys;
|
use crate::virt_device::ConsumerKeys;
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
#![deny(unused_must_use)]
|
#![deny(unused_must_use)]
|
||||||
/// Configuration loading, saving
|
/// Configuration loading, saving
|
||||||
mod config;
|
mod config;
|
||||||
/// The core module which allows writing to LEDs or polling the
|
|
||||||
/// laptop keyboard attached devices
|
|
||||||
mod core;
|
|
||||||
/// Start the daemon loop
|
/// Start the daemon loop
|
||||||
pub mod daemon;
|
pub mod daemon;
|
||||||
/// Laptop matching to determine capabilities
|
/// Laptop matching to determine capabilities
|
||||||
mod laptops;
|
mod laptops;
|
||||||
///
|
///
|
||||||
mod led_control;
|
mod led_control;
|
||||||
|
/// The core module which allows writing to LEDs or polling the
|
||||||
|
/// laptop keyboard attached devices
|
||||||
|
pub mod rogcore;
|
||||||
/// A virtual "consumer device" to help emit the correct key codes
|
/// A virtual "consumer device" to help emit the correct key codes
|
||||||
mod virt_device;
|
mod virt_device;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use daemon::daemon::start_daemon;
|
use daemon::daemon::start_daemon;
|
||||||
|
use daemon::rogcore::FanLevel;
|
||||||
use env_logger::{Builder, Target};
|
use env_logger::{Builder, Target};
|
||||||
use gumdrop::Options;
|
use gumdrop::Options;
|
||||||
use log::LevelFilter;
|
use log::LevelFilter;
|
||||||
@@ -19,6 +20,8 @@ struct CLIStart {
|
|||||||
daemon: bool,
|
daemon: bool,
|
||||||
#[options(meta = "VAL", help = "<off, low, med, high>")]
|
#[options(meta = "VAL", help = "<off, low, med, high>")]
|
||||||
bright: Option<LedBrightness>,
|
bright: Option<LedBrightness>,
|
||||||
|
#[options(meta = "FAN", help = "<off, low, med, high>")]
|
||||||
|
fan_mode: Option<FanLevel>,
|
||||||
#[options(command)]
|
#[options(command)]
|
||||||
command: Option<Command>,
|
command: Option<Command>,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
enum FanLevel {
|
pub enum FanLevel {
|
||||||
Normal,
|
Normal,
|
||||||
Boost,
|
Boost,
|
||||||
Silent,
|
Silent,
|
||||||
Reference in New Issue
Block a user