Correct two laptop profiles. Update readme

This commit is contained in:
Luke
2020-07-22 10:34:09 +12:00
parent bffe40d764
commit b8faaa665d
6 changed files with 66 additions and 27 deletions

View File

@@ -5,6 +5,10 @@ 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]
## [0.15.3] - 2020-07-21
## Changed
- GX531 reverted to zone profile, G531 moved to per-key profile
## [0.15.2] - 2020-07-21 ## [0.15.2] - 2020-07-21
## Changed ## Changed
- GX531 now supports same LED features as GX502 - GX531 now supports same LED features as GX502

View File

@@ -7,12 +7,10 @@ One of the benefits of this app (for me at least) is that you *don't* require a
kernel with correct support for the laptop keyboard EC. The app kernel with correct support for the laptop keyboard EC. The app
reads and writes direct to the device interrupts, and can be customised (in reads and writes direct to the device interrupts, and can be customised (in
source) quite extensively to do what you want such as directly controlling your source) quite extensively to do what you want such as directly controlling your
laptop backlight rather than emitting a key-press for the DE to handle. There is laptop backlight rather than emitting a key-press for the DE to handle.
also the possibility of rebinding fn keys to be macros which emit a series of
keyboard presses.
Other laptop functions such as fan modes or battery charge limiting will need Other laptop functions such as fan modes or battery charge limiting will need
kernel level support. kernel level support which exists in most newer kernels (higher than 5.6.10).
## Discord ## Discord
@@ -20,29 +18,59 @@ kernel level support.
## SUPPORTED LAPTOPS ## SUPPORTED LAPTOPS
- GM501
- GX502
- GX531
- G512
- G712
- G531
- G532
- GA14/GA401 *is* supported, including the AniMe display. You will need kernel [patches](https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/tree/master/kernel_patches).
- GA15/GA502/GU502 appears to have most things working
**Please help test or provide info for:** **Please help test or provide info for:**
- GL703(0x1869) - GL703(0x1869)
- GL553/GL753 (device = 0x1854) (attempted support from researching 2nd-hand info, multizone may work) - GL553/GL753 (device = 0x1854) (attempted support from researching 2nd-hand info, multizone may work)
**Laptop support is added on a per-case basis** as the EC for the keyboard varies **Laptop support is modified on a per-case basis** as the EC for the keyboard varies
a little between models, e.g, some RGB modes are missing, or it's a single colour. a little between models, e.g, some RGB modes are missing, or it's a single colour.
As far as I can see, the EC does not give us a way to find what modes are supported. As far as I can see, the EC does not give us a way to find what modes are supported.
### KEYS + OTHER FUNCTIONS
Media keys are Volume -/+, Mute output, previous, next, play/pause. These keys are grouped together on one interface block on the keyboard EC
as a "Consumer Device" HID, all other fn+<key> combo are on another interface which is "Vendor Custom", this includes things like keyboard
LED brightness and mode change keys, Calc, fan-mode toggles etc.
| MODEL |Media keys| Additional FN+<KEY> | AniMe |Touchpad-Numpad| Fan Modes | Charge Limit |
|=-----=|=--------=|=-------------------=|=-----=|=-------------=|=---------=|=------------=|
| GM501 | X | X | | | X | X |
| GX502 | X | X | | | X | X |
| GX531 | X | X | | | X | X |
| GX701 | X | X | | | X | X |
| G512 | X | X | | | X | X |
| G712 | X | X | | | X | X |
| G531 | X | X | | | X | X |
| G532 | X | X | | | X | X |
| GA401 | X | X | X | | X | X |
| GA502 | X | X | X | | X | X |
| GU502 | X | X | X | | X | X |
**NOTE:** GA14/GA401 and GA15/GA502/GU502, You will need kernel [patches](https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/tree/master/kernel_patches).
### LED MODES
Models GA401, GA502, GU502 support LED brightness change only (no RGB).
| MODEL | SINGLE | BREATHING | STROBE | RAINBOW | STAR | RAIN | HIGHLIGHT | LASER | RIPPLE | PULSE | COMET | FLASH | ZONES | PER-KEY RGB |
|=------=|=------=|=---------=|=------=|=-------=|=----=|=----=|=---------=|=-----=|=------=|=-----=|=-----=|=-----=|=-----=|=-----------=|
| G512LI | X | X | X | X | | | | | | | | | | |
| G712LI | X | X | X | X | | | | | | | | | | |
| GM501 | X | X | X | X | | | | | | | | | X | |
| GX531 | X | X | X | X | | | | | | | | | X | |
| G512 | X | X | X | X | | | | | | | | | X | |
| G712 | X | X | X | X | | | | | | | | | X | |
| GX502 | X | X | X | X | X | X | X | X | X | X | X | X | | X |
| GX701 | X | X | X | X | X | X | X | X | X | X | X | X | | X |
| G531 | X | X | X | X | X | X | X | X | X | X | X | X | | X |
| G532 | X | X | X | X | X | X | X | X | X | X | X | X | | X |
## Implemented ## Implemented
- [X] Setting/modifying built-in LED modes - [X] Setting/modifying built-in LED modes
- [X] Per-key LED setting (PARTIALLY COMPLETE) - [X] Per-key LED setting
- [X] Fancy LED modes (See examples) - [X] Fancy LED modes (See examples)
- [X] Daemon mode - [X] Daemon mode
- [X] Saving settings for reload - [X] Saving settings for reload
@@ -51,13 +79,13 @@ As far as I can see, the EC does not give us a way to find what modes are suppor
+ [X] Fan/Performance mode + [X] Fan/Performance mode
+ [ ] Screen off? Now mapped to a keycode but has no effect + [ ] Screen off? Now mapped to a keycode but has no effect
+ [X] Screen brightness up/down + [X] Screen brightness up/down
+ [X] Touchpad toggle (using a virtual keyboard to emit F21...) + [X] Touchpad toggle
+ [X] Sleep + [X] Sleep
+ [X] Airplane mode + [X] Airplane mode
- [X] Capture and use hotkeys - [X] Capture and use hotkeys
+ [X] Aura control by Aura keys + [X] Aura control by Aura keys
+ [X] Volume + media controls work + [X] Volume + media controls work
+ [X] Mic mute - unsure which key should be emitted for this to work. The key by itself emits a code. + [X] Mic mute
- [X] Logging - required for journalctl - [X] Logging - required for journalctl
- [X] AniMatrix display on G14 models that include it - [X] AniMatrix display on G14 models that include it
- [X] Set battery charge limit (with kernel supporting this) - [X] Set battery charge limit (with kernel supporting this)

6
debian/changelog vendored
View File

@@ -1,3 +1,9 @@
rog-core (0.15.3) focal; urgency=medium
- Put G532 in right section for support
-- Luke Jones <luke@ljones.dev> Tue, 21 Jul 2020 22:07:53 +1200
rog-core (0.15.2) focal; urgency=medium rog-core (0.15.2) focal; urgency=medium
- Add G532 support - Add G532 support

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rog-daemon" name = "rog-daemon"
version = "0.15.2" version = "0.15.3"
license = "MPL-2.0" license = "MPL-2.0"
readme = "README.md" readme = "README.md"
authors = ["Luke <luke@ljones.dev>"] authors = ["Luke <luke@ljones.dev>"]

View File

@@ -104,33 +104,34 @@ fn select_1866_device(prod: u16) -> LaptopBase {
support_animatrix: false, support_animatrix: false,
}; };
// GA401 // AniMe, no RGB
if board_name.starts_with("GA401") { if board_name.starts_with("GA401") {
info!("No RGB control available"); info!("No RGB control available");
// TODO: actual check for the AniMe device here // TODO: actual check for the AniMe device here
laptop.support_animatrix = true; laptop.support_animatrix = true;
// GA502 // No AniMe, no RGB
} else if board_name.starts_with("GA502") } else if board_name.starts_with("GA502")
|| board_name.starts_with("GU502") || board_name.starts_with("GU502")
{ {
info!("No RGB control available"); info!("No RGB control available");
// GX502, G712 // RGB, per-key settings, no zones
} else if board_name.starts_with("GX502") } else if board_name.starts_with("GX502")
|| board_name.starts_with("GX531") || board_name.starts_with("GX701")
|| board_name.starts_with("G531")
|| board_name.starts_with("G532") || board_name.starts_with("G532")
{ {
laptop.supported_modes = vec![ laptop.supported_modes = vec![
SINGLE, BREATHING, STROBE, RAINBOW, STAR, RAIN, HIGHLIGHT, LASER, RIPPLE, PULSE, COMET, SINGLE, BREATHING, STROBE, RAINBOW, STAR, RAIN, HIGHLIGHT, LASER, RIPPLE, PULSE, COMET,
FLASH, RGB, FLASH, RGB,
]; ];
// G512LI & G712LI has 1 RGB zone which means per-key effect might work // RGB, limited effects, no zones
} else if board_name.starts_with("G512LI") || board_name.starts_with("G712LI") { } else if board_name.starts_with("G512LI") || board_name.starts_with("G712LI") {
laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE]; laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE];
// GM501, GX531, G531, G512, G712 have 4-zone RGB // RGB, limited effects, 4-zone RGB
} else if board_name.starts_with("GM501") } else if board_name.starts_with("GM501")
|| board_name.starts_with("GX531")
|| board_name.starts_with("G512") || board_name.starts_with("G512")
|| board_name.starts_with("G712") || board_name.starts_with("G712")
|| board_name.starts_with("G531")
{ {
laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE, MULTISTATIC]; laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE, MULTISTATIC];
} else { } else {

View File

@@ -9,7 +9,7 @@ use rog_client::{
}; };
use std::io::Write; use std::io::Write;
static VERSION: &str = "0.15.2"; static VERSION: &str = "0.15.3";
#[derive(Options)] #[derive(Options)]
struct CLIStart { struct CLIStart {