setup: fix module scripts and add TUI installer
Module fixes across the board: - package-managers.sh: add sudo, --noconfirm, idempotency guards for yay/rustup/nvm, mkdir -p, remove stale version comments - core-packages.sh: add --noconfirm --needed, remove invalid 'nvim' package name, deduplicate ~15 repeated entries - shell-setup.sh: move color vars to top (were defined after use, RESET never defined), RUNZSH=no CHSH=no for oh-my-zsh (was spawning new shell and halting script), --yes for starship installer - hyprland-new.sh: mkdir -p before cd, ln -sf for xdg-terminal-exec and ssh-askpass, remove flatpak-system-helper enable, comment out hyprpm and WallRizz -w (require live session), mkdir -p ~/Pictures, add walker-bin/ulauncher to yay installs, --noconfirm on yay - sway.sh: fix gitgreetd-tuigreet typo, --noconfirm --needed, yay idempotency, rm -f for bashrc/zshrc, ln -sf everywhere, mkdir -p for spotify-tui, remove hard reboot, RUNZSH=no/--yes for shell tools - gaming-packages.sh: add missing shebang, --noconfirm, flatpak -y - network-developer-packages.sh: --noconfirm --needed, fix inline comment - zfs.sh / wprs.sh: add yay --noconfirm flags - All scripts: set -euo pipefail New: setup/tui-install.sh — dialog-based TUI installer with Cyberqueer theme, component checklist, DE submenu, step counter, and per-module error handling Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main
parent
e50cb5dc50
commit
9d2ae9f15e
|
|
@ -1,124 +1,139 @@
|
|||
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Hyprland Environment Installer ==="
|
||||
|
||||
# 1. Update system and install Flatpak
|
||||
echo "Updating system and installing Flatpak..."
|
||||
sudo pacman -Syu --noconfirm flatpak
|
||||
sudo systemctl enable --now flatpak-system-helper.service
|
||||
sudo pacman -Syu --noconfirm --needed flatpak
|
||||
|
||||
# 2. Install required packages (from hyprland.sh)
|
||||
# 2. Install required packages
|
||||
echo "Installing required packages..."
|
||||
sudo pacman -Syu --noconfirm --needed hyprland hyprcursor wl-clipboard hyprpaper hyprlock wofi kitty dunst nwg-dock-hyprland nwg-drawer nwg-menu nwg-look python cmake meson cpio pkgconf ruby-pkg-config hyprsunset hypridle ksshaskpass nm-connection-editor network-manager-applet blueman bluez pipewire alsa-utils firefox greetd-tuigreet grim slurp gst-plugin-pipewire imagemagick nerd-fonts otf-font-awesome pipewire-alsa pipewire-jack pipewire-pulse qt5-wayland qt6-wayland swww ttf-jetbrains-mono wireplumber wofi qt6ct xdg-desktop-portal-hyprland xdg-utils xorg-server xorg-xinit papirus-icon-theme cool-retro-term qalculate-gtk iwd dbus thunar tumbler thunar-archive-plugin thunar-shares-plugin thunar-volman hyprpicker pcmanfm-qt udisks2 ly
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
hyprland hyprcursor wl-clipboard hyprpaper hyprlock wofi kitty dunst \
|
||||
nwg-dock-hyprland nwg-drawer nwg-menu nwg-look \
|
||||
python cmake meson cpio pkgconf ruby-pkg-config \
|
||||
hyprsunset hypridle ksshaskpass \
|
||||
nm-connection-editor network-manager-applet blueman bluez \
|
||||
pipewire alsa-utils firefox greetd-tuigreet \
|
||||
grim slurp gst-plugin-pipewire imagemagick \
|
||||
nerd-fonts otf-font-awesome \
|
||||
pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
qt5-wayland qt6-wayland swww ttf-jetbrains-mono wireplumber \
|
||||
qt6ct xdg-desktop-portal-hyprland xdg-utils \
|
||||
xorg-server xorg-xinit papirus-icon-theme \
|
||||
cool-retro-term qalculate-gtk iwd dbus \
|
||||
thunar tumbler thunar-archive-plugin thunar-shares-plugin thunar-volman \
|
||||
hyprpicker pcmanfm-qt udisks2 ly
|
||||
|
||||
# 3. Run core.sh steps (network, cron, greetd, fail2ban, udisks2)
|
||||
# 3. Enable essential services
|
||||
echo "Enabling essential services..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
#sudo systemctl enable cronie.service
|
||||
#sudo systemctl enable greetd.service
|
||||
sudo systemctl disable getty@tty1.service
|
||||
sudo systemctl disable getty@tty1.service || true
|
||||
sudo systemctl enable ly@tty1.service
|
||||
#sudo systemctl enable fail2ban.service
|
||||
sudo systemctl enable udisks2.service
|
||||
|
||||
# 4. Install AUR packages (from hyprland.sh)
|
||||
# 4. Install AUR packages
|
||||
echo "Installing AUR packages..."
|
||||
rustup default stable
|
||||
yay -Syu --answerdiff None --answerclean All hyprland-workspaces vicinae-bin bluetuith wvkbd kew iwmenu bzmenu pinta localsend udiskie rust rustup
|
||||
yay -Syu --answerdiff None --answerclean All --noconfirm \
|
||||
hyprland-workspaces vicinae-bin bluetuith wvkbd kew iwmenu \
|
||||
walker-bin ulauncher bzmenu pinta localsend udiskie
|
||||
|
||||
# 5. EWW bar selection and compilation (from hyprland.sh)
|
||||
# 5. EWW bar selection and compilation
|
||||
echo "Setting up EWW bar..."
|
||||
rm -rf ~/.config/eww
|
||||
read -n1 -p "Install eww bar for PC, Notebook or Tablet [P,N,T]: " doit
|
||||
read -n1 -p "Install eww bar for PC, Notebook or Tablet [P/N/T]: " doit
|
||||
echo
|
||||
case $doit in
|
||||
n|N) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww/ ~/.config/ ;;
|
||||
p|P) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww-nobattery/ ~/.config/eww ;;
|
||||
t|T) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww-touch/ ~/.config/eww ;;
|
||||
*) echo "enter a valid decision" ;;
|
||||
*) echo "No valid choice — skipping EWW copy. Run manually later." ;;
|
||||
esac
|
||||
|
||||
echo "Compiling EWW..."
|
||||
mkdir -p ~/install-tmp
|
||||
cd ~/install-tmp
|
||||
git clone https://github.com/elkowar/eww
|
||||
cd eww
|
||||
cargo build --release --no-default-features --features=wayland
|
||||
cd target/release
|
||||
chmod +x ./eww
|
||||
sudo cp ./eww /usr/bin
|
||||
chmod +x target/release/eww
|
||||
sudo cp target/release/eww /usr/bin/
|
||||
cd ~
|
||||
|
||||
# 6. Theme and icon setup
|
||||
sudo cp -r ~/Dotfiles/gtk-themes/cyberqueer /usr/share/themes
|
||||
sudo cp ~/Dotfiles/desktopenvs/hyprland/btop/themes/cyberqueer.theme /usr/share/btop/themes
|
||||
sudo cp -f ~/Dotfiles/etc-ly-config.ini /etc/ly/config.ini
|
||||
sudo ln -s /usr/bin/kitty /usr/bin/xdg-terminal-exec
|
||||
sudo ln /usr/bin/ksshaskpass /usr/lib/ssh/ssh-askpass
|
||||
sudo ln -sf /usr/bin/kitty /usr/bin/xdg-terminal-exec
|
||||
sudo ln -sf /usr/bin/ksshaskpass /usr/lib/ssh/ssh-askpass
|
||||
|
||||
# 7. Cursor setup
|
||||
mkdir -p ~/.icons
|
||||
wget https://github.com/guillaumeboehm/Nordzy-cursors/releases/download/v2.3.0/Nordzy-cursors-lefthand.tar.gz
|
||||
tar -zxvf Nordzy-cursors-lefthand.tar.gz -C $HOME/.icons/
|
||||
wget -O ~/install-tmp/Nordzy-cursors-lefthand.tar.gz \
|
||||
https://github.com/guillaumeboehm/Nordzy-cursors/releases/download/v2.3.0/Nordzy-cursors-lefthand.tar.gz
|
||||
tar -zxf ~/install-tmp/Nordzy-cursors-lefthand.tar.gz -C ~/.icons/
|
||||
|
||||
# 8. Enable Bluetooth and networking services
|
||||
# 8. Enable Bluetooth and wireless services
|
||||
sudo systemctl enable bluez
|
||||
sudo systemctl enable bluetooth.service
|
||||
sudo systemctl enable iwd.service
|
||||
|
||||
# 9. Hyprland plugin setup
|
||||
hyprpm update
|
||||
hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||
# 9. Hyprland plugins — must be run from inside a live Hyprland session
|
||||
# Run manually after first login:
|
||||
# hyprpm update
|
||||
# hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||
|
||||
# 10. Copy configs (not symlink, except hypr-usr)
|
||||
# 10. Copy configs
|
||||
echo "Copying configs..."
|
||||
CONFIGS=(kitty mimeapps.list vicinae walker hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel ulauncher scripts btop gtk-3.0 eww eww-nobattery)
|
||||
CONFIGS=(kitty mimeapps.list vicinae walker ulauncher hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel scripts btop gtk-3.0)
|
||||
for cfg in "${CONFIGS[@]}"; do
|
||||
rm -rf ~/.config/$cfg
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/$cfg ~/.config/
|
||||
rm -rf ~/.config/"$cfg"
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/"$cfg" ~/.config/
|
||||
done
|
||||
|
||||
# Copy hypr-usr files as local configs
|
||||
cp ~/Dotfiles/desktopenvs/hyprland/hypr-usr/* ~/.config/
|
||||
|
||||
# 11. Wallpaper and resources
|
||||
mkdir -p ~/Pictures
|
||||
cp ~/Dotfiles/resources/fflogo.svg ~/Pictures/fflogo.svg
|
||||
wget https://cloud.abdelbaki.eu/apps/theming/image/background?v=15 -O ~/Pictures/background.jpg
|
||||
wget "https://cloud.abdelbaki.eu/apps/theming/image/background?v=15" -O ~/Pictures/background.jpg
|
||||
|
||||
# 12. Python venv setup
|
||||
# 12. Python venv for scripts
|
||||
python -m venv ~/.config/python-script
|
||||
~/.config/python-script/bin/pip install speedtest-cli requests pint simpleeval parsedatetime
|
||||
|
||||
# 13. Udiskie icon fix (from fix_udiskie_icons.sh)
|
||||
# 13. Udiskie icon fix
|
||||
echo "Applying Udiskie icon fix..."
|
||||
PAPIRUS_DIR="/usr/share/icons/Papirus-Dark/status"
|
||||
HICOLOR_DIR="/usr/share/icons/hicolor/scalable/status"
|
||||
if [ ! -d "$PAPIRUS_DIR" ]; then
|
||||
echo "Papirus-Dark icon directory not found. Please install Papirus icon theme."
|
||||
exit 1
|
||||
fi
|
||||
if [ -d "$PAPIRUS_DIR" ]; then
|
||||
sudo ln -sf "$PAPIRUS_DIR/checkbox-checked.svg" "$HICOLOR_DIR/udiskie-checkbox-checked.svg"
|
||||
sudo ln -sf "$PAPIRUS_DIR/checkbox-unchecked.svg" "$HICOLOR_DIR/udiskie-checkbox-unchecked.svg"
|
||||
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor
|
||||
echo "Udiskie icons overridden successfully with Papirus equivalents."
|
||||
else
|
||||
echo "Papirus-Dark not found — skipping udiskie icon fix."
|
||||
fi
|
||||
|
||||
# 14. Enable and start udiskie
|
||||
echo "Enabling and starting udiskie..."
|
||||
# 14. Enable udiskie
|
||||
sudo systemctl enable udiskie.service
|
||||
sudo systemctl start udiskie.service
|
||||
|
||||
# 15. Create config update script in home directory
|
||||
# 15. Generate config-update helper
|
||||
cat << 'EOF' > ~/update-hypr-configs.sh
|
||||
#!/bin/bash
|
||||
CONFIGS=(kitty mimeapps.list walker vicinae hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel ulauncher scripts btop gtk-3.0 eww eww-nobattery)
|
||||
CONFIGS=(kitty mimeapps.list walker ulauncher vicinae hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel scripts btop gtk-3.0)
|
||||
for cfg in "${CONFIGS[@]}"; do
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/$cfg ~/.config/
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/"$cfg" ~/.config/
|
||||
done
|
||||
echo "Configs updated!"
|
||||
echo "Configs updated."
|
||||
EOF
|
||||
chmod +x ~/update-hypr-configs.sh
|
||||
|
||||
echo "=== Installation Complete! ==="
|
||||
# 16. Install other packages
|
||||
sudo curl -sL $(curl -s https://api.github.com/repos/5hubham5ingh/WallRizz/releases/latest | grep -Po '"browser_download_url": "\K[^"]+' | grep WallRizz) | tar -xz && sudo mv WallRizz /usr/bin/
|
||||
WallRizz -w
|
||||
# 16. WallRizz (run manually after login — requires a running desktop session)
|
||||
# curl -sL "$(curl -s https://api.github.com/repos/5hubham5ingh/WallRizz/releases/latest \
|
||||
# | grep -Po '"browser_download_url": "\K[^"]+' | grep WallRizz)" | tar -xz \
|
||||
# && sudo mv WallRizz /usr/bin/
|
||||
|
||||
echo "=== Hyprland installation complete. Reboot to start. ==="
|
||||
|
|
|
|||
|
|
@ -1,67 +1,73 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Install packages
|
||||
echo "Installing required packages..."
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
alacritty base base-devel brightnessctl btop btrfs-progs cmatrix dmenu \
|
||||
fastfetch firefox foot git greetd-tuigreet glfw gnu-netcat grim grub \
|
||||
gst-plugin-pipewire hollywood htop imagemagick iwd libpulse \
|
||||
libva-intel-driver libva-mesa-driver lightdm lightdm-gtk-greeter \
|
||||
linux linux-firmware lynx micro nano networkmanager nmap openssh \
|
||||
pavucontrol pipewire pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
slurp smartmontools sway swaybg swayidle swaylock \
|
||||
ttf-jetbrains-mono vim vulkan-intel vulkan-radeon waybar wget \
|
||||
wireless_tools wireplumber wireshark-qt wofi wpa_supplicant \
|
||||
xdg-utils xf86-video-amdgpu xf86-video-ati xf86-video-nouveau \
|
||||
xf86-video-vmware xorg-server xorg-xinit xorg-xwayland \
|
||||
yazi zram-generator zsh zsh-completions
|
||||
|
||||
#install components
|
||||
echo "Installing required Packages"
|
||||
sudo pacman -Syu alacritty base base-devel brightnessctl btop btrfs-progs cmatrix dmenu fastfetch firefox foot gitgreetd-tuigreet glfw gnu-netcat grim grub gst-plugin-pipewire hollywood htop imagemagick iwd libpulse libva-intel-driver libva-mesa-driver lightdm lightdm-gtk-greeter linux linux-firmware lynx micro nano networkmanager nmap openssh pavucontrol pipewire pipewire-alsa pipewire-jack pipewire-pulse slurp smartmontools sway swaybg swayidle swaylock ttf-jetbrains-mono vim vulkan-intel vulkan-radeon waybar wget wireless_tools wireplumber wireshark-qt wofi wpa_supplicant xdg-utils xf86-video-amdgpu xf86-video-ati xf86-video-nouveau xf86-video-vmware xorg-server xorg-xinit xorg-xwayland yazi zram-generator zsh zsh-completions
|
||||
|
||||
#aur/yay setup
|
||||
echo "Installing yay"
|
||||
# yay
|
||||
if ! command -v yay &>/dev/null; then
|
||||
echo "Installing yay..."
|
||||
mkdir -p ~/install-tmp
|
||||
git clone https://aur.archlinux.org/yay.git ~/install-tmp/yay
|
||||
cd ~/install-tmp/yay
|
||||
makepkg -si --noconfirm
|
||||
cd ~
|
||||
mkdir install-tmp
|
||||
cd install-tmp
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
makepkg -si
|
||||
yay --version
|
||||
cd ~/install-tmp
|
||||
else
|
||||
echo "yay already installed."
|
||||
fi
|
||||
|
||||
#networkmanager setup
|
||||
echo "enabling NetworkManager"
|
||||
# Services
|
||||
echo "Enabling NetworkManager..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
|
||||
#desktop env dotfiles
|
||||
echo "Installing Desktop enviroment configs"
|
||||
ln -s ~/Dotfiles/desktopenvs/sway/sway ~/.config/sway
|
||||
ln -s ~/Dotfiles/desktopenvs/sway/alacritty ~/.config/alacritty
|
||||
# Desktop env configs
|
||||
echo "Linking desktop environment configs..."
|
||||
ln -sf ~/Dotfiles/desktopenvs/sway/sway ~/.config/sway
|
||||
ln -sf ~/Dotfiles/desktopenvs/sway/alacritty ~/.config/alacritty
|
||||
|
||||
#zsh setup
|
||||
echo "Setting up zsh"
|
||||
# Shell
|
||||
echo "Setting up zsh..."
|
||||
chsh -s /usr/bin/zsh
|
||||
#homectl update --shell=/usr/bin/zsh
|
||||
|
||||
#starship setup
|
||||
echo "Installing Starship"
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
echo "Installing Starship..."
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --yes
|
||||
|
||||
#ohmyzsh setup
|
||||
echo "Installing oh my zsh"
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
echo "Installing oh-my-zsh..."
|
||||
RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
|
||||
#ohmyzsh plugins
|
||||
echo "Installing oh my zsh plugins"
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||
echo "Installing oh-my-zsh plugins..."
|
||||
ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
|
||||
"$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions \
|
||||
"$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
|
||||
#greetd setup
|
||||
echo "Installing greetd"
|
||||
# greetd config
|
||||
sudo cp -f ~/Dotfiles/desktopenvs/hyprland/greetd-tuigreet/config.toml /etc/greetd/config.toml
|
||||
sudo systemctl enable greetd.service
|
||||
|
||||
# Dotfiles
|
||||
echo "Linking dotfiles..."
|
||||
rm -f ~/.bashrc ~/.zshrc
|
||||
ln -sf ~/Dotfiles/.bashrc ~/.bashrc
|
||||
ln -sf ~/Dotfiles/.zshrc ~/.zshrc
|
||||
ln -sf ~/Dotfiles/starship.toml ~/.config/starship.toml
|
||||
ln -sf ~/Dotfiles/micro/ ~/.config/micro
|
||||
ln -sf ~/Dotfiles/yazi/ ~/.config/yazi
|
||||
mkdir -p ~/.config/spotify-tui
|
||||
ln -sf ~/Dotfiles/spotify-tui/config.yml ~/.config/spotify-tui/config.yml
|
||||
|
||||
#cli dotfiles
|
||||
echo "Installing bash and zsh setting files"
|
||||
rm ~/.bashrc
|
||||
rm ~/.zshrc
|
||||
ln -s ~/Dotfiles/.bashrc ~/.bashrc
|
||||
ln -s ~/Dotfiles/.zshrc ~/.zshrc
|
||||
|
||||
ln -s ~/Dotfiles/starship.toml ~/.config/starship.toml
|
||||
ln -s ~/Dotfiles/micro/ ~/.config/micro
|
||||
ln -s ~/Dotfiles/yazi/ ~/.config/yazi
|
||||
ln -s ~/Dotfiles/spotify-tui/config.yml ~/.config/spotify-tui/config.yml
|
||||
|
||||
#final reboot
|
||||
echo "Press any key to reboot"
|
||||
read
|
||||
systemctl reboot
|
||||
echo "=== Sway installation complete. Reboot to start. ==="
|
||||
|
|
|
|||
|
|
@ -1,2 +1,17 @@
|
|||
#!/bin/bash
|
||||
sudo pacman -Syu git 7zip pipewire distrobox htop nano vim firefox flatpak grub inetutils networkmanager neovim openssh base base-devel cockpit cockpit-files cockpit-podman zip unzip ufw fastfetch git wireplumber wpa_supplicant tree traceroute smartmontools ruby-pkg-config rust rustup usbutils pciutils qrencode bind btop gcc glib2 python python-pip atool nvim curl wget fastfetch fail2ban man-db wprs mc yazi atftp base base-devel btrfs-progs bluez ffmpeg gcc git grub htop inetutils iwd jq ldns libpulse linux linux-firmware openssh smartmontools traceroute ufw unzip zip vim wireless_tools wpa_supplicant zram-generator podman podman-compose vnstat inetutils symlinks arch-install-scripts greetd-tuigreet fd less cronie udisks2 udisks2-btrfs udiskie
|
||||
set -euo pipefail
|
||||
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
7zip arch-install-scripts atftp atool \
|
||||
base base-devel bind bluez btrfs-progs btop \
|
||||
cockpit cockpit-files cockpit-podman cronie curl \
|
||||
distrobox fail2ban fastfetch fd ffmpeg firefox flatpak \
|
||||
gcc glib2 greetd-tuigreet grub \
|
||||
htop inetutils iwd jq ldns less libpulse linux linux-firmware \
|
||||
man-db mc nano neovim networkmanager \
|
||||
openssh pciutils pipewire podman podman-compose \
|
||||
python python-pip qrencode ruby-pkg-config rust rustup \
|
||||
smartmontools symlinks traceroute tree \
|
||||
udisks2 udisks2-btrfs udiskie ufw usbutils \
|
||||
vim vnstat wget wireplumber wireless_tools wpa_supplicant wprs \
|
||||
yazi zip unzip zram-generator
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
sudo pacman -S spotify-launcher steam
|
||||
yay -S vesktop
|
||||
flatpak install flathub org.prismlauncher.PrismLauncher
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
sudo pacman -S --noconfirm --needed spotify-launcher steam
|
||||
|
||||
yay -S --answerdiff None --answerclean All --noconfirm vesktop
|
||||
|
||||
flatpak install -y flathub org.prismlauncher.PrismLauncher
|
||||
|
||||
rm -rf ~/.config/Vencord
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/Vencord ~/.config/
|
||||
|
|
@ -8,5 +13,4 @@ cp -r ~/Dotfiles/desktopenvs/hyprland/Vencord ~/.config/vesktop
|
|||
|
||||
curl -fsSL https://raw.githubusercontent.com/spicetify/cli/main/install.sh | sh
|
||||
rm -rf ~/.config/spicetify
|
||||
ln -s ~/Dotfiles/desktopenvs/hyprland/spicetify ~/.config/
|
||||
|
||||
ln -sf ~/Dotfiles/desktopenvs/hyprland/spicetify ~/.config/
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
#!/bin/bash
|
||||
sudo pacman -S nmap wireshark-qt bind traceroute curl wget mtr tcpdump net-tools iputils podman-desktop kubectl ipcalc
|
||||
set -euo pipefail
|
||||
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
nmap wireshark-qt bind traceroute curl wget \
|
||||
mtr tcpdump net-tools iputils \
|
||||
podman-desktop kubectl ipcalc
|
||||
# openbsd-netcat
|
||||
|
|
@ -1,2 +1,4 @@
|
|||
#!/bin/bash
|
||||
yay -S wprs-git
|
||||
set -euo pipefail
|
||||
|
||||
yay -S --answerdiff None --answerclean All --noconfirm wprs-git
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "Installing ZFS Kernel Module"
|
||||
|
||||
yay -S zfs-dkms
|
||||
echo "Installing ZFS kernel module..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm zfs-dkms
|
||||
|
|
|
|||
|
|
@ -1,30 +1,35 @@
|
|||
#!/bin/bash
|
||||
pacman -Syu flatpak
|
||||
#aur/yay setup
|
||||
echo "Installing yay"
|
||||
cd ~
|
||||
mkdir install-tmp
|
||||
cd install-tmp
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
makepkg -si
|
||||
yay --version
|
||||
cd ~/install-tmp
|
||||
# Download and install nvm:
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
|
||||
set -euo pipefail
|
||||
|
||||
# in lieu of restarting the shell
|
||||
\. "$HOME/.nvm/nvm.sh"
|
||||
sudo pacman -Syu --noconfirm --needed flatpak
|
||||
|
||||
# yay
|
||||
if ! command -v yay &>/dev/null; then
|
||||
echo "Installing yay..."
|
||||
mkdir -p ~/install-tmp
|
||||
git clone https://aur.archlinux.org/yay.git ~/install-tmp/yay
|
||||
cd ~/install-tmp/yay
|
||||
makepkg -si --noconfirm
|
||||
cd ~
|
||||
else
|
||||
echo "yay already installed."
|
||||
fi
|
||||
|
||||
# rustup / rust
|
||||
if ! command -v rustup &>/dev/null; then
|
||||
echo "Installing rustup..."
|
||||
sudo pacman -S --noconfirm --needed rustup
|
||||
fi
|
||||
rustup default stable
|
||||
|
||||
# Download and install Node.js:
|
||||
# nvm + Node.js
|
||||
if ! command -v node &>/dev/null; then
|
||||
echo "Installing nvm and Node.js 22..."
|
||||
if [ ! -d "$HOME/.nvm" ]; then
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
|
||||
fi
|
||||
. "$HOME/.nvm/nvm.sh"
|
||||
nvm install 22
|
||||
|
||||
# Verify the Node.js version:
|
||||
node -v # Should print "v22.14.0".
|
||||
nvm current # Should print "v22.14.0".
|
||||
|
||||
# Verify npm version:
|
||||
npm -v # Should print "10.9.2".
|
||||
|
||||
|
||||
else
|
||||
echo "Node.js already installed: $(node -v)"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
|
||||
#!/bin/bash
|
||||
set -e # Exit on error
|
||||
set -euo pipefail
|
||||
|
||||
#="\e[0m"# Colors for better UX
|
||||
GREEN="\e[32m"
|
||||
YELLOW="\e[33m"
|
||||
RESET="\e[0m"
|
||||
|
||||
log() { echo -e "${GREEN}✔ $1${RESET}"; }
|
||||
skip() { echo -e "${YELLOW}↷ $1${RESET}"; }
|
||||
|
|
@ -11,21 +12,21 @@ skip() { echo -e "${YELLOW}↷ $1${RESET}"; }
|
|||
log "Updating system..."
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
# Install base packages (including nvim)
|
||||
# Install base packages
|
||||
PACKAGES=(zsh neovim curl pyright bash atftp bash-language-server btop clang fastfetch fzf hyfetch lua-language-server micro nano pulsemixer yazi z qrencode distrobox dysk python python-pip glow)
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if ! pacman -Qi "$pkg" &>/dev/null; then
|
||||
log "Installing $pkg..."
|
||||
sudo pacman -S --noconfirm "$pkg"
|
||||
sudo pacman -S --noconfirm --needed "$pkg"
|
||||
else
|
||||
skip "$pkg already installed."
|
||||
fi
|
||||
done
|
||||
|
||||
# Install yay if not installed
|
||||
# yay
|
||||
if ! command -v yay &>/dev/null; then
|
||||
log "Installing yay..."
|
||||
sudo pacman -S --noconfirm git base-devel
|
||||
sudo pacman -S --noconfirm --needed git base-devel
|
||||
git clone https://aur.archlinux.org/yay.git /tmp/yay
|
||||
cd /tmp/yay && makepkg -si --noconfirm
|
||||
cd ~
|
||||
|
|
@ -33,39 +34,32 @@ else
|
|||
skip "yay already installed."
|
||||
fi
|
||||
|
||||
# Install Rust & Cargo if not installed
|
||||
# Rust / Cargo
|
||||
if ! command -v cargo &>/dev/null; then
|
||||
log "Installing Rust & Cargo..."
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
source "$HOME/.cargo/env"
|
||||
. "$HOME/.cargo/env"
|
||||
else
|
||||
skip "Rust & Cargo already installed."
|
||||
fi
|
||||
|
||||
# Install nvm and Node.js if not installed
|
||||
# nvm + Node.js
|
||||
if ! command -v node &>/dev/null; then
|
||||
log "Installing nvm and Node.js..."
|
||||
if [ ! -d "$HOME/.nvm" ]; then
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
|
||||
fi
|
||||
source "$HOME/.nvm/nvm.sh"
|
||||
. "$HOME/.nvm/nvm.sh"
|
||||
nvm install 22
|
||||
else
|
||||
skip "Node.js already installed."
|
||||
fi
|
||||
|
||||
# Verify npm
|
||||
if ! command -v npm &>/dev/null; then
|
||||
log "npm should be installed with Node.js. Please check your PATH."
|
||||
else
|
||||
skip "npm already available."
|
||||
fi
|
||||
|
||||
# Git config
|
||||
# git config
|
||||
git config --global core.editor nvim
|
||||
|
||||
# Dotfiles setup
|
||||
log "Setting up dotfiles..."
|
||||
# Dotfiles
|
||||
log "Deploying dotfiles..."
|
||||
mkdir -p ~/.config ~/Pictures
|
||||
|
||||
ln -sf ~/Dotfiles/.bashrc ~/.bashrc
|
||||
|
|
@ -75,7 +69,7 @@ ln -sf ~/Dotfiles/starship.toml ~/.config/starship.toml
|
|||
rm -rf ~/.config/micro
|
||||
cp -r ~/Dotfiles/micro ~/.config/
|
||||
|
||||
# Vim Plug installer
|
||||
# vim-plug
|
||||
if [ ! -f ~/.local/share/nvim/site/autoload/plug.vim ]; then
|
||||
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
|
|
@ -84,7 +78,8 @@ fi
|
|||
rm -rf ~/.config/nvim
|
||||
ln -sf ~/Dotfiles/nvim ~/.config/nvim
|
||||
mkdir -p ~/.local/share/nvim/site/plugged/vim-airline-themes/autoload/airline/themes
|
||||
cp -f ~/Dotfiles/nvim/cyberqueer-airline.vim ~/.local/share/nvim/site/plugged/vim-airline-themes/autoload/airline/themes/
|
||||
cp -f ~/Dotfiles/nvim/cyberqueer-airline.vim \
|
||||
~/.local/share/nvim/site/plugged/vim-airline-themes/autoload/airline/themes/
|
||||
|
||||
rm -rf ~/.config/yazi
|
||||
ln -sf ~/Dotfiles/yazi ~/.config/yazi
|
||||
|
|
@ -94,36 +89,38 @@ ln -sf ~/Dotfiles/spotify-tui ~/.config/spotify-tui
|
|||
|
||||
cp -f ~/Dotfiles/resources/fflogo.svg ~/Pictures/fflogo.svg
|
||||
|
||||
# Install Starship if not installed
|
||||
# Starship
|
||||
if ! command -v starship &>/dev/null; then
|
||||
log "Installing Starship..."
|
||||
curl -sS https://starship.rs/install.sh | sh
|
||||
curl -sS https://starship.rs/install.sh | sh -s -- --yes
|
||||
else
|
||||
skip "Starship already installed."
|
||||
fi
|
||||
|
||||
# Install oh-my-zsh if not installed
|
||||
# oh-my-zsh (RUNZSH=no prevents installer from spawning a new shell)
|
||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||
log "Installing oh-my-zsh..."
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
else
|
||||
skip "oh-my-zsh already installed."
|
||||
fi
|
||||
|
||||
# Install oh-my-zsh plugins if not installed
|
||||
ZSH_CUSTOM=${ZSH_CUSTOM:-~/.oh-my-zsh/custom}
|
||||
# oh-my-zsh plugins
|
||||
ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"
|
||||
if [ ! -d "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting" ]; then
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
|
||||
"$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
else
|
||||
skip "zsh-syntax-highlighting already installed."
|
||||
fi
|
||||
if [ ! -d "$ZSH_CUSTOM/plugins/zsh-autosuggestions" ]; then
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions "$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions \
|
||||
"$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
else
|
||||
skip "zsh-autosuggestions already installed."
|
||||
fi
|
||||
|
||||
# Set zsh as default shell if not already
|
||||
# Default shell
|
||||
if [ "$SHELL" != "/usr/bin/zsh" ]; then
|
||||
log "Setting zsh as default shell..."
|
||||
chsh -s /usr/bin/zsh
|
||||
|
|
@ -131,6 +128,4 @@ else
|
|||
skip "zsh is already the default shell."
|
||||
fi
|
||||
|
||||
log "✅ Setup complete!"
|
||||
GREEN="\e[32m"
|
||||
YELLOW="\e[33m"
|
||||
log "Shell setup complete."
|
||||
|
|
|
|||
|
|
@ -0,0 +1,200 @@
|
|||
#!/bin/bash
|
||||
# tui-install.sh — TUI installer for the_miro's Arch dotfiles
|
||||
|
||||
set -uo pipefail
|
||||
|
||||
# ── Paths ─────────────────────────────────────────────────────────────────────
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
DOTFILES_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
MODULES="$DOTFILES_DIR/setup/modules"
|
||||
LOG="$HOME/dotfiles-install.log"
|
||||
TMP_D="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP_D"' EXIT
|
||||
|
||||
BACKTITLE="the_miro's Arch Dotfiles"
|
||||
|
||||
# ── Cyberqueer dialog theme ───────────────────────────────────────────────────
|
||||
export DIALOGRC="$TMP_D/dialogrc"
|
||||
cat > "$DIALOGRC" <<'EOF'
|
||||
use_shadow = ON
|
||||
use_colors = ON
|
||||
screen_color = (BLACK,BLACK,ON)
|
||||
shadow_color = (BLACK,BLACK,ON)
|
||||
title_color = (MAGENTA,BLACK,ON)
|
||||
border_color = (MAGENTA,BLACK,ON)
|
||||
button_active_color = (BLACK,MAGENTA,ON)
|
||||
button_inactive_color = (WHITE,BLACK,OFF)
|
||||
button_key_active_color = (BLACK,CYAN,ON)
|
||||
button_key_inactive_color = (CYAN,BLACK,ON)
|
||||
button_label_active_color = (BLACK,MAGENTA,ON)
|
||||
button_label_inactive_color = (WHITE,BLACK,OFF)
|
||||
inputbox_color = (WHITE,BLACK,OFF)
|
||||
inputbox_border_color = (MAGENTA,BLACK,ON)
|
||||
menubox_color = (WHITE,BLACK,OFF)
|
||||
menubox_border_color = (MAGENTA,BLACK,ON)
|
||||
item_color = (WHITE,BLACK,OFF)
|
||||
item_selected_color = (BLACK,MAGENTA,ON)
|
||||
tag_color = (CYAN,BLACK,ON)
|
||||
tag_selected_color = (BLACK,CYAN,ON)
|
||||
tag_key_color = (CYAN,BLACK,ON)
|
||||
tag_key_selected_color = (BLACK,CYAN,ON)
|
||||
check_color = (WHITE,BLACK,OFF)
|
||||
check_selected_color = (BLACK,MAGENTA,ON)
|
||||
uarrow_color = (MAGENTA,BLACK,ON)
|
||||
darrow_color = (MAGENTA,BLACK,ON)
|
||||
EOF
|
||||
|
||||
# ── State ─────────────────────────────────────────────────────────────────────
|
||||
STEP=0
|
||||
TOTAL=0
|
||||
|
||||
# ── Helpers ───────────────────────────────────────────────────────────────────
|
||||
require_dialog() {
|
||||
command -v dialog &>/dev/null && return
|
||||
echo "dialog not found — installing..."
|
||||
sudo pacman -S --noconfirm dialog || { echo "Failed to install dialog."; exit 1; }
|
||||
}
|
||||
|
||||
die() {
|
||||
clear
|
||||
printf "\n Error: %s\n\n" "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
log_sep() {
|
||||
printf "\n══════════════════════════════════\n %s\n %s\n" "$1" "$(date)" >> "$LOG"
|
||||
}
|
||||
|
||||
# Run a module script in the terminal (dialog is cleared so stdin/stdout work
|
||||
# normally — pacman prompts, yay builds, etc. all function as expected).
|
||||
run_module() {
|
||||
local label="$1" script="$2"
|
||||
STEP=$(( STEP + 1 ))
|
||||
log_sep "[$STEP/$TOTAL] $label"
|
||||
|
||||
clear
|
||||
printf "\n\033[1;35m [$STEP/$TOTAL] %s\033[0m\n" "$label"
|
||||
printf "\033[35m ─────────────────────────────────────────────\033[0m\n\n"
|
||||
|
||||
local rc=0
|
||||
bash "$script" 2>&1 | tee -a "$LOG" || rc=${PIPESTATUS[0]}
|
||||
|
||||
if [[ $rc -ne 0 ]]; then
|
||||
dialog --backtitle "$BACKTITLE" \
|
||||
--title " Module Failed " \
|
||||
--yesno "$label exited with code $rc.\n\nContinue anyway?" 8 54 \
|
||||
|| { clear; exit 1; }
|
||||
fi
|
||||
}
|
||||
|
||||
count_steps() {
|
||||
local c="$1" de="$2"
|
||||
TOTAL=0
|
||||
[[ "$c" == *"pkg"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"core"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"de"* && "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"py"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"zfs"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"game"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"netdev"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
[[ "$c" == *"wprs"* ]] && TOTAL=$(( TOTAL + 1 ))
|
||||
}
|
||||
|
||||
# ── Preflight ─────────────────────────────────────────────────────────────────
|
||||
[[ $EUID -eq 0 ]] && die "Run as your normal user (not root)."
|
||||
command -v pacman &>/dev/null || die "pacman not found — Arch Linux required."
|
||||
|
||||
require_dialog
|
||||
|
||||
> "$LOG"
|
||||
printf "Dotfiles install: %s\nDotfiles dir: %s\n" "$(date)" "$DOTFILES_DIR" >> "$LOG"
|
||||
|
||||
# ── Welcome ───────────────────────────────────────────────────────────────────
|
||||
dialog --backtitle "$BACKTITLE" \
|
||||
--title " Welcome " \
|
||||
--msgbox "\n\
|
||||
the_miro's Arch dotfiles installer\n\
|
||||
Cyberqueer · Wayland · Hyprland\n\
|
||||
─────────────────────────────────────────\n\
|
||||
\n\
|
||||
Arch Linux — network admin, development & gaming\n\
|
||||
\n\
|
||||
Source: $DOTFILES_DIR\n\
|
||||
Log: $LOG\n" 14 62
|
||||
|
||||
# ── Component selection ───────────────────────────────────────────────────────
|
||||
COMPONENTS=$(dialog --backtitle "$BACKTITLE" \
|
||||
--title " Select Components " \
|
||||
--checklist "Space toggles · Enter confirms · Esc quits" 22 68 10 \
|
||||
"pkg" "Package managers yay · nvm · rust" on \
|
||||
"core" "Core packages 100+ base system packages" on \
|
||||
"svc" "Core services NetworkManager · cronie · fail2ban" on \
|
||||
"shell" "Shell setup zsh · nvim · yazi · micro · starship" on \
|
||||
"de" "Desktop environment (choose on next screen)" off \
|
||||
"py" "Python tools pyright · pipx · python-pynvim" off \
|
||||
"zfs" "ZFS support zfs-dkms" off \
|
||||
"game" "Gaming Steam · Vesktop · Spotify · Prism" off \
|
||||
"netdev" "Network dev tools nmap · wireshark · kubectl" off \
|
||||
"wprs" "WPRS wprs-git (AUR)" off \
|
||||
3>&1 1>&2 2>&3) || { clear; echo "Aborted."; exit 0; }
|
||||
|
||||
# ── DE selection ──────────────────────────────────────────────────────────────
|
||||
DE="none"
|
||||
if [[ "$COMPONENTS" == *"de"* ]]; then
|
||||
DE=$(dialog --backtitle "$BACKTITLE" \
|
||||
--title " Desktop Environment " \
|
||||
--menu "Select a desktop environment:" 11 56 3 \
|
||||
"hyprland" "Hyprland — Wayland WM, full setup (primary)" \
|
||||
"sway" "Sway — Wayland tiling WM" \
|
||||
"none" "Skip DE installation" \
|
||||
3>&1 1>&2 2>&3) || DE="none"
|
||||
fi
|
||||
|
||||
# ── Confirmation ──────────────────────────────────────────────────────────────
|
||||
SUMMARY=""
|
||||
[[ "$COMPONENTS" == *"pkg"* ]] && SUMMARY+=" ✦ Package managers (yay, nvm, rust)\n"
|
||||
[[ "$COMPONENTS" == *"core"* ]] && SUMMARY+=" ✦ Core packages\n"
|
||||
[[ "$COMPONENTS" == *"svc"* ]] && SUMMARY+=" ✦ Core services\n"
|
||||
[[ "$COMPONENTS" == *"shell"* ]] && SUMMARY+=" ✦ Shell setup\n"
|
||||
[[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]] && SUMMARY+=" ✦ Desktop environment: $DE\n"
|
||||
[[ "$COMPONENTS" == *"py"* ]] && SUMMARY+=" ✦ Python tools\n"
|
||||
[[ "$COMPONENTS" == *"zfs"* ]] && SUMMARY+=" ✦ ZFS support\n"
|
||||
[[ "$COMPONENTS" == *"game"* ]] && SUMMARY+=" ✦ Gaming packages\n"
|
||||
[[ "$COMPONENTS" == *"netdev"* ]] && SUMMARY+=" ✦ Network dev tools\n"
|
||||
[[ "$COMPONENTS" == *"wprs"* ]] && SUMMARY+=" ✦ WPRS\n"
|
||||
|
||||
dialog --backtitle "$BACKTITLE" \
|
||||
--title " Confirm Installation " \
|
||||
--yesno "\n Components to install:\n\n${SUMMARY}\n Log: $LOG\n\n Proceed?" \
|
||||
20 62 || { clear; echo "Aborted."; exit 0; }
|
||||
|
||||
count_steps "$COMPONENTS" "$DE"
|
||||
|
||||
# ── Installation ──────────────────────────────────────────────────────────────
|
||||
[[ "$COMPONENTS" == *"pkg"* ]] && run_module "Package Managers" "$MODULES/package-managers.sh"
|
||||
[[ "$COMPONENTS" == *"core"* ]] && run_module "Core Packages" "$MODULES/core-packages.sh"
|
||||
[[ "$COMPONENTS" == *"svc"* ]] && run_module "Core Services" "$MODULES/core.sh"
|
||||
[[ "$COMPONENTS" == *"shell"* ]] && run_module "Shell Setup" "$MODULES/shell-setup.sh"
|
||||
|
||||
if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then
|
||||
case "$DE" in
|
||||
hyprland) run_module "Hyprland" "$MODULES/Desktop-Enviroments/hyprland-new.sh" ;;
|
||||
sway) run_module "Sway" "$MODULES/Desktop-Enviroments/sway.sh" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
[[ "$COMPONENTS" == *"py"* ]] && run_module "Python Tools" "$MODULES/optional-Modules/python.sh"
|
||||
[[ "$COMPONENTS" == *"zfs"* ]] && run_module "ZFS" "$MODULES/optional-Modules/zfs.sh"
|
||||
[[ "$COMPONENTS" == *"game"* ]] && run_module "Gaming Packages" "$MODULES/optional-Modules/gaming-packages.sh"
|
||||
[[ "$COMPONENTS" == *"netdev"* ]] && run_module "Network Dev Tools" "$MODULES/optional-Modules/network-developer-packages.sh"
|
||||
[[ "$COMPONENTS" == *"wprs"* ]] && run_module "WPRS" "$MODULES/optional-Modules/wprs.sh"
|
||||
|
||||
# ── Done ──────────────────────────────────────────────────────────────────────
|
||||
dialog --backtitle "$BACKTITLE" \
|
||||
--title " Done " \
|
||||
--msgbox "\n All selected components installed.\n\n Log: $LOG\n\n A reboot may be required for all changes to take effect.\n" 12 58
|
||||
|
||||
clear
|
||||
printf "\n Done. Log: %s\n\n" "$LOG"
|
||||
Loading…
Reference in New Issue