You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jade/src/functions/desktops.rs

155 lines
4.5 KiB
Rust

use crate::internal::exec::*;
use crate::internal::*;
pub fn choose_pkgs(desktop_setup: &str) {
log(format!("Installing {}", desktop_setup));
match desktop_setup {
"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");
}
"gnome" => {
install(vec![
"xorg",
"gnome",
"gnome-tweaks",
"chrome-gnome-shell",
"gdm",
]);
enable_dm("gdm");
}
"kde" => {
install(vec![
"xorg",
"kde",
"plasma",
"plasma-wayland-session",
"kde-applications",
"sddm",
]);
enable_dm("sddm");
}
"budgie" => {
install(vec![
"xorg",
"budgie-desktop",
"gnome",
"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");
}
"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");
}
"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");
}
"xfce" => {
install(vec![
"xorg",
"xfce4",
"lightdm",
"lightdm-gtk-greeter",
"lightdm-gtk-greeter-settings",
"xfce4-goodies",
]);
files_eval(
files::append_file(
"/mnt/etc/lightdm/lightdm.conf",
"[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n",
),
"Add lightdm greeter",
);
enable_dm("lightdm");
}
"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");
}
_ => {
crash("Unknown desktop setup".to_string(), 1);
}
}
install(vec!["networkmanager"]);
exec_eval(
exec_chroot("systemctl", vec![String::from("enable"), String::from("NetworkManager")]),
"Enable network manager"
);
}
fn enable_dm(dm: &str) {
log(format!("Enabling {}", dm));
exec_eval(
exec_chroot("systemctl", vec![String::from("enable"), String::from(dm)]),
format!("Enable {}", dm).as_str(),
);
}