diff -Nru rog-core-0.15.3/Cargo.lock rog-core-0.15.4/Cargo.lock --- rog-core-0.15.3/Cargo.lock 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/Cargo.lock 2020-07-21 22:35:05.000000000 +0000 @@ -710,7 +710,7 @@ [[package]] name = "rog-daemon" -version = "0.15.2" +version = "0.15.3" dependencies = [ "dbus", "dbus-tokio", diff -Nru rog-core-0.15.3/CHANGELOG.md rog-core-0.15.4/CHANGELOG.md --- rog-core-0.15.3/CHANGELOG.md 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/CHANGELOG.md 2020-07-21 22:35:05.000000000 +0000 @@ -5,6 +5,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [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 ## Changed - GX531 now supports same LED features as GX502 diff -Nru rog-core-0.15.3/debian/changelog rog-core-0.15.4/debian/changelog --- rog-core-0.15.3/debian/changelog 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/debian/changelog 2020-07-21 22:35:05.000000000 +0000 @@ -1,3 +1,9 @@ +rog-core (0.15.4) focal; urgency=medium + + - Minor corrections to two laptops + + -- Luke Jones Wed, 22 Jul 2020 10:35:05 +1200 + rog-core (0.15.3) focal; urgency=medium - Put G532 in right section for support diff -Nru rog-core-0.15.3/README.md rog-core-0.15.4/README.md --- rog-core-0.15.3/README.md 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/README.md 2020-07-21 22:35:05.000000000 +0000 @@ -7,12 +7,10 @@ kernel with correct support for the laptop keyboard EC. The app 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 -laptop backlight rather than emitting a key-press for the DE to handle. There is -also the possibility of rebinding fn keys to be macros which emit a series of -keyboard presses. +laptop backlight rather than emitting a key-press for the DE to handle. 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 @@ -20,29 +18,59 @@ ## 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:** - GL703(0x1869) - 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. 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+ 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+ | 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 - [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] Daemon mode - [X] Saving settings for reload @@ -51,13 +79,13 @@ + [X] Fan/Performance mode + [ ] Screen off? Now mapped to a keycode but has no effect + [X] Screen brightness up/down - + [X] Touchpad toggle (using a virtual keyboard to emit F21...) + + [X] Touchpad toggle + [X] Sleep + [X] Airplane mode - [X] Capture and use hotkeys + [X] Aura control by Aura keys + [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] AniMatrix display on G14 models that include it - [X] Set battery charge limit (with kernel supporting this) diff -Nru rog-core-0.15.3/rog-core/Cargo.toml rog-core-0.15.4/rog-core/Cargo.toml --- rog-core-0.15.3/rog-core/Cargo.toml 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/rog-core/Cargo.toml 2020-07-21 22:35:05.000000000 +0000 @@ -1,6 +1,6 @@ [package] name = "rog-daemon" -version = "0.15.2" +version = "0.15.3" license = "MPL-2.0" readme = "README.md" authors = ["Luke "] diff -Nru rog-core-0.15.3/rog-core/src/laptops.rs rog-core-0.15.4/rog-core/src/laptops.rs --- rog-core-0.15.3/rog-core/src/laptops.rs 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/rog-core/src/laptops.rs 2020-07-21 22:35:05.000000000 +0000 @@ -104,33 +104,34 @@ support_animatrix: false, }; - // GA401 + // AniMe, no RGB if board_name.starts_with("GA401") { info!("No RGB control available"); // TODO: actual check for the AniMe device here laptop.support_animatrix = true; - // GA502 + // No AniMe, no RGB } else if board_name.starts_with("GA502") || board_name.starts_with("GU502") { info!("No RGB control available"); - // GX502, G712 + // RGB, per-key settings, no zones } 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") { laptop.supported_modes = vec![ SINGLE, BREATHING, STROBE, RAINBOW, STAR, RAIN, HIGHLIGHT, LASER, RIPPLE, PULSE, COMET, 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") { 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") + || board_name.starts_with("GX531") || board_name.starts_with("G512") || board_name.starts_with("G712") - || board_name.starts_with("G531") { laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE, MULTISTATIC]; } else { diff -Nru rog-core-0.15.3/rog-core/src/main.rs rog-core-0.15.4/rog-core/src/main.rs --- rog-core-0.15.3/rog-core/src/main.rs 2020-07-21 10:07:53.000000000 +0000 +++ rog-core-0.15.4/rog-core/src/main.rs 2020-07-21 22:35:05.000000000 +0000 @@ -9,7 +9,7 @@ }; use std::io::Write; -static VERSION: &str = "0.15.2"; +static VERSION: &str = "0.15.3"; #[derive(Options)] struct CLIStart { Binary files /tmp/tmpSMzwm6/0bQjkVuqjd/rog-core-0.15.3/vendor.tar.xz and /tmp/tmpSMzwm6/y2Wk9npRcj/rog-core-0.15.4/vendor.tar.xz differ