#!/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 # 2. Install required packages (from hyprland.sh) 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 # 3. Run core.sh steps (network, cron, greetd, fail2ban, udisks2) 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 enable ly@tty1.service #sudo systemctl enable fail2ban.service sudo systemctl enable udisks2.service # 4. Install AUR packages (from hyprland.sh) 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 # 5. EWW bar selection and compilation (from hyprland.sh) echo "Setting up EWW bar..." rm -rf ~/.config/eww read -n1 -p "Install eww bar for PC, Notebook or Tablet [P,N,T]: " doit 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" ;; esac echo "Compiling EWW..." 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 # 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 # 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/ # 8. Enable Bluetooth and networking 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 # 10. Copy configs (not symlink, except hypr-usr) 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) for cfg in "${CONFIGS[@]}"; do 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 cp ~/Dotfiles/resources/fflogo.svg ~/Pictures/fflogo.svg wget https://cloud.abdelbaki.eu/apps/theming/image/background?v=15 -O ~/Pictures/background.jpg # 12. Python venv setup 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) 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 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." # 14. Enable and start udiskie echo "Enabling and starting udiskie..." sudo systemctl enable udiskie.service sudo systemctl start udiskie.service # 15. Create config update script in home directory 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) for cfg in "${CONFIGS[@]}"; do cp -r ~/Dotfiles/desktopenvs/hyprland/$cfg ~/.config/ done 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