1055 lines
39 KiB
Bash
1055 lines
39 KiB
Bash
<!-- diger uygulamalarini sun ve paket olarak sor -->
|
||
#!/bin/bash
|
||
|
||
# Renkli yazılar için
|
||
RED="\e[31m"
|
||
GREEN="\e[32m"
|
||
NC="\e[0m" # reset
|
||
|
||
HINTS=""
|
||
|
||
# Kurulacak paket listesi
|
||
PACKAGES="linux linux-zen hyprlock xorg-server xorg-xinput xorg-xinit xorg-xrandr mesa vulkan-radeon libva libva-utils wayland wayland-protocols mesa vulkan-radeon base-devel wlogout sddm trash-cli hyprpaper hyprland xdg-desktop-portal xdg-desktop-portal-hyprland libinput libxkbcommon qt5-graphicaleffects ddcutil i2c-tools jq hypridle gtk3 gdk-pixbuf2 gtk-layer-shell waybar ttf-twemoji swaync wl-clipboard kitty btop rofi grim slurp wf-recorder mpv atril ristretto hyprpicker thunar thunar-archive-plugin thunar-volman xarchiver gparted gvfs udisk2 baobab zip unzip unrar p7zip tar networkmanager network-manager-applet wget git neovim nodejs npm clang pyright tumbler pipewire pipewire-pulse wireplumber alsa-utils pavucontrol pacman yay flatpak nvidia nvidia-settings nvidia-utils xfce4-panel xfce4-session xfce4-settings xfconf xfdesktop xfwm4 xfce4-terminal xfce4-notify-plugin xfce4-clipman-plugin"
|
||
PACKAGES_YAY="bluez bluez-utils blueman hyprshade"
|
||
|
||
|
||
M_PACKAGES=(linux linux-zen hyprlock mesa vulkan-radeon libva libva-utils wayland wayland-protocols mesa vulkan-radeon base-devel wlogout sddm trash-cli hyprpaper hyprland xdg-desktop-portal xdg-desktop-portal-hyprland libinput libxkbcommon qt5-graphicaleffects jq hypridle gtk3 gdk-pixbuf2 gtk-layer-shell waybar ttf-twemoji swaync wl-clipboard kitty btop rofi atril ristretto hyprpicker thunar thunar-archive-plugin thunar-volman xarchiver gparted gvfs udisk2 baobab zip unzip unrar p7zip tar networkmanager network-manager-applet wget git mousepad tumbler pavucontrol pacman yay flatpak nvidia nvidia-settings nvidia-utils
|
||
'neovim(neovim nodejs npm clang pyright)'
|
||
'xfce-desktop("Easy setup for XFCE Desktop" sddm thunar thunar-volman thunar-archive-plugin xarchiver mesa xorg-server xorg-xinput xorg-xinit xorg-xrandr xfce4-panel xfce4-session xfce4-settings xfconf xfdesktop xfwm4 xfce4-terminal xfce4-notify-plugin xfce4-clipman-plugin libinput libxkbcommon gtk3 gdk-pixbuf2 tumbler gvfs networkmanager network-manager-applet)'
|
||
'gaming-stack(mesa vulkan-radeon libva libva-utils nvidia nvidia-settings nvidia-utils wine winetricks lutris steam gamemode mangohud)'
|
||
'script-bootloader("Set your boot time to 8 second")'
|
||
'script-keyboard-language("A program that switches between the keyboard layouts(US:TR) using the Alt + Shift keys\nRecommended for XFCE desktop environments")'
|
||
'script-brightness-control("This package allows you to control your screen brightness using five different modes\nDesigned for Sway, but can also be controlled through the terminal." ddcutil i2c-tools)'
|
||
'script-screenrec("This package for recording the screen\nDesigned for Sway, but can also be controlled through the terminal." wf-recorder)'
|
||
'script-screenprint("This package for take screenshot of the screen\nDesigned for Sway, but can also be controlled through the terminal." grim slurp)'
|
||
'script-wifi("Wifi control with sway\nDesigned for Sway, but can also be controlled through the terminal." networkmanager network-manager-applet)'
|
||
'script-gamemode("Improves performance by temporarily disabling unused system features while gaming")'
|
||
'audio-pkgs(pipewire pipewire-pulse wireplumber alsa-utils)'
|
||
'media-player-pkgs(mpv xdg-utils)'
|
||
'themes-and-icons("Themes and icons")')
|
||
M_PACKAGES_YAY=('bluetooth-pkgs(bluez bluez-utils blueman)'
|
||
'script-bt("Bluetooth control with sway\nDesigned for Sway, but can also be controlled through the terminal." bluez bluez-utils blueman)'
|
||
'script-hyprshade("Reduce blue light automatically or manually\nDesigned for Sway, but can also be controlled through the terminal." hyprshade)')
|
||
|
||
echo -e "${GREEN}Do you want to start setup? (y/n)${NC}"
|
||
read -r answer
|
||
|
||
if [[ "$answer" == "y" || "$answer" == "Y" ]]; then
|
||
echo -e "${GREEN}Installing packages: $PACKAGES ...${NC}"
|
||
git clone https://aur.archlinux.org/yay.git
|
||
cd yay
|
||
makepkg -si
|
||
cd ..
|
||
|
||
while true; do
|
||
echo -e "${GREEN}Select an option:${NC}"
|
||
echo "1) Automatic setup (It will overwrite existing configuration files)"
|
||
echo "2) Manual package selection + selected packages and custom scripts installation"
|
||
echo "3) Install custom scripts only"
|
||
echo "4) Exit"
|
||
echo "5) Reboot"
|
||
|
||
read -rp "Enter your choice [1-5]: " choice
|
||
|
||
case "$choice" in
|
||
1)
|
||
sudo pacman -Syu --noconfirm $PACKAGES
|
||
yay -S --noconfirm $PACKAGES_YAY
|
||
|
||
sudo mkdir -p /boot/loader/
|
||
sudo cp boot/loader/loader.conf /boot/loader/loader.conf
|
||
|
||
sudo systemctl enable sddm
|
||
sudo systemctl start sddm
|
||
|
||
systemctl --user enable --now pipewire
|
||
systemctl --user enable --now pipewire-pulse
|
||
systemctl --user enable --now wireplumber
|
||
|
||
sudo rfkill unblock bluetooth
|
||
sudo systemctl enable --now bluetooth
|
||
sudo usermod -aG bluetooth "$USER"
|
||
|
||
xdg-mime default mpv.desktop video/mp4
|
||
xdg-mime default mpv.desktop video/x-matroska
|
||
xdg-mime default mpv.desktop video/webm
|
||
|
||
sudo systemctl enable --now NetworkManager
|
||
|
||
sudo modprobe i2c-dev
|
||
echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf
|
||
sudo usermod -aG i2c "$USER"
|
||
|
||
sudo systemctl enable --now udisks2
|
||
|
||
#CONFIGS
|
||
|
||
cd /Arch_Hyprland_dots/
|
||
|
||
sudo mkdir -p /usr/share/icons/
|
||
sudo cp -rf .config/ /home/$USER/
|
||
sudo cp -rf themes_bg/modest-dark/ /usr/share/icons/
|
||
|
||
hyprctl reload
|
||
|
||
sudo mkdir -p /etc/xdg/swaync/
|
||
mkdir -p ~/.local/bin
|
||
sudo cp ~/.config/swaync/style.css /etc/xdg/swaync/style.css
|
||
sudo cp ~/.config/scripts/hyprshade-auto.sh ~/.local/bin/hyprshade-auto.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
systemctl --user enable --now swaync
|
||
sudo chmod +x ~/.local/bin/hyprshade-auto.sh
|
||
|
||
sudo mkdir -p /home/$USER/Resimler/wallpapers/
|
||
sudo cp themes_bg/wallpaper-2.png /home/$USER/Resimler/wallpapers/wallpaper-2.png
|
||
|
||
sudo chmod +x ~/.config/waybar/scripts/weather.py
|
||
|
||
sudo chown -R bob:bob ~/.config/blacklayer/
|
||
chmod 700 ~/.config/blacklayer
|
||
chmod +x ~/.config/blacklayer/*.sh 2>/dev/null || true
|
||
chmod 600 ~/.config/blacklayer/*.conf 2>/dev/null || true
|
||
[ -f ~/.config/blacklayer/blacklayer ] && chmod +x ~/.config/blacklayer/blacklayer
|
||
sudo chown -R "$USER:$USER" ~/.config/waybar
|
||
chmod 700 ~/.config/waybar
|
||
cd ~/.config/blacklayer/
|
||
./generate-waybar-configs.sh
|
||
|
||
sudo chmod 600 ~/.config/scripts/hyprshade-toggle-state
|
||
sudo chown $USER:$USER ~/.config/scripts/hyprshade-toggle-state
|
||
systemctl --user daemon-reload
|
||
systemctl --user enable --now hyprshade-auto.timer
|
||
|
||
sudo chmod 600 ~/.config/scripts/brightness_mode_state
|
||
sudo chown $USER:$USER ~/.config/scripts/brightness_mode_state
|
||
|
||
hyprctl reload
|
||
echo -e "${GREEN}Download and installation completed successfully!${NC}"
|
||
|
||
MONITORS=$(hyprctl -j monitors | jq -r '.[].name')
|
||
for MONITOR in $MONITORS; do
|
||
echo "Your Monitors:"
|
||
echo "$MONITOR"
|
||
done
|
||
echo "If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"
|
||
echo "Run: ~/.config/scripts/brightness_mode_calib.sh"
|
||
echo "Open your hyprland.conf file to make the necessary changes."
|
||
echo "open your hyprpaper.conf file to make the necessary changes."
|
||
|
||
;;
|
||
|
||
2)
|
||
|
||
echo -e "${GREEN}Selective install mode${NC}"
|
||
|
||
|
||
DOWNLOAD_PKGS=()
|
||
SELECTED_PKGS=()
|
||
|
||
for raw in "${M_PACKAGES[@]}"; do
|
||
|
||
if [[ "$raw" == *"("* ]]; then
|
||
|
||
main_pkg="${raw%%(*}"
|
||
inside="${raw#*(}"
|
||
inside="${inside%)}"
|
||
|
||
msg=""
|
||
deps=""
|
||
|
||
# açıklama + dependency birlikte varsa
|
||
if [[ "$inside" =~ ^\"([^\"]*)\"[[:space:]]*(.*)$ ]]; then
|
||
msg="${BASH_REMATCH[1]}"
|
||
deps="${BASH_REMATCH[2]}"
|
||
|
||
#sadece dependency varsa
|
||
else
|
||
deps="$inside"
|
||
fi
|
||
|
||
deps="$(echo "$deps" | xargs)"
|
||
|
||
# kullanıcıya göster
|
||
if [[ -n "$msg" ]]; then
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -rp "$(printf "Select %s\n%s\nPackages to be installed: %s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")" "$deps")" ans
|
||
echo
|
||
else
|
||
read -rp "$(printf "Select %s\n%s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")")" ans
|
||
echo
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $main_pkg ($deps)? (y/n): " ans
|
||
echo
|
||
fi
|
||
|
||
|
||
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
||
SELECTED_PKGS+=("$main_pkg")
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -ra dep_array <<< "$deps"
|
||
for dep in "${dep_array[@]}"; do
|
||
DOWNLOAD_PKGS+=("$dep|$main_pkg")
|
||
done
|
||
fi
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $raw? (y/n): " ans
|
||
[[ "$ans" =~ ^[Yy]$ ]] && DOWNLOAD_PKGS+=("$raw|")
|
||
fi
|
||
|
||
done
|
||
|
||
|
||
|
||
DOWNLOAD_PKGS_AUR=()
|
||
SELECTED_PKGS_AUR=()
|
||
|
||
for raw in "${M_PACKAGES_YAY[@]}"; do
|
||
|
||
if [[ "$raw" == *"("* ]]; then
|
||
|
||
main_pkg="${raw%%(*}"
|
||
inside="${raw#*(}"
|
||
inside="${inside%)}"
|
||
|
||
msg=""
|
||
deps=""
|
||
|
||
# Açıklama + dependency varsa
|
||
if [[ "$inside" =~ ^\"([^\"]*)\"[[:space:]]*(.*)$ ]]; then
|
||
msg="${BASH_REMATCH[1]}"
|
||
deps="${BASH_REMATCH[2]}"
|
||
else
|
||
deps="$inside"
|
||
fi
|
||
|
||
deps="$(echo "$deps" | xargs)"
|
||
|
||
# Kullanıcıya göster
|
||
if [[ -n "$msg" ]]; then
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -rp "$(printf "Select %s (AUR)\n%s\nPackages to be installed: %s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")" "$deps")" ans
|
||
echo
|
||
else
|
||
read -rp "$(printf "Select %s (AUR)\n%s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")")" ans
|
||
echo
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $main_pkg ($deps) (AUR)? (y/n): " ans
|
||
echo
|
||
fi
|
||
|
||
|
||
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
||
SELECTED_PKGS_AUR+=("$main_pkg")
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -ra dep_array <<< "$deps"
|
||
for dep in "${dep_array[@]}"; do
|
||
DOWNLOAD_PKGS_AUR+=("$dep|$main_pkg")
|
||
done
|
||
fi
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $raw (AUR)? (y/n): " ans
|
||
[[ "$ans" =~ ^[Yy]$ ]] && DOWNLOAD_PKGS_AUR+=("$raw|")
|
||
fi
|
||
|
||
done
|
||
|
||
|
||
|
||
echo
|
||
echo "The following packages will be installed:"
|
||
echo "-----------------------------------------"
|
||
|
||
|
||
if [[ ${#DOWNLOAD_PKGS[@]} -gt 0 ]]; then
|
||
echo "pacman:"
|
||
|
||
SEEN_PKGS=()
|
||
|
||
for entry in "${DOWNLOAD_PKGS[@]}"; do
|
||
pkg="${entry%%|*}"
|
||
parent="${entry#*|}"
|
||
|
||
already=false
|
||
seen_parent=""
|
||
|
||
for seen in "${SEEN_PKGS[@]}"; do
|
||
if [[ "${seen%%|*}" == "$pkg" ]]; then
|
||
already=true
|
||
seen_parent="${seen#*|}"
|
||
break
|
||
fi
|
||
done
|
||
|
||
if $already; then
|
||
if [[ -n "$parent" ]]; then
|
||
echo -e " - ${RED}$pkg($parent) Already in download list${NC}"
|
||
elif [[ -n "$seen_parent" ]]; then
|
||
echo -e " - ${RED}$pkg($seen_parent) Already in download list${NC}"
|
||
else
|
||
echo -e " - ${RED}$pkg Already in download list${NC}"
|
||
fi
|
||
else
|
||
if [[ -n "$parent" ]]; then
|
||
echo " - $pkg($parent)"
|
||
else
|
||
echo " - $pkg"
|
||
fi
|
||
SEEN_PKGS+=("$entry")
|
||
fi
|
||
done
|
||
fi
|
||
|
||
|
||
|
||
if [[ ${#DOWNLOAD_PKGS_AUR[@]} -gt 0 ]]; then
|
||
echo "AUR:"
|
||
|
||
SEEN_PKGS_AUR=()
|
||
|
||
for entry in "${DOWNLOAD_PKGS_AUR[@]}"; do
|
||
pkg="${entry%%|*}"
|
||
parent="${entry#*|}"
|
||
|
||
already=false
|
||
seen_parent=""
|
||
|
||
for seen in "${SEEN_PKGS_AUR[@]}"; do
|
||
if [[ "${seen%%|*}" == "$pkg" ]]; then
|
||
already=true
|
||
seen_parent="${seen#*|}"
|
||
break
|
||
fi
|
||
done
|
||
|
||
if $already; then
|
||
if [[ -n "$parent" ]]; then
|
||
echo -e " - ${RED}$pkg($parent) Already in download list${NC}"
|
||
elif [[ -n "$seen_parent" ]]; then
|
||
echo -e " - ${RED}$pkg($seen_parent) Already in download list${NC}"
|
||
else
|
||
echo -e " - ${RED}$pkg Already in download list${NC}"
|
||
fi
|
||
else
|
||
if [[ -n "$parent" ]]; then
|
||
echo " - $pkg($parent)"
|
||
else
|
||
echo " - $pkg"
|
||
fi
|
||
SEEN_PKGS_AUR+=("$entry")
|
||
fi
|
||
done
|
||
fi
|
||
|
||
|
||
|
||
echo
|
||
read -rp "Proceed with installation? (y/n): " confirm
|
||
|
||
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||
if [[ ${#DOWNLOAD_PKGS[@]} -gt 0 ]]; then
|
||
for pkg in "${DOWNLOAD_PKGS[@]}"; do
|
||
real_pkg="${pkg%%|*}" # | sonrası atılır
|
||
sudo pacman -S --needed "$real_pkg"
|
||
done
|
||
fi
|
||
|
||
if [[ ${#DOWNLOAD_PKGS_AUR[@]} -gt 0 ]]; then
|
||
for pkg in "${DOWNLOAD_PKGS_AUR[@]}"; do
|
||
real_pkg="${pkg%%|*}" # | sonrası atılır
|
||
yay -S --needed "$real_pkg"
|
||
done
|
||
fi
|
||
else
|
||
echo "Installation cancelled."
|
||
fi
|
||
|
||
|
||
|
||
# CONFIGS
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "sddm"
|
||
then
|
||
echo "sddm package selected, running extra configuration..."
|
||
sudo systemctl enable sddm
|
||
sudo systemctl start sddm
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "audio-pkgs"
|
||
then
|
||
echo "Audio package selected, running extra configuration..."
|
||
systemctl --user enable --now pipewire
|
||
systemctl --user enable --now pipewire-pulse
|
||
systemctl --user enable --now wireplumber
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "bluetooth-pkgs"
|
||
then
|
||
echo "Bluetooth package selected, running extra configuration..."
|
||
sudo rfkill unblock bluetooth
|
||
sudo systemctl enable --now bluetooth
|
||
sudo usermod -aG bluetooth "$USER"
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "media-player-pkgs"
|
||
then
|
||
echo "Media-player package selected, running extra configuration..."
|
||
xdg-mime default mpv.desktop video/mp4
|
||
xdg-mime default mpv.desktop video/x-matroska
|
||
xdg-mime default mpv.desktop video/webm
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "networkmanager"
|
||
then
|
||
echo "networkmanager package selected, running extra configuration..."
|
||
sudo systemctl enable --now NetworkManager
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "udisk"
|
||
then
|
||
echo "udisk package selected, running extra configuration..."
|
||
sudo systemctl enable --now udisks2
|
||
fi
|
||
|
||
#SPECIAL CONFIG DOCS
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprland"
|
||
then
|
||
echo "hyprland package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprland.conf /home/$USER/.config/hypr/hyprland.conf
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="Open your hyprland.conf file to make the necessary changes."$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprlock"
|
||
then
|
||
echo "hyprlock package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprlock.conf /home/$USER/.config/hypr/hyprlock.conf
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprpaper"
|
||
then
|
||
echo "hyprpaper package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprpaper.conf /home/$USER/.config/hypr/hyprpaper.conf
|
||
sudo mkdir -p /home/$USER/Resimler/wallpapers/
|
||
sudo cp themes_bg/wallpaper-2.png /home/$USER/Resimler/wallpapers/wallpaper-2.png
|
||
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="open your hyprpaper.conf file to make the necessary changes."$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "kitty"
|
||
then
|
||
echo "kitty package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/kitty
|
||
sudo cp -rf .config/kitty/* /home/$USER/.config/kitty
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "neovim"
|
||
then
|
||
echo "neovim package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/nvim/
|
||
sudo cp -f .config/nvim/init.lua /home/$USER/.config/nvim/init.lua
|
||
sudo npm install -g typescript typescript-language-server
|
||
sudo npm install -g vscode-langservers-extracted
|
||
echo 'export EDITOR=nvim' >> ~/.bashrc && source ~/.bashrc
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "rofi"
|
||
then
|
||
echo "rofi package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/rofi
|
||
sudo cp -rf .config/rofi/* /home/$USER/.config/rofi
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "swaync"
|
||
then
|
||
echo "swaync package selected, running extra configuration..."
|
||
sudo mkdir -p /etc/xdg/swaync/
|
||
sudo cp -f .config/swaync/style.css /etc/xdg/swaync/style.css
|
||
sudo cp -f .config/swaync/configSchema.json /etc/xdg/swaync/configSchema.json
|
||
sudo cp -f .config/swaync/config.json ~/.config/swaync/config.json
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
systemctl --user enable --now swaync
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "waybar"
|
||
then
|
||
echo "waybar package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/waybar
|
||
sudo cp -rf .config/waybar/* /home/$USER/.config/waybar
|
||
sudo chmod +x ~/.config/waybar/scripts/weather.py
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "wlogout"
|
||
then
|
||
echo "wlogout package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/wlogout
|
||
sudo cp -rf .config/wlogout/* /home/$USER/.config/wlogout
|
||
fi
|
||
|
||
|
||
#/SCRIPTS
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-bootloader"
|
||
then
|
||
echo "script-bootloader config file selected, running extra configuration..."
|
||
sudo mkdir -p /boot/loader/
|
||
sudo cp -f boot/loader/loader.conf /boot/loader/loader.conf
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-keyboard-language"
|
||
then
|
||
echo "script-keyboard-language config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/autostart/
|
||
sudo cp -f .config/autostart/klavye_degistirme.desktop ~/.config/autostart/klavye_degistirme.desktop
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-brightness-control"
|
||
then
|
||
echo "script-brightness-control package selected, running extra configuration..."
|
||
sudo modprobe i2c-dev
|
||
echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf
|
||
sudo usermod -aG i2c "$USER"
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/brightness_mode.sh ~/.config/scripts/brightness_mode.sh
|
||
sudo cp -f .config/scripts/brightness_mode_calib.sh ~/.config/scripts/brightness_mode_calib.sh
|
||
sudo cp -f .config/scripts/brightness_mode_state ~/.config/scripts/brightness_mode_state
|
||
sudo cp -f .config/scripts/ddc-map.conf ~/.config/scripts/ddc-map.conf
|
||
sudo chmod 600 ~/.config/scripts/brightness_mode_state
|
||
sudo chown $USER:$USER ~/.config/scripts/brightness_mode_state
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="Run: ~/.config/scripts/brightness_mode_calib.sh"$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-hyprshade"
|
||
then
|
||
echo "script-hyprshade config file selected, running extra configuration..."
|
||
mkdir -p ~/.local/bin
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/hyprshade-auto.sh ~/.local/bin/hyprshade-auto.sh
|
||
sudo cp -f .config/scripts/hyprshade-toggle-state ~/.config/scripts/hyprshade-toggle-state
|
||
sudo cp -f .config/scripts/night_screen.frag ~/.config/scripts/night_screen.frag
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
sudo chmod +x ~/.local/bin/hyprshade-auto.sh
|
||
sudo chmod 600 ~/.config/scripts/hyprshade-toggle-state
|
||
sudo chown $USER:$USER ~/.config/scripts/hyprshade-toggle-state
|
||
|
||
systemctl --user daemon-reload
|
||
systemctl --user enable --now hyprshade-auto.timer
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-screenrec"
|
||
then
|
||
echo "script-screenrec config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo mkdir -p ~/Resimler/
|
||
sudo cp -f .config/scripts/screenrec.sh ~/.config/scripts/screenrec.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-screenprint"
|
||
then
|
||
echo "script-screenprint config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo mkdir -p ~/Resimler/
|
||
sudo cp -f .config/scripts/screenprint.sh ~/.config/scripts/screenprint.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-wifi"
|
||
then
|
||
echo "script-wifi config file selected, running extra configuration..."
|
||
sudo systemctl enable --now NetworkManager
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/wifi-bt.sh ~/.config/scripts/wifi-bt.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-bt"
|
||
then
|
||
echo "script-bt config file selected, running extra configuration..."
|
||
sudo rfkill unblock bluetooth
|
||
sudo systemctl enable --now bluetooth
|
||
sudo usermod -aG bluetooth "$USER"
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/wifi-bt.sh ~/.config/scripts/wifi-bt.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-gamemode"
|
||
then
|
||
echo "script-gamemode config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/gamemode.sh ~/.config/scripts/gamemode.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "themes-and-icons"
|
||
then
|
||
echo "themes-and-icons config file selected, running extra configuration..."
|
||
sudo mkdir -p /usr/share/icons/
|
||
sudo cp -rf themes_bg/modest-dark/ /usr/share/icons/
|
||
fi
|
||
|
||
hyprctl reload
|
||
echo -e "${GREEN}Download and installation completed successfully!${NC}"
|
||
if [[ -n "$HINTS" ]]; then
|
||
echo -e "Hints:\n$HINTS"
|
||
fi
|
||
|
||
|
||
;;
|
||
|
||
|
||
3)
|
||
|
||
echo -e "${GREEN}Selective script mode${NC}"
|
||
|
||
|
||
DOWNLOAD_PKGS=()
|
||
SELECTED_PKGS=()
|
||
|
||
for raw in "${M_PACKAGES[@]}"; do
|
||
|
||
if [[ "$raw" == *"("* ]]; then
|
||
|
||
main_pkg="${raw%%(*}"
|
||
inside="${raw#*(}"
|
||
inside="${inside%)}"
|
||
|
||
msg=""
|
||
deps=""
|
||
|
||
# açıklama + dependency birlikte varsa
|
||
if [[ "$inside" =~ ^\"([^\"]*)\"[[:space:]]*(.*)$ ]]; then
|
||
msg="${BASH_REMATCH[1]}"
|
||
deps="${BASH_REMATCH[2]}"
|
||
|
||
#sadece dependency varsa
|
||
else
|
||
deps="$inside"
|
||
fi
|
||
|
||
deps="$(echo "$deps" | xargs)"
|
||
|
||
# kullanıcıya göster
|
||
if [[ -n "$msg" ]]; then
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -rp "$(printf "Select %s\n%s\nPackages to be installed: %s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")" "$deps")" ans
|
||
echo
|
||
else
|
||
read -rp "$(printf "Select %s\n%s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")")" ans
|
||
echo
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $main_pkg ($deps)? (y/n): " ans
|
||
echo
|
||
fi
|
||
|
||
|
||
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
||
SELECTED_PKGS+=("$main_pkg")
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -ra dep_array <<< "$deps"
|
||
DOWNLOAD_PKGS+=("${dep_array[@]}")
|
||
fi
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $raw? (y/n): " ans
|
||
[[ "$ans" =~ ^[Yy]$ ]] && DOWNLOAD_PKGS+=("$raw")
|
||
fi
|
||
|
||
done
|
||
|
||
|
||
|
||
DOWNLOAD_PKGS_AUR=()
|
||
SELECTED_PKGS_AUR=()
|
||
|
||
for raw in "${M_PACKAGES_YAY[@]}"; do
|
||
|
||
if [[ "$raw" == *"("* ]]; then
|
||
|
||
main_pkg="${raw%%(*}"
|
||
inside="${raw#*(}"
|
||
inside="${inside%)}"
|
||
|
||
msg=""
|
||
deps=""
|
||
|
||
# açıklama + dependency birlikte varsa
|
||
if [[ "$inside" =~ ^\"([^\"]*)\"[[:space:]]*(.*)$ ]]; then
|
||
msg="${BASH_REMATCH[1]}"
|
||
deps="${BASH_REMATCH[2]}"
|
||
else
|
||
deps="$inside"
|
||
fi
|
||
|
||
deps="$(echo "$deps" | xargs)"
|
||
|
||
# kullanıcıya göster
|
||
if [[ -n "$msg" ]]; then
|
||
if [[ -n "$deps" ]]; then
|
||
read -rp "$(printf "Select %s (AUR)\n%s\nPackages to be installed: %s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")" "$deps")" ans
|
||
echo
|
||
else
|
||
read -rp "$(printf "Select %s (AUR)\n%s(y/n): " \
|
||
"$main_pkg" "$(echo -e "$msg")")" ans
|
||
echo
|
||
fi
|
||
else
|
||
read -rp "Select $main_pkg (AUR) ($deps)? (y/n): " ans
|
||
echo
|
||
fi
|
||
|
||
if [[ "$ans" =~ ^[Yy]$ ]]; then
|
||
SELECTED_PKGS_AUR+=("$main_pkg")
|
||
|
||
if [[ -n "$deps" ]]; then
|
||
read -ra dep_array <<< "$deps"
|
||
DOWNLOAD_PKGS_AUR+=("${dep_array[@]}")
|
||
fi
|
||
fi
|
||
|
||
else
|
||
read -rp "Select $raw (AUR)? (y/n): " ans
|
||
[[ "$ans" =~ ^[Yy]$ ]] && DOWNLOAD_PKGS_AUR+=("$raw")
|
||
fi
|
||
|
||
done
|
||
|
||
|
||
#CONFIGS
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "sddm"
|
||
then
|
||
echo "sddm package selected, running extra configuration..."
|
||
sudo systemctl enable sddm
|
||
sudo systemctl start sddm
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "audio-pkgs"
|
||
then
|
||
echo "Audio package selected, running extra configuration..."
|
||
systemctl --user enable --now pipewire
|
||
systemctl --user enable --now pipewire-pulse
|
||
systemctl --user enable --now wireplumber
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "bluetooth-pkgs"
|
||
then
|
||
echo "Bluetooth package selected, running extra configuration..."
|
||
sudo rfkill unblock bluetooth
|
||
sudo systemctl enable --now bluetooth
|
||
sudo usermod -aG bluetooth "$USER"
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "media-player-pkgs"
|
||
then
|
||
echo "Media-player package selected, running extra configuration..."
|
||
xdg-mime default mpv.desktop video/mp4
|
||
xdg-mime default mpv.desktop video/x-matroska
|
||
xdg-mime default mpv.desktop video/webm
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "networkmanager"
|
||
then
|
||
echo "networkmanager package selected, running extra configuration..."
|
||
sudo systemctl enable --now NetworkManager
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "udisk"
|
||
then
|
||
echo "udisk package selected, running extra configuration..."
|
||
sudo systemctl enable --now udisks2
|
||
fi
|
||
|
||
#SPECIAL CONFIG DOCS
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprland"
|
||
then
|
||
echo "hyprland package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprland.conf /home/$USER/.config/hypr/hyprland.conf
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="Open your hyprland.conf file to make the necessary changes."$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprlock"
|
||
then
|
||
echo "hyprlock package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprlock.conf /home/$USER/.config/hypr/hyprlock.conf
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "hyprpaper"
|
||
then
|
||
echo "hyprpaper package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/hypr
|
||
sudo cp -f .config/hypr/hyprpaper.conf /home/$USER/.config/hypr/hyprpaper.conf
|
||
sudo mkdir -p /home/$USER/Resimler/wallpapers/
|
||
sudo cp themes_bg/wallpaper-2.png /home/$USER/Resimler/wallpapers/wallpaper-2.png
|
||
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="open your hyprpaper.conf file to make the necessary changes."$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "kitty"
|
||
then
|
||
echo "kitty package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/kitty
|
||
sudo cp -rf .config/kitty/* /home/$USER/.config/kitty
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "neovim"
|
||
then
|
||
echo "neovim package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/nvim/
|
||
sudo cp -f .config/nvim/init.lua /home/$USER/.config/nvim/init.lua
|
||
sudo npm install -g typescript typescript-language-server
|
||
sudo npm install -g vscode-langservers-extracted
|
||
echo 'export EDITOR=nvim' >> ~/.bashrc && source ~/.bashrc
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "rofi"
|
||
then
|
||
echo "rofi package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/rofi
|
||
sudo cp -rf .config/rofi/* /home/$USER/.config/rofi
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "swaync"
|
||
then
|
||
echo "swaync package selected, running extra configuration..."
|
||
sudo mkdir -p /etc/xdg/swaync/
|
||
sudo mkdir -p /home/$USER/.config/swaync
|
||
sudo cp -f .config/swaync/style.css /etc/xdg/swaync/style.css
|
||
sudo cp -f .config/swaync/configSchema.json /etc/xdg/swaync/configSchema.json
|
||
sudo cp -f .config/swaync/config.json ~/.config/swaync/config.json
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
systemctl --user enable --now swaync
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "waybar"
|
||
then
|
||
echo "waybar package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/waybar
|
||
sudo cp -rf .config/waybar/* /home/$USER/.config/waybar
|
||
sudo chmod +x ~/.config/waybar/scripts/weather.py
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "wlogout"
|
||
then
|
||
echo "wlogout package selected, running extra configuration..."
|
||
sudo mkdir -p /home/$USER/.config/wlogout
|
||
sudo cp -rf .config/wlogout/* /home/$USER/.config/wlogout
|
||
fi
|
||
|
||
|
||
#/SCRIPTS
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-bootloader"
|
||
then
|
||
echo "script-bootloader config file selected, running extra configuration..."
|
||
sudo mkdir -p /boot/loader/
|
||
sudo cp -f boot/loader/loader.conf /boot/loader/loader.conf
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-keyboard-language"
|
||
then
|
||
echo "script-keyboard-language config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/autostart/
|
||
sudo cp -f .config/autostart/klavye_degistirme.desktop ~/.config/autostart/klavye_degistirme.desktop
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-brightness-control"
|
||
then
|
||
echo "script-brightness-control package selected, running extra configuration..."
|
||
sudo modprobe i2c-dev
|
||
echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf
|
||
sudo usermod -aG i2c "$USER"
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/brightness_mode.sh ~/.config/scripts/brightness_mode.sh
|
||
sudo cp -f .config/scripts/brightness_mode_calib.sh ~/.config/scripts/brightness_mode_calib.sh
|
||
sudo cp -f .config/scripts/brightness_mode_state ~/.config/scripts/brightness_mode_state
|
||
sudo cp -f .config/scripts/ddc-map.conf ~/.config/scripts/ddc-map.conf
|
||
sudo chmod 600 ~/.config/scripts/brightness_mode_state
|
||
sudo chown $USER:$USER ~/.config/scripts/brightness_mode_state
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
HINTS+="If your monitors are not named HDMI-A-2 and DP-2, or if you have more than two monitors, follow these steps:"$'\n'
|
||
HINTS+="Run: ~/.config/scripts/brightness_mode_calib.sh"$'\n'
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-hyprshade"
|
||
then
|
||
echo "script-hyprshade config file selected, running extra configuration..."
|
||
mkdir -p ~/.local/bin
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/hyprshade-auto.sh ~/.local/bin/hyprshade-auto.sh
|
||
sudo cp -f .config/scripts/hyprshade-toggle-state ~/.config/scripts/hyprshade-toggle-state
|
||
sudo cp -f .config/scripts/night_screen.frag ~/.config/scripts/night_screen.frag
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
sudo chmod +x ~/.local/bin/hyprshade-auto.sh
|
||
sudo chmod 600 ~/.config/scripts/hyprshade-toggle-state
|
||
sudo chown $USER:$USER ~/.config/scripts/hyprshade-toggle-state
|
||
|
||
systemctl --user daemon-reload
|
||
systemctl --user enable --now hyprshade-auto.timer
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-screenrec"
|
||
then
|
||
echo "script-screenrec config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo mkdir -p ~/Resimler/
|
||
sudo cp -f .config/scripts/screenrec.sh ~/.config/scripts/screenrec.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-screenprint"
|
||
then
|
||
echo "script-screenprint config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo mkdir -p ~/Resimler/
|
||
sudo cp -f .config/scripts/screenprint.sh ~/.config/scripts/screenprint.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-wifi"
|
||
then
|
||
echo "script-wifi config file selected, running extra configuration..."
|
||
sudo systemctl enable --now NetworkManager
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/wifi-bt.sh ~/.config/scripts/wifi-bt.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-bt"
|
||
then
|
||
echo "script-bt config file selected, running extra configuration..."
|
||
sudo rfkill unblock bluetooth
|
||
sudo systemctl enable --now bluetooth
|
||
sudo usermod -aG bluetooth "$USER"
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/wifi-bt.sh ~/.config/scripts/wifi-bt.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "script-gamemode"
|
||
then
|
||
echo "script-gamemode config file selected, running extra configuration..."
|
||
sudo mkdir -p ~/.config/scripts/
|
||
sudo cp -f .config/scripts/gamemode.sh ~/.config/scripts/gamemode.sh
|
||
sudo chmod +x ~/.config/scripts/*.sh
|
||
fi
|
||
|
||
|
||
if printf '%s\n' "${SELECTED_PKGS[@]}" "${SELECTED_PKGS_AUR[@]}" "${DOWNLOAD_PKGS[@]}" "${DOWNLOAD_PKGS_AUR[@]}" | grep -qx "themes-and-icons"
|
||
then
|
||
echo "themes-and-icons config file selected, running extra configuration..."
|
||
sudo mkdir -p /usr/share/icons/
|
||
sudo cp -rf themes_bg/modest-dark/ /usr/share/icons/
|
||
fi
|
||
|
||
hyprctl reload
|
||
echo -e "${GREEN}Download and installation completed successfully!${NC}"
|
||
if [[ -n "$HINTS" ]]; then
|
||
echo -e "Hints:\n$HINTS"
|
||
fi
|
||
|
||
;;
|
||
|
||
|
||
4)
|
||
# Exit application
|
||
break
|
||
;;
|
||
|
||
|
||
5)
|
||
read -rp "Unsaved changes will be lost. Are you sure you want to reboot? (y/n): " confirm
|
||
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
||
# Reboot system
|
||
:
|
||
fi
|
||
;;
|
||
*)
|
||
echo "Invalid option. Please select a number between 1 and 5."
|
||
;;
|
||
|
||
esac
|
||
done
|
||
|
||
|
||
else
|
||
echo -e "${RED}Skipping installation.${NC}"
|
||
fi
|