The minimal (core) installation ships the `ubuntustudio-desktop-core`
metapackage instead of `ubuntustudio-desktop`, so the existing check
missed it and the system was reported as Kubuntu.
Fixes#2485
* add support for proxmox backup server detection
* Update Proxmox identifiers and pretty names
* Simplify Proxmox logo names in p.inc
---------
Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
* feat(os): enhance Deepin detection with os-version data
Add a Deepin-specific enhancement in Linux OS detection that reads
`/etc/os-version` for `MinorVersion` and `EditionName`.
When available, it now:
- sets `versionID` to `MinorVersion`
- updates `prettyName` to include version and optional edition
This improves Deepin version accuracy and provides a clearer OS name
than relying solely on generic `os-release` fields.feat(os): enhance Deepin detection with os-version data
Add a Deepin-specific enhancement in Linux OS detection that reads
`/etc/os-version` for `MinorVersion` and `EditionName`.
When available, it now:
- sets `versionID` to `MinorVersion`
- updates `prettyName` to include version and optional edition
This improves Deepin version accuracy and provides a clearer OS name
than relying solely on generic `os-release` fields.
* fix(os): use distro name when formatting Deepin prettyName
Update Deepin enhancement formatting to build `prettyName` from
`result->name` instead of hardcoding "Deepin". This keeps output
consistent with the detected distro name while still appending version
and edition details.fix(os): use distro name when formatting Deepin prettyName
Update Deepin enhancement formatting to build `prettyName` from
`result->name` instead of hardcoding "Deepin". This keeps output
consistent with the detected distro name while still appending version
and edition details.
* fix(os/linux): guard Deepin minor version override
Only apply Deepin’s `minor` value to `versionID` when an edition is
present and `prettyName` does not already include parenthesized details.
This avoids incorrectly overriding parsed version info in enhanced names.fix(os/linux): guard Deepin minor version override
Only apply Deepin’s `minor` value to `versionID` when an edition is
present and `prettyName` does not already include parenthesized details.
This avoids incorrectly overriding parsed version info in enhanced names.
Co-authored-by: Copilot <copilot@github.com>
* Refactor Deepin enhancement detection logic
* Refactor detectDeepinEnhancement function
---------
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
* fix(os): detect Ubuntu Studio before KDE-based flavor checks
Add an explicit Ubuntu Studio detection in `getUbuntuFlavour()` by
checking for `/usr/share/doc/ubuntustudio-desktop` and setting
`name`, `id`, and `idLike` accordingly.
This prevents Ubuntu Studio systems from being misidentified as
Kubuntu when KDE/Plasma-related XDG config paths are present.fix(os): detect Ubuntu Studio before KDE-based flavor checks
Add an explicit Ubuntu Studio detection in `getUbuntuFlavour()` by
checking for `/usr/share/doc/ubuntustudio-desktop` and setting
`name`, `id`, and `idLike` accordingly.
This prevents Ubuntu Studio systems from being misidentified as
Kubuntu when KDE/Plasma-related XDG config paths are present.
* refactor(os): detect Ubuntu Studio via package presence
* Logo (Builtin): adds Emmabuntüs Logo
* Add Detection for Emmabuntüs
* Update ASCII art in emmabuntus.txt
* Remove duplicate name for Emmabuntus logo
* Update emmabuntus.txt
* Update colors for Emmabuntus logo
---------
Co-authored-by: zamhedonia <zamhedonia@gmx.de>
Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
* Proper detection of lliurex distribution
* fix newline
* Trim version and not versionID as assigned to lliurex-version output
* Update os_linux.c
---------
Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
Moves module option structs out of global config and removes dynamic allocation, using static buffers and size assertions for safer, simpler management.
Refactors module initialization and destruction to work with isolated option structs, eliminating the need for the previous modules container and related code.
Unifies module option header usage and updates detection logic to leverage statically-sized option buffers, improving encapsulation and maintainability.
Simplifies module function signatures and reduces coupling between modules and config.
Enhances future extensibility and reliability by enforcing max size constraints and removing unnecessary indirections.