This crate helps you to detect the current desktop environment.
It was inspired by the detectDE
function from xdg-util.
Run the following command in your project:
cargo add detect-desktop-environment
use detect_desktop_environment::DesktopEnvironment;
fn main() {
match DesktopEnvironment::detect() {
Some(de) => println!("detected desktop environment: {de:?}"),
None => println!("failed to detect desktop environment"),
}
}
This library exposes two symbols: the detect
function and it returns value: the
DesktopValue
enum. All the variants are listed below in the "Supported environments"
section.
Name | Thumbnail |
---|---|
Cinnamon |
![]() |
Cosmic |
![]() |
Dde |
![]() |
Ede |
![]() |
Endless |
![]() |
Enlightenment |
![]() |
Gnome |
![]() |
Hyprland |
![]() |
Kde |
![]() |
Lxde |
![]() |
Lxqt |
![]() |
MacOs |
![]() |
Mate |
![]() |
Old |
![]() |
Pantheon |
![]() |
Razor |
![]() |
Rox |
![]() |
Sway |
![]() |
Tde |
![]() |
Unity |
![]() |
Windows |
![]() |
Xfce |
![]() |
See docs.rs/detect-desktop-environment.
This library is stable and no major changes are expected.
If you want to improve the library, feel free to open an issue or send a PR. Breaking changes are allowed. Note however that review times may be slow.
The last 8 stable versions are explicitly supported (1 year). See Cargo.toml for details.