use crate::args::DesktopSetup; use crate::internal::exec::*; use crate::internal::*; pub fn install_desktop_setup(desktop_setup: DesktopSetup) { log::debug!("Installing {:?}", desktop_setup); match desktop_setup { DesktopSetup::Onyx => install_onyx(), DesktopSetup::Gnome => install_gnome(), DesktopSetup::Kde => install_kde(), DesktopSetup::Budgie => install_budgie(), DesktopSetup::Cinnamon => install_cinnamon(), DesktopSetup::Mate => install_mate(), DesktopSetup::Xfce => install_xfce(), DesktopSetup::Enlightenment => install_enlightenment(), DesktopSetup::None => log::debug!("No desktop setup selected"), } install_networkmanager(); } fn install_networkmanager() { install(vec!["networkmanager"]); exec_eval( exec_chroot( "systemctl", vec![String::from("enable"), String::from("NetworkManager")], ), "Enable network manager", ); } fn install_enlightenment() { install(vec![ "xorg", "enlightenment", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", "terminology", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn install_xfce() { install(vec![ "xorg", "xfce4", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", "xfce4-goodies", "pipewire", "pipewire-pulse", "pipewire-jack", "pipewire-alsa", "pavucontrol", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn install_mate() { install(vec![ "xorg", "mate", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", "mate-extra", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn install_cinnamon() { install(vec![ "xorg", "cinnamon", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", "metacity", "gnome-shell", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn install_budgie() { install(vec![ "xorg", "budgie-desktop", "gnome", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", "xdg-desktop-portal", "xdg-desktop-portal-gtk", "xdg-utils", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn install_kde() { install(vec![ "xorg", "plasma", "plasma-wayland-session", "kde-utilities", "kde-system", "sddm", ]); enable_dm("sddm"); } fn install_gnome() { install(vec![ "xorg", "gnome", "gnome-tweaks", "chrome-gnome-shell", "gdm", ]); enable_dm("gdm"); } fn install_onyx() { install(vec![ "xorg", "onyx", "lightdm", "lightdm-gtk-greeter", "lightdm-gtk-greeter-settings", ]); files_eval( files::append_file( "/mnt/etc/lightdm/lightdm.conf", "[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n", ), "Add lightdm greeter", ); enable_dm("lightdm"); } fn enable_dm(dm: &str) { log::debug!("Enabling {}", dm); exec_eval( exec_chroot("systemctl", vec![String::from("enable"), String::from(dm)]), format!("Enable {}", dm).as_str(), ); }