The refactor extracts argument construction into a reusable build_args function and adds unit tests, improving modularity and test coverage.
New Features
- Introduce build_args helper to construct inhibit command arguments.
- Add comprehensive unit tests for both empty and non‑empty argument scenarios.
Enhancements
- Refactor existing argument handling to use build_args, eliminating duplicated logic.
- Improve readability and maintainability of the inhibit command implementation.
Bug Fixes
- None
This command prevents system sleep while optionally executing a user‑provided command, offering both foreground and background inhibition modes.
- New Features
- Implemented inhibit.rs with logic to invoke systemd-inhibit.
- Exposed inhibit functionality by adding pub mod inhibit; to src/commands/mod.rs.
- Enhancements
- (none)
- Bug Fixes
- (none)
Implemented clearer cooling profile output by mapping mode codes to
human‑readable names and prefixing with "(ASUS)". Refactored thermal
detection loops for better readability and moved debug logging into the
correct block for GPU cache creation.
New Features
- Map mode strings "0","1","2" to readable cooling profile names
(Performance, Balanced, Quiet / Battery Saving) and print them with
"(ASUS)" label.
- Provide explicit cooling profile description in command output.
Enhancements
- Simplify Intel RAPL and AMD hwmon detection loops for clearer flow.
- Adjust brace placement in GPU cache creation to ensure debug log is
emitted only on successful cache write.
- Minor formatting and style clean‑ups across battery, GPU, and power
commands.
Bug Fixes
- Fix missing/incorrect closing braces in battery and power command
parsers that previously caused compilation warnings.
- Ensure thermal detection logic only accesses sysfs entries after
successful directory read.
- New Features
- None
- Enhancements
- Simplified percent range validation for battery mode.
- Combined existence and read checks for sysfs entries, removing redundant branches.
- Streamlined systemctl command arguments and removed unnecessary references.
- Removed superfluous braces and simplified cooling profile detection logic.
- Improved robustness of sysfs parsing for Intel RAPL and AMD hwmon temperature limits.
- Bug Fixes
- Fixed battery percent validation to use inclusive range (1..=100) instead of incorrect reference comparison.
- Made the three helper functions public to allow external usage
- Facilitates reuse of GPU configuration helpers
- No functional changes beyond visibility
Restructure loops, add explicit error handling, improve multi‑line messages, and fix formatting issues.
- Enhancements
- Use explicit braces for error branches to prevent silent failures
- Wrap warning and informational messages in multi‑line `println!` with consistent spacing
- Refactor directory reads for Ideapad fallback to avoid nested `let` bindings
- Improve parsing and formatting of AMD TDP limit output with clear parentheses
- Provide clearer debug logging when writing to threshold files
- Bug Fixes
- Added missing braces around error handling to ensure proper execution flow
- Fixed variable binding scope for `ideapad_entries` to prevent shadowing
- Ensured consistent handling of missing `charge_control_end_threshold` across all entries
no changes.
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
- New Features
- Implement fan_mode control for Ideapad laptops
- Implement thermal policy control for ASUS laptops via WMI
- Provide cooling command supporting performance, balanced, and quiet profiles
- Enhancements
- Display current cooling profile in `lapctl status` output
- Bug Fixes
- None
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.
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.
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
- 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