Files
nix/cachyos/setup.sh
2025-11-08 21:20:48 +02:00

173 lines
5.3 KiB
Bash
Executable File

#!/bin/bash
# Setup Script for Hyprland Rice Configuration
# Creates symlinks and performs final setup
set -e
echo "🔧 Setting up Hyprland rice configuration..."
CONFIG_DIR="~/config"
USER_HOME="$HOME"
XDG_CONFIG_HOME="$USER_HOME/.config"
# Function to create symlink
create_symlink() {
local source="$1"
local target="$2"
local description="$3"
if [ -e "$source" ]; then
echo "🔗 Creating symlink: $description"
# Remove existing file/directory if it exists
[ -e "$target" ] && rm -rf "$target"
# Create parent directory if it doesn't exist
mkdir -p "$(dirname "$target")"
# Create symlink
ln -sf "$source" "$target"
echo "$description configured"
else
echo " ⚠️ Source not found: $source"
fi
}
# Create configuration symlinks
echo "📁 Setting up configuration symlinks..."
# Hyprland configuration
create_symlink "$CONFIG_DIR/config/hypr" "$XDG_CONFIG_HOME/hypr" "Hyprland configuration"
# Waybar configuration
create_symlink "$CONFIG_DIR/config/waybar" "$XDG_CONFIG_HOME/waybar" "Waybar configuration"
# Wofi configuration
create_symlink "$CONFIG_DIR/config/wofi" "$XDG_CONFIG_HOME/wofi" "Wofi configuration"
# Dunst configuration
create_symlink "$CONFIG_DIR/config/dunst" "$XDG_CONFIG_HOME/dunst" "Dunst notification daemon"
# Ghostty configuration
create_symlink "$CONFIG_DIR/config/ghostty" "$XDG_CONFIG_HOME/ghostty" "Ghostty terminal configuration"
# Wlogout configuration
create_symlink "$CONFIG_DIR/config/wlogout" "$XDG_CONFIG_HOME/wlogout" "Wlogout configuration"
# Qt5CT configuration
create_symlink "$CONFIG_DIR/config/qt5ct" "$XDG_CONFIG_HOME/qt5ct" "Qt5CT configuration"
# Fastfetch configuration
create_symlink "$CONFIG_DIR/config/fastfetch" "$XDG_CONFIG_HOME/fastfetch" "Fastfetch configuration"
# XDG Desktop Portal configuration
create_symlink "$CONFIG_DIR/config/xdg-desktop-portal" "$XDG_CONFIG_HOME/xdg-desktop-portal" "XDG Desktop Portal configuration"
# Create fonts directory and symlink custom font
echo "🔤 Setting up fonts..."
FONT_DIR="$USER_HOME/.local/share/fonts"
mkdir -p "$FONT_DIR"
create_symlink "$CONFIG_DIR/config/dotfile_deps/DotfilesFont.otf" "$FONT_DIR/DotfilesFont.otf" "Custom Dotfiles font"
# Set up GTK configuration
echo "🎨 Setting up GTK configuration..."
GTK_CONFIG_DIR="$XDG_CONFIG_HOME/gtk-3.0"
mkdir -p "$GTK_CONFIG_DIR"
create_symlink "$CONFIG_DIR/config/gtk-3.0/settings.ini" "$GTK_CONFIG_DIR/settings.ini" "GTK3 settings"
# Install Arashi icon theme
echo "🎯 Installing Arashi icon theme..."
ARASHI_THEME_DIR="$USER_HOME/.local/share/icons/Arashi"
ARASHI_REPO="https://github.com/0hStormy/Arashi"
if [ ! -d "$ARASHI_THEME_DIR" ]; then
mkdir -p "$USER_HOME/.local/share/icons/"
echo " 📥 Cloning Arashi icon theme from GitHub..."
git clone "$ARASHI_REPO" "$ARASHI_THEME_DIR"
echo " ✅ Arashi icon theme installed from GitHub"
else
echo " ✅ Arashi icon theme already installed"
fi
# Set up desktop environment
echo "🖥️ Configuring desktop environment..."
# Set GTK theme
if command -v gsettings &> /dev/null; then
echo "🎨 Setting GTK themes..."
gsettings set org.gnome.desktop.interface gtk-theme "Catppuccin-Mocha-Standard-Blue-Dark"
gsettings set org.gnome.desktop.interface icon-theme "Arashi"
gsettings set org.gnome.desktop.interface cursor-theme "RalseiCursors"
gsettings set org.gnome.desktop.interface font-name "Noto Sans 11"
gsettings set org.gnome.desktop.wm.preferences theme "Catppuccin-Mocha-Standard-Blue-Dark"
echo " ✅ GTK themes configured"
fi
# Set Qt theme
echo "🎨 Setting Qt themes..."
if command -v qt5ct &> /dev/null; then
echo " ✅ Qt5CT available for Qt5 theme configuration"
fi
if command -v qt6ct &> /dev/null; then
echo " ✅ Qt6CT available for Qt6 theme configuration"
fi
# Configure XDG directories
echo "📂 Setting up XDG directories..."
mkdir -p "$USER_HOME/.local/share/applications"
mkdir -p "$USER_HOME/.local/share/mime"
mkdir -p "$USER_HOME/.cache"
# Set up environment variables
echo "🌍 Setting up environment variables..."
sudo tee -a /etc/environment << EOF
# Hyprland rice environment variables
XDG_TERMINAL=ghostty
XDG_SYSTEM_MONITOR=htop
GTK_USE_PORTAL=1
QT_QPA_PLATFORMTHEME=qt5ct
EOF
echo " ✅ Environment variables configured in /etc/environment"
# Create useful scripts
echo "📝 Creating useful scripts..."
SCRIPTS_DIR="$USER_HOME/.local/bin"
mkdir -p "$SCRIPTS_DIR"
# Roblox game scripts
cat > "$SCRIPTS_DIR/regretevator" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=4972273297
EOF
cat > "$SCRIPTS_DIR/kaijuparadise" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=6456351776
EOF
cat > "$SCRIPTS_DIR/sewh" << 'EOF'
#!/bin/bash
xdg-open roblox://placeId=16991287194
EOF
# Make scripts executable
chmod +x "$SCRIPTS_DIR/regretevator"
chmod +x "$SCRIPTS_DIR/kaijuparadise"
chmod +x "$SCRIPTS_DIR/sewh"
echo " ✅ Roblox game scripts created"
# Update font cache
echo "🔄 Updating font cache..."
if command -v fc-cache &> /dev/null; then
fc-cache -fv
echo " ✅ Font cache updated"
fi
# Update icon cache
echo "🔄 Updating icon cache..."
if command -v gtk-update-icon-cache &> /dev/null; then
gtk-update-icon-cache -f -t "$USER_HOME/.local/share/icons" 2>/dev/null || true
echo " ✅ Icon cache updated"
fi