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.
369 lines
8.5 KiB
Rust
369 lines
8.5 KiB
Rust
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::Lxqt => install_lxqt(),
|
|
DesktopSetup::Sway => install_sway(),
|
|
DesktopSetup::I3 => install_i3(),
|
|
DesktopSetup::Herbstluftwm => install_herbstluftwm(),
|
|
DesktopSetup::Awesome => install_awesome(),
|
|
DesktopSetup::Bspwm => install_bspwm(),
|
|
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_bspwm() {
|
|
install(vec![
|
|
"xorg",
|
|
"bspwm",
|
|
"sxhkd",
|
|
"xdo",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"xdg-user-dirs",
|
|
]);
|
|
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_awesome() {
|
|
install(vec![
|
|
"xorg",
|
|
"awesome",
|
|
"dex",
|
|
"rlwrap",
|
|
"vicious",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"xdg-user-dirs",
|
|
]);
|
|
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_herbstluftwm() {
|
|
install(vec![
|
|
"xorg",
|
|
"herbstluftwm",
|
|
"dmenu",
|
|
"dzen2",
|
|
"xorg-xsetroot",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"xdg-user-dirs",
|
|
]);
|
|
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_i3() {
|
|
install(vec![
|
|
"xorg",
|
|
"i3-wm",
|
|
"dmenu",
|
|
"i3lock",
|
|
"i3status",
|
|
"rxvt-unicode",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"xdg-user-dirs",
|
|
"dex",
|
|
"polkit-gnome",
|
|
]);
|
|
files_eval(
|
|
files::append_file(
|
|
"/mnt/etc/lightdm/lightdm.conf",
|
|
"[SeatDefaults]\ngreeter-session=lightdm-gtk-greeter\n",
|
|
),
|
|
"Add lightdm greeter",
|
|
);
|
|
files_eval(
|
|
files::append_file("/mnt/etc/i3/config", "exec --no-startup-id dex -a\n"),
|
|
"Add dex to i3 config for autostart",
|
|
);
|
|
files_eval(
|
|
files::append_file(
|
|
"/mnt/etc/i3/config",
|
|
"exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1",
|
|
),
|
|
"Add polkit gnome to i3 config",
|
|
);
|
|
enable_dm("lightdm");
|
|
}
|
|
|
|
fn install_sway() {
|
|
install(vec![
|
|
"xorg-xwayland",
|
|
"sway",
|
|
"bemenu",
|
|
"foot",
|
|
"mako",
|
|
"polkit",
|
|
"swaybg",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"sddm",
|
|
"xdg-user-dirs",
|
|
"dex",
|
|
"polkit-gnome",
|
|
]);
|
|
files_eval(
|
|
files::append_file("/mnt/etc/sway/config", "exec --no-startup-id dex -a\n"),
|
|
"Add dex to sway config for autostart",
|
|
);
|
|
files_eval(
|
|
files::append_file(
|
|
"/mnt/etc/sway/config",
|
|
"exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1",
|
|
),
|
|
"Add polkit gnome to sway config",
|
|
);
|
|
enable_dm("sddm");
|
|
}
|
|
|
|
fn install_lxqt() {
|
|
install(vec![
|
|
"xorg",
|
|
"lxqt",
|
|
"breeze-icons",
|
|
"nm-tray",
|
|
"xscreensaver",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"sddm",
|
|
]);
|
|
enable_dm("sddm");
|
|
}
|
|
|
|
fn install_enlightenment() {
|
|
install(vec![
|
|
"xorg",
|
|
"enlightenment",
|
|
"terminology",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"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 install_xfce() {
|
|
install(vec![
|
|
"xorg",
|
|
"xfce4",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"xfce4-goodies",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-jack",
|
|
"pipewire-alsa",
|
|
"wireplumber",
|
|
"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",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"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",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"lightdm",
|
|
"lightdm-gtk-greeter",
|
|
"lightdm-gtk-greeter-settings",
|
|
"metacity",
|
|
"gnome-shell",
|
|
"gnome-terminal",
|
|
]);
|
|
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",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"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",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"sddm",
|
|
]);
|
|
enable_dm("sddm");
|
|
}
|
|
|
|
fn install_gnome() {
|
|
install(vec![
|
|
"xorg",
|
|
"gnome",
|
|
"sushi",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"gdm",
|
|
]);
|
|
enable_dm("gdm");
|
|
}
|
|
|
|
fn install_onyx() {
|
|
install(vec![
|
|
"xorg",
|
|
"onyx",
|
|
"sushi",
|
|
"pipewire",
|
|
"pipewire-pulse",
|
|
"pipewire-alsa",
|
|
"pipewire-jack",
|
|
"wireplumber",
|
|
"gdm",
|
|
]);
|
|
enable_dm("gdm");
|
|
}
|
|
|
|
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(),
|
|
);
|
|
}
|