Adds a new Cooling command group with selectable fan profiles (Performance, Balanced, Quiet) and updates the CLI and logging accordingly.
- New Features
- Introduce Cooling subcommands for setting thermal management modes
- Implement runtime logic to apply selected fan profiles
- Enhancements
- Extend CLI enum `Commands` to include `Cooling` and dispatch handling
- Refine env_logger formatting to output only `[LEVEL] message`
- Integrate cooling execution into the main command dispatch flow
- Bug Fixes
- No bug fixes introduced in this change
The changes introduce a robust `BatteryCommands::Limit` implementation that validates user‑provided percentages, writes charge‑control thresholds, and gracefully handles Lenovo Ideapad firmware via the `conservation_mode` fallback. The `lapctl status` command is also updated to display battery‑specific details such as capacity, status, and charge limits, replacing the previous generic placeholder.
New Features
- Added `BatteryCommands::Limit` handling with range validation (1‑100) and support for multiple `/sys/class/power_supply` entries.
- Implemented Ideapad fallback using `conservation_mode` to provide custom charge limits or warnings when unsupported.
- Extended `lapctl status` to show charge limit and Conservation Mode for each battery.
Enhancements
- Added root‑privilege check (`assert_root`) and improved error/debug logging throughout the command.
- Restructured directory traversal logic for readability and added `debug!` traces on write failures.
- Re‑used status logic to present battery‑specific information instead of a generic placeholder.
Bug Fixes
- Resolved placeholder status output and proper handling of missing `charge_control_end_threshold` files.
- Ensured correct exit codes and clear error messages for invalid percentage inputs.
The `status` command now displays the current power profile by reading `/sys/firmware/acpi/platform_profile`, giving users insight into power usage.
New Features
- Output power profile status to the console.
Enhancements
- Enriches status command with additional hardware information.
The removed file contained outdated GPU power‑management integration now handled elsewhere; updating the README marks the associated tasks as completed.
Enhancements:
- Marked CLI structure, GPU mode switching, and hardware status command as completed.
Set CPU scaling governor, energy performance preference, and ACPI platform profile for performance, balanced, and battery‑save modes. Added root assertion and detailed logging.
- New Features: Added set_cpu_governor, set_energy_performance_preference, set_platform_profile; integrated into execute for each PowerCommands variant.
- Enhancements: Use of logging to report successes/failures; fallback to modern scheduler governor (schedutil); validation of CPU sysfs paths.
- Bug Fixes: Guard against missing sysfs entries; improved debugging messages.
Add clap‑based CLI with subcommands (gpu, battery, power, status), verbose flag, and detailed options such as rtd3, use_nvidia_current, etc.
- New Features
- New CLI entry point with complete subcommand hierarchy
- Verbose logging support
- Granular command options for GPU, Battery, Power, Status
- Enhancements
- Replace placeholder hello world with proper logging initialization
- Modularize command implementations into dedicated modules
New Features:
- Battery module with placeholder `info` function.
- GPU module with functions to detect NVIDIA mode, retrieve PCI bus IDs, identify Intel/AMD iGPU vendors, and extract AMD GPU names via xrandr.
Enhancements:
- Add logging for diagnostic messages and runtime checks.
- Include safety validation for external commands (lspci, xrandr) and configuration files.
Added full command implementations for battery limit/status, GPU management (cache operations, mode switching, NVIDIA handling), and a status reporter that prints GPU mode and battery details. Introduced module registration and placeholder power command.
New Features
- Battery command support (`limit`, `status`)
- GPU command suite (`cache-delete`, `cache-query`, `reset`, `reset-sddm`, `integrated`, `hybrid`, `nvidia`)
- Status command output showing GPU mode and battery information
- Power command placeholder scaffold
Enhancements
- Unified command registration via `mod.rs`
- Added root checks and file utilities for cache and config operations
- Integrated logging infrastructure
Bug Fixes: none
- New Features
- Introduced cached configuration for hybrid Optimus systems
- Added command‑line options for switching, resetting, and cache management
- Enhancements
- Integrated clap‑derived CLI parsing
- Updated project dependencies via Cargo.lock
- Improved error handling and logging
Add empty system.rs file in src/utils as a placeholder for future system utilities.
- New Features
- Add system module skeleton
- Enhancements
- Bug Fixes
- New Features
- battery.rs: new command to display battery charge and health
- gpu.rs: new command to query GPU utilization and temperature
- power.rs: new command to show power consumption and mode
- status.rs: new command to provide overall system status overview
Add main entry point and scaffold CLI module to start building the tool.
- New Features:
- Added `src/main.rs` with a hello‑world entry point.
- Added `src/cli.rs` as placeholder for future CLI command definitions.
- Enhancements:
- None
- Bug Fixes:
- None
Why: initialize Rust project and configure ignore patterns
New Features
- Initialize new Rust package `lapctl`.
Enhancements
- Add .gitignore entries for IDE metadata and build output.
Bug Fixes
- (none)
This adds the project's README documenting its purpose, planned features, and roadmap to orient contributors and users.
- New Features
- Introduce overview of lapctl, including hybrid GPU control, battery limit management, and status commands
- Enhancements
- Provide structured sections for project status, goals, example CLI, and roadmap
- Bug Fixes
- None