Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# asusctl for ASUS ROG
# asusctl for ASUS

<p align="center">
<a href="https://www.patreon.com/bePatron?u=7602281"><img src="extra/icons/patreon-button.svg" width="190" height="32" alt="Become a Patron" /></a>
Expand All @@ -7,9 +7,6 @@
<a href="https://discord.gg/B8GftRW2Hd"><img src="extra/icons/discord-button.svg" width="190" height="32" alt="Discord" /></a>
</p>

> [!WARNING]
> **Kernel Patch Requirement:** Many features are developed alongside Linux kernel updates. If an expected feature is missing, ensure your system is running the latest stable kernel or a kernel containing the required patches.

`asusctl` is a system control utility for Linux designed primarily for ASUS laptops, with reduced functionality available for non-ASUS hardware.

The project consists of three core components:
Expand Down Expand Up @@ -44,15 +41,19 @@ Devices displaying these hardware IDs typically function without extra configura

Features such as battery charge thresholds use generic kernel interfaces and work on non-ASUS hardware, but platform and fan controls require ASUS-specific `asus-nb-wmi` or `asus-armoury` drivers.

### Kernel requirements
> [NOTE]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add: !

> For models that does not expose N-Key on lsusb, that mostly means your device need lamparray support. You can follow this [issue](https://github.com/OpenGamingCollective/asusctl/issues/119) for more info.

Due to ongoing development, the minimum suggested kernel version is always **the latest**, as improvements are merged upstream continuously.
### Kernel requirements

Support for Thermal Design Power (TDP) is tied to the new `asus-armoury` driver: available mainline since Linux 6.19: everything older is not supported.
> [WARNING]
> **Kernel Patch Requirement:** Many features are developed alongside Linux kernel updates. Due to ongoing upstream development, the recommended kernel version is always **the latest stable release**.
- **General features:** Require a recent upstream kernel or distribution kernel containing the necessary ASUS WMI patches.
- **TDP & modern platform controls:** Require the `asus-armoury` driver, available in mainline Linux **6.19 or greater**. Older kernels are not supported for these features.

### Display server support (X11)

> [!NOTE]
> [NOTE]
> X11 is officially unsupported. Technical assistance is not provided for X11 environments due to developer resource constraints and the unmaintained status of X11 itself.
>
> Users who require X11 integration may compile the GUI application with X11 support enabled using `cargo build --features "rog-control-center/x11"`. Operation on unmaintained display servers remains the responsibility of the user.
Expand All @@ -63,17 +64,20 @@ Feature availability depends on upstream Linux kernel support and specific hardw

### Power and performance

- [x] **Battery charge thresholds:** Configure maximum charging limits (requires kernel support)
- [x] **Battery charge thresholds:** Configure maximum charging limits (requires kernel and EC support)
- [x] **Custom fan curves:** Adjust fan profiles on supported hardware
- [x] **GPU MUX toggling:** Switch GPU operational modes (G-Sync / MUX) on 2022 and newer laptops
- [x] **Power profile management:** Control system performance profiles as detailed in [MANUAL.md](MANUAL.md)

> [NOTE]
> The battery charge threshold requires a supported EC. The EC may not expose all the charging limit: that means you may be able to only limit it to 80% and not every percentage. See this [issue](https://github.com/OpenGamingCollective/asusctl/issues/153) for more info.

### Lighting and displays

- [x] **Built-in LED controls:** Adjust integrated keyboard lighting modes
- [x] **Per-key RGB configuration:** Customize individual key backlight settings
- [x] **Advanced lighting effects:** Apply custom animation modes (currently undergoing revision)
- [x] **AniMe Matrix displays:** Control panel rendering on equipped G14, M16, and Strix Scar 16/18 models
- [x] **AniMe Matrix displays:** Control panel rendering on equipped G14, M16, and Strix Scar 16/18 models

### System integration

Expand All @@ -83,7 +87,7 @@ Feature availability depends on upstream Linux kernel support and specific hardw

### Additional hardware configuration notes

Keyboard backlight support relies on hardware mappings defined in [`./rog-aura/data/aura_support.ron`](./rog-aura/data/aura_support.ron), installed to `/usr/share/asusd/aura_support.ron`. Because keyboard controller configurations vary across model generations and firmware revisions, explicit layout definitions prevent misconfigurations. Refer to the [rog-aura README](./rog-aura/README.md) for configuration details.
Keyboard backlight support relies on hardware mappings defined in [`aura_support.ron`](./rog-aura/data/aura_support.ron), installed to `/usr/share/asusd/aura_support.ron`. Because keyboard controller configurations vary across model generations and firmware revisions, explicit layout definitions prevent misconfigurations. Refer to the [rog-aura README](./rog-aura/README.md) for configuration details.

## Installation and setup

Expand Down Expand Up @@ -229,4 +233,4 @@ References to ASUS products, services, or trademarks within this repository do n

## AI Disclaimer

We do not accept code blindly written with just AI or "vibecoding". We encourage use of AI for finding bugs and as a tool used to assist development, but all of these must be verified by a human as AI makes mistakes and gives false bug reports as well. For further details, refer to [our contribution policy](./CONTRIBUTING.md)
We do not accept code blindly written with just AI or "vibecoding". We encourage use of AI for finding bugs and as a tool used to assist development, but all of these must be verified by a human as AI makes mistakes and gives false bug reports as well. For further details, refer to our [contribution policy](CONTRIBUTING.md)
147 changes: 0 additions & 147 deletions design-patterns.md

This file was deleted.

7 changes: 7 additions & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@

- [asusctl](usage/asusctl.md)

# Developers' docs

- [Design patterns](docs/developers/design_patterns.md)
- [GPU Mode Switching summary](docs/developers/gpu_mode_switching_summary.md)
- [Developers' manual](docs/developers/manual.md)
- [Packaging](docs/developers/packaging.md)

# FAQ

- [General](faq/general.md)
Expand Down
Loading