2025-04-21 17:53:45 +05:30
|
|
|
#!/bin/bash
|
|
|
|
|
2025-04-29 10:03:16 +05:30
|
|
|
set -euo pipefail
|
|
|
|
|
2025-06-10 00:40:16 -04:00
|
|
|
cat <<EOF
|
2025-05-17 09:46:15 +05:30
|
|
|
_________ __ ____ ___
|
|
|
|
/ _____/ _____/ |_| | \______
|
|
|
|
\_____ \_/ __ \ __\ | /\____ \
|
2025-06-02 10:11:08 +05:30
|
|
|
/ \ ___/| | | | / | |_> >>>>
|
2025-05-17 09:46:15 +05:30
|
|
|
/_______ /\___ >__| |______/ | __/
|
|
|
|
\/ \/ |__|
|
2025-04-21 18:02:16 +05:30
|
|
|
|
|
|
|
EOF
|
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
LOCAL_BIN="$HOME/.local/bin"
|
|
|
|
FONT_DIR="$HOME/.local/share/fonts"
|
2025-06-13 01:45:22 -04:00
|
|
|
DOTS_DIR="$HOME/mine-hyprdots"
|
2025-04-21 17:53:45 +05:30
|
|
|
|
2025-06-13 01:45:22 -04:00
|
|
|
# echo "==> Backing up existing config files..."
|
|
|
|
# mkdir -p "$BACKUP_DIR"
|
|
|
|
# for dir in $CONFIGS; do
|
|
|
|
# if [ -d "$HOME/.config/$dir" ]; then
|
|
|
|
# echo "=> Backing up $dir to $BACKUP_DIR"
|
|
|
|
# cp -r "$HOME/.config/$dir" "$BACKUP_DIR/$dir"
|
|
|
|
# rm -rf "$HOME/.config/$dir"
|
|
|
|
# fi
|
|
|
|
# done
|
|
|
|
#
|
|
|
|
# echo "==> Copying new config files..."
|
|
|
|
# cp -r $CONFIGS "$HOME/.config/"
|
2025-04-22 15:51:16 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Making Waybar and Rofi scripts executable..."
|
|
|
|
chmod +x ~/.config/waybar/scripts/*
|
|
|
|
chmod +x ~/.config/rofi/* || true
|
2025-04-29 10:03:16 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Copying binaries..."
|
|
|
|
mkdir -p "$LOCAL_BIN"
|
|
|
|
cp -r bin/* "$LOCAL_BIN"
|
|
|
|
chmod +x "$LOCAL_BIN"/*
|
2025-04-29 10:03:16 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Copying .zshrc..."
|
|
|
|
cp zsh/.zshrc "$HOME/.zshrc"
|
2025-04-21 17:53:45 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Making scripts executable..."
|
|
|
|
chmod +x "$DOTS_DIR"/* || true
|
2025-04-21 18:02:16 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
# Font Awesome Installation
|
|
|
|
FA_DIR="$FONT_DIR/fontawesome"
|
|
|
|
mkdir -p "$FA_DIR"
|
2025-04-22 15:27:09 +05:30
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Installing Font Awesome (v5 & v6)..."
|
|
|
|
if [[ ! -f "$FA_DIR/fa-brands-400.ttf" ]]; then
|
2025-06-10 00:40:16 -04:00
|
|
|
wget -q https://use.fontawesome.com/releases/v6.7.2/fontawesome-free-6.7.2-desktop.zip
|
|
|
|
unzip -q fontawesome-free-6.7.2-desktop.zip
|
|
|
|
mv fontawesome-free-6.7.2-desktop/otfs/*.otf "$FA_DIR/"
|
|
|
|
rm -rf fontawesome-free-6.7.2-desktop*
|
|
|
|
|
|
|
|
wget -q https://use.fontawesome.com/releases/v5.15.4/fontawesome-free-5.15.4-desktop.zip
|
|
|
|
unzip -q fontawesome-free-5.15.4-desktop.zip
|
|
|
|
mv fontawesome-free-5.15.4-desktop/otfs/*.otf "$FA_DIR/"
|
|
|
|
rm -rf fontawesome-free-5.15.4-desktop*
|
2025-04-22 15:51:16 +05:30
|
|
|
else
|
2025-06-10 00:40:16 -04:00
|
|
|
echo "✔️ Font Awesome already installed, skipping."
|
2025-04-22 15:51:16 +05:30
|
|
|
fi
|
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
# JetBrains Nerd Font Installation
|
|
|
|
JB_FONT_DIR="$FONT_DIR/JetBrainsMono"
|
|
|
|
mkdir -p "$JB_FONT_DIR"
|
|
|
|
|
|
|
|
echo "==> Installing JetBrains Nerd Fonts..."
|
|
|
|
if [[ ! -f "$JB_FONT_DIR/JetBrainsMono-Regular.ttf" ]]; then
|
2025-06-10 00:40:16 -04:00
|
|
|
wget -q https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/JetBrainsMono.zip
|
|
|
|
unzip -q JetBrainsMono.zip -d JetBrainsMono
|
|
|
|
mv JetBrainsMono/*.ttf "$JB_FONT_DIR/"
|
|
|
|
rm -rf JetBrainsMono JetBrainsMono.zip
|
2025-04-22 15:51:16 +05:30
|
|
|
else
|
2025-06-10 00:40:16 -04:00
|
|
|
echo "✔️ JetBrains Nerd Font already installed, skipping."
|
2025-04-22 15:51:16 +05:30
|
|
|
fi
|
|
|
|
|
2025-05-17 09:46:15 +05:30
|
|
|
echo "==> Refreshing font cache..."
|
2025-05-03 12:50:32 +05:30
|
|
|
fc-cache -f -v
|
2025-04-22 15:51:16 +05:30
|
|
|
|
2025-06-02 10:40:35 +05:30
|
|
|
echo -e "\n✅ Base setup completed successfully!"
|
|
|
|
|
|
|
|
# Create wallpaper directory
|
|
|
|
echo "==> Creating wallpaper directory..."
|
|
|
|
mkdir -p ~/Pictures/Wallpaper
|
|
|
|
|
|
|
|
# Install yay if not already installed
|
|
|
|
if ! command -v yay &>/dev/null; then
|
2025-06-10 00:40:16 -04:00
|
|
|
echo "==> Installing AUR package manager (yay)..."
|
|
|
|
sudo pacman -S --needed git base-devel || {
|
|
|
|
echo "❌ Failed to install base-devel"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
git clone https://aur.archlinux.org/yay.git ~/yay && cd ~/yay && makepkg -si || {
|
|
|
|
echo "❌ yay installation failed"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
cd ~
|
2025-06-02 10:40:35 +05:30
|
|
|
else
|
2025-06-10 00:40:16 -04:00
|
|
|
echo "✔️ yay is already installed."
|
2025-06-02 10:40:35 +05:30
|
|
|
fi
|
2025-06-02 10:11:08 +05:30
|
|
|
|
2025-06-13 01:11:21 -04:00
|
|
|
# Install dev languages and tools
|
|
|
|
|
|
|
|
echo "==> Installing languages ..."
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
echo "==> Installing rust..."
|
|
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
|
|
|
|
|
|
echo "==> Installing bun..."
|
|
|
|
curl -fsSL https://bun.sh/install | bash
|
|
|
|
|
|
|
|
echo "==> Installing node via nvm..."
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
|
|
|
|
|
|
echo "Waiting to install other packages and xdg-desktop-portal-hyprland..."
|
|
|
|
sleep 10
|
|
|
|
done
|
|
|
|
|
2025-06-02 10:40:35 +05:30
|
|
|
# Install useful packages from pacman and AUR
|
|
|
|
echo "==> Installing core packages..."
|
|
|
|
yay -S --noconfirm \
|
2025-06-10 00:40:16 -04:00
|
|
|
pacseek \
|
|
|
|
zoxide \
|
|
|
|
fzf \
|
|
|
|
unzip \
|
|
|
|
ghostty \
|
|
|
|
ghostty-terminfo \
|
|
|
|
ghostty-shell-integration \
|
|
|
|
zsh \
|
|
|
|
starship \
|
|
|
|
atuin \
|
|
|
|
zellij \
|
|
|
|
eza \
|
2025-06-13 01:11:21 -04:00
|
|
|
zoxide \
|
|
|
|
lazydocker \
|
2025-06-10 00:40:16 -04:00
|
|
|
acpi \
|
|
|
|
playerctl \
|
|
|
|
zsh-autosuggestions \
|
|
|
|
zsh-syntax-highlighting \
|
|
|
|
zsh-history-substring-search
|
2025-06-02 10:40:35 +05:30
|
|
|
|
|
|
|
sudo pacman -S --noconfirm \
|
2025-06-10 00:40:16 -04:00
|
|
|
dunst \
|
|
|
|
libnotify \
|
|
|
|
waybar \
|
|
|
|
wl-clipboard \
|
|
|
|
xdg-desktop-portal-hyprland \
|
|
|
|
xdg-desktop-portal \
|
|
|
|
brightnessctl \
|
|
|
|
pavucontrol \
|
|
|
|
tmux \
|
|
|
|
slurp \
|
|
|
|
grim \
|
|
|
|
hyprlock \
|
2025-06-13 01:11:21 -04:00
|
|
|
lazygit \
|
2025-06-10 00:40:16 -04:00
|
|
|
pamixer
|
2025-06-02 10:40:35 +05:30
|
|
|
|
|
|
|
# Set zsh as default shell if not already
|
|
|
|
if [[ "$SHELL" != "$(which zsh)" ]]; then
|
2025-06-10 00:40:16 -04:00
|
|
|
echo "==> Changing default shell to zsh..."
|
|
|
|
chsh -s "$(which zsh)"
|
2025-06-02 10:40:35 +05:30
|
|
|
fi
|
2025-06-02 10:11:08 +05:30
|
|
|
|
2025-06-02 10:40:35 +05:30
|
|
|
# Ensure Zsh plugins and tools are sourced in .zshrc
|
|
|
|
ZSHRC="$HOME/.zshrc"
|
|
|
|
echo "==> Configuring Zsh plugins and tools..."
|
|
|
|
{
|
2025-06-10 00:40:16 -04:00
|
|
|
echo -e "\n# Zsh Plugins and Tools"
|
|
|
|
echo "source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
|
|
|
echo "source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
|
|
|
echo "source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh"
|
|
|
|
echo 'eval "$(zoxide init zsh)"'
|
|
|
|
echo 'eval "$(atuin init zsh)"'
|
|
|
|
echo 'eval "$(zellij setup --generate-auto-start zsh)"'
|
|
|
|
echo 'eval "$(starship init zsh)"'
|
|
|
|
} >>"$ZSHRC"
|
2025-06-02 10:40:35 +05:30
|
|
|
|
|
|
|
echo -e "\n✅ All packages and Zsh plugins configured successfully!"
|