sankalp 569775f549 feat(src/commands): implement dynamic CPU TDP limit control and status reporting
New Features
- Add per‑CPU power limit commands using Intel RAPL (PL1/PL2) and AMD hwmon constraints
- Expose current TDP limits in status output, distinguishing RAPL, AMD hwmon, or hardware‑managed
- Gracefully handle absence of required sysfs entries

Enhancements
- Extend the power command set with a `LimitTdp` sub‑command
- Add debug logging for limit application attempts

Bug Fixes
- Ensure the command degrades gracefully when hardware does not support dynamic power caps
2026-03-12 00:11:29 +05:45
2026-03-11 21:53:48 +05:45

lapctl

lapctl is an upcoming command-line utility written in Rust for managing laptop hardware features on Linux.

It aims to provide a simple and unified interface for controlling hybrid GPU modes, battery charging limits, and other laptop power features directly from the terminal.


Planned Features

  • Switch GPU modes on hybrid graphics laptops

    • Integrated GPU
    • Hybrid mode
    • NVIDIA GPU
  • Set and manage battery charging limits

  • View laptop hardware and power status

  • Lightweight and fast CLI interface

  • Designed for Linux systems with hybrid GPUs (Optimus)


Project Status

Stable

This project has reached its first stable milestone with all planned features implemented.


Goals

  • Provide a simple CLI interface for laptop hardware management
  • Support hybrid GPU laptops (Intel + NVIDIA / AMD + NVIDIA)
  • Offer battery health features like charge limit control
  • Be lightweight, fast, and easy to use

Example CLI (Planned)

lapctl gpu integrated
lapctl gpu hybrid
lapctl gpu nvidia

lapctl battery limit 80
lapctl battery status

lapctl status

Built With

  • Rust
  • Modern Linux system interfaces

Project Structure

lapctl
│
├── Cargo.toml
├── README.md
├── LICENSE
├── .gitignore
│
├── src/
│   ├── main.rs
│   ├── cli.rs
│   │
│   ├── commands/
│   │   ├── mod.rs
│   │   ├── gpu.rs
│   │   ├── battery.rs
│   │   ├── power.rs
│   │   └── status.rs
│   │
│   ├── hardware/
│   │   ├── mod.rs
│   │   ├── gpu.rs
│   │   └── battery.rs
│   │
│   └── utils/
│       └── system.rs

Roadmap

  • CLI structure
  • GPU mode switching
  • Battery charge limit management
  • Hardware status command
  • Configuration support

Contributing

Contributions, ideas, and feature suggestions are welcome. More contribution guidelines will be added once the project reaches its first stable milestone.


License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

You are free to use, modify, and distribute this software under the terms of the license. For full details, see the LICENSE file in this repository.


⭐ If you find this project interesting, consider starring the repository to follow its progress.

S
Description
Zero dependency Rust CLI for managing Linux laptop hardware via sysfs/acpi; GPU switching, battery health, power limits, and cooling.
Readme MIT
330 KiB
0 Stars 1 Watchers 0 Forks
v0.3.5
Latest
2026-05-29 10:55:14 +00:00
Languages
Rust 99.4%
Just 0.6%