pub struct DesktopProfile {
pub id: &'static str,
pub display_name: &'static str,
pub packages: &'static [&'static str],
pub display_manager: &'static str,
pub optional_extras: &'static [&'static str],
}
pub static PROFILES: &[DesktopProfile] = &[
DesktopProfile {
id: "kde",
display_name: "KDE Plasma",
packages: &["kde-plasma-desktop", "sddm"],
display_manager: "sddm",
optional_extras: &["kde-standard", "plasma-browser-integration"],
},
DesktopProfile {
id: "gnome",
display_name: "GNOME",
packages: &["gnome-core", "gdm3"],
display_manager: "gdm3",
optional_extras: &["gnome-tweaks", "gnome-shell-extensions"],
},
DesktopProfile {
id: "xfce",
display_name: "XFCE",
packages: &["xfce4", "xfce4-goodies", "lightdm"],
display_manager: "lightdm",
optional_extras: &["lightdm-gtk-greeter"],
},
DesktopProfile {
id: "mate",
display_name: "MATE",
packages: &["mate-desktop-environment", "lightdm"],
display_manager: "lightdm",
optional_extras: &["mate-desktop-environment-extras"],
},
DesktopProfile {
id: "lxqt",
display_name: "LXQt",
packages: &["lxqt", "sddm"],
display_manager: "sddm",
optional_extras: &["lxqt-themes"],
},
DesktopProfile {
id: "cinnamon",
display_name: "Cinnamon",
packages: &["cinnamon", "lightdm"],
display_manager: "lightdm",
optional_extras: &["nemo"],
},
];
pub fn find_profile(id: &str) -> Option<&'static DesktopProfile> {
PROFILES.iter().find(|p| p.id == id.to_lowercase())
}