- New JSON-based parser for smartctl output (requires smartctl 7.3+) (#4).
- Support for NVMe drives (self-tests require smartctl 7.4+) (#4).
- New "Basic" JSON parser for SCSI, flash, and other non-ATA/NVMe drives.
- PCRE library is no longer required (the code has been ported to std::regex) (#40).
- A lot of code has been refactored and modernized using C++17 and C++20 features, removing much of the custom library code.
- The build process requires a C++20-compliant compiler now (GCC 13+, Clang 17+, Apple Clang 15+).
- CMake (3.14+) is now used as a build system instead of autotools.
- GSmartControl is now licensed under GNU GPL 3 only.
- Icons come from Oxygen project now (LGPL 3+) instead of Crystal project.
- Documentation in md format comes with the source code ("docs" directory).
- Support new versions and prereleases of smartctl (#46, #42).
- Better detection of drive types thanks to the JSON parser.
- Removed ATA AODC feature, it has been deprecated for a while now.
- Information window: Some values are aligned and monospaced to improve readability.
- Fixed command execution popup dialog being on top of all windows (#17).
- Other minor UI improvements and fixes.
- Windows: Better support for HiDPI (including fractional scaling).
- Windows: NSIS package is generated by CPack now.
- Windows: Packages are built using GitHub CI now.
Full Changelog: https://github.com/ashaduri/gsmartcontrol/commits/v2.0.0