let RUN_IN_CHROOT = true; def install_base [] { install networkmanager install_pipewire } def install_pipewire [] { ( install pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber helvum ) } module dm { export def lightdm [] { ( install lightdm lightdm-greeter lightdm-greeter-settings ) run systemctl enable lightdm } export def gdm [] { install gdm run systemctl enable gdm } export def sddm [] { install sddm run systemctl enable sddm } } module desktop { use dm export def onyx [] { dm gdm ( install xorg onyx sushi ) } export def gnome [] { dm gdm ( install xorg gnome sushi ) } export def kde [] { dm sddm ( install xorg plasma plasma-wayland-session kde-utilities kde-system sddm ) } export def budgie [] { dm lightdm ( install xorg budgie-desktop gnome xdg-desktop-portal xdg-desktop-portal-gtk xdg-utils ) } export def cinnamon [] { dm lightdm ( install xorg cinnamon metacity gnome-shell gnome-terminal ) } export def mate [] { dm lightdm ( install xorg mate mate-extra ) } export def xfce [] { dm lightdm ( install xorg xfce4 xfce4-goodies pavucontrol ) } export def enlightenment [] { dm lightdm ( install xorg enlightenment terminology ) } export def lxqt [] { dm sddm ( install xorg lxqt breeze-icons nm-tray xscreensaver ) } export def sway [] { dm sddm ( install xorg-xwayland sway bemenu foot mako polkit swaybg xdg-user-dirs dex polkit-gnome ) } export def i3 [] { dm lightdm ( install xorg i3-wm dmenu i3lock i3status rxvt-unicode xdg-user-dirs dex polkit-gnome ) } export def herbstluftwm [] { dm lightdm ( install xorg herbstluftwm dmenu dzen2 xorg-xsetroot xdg-user-dirs ) } export def awesomewm [] { dm lightdm ( install xorg awesome dex rlwrap vicious xdg-user-dirs ) } export def bspwm [] { dm lightdm ( install xorg bspwm sxhkd xdo xdg-user-dirs ) } } # Applies all system changes of `install-desktop` def main [cfg] { echo $"Installing desktop ($cfg)" install_base use desktop match $cfg { "Onyx" => {desktop onyx}, "KdePlasma" => {desktop kde}, "Mate" => {desktop mate}, "Gnome" => {desktop gnome}, "Cinnamon" => {desktop cinnamon}, "Xfce" => {desktop xfce}, "Budgie" => {desktop budgie}, "Enlightenment" => {desktop enlightenment}, "Lxqt" => {desktop lxqt}, "Swaq" => {desktop sway}, "I3Gaps" => {desktop i3}, "HerbstluftWM" => {desktop herbstluftwm}, "AwesomeWM" => {desktop awesomewm}, "Bspwm" => {desktop bspwm}, } }