188 lines
6.6 KiB
Bash
Executable File
188 lines
6.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install Arch Linux packages and setup for Sway
|
|
|
|
set -e
|
|
|
|
echo "Installing Sway requirements and packages for Arch Linux..."
|
|
echo "==========================================================="
|
|
echo ""
|
|
echo "This script will install packages and configure services for Sway."
|
|
echo "You can comment out sections you don't want to install."
|
|
echo ""
|
|
|
|
# === CORE SWAY PACKAGES ===
|
|
# Comment out this section if you already have Sway installed
|
|
# echo "=== Installing Core Sway Packages ==="
|
|
# echo "Installing: sway swaylock swayidle fuzzel foot i3status-rust"
|
|
# sudo pacman -S --needed sway swaylock swayidle fuzzel foot i3status-rust
|
|
# echo "✓ Core Sway packages installed"
|
|
# echo ""
|
|
|
|
# === ESSENTIAL SYSTEM PACKAGES ===
|
|
# Comment out this section if you don't want these system packages
|
|
echo "=== Installing Essential System Packages ==="
|
|
echo "Installing: file manager, screenshots, brightness, display config"
|
|
sudo pacman -S --needed thunar grim slurp brightnessctl wdisplays
|
|
echo "✓ Essential system packages installed"
|
|
echo ""
|
|
|
|
# === NOTIFICATION SYSTEM ===
|
|
# Comment out this section if you don't want notifications
|
|
echo "=== Installing Notification System ==="
|
|
echo "Installing: mako (notification daemon)"
|
|
sudo pacman -S --needed mako
|
|
echo "✓ Notification system installed"
|
|
echo ""
|
|
|
|
# === AUDIO SYSTEM ===
|
|
# Comment out this section if you already have audio configured
|
|
# echo "=== Installing Audio System (PipeWire) ==="
|
|
# echo "Installing: pipewire, pipewire-pulse, pipewire-alsa, wireplumber"
|
|
# sudo pacman -S --needed pipewire pipewire-pulse pipewire-alsa wireplumber
|
|
# echo "✓ Audio system installed"
|
|
# echo ""
|
|
|
|
# === NETWORK AND BLUETOOTH ===
|
|
# Comment out this section if you don't want NetworkManager/Bluetooth
|
|
# echo "=== Installing Network and Bluetooth ==="
|
|
# echo "Installing: networkmanager, blueman, network-manager-applet"
|
|
# sudo pacman -S --needed networkmanager blueman network-manager-applet
|
|
# echo "✓ Network and Bluetooth packages installed"
|
|
# echo ""
|
|
|
|
# === WAYLAND INTEGRATION ===
|
|
# Comment out this section if you don't need screen sharing/file pickers
|
|
echo "=== Installing Wayland Integration ==="
|
|
echo "Installing: xdg-desktop-portal-wlr (screen sharing, file pickers)"
|
|
sudo pacman -S --needed xdg-desktop-portal-wlr
|
|
echo "✓ Wayland integration installed"
|
|
echo ""
|
|
|
|
# === FONTS ===
|
|
# Comment out this section if you don't want additional fonts
|
|
echo "=== Installing Fonts ==="
|
|
echo "Installing: ttf-font-awesome, ttf-dejavu, noto-fonts, noto-fonts-emoji"
|
|
sudo pacman -S --needed ttf-font-awesome ttf-dejavu noto-fonts noto-fonts-emoji
|
|
echo "✓ Fonts installed"
|
|
echo ""
|
|
|
|
# === VISUAL ENHANCEMENTS ===
|
|
# Comment out this section if you don't want icon themes
|
|
echo "=== Installing Visual Enhancements ==="
|
|
echo "Installing: papirus-icon-theme"
|
|
sudo pacman -S --needed papirus-icon-theme
|
|
echo "✓ Visual enhancements installed"
|
|
echo ""
|
|
|
|
# === UTILITIES ===
|
|
# Comment out this section if you don't want these utilities
|
|
echo "=== Installing Utilities ==="
|
|
echo "Installing: curl, libnotify, jq, pavucontrol, thunar-volman, gvfs"
|
|
sudo pacman -S --needed curl libnotify jq pavucontrol thunar-volman gvfs
|
|
echo "✓ Utilities installed"
|
|
echo ""
|
|
|
|
# === AUTHENTICATION AGENT (OPTIONAL) ===
|
|
# Comment out this section if you don't want GUI password prompts
|
|
echo "=== Installing Authentication Agent (Optional) ==="
|
|
echo "Choose one or comment out entirely:"
|
|
echo ""
|
|
echo "1. lxqt-policykit (recommended: lightweight Qt-based)"
|
|
echo "2. polkit-dumb-agent (minimal: command-line only)"
|
|
echo "3. Skip (no GUI password prompts)"
|
|
echo ""
|
|
read -p "Enter choice (1/2/3): " auth_choice
|
|
|
|
case $auth_choice in
|
|
1)
|
|
echo "Installing lxqt-policykit..."
|
|
sudo pacman -S --needed lxqt-policykit
|
|
echo "✓ lxqt-policykit installed"
|
|
echo "Note: Auto-started in Sway config"
|
|
;;
|
|
2)
|
|
echo "Installing polkit-dumb-agent..."
|
|
sudo pacman -S --needed polkit-dumb-agent
|
|
echo "✓ polkit-dumb-agent installed"
|
|
echo "Note: You'll need to update Sway config to use this instead"
|
|
;;
|
|
3)
|
|
echo "Skipping authentication agent"
|
|
echo "Note: Comment out 'exec lxqt-policykit-agent' in Sway config"
|
|
;;
|
|
*)
|
|
echo "Invalid choice, skipping authentication agent"
|
|
;;
|
|
esac
|
|
echo ""
|
|
|
|
# === ENABLE SERVICES ===
|
|
# Comment out this section if you don't want to enable services
|
|
echo "=== Enabling Services ==="
|
|
|
|
# NetworkManager
|
|
echo "Enabling NetworkManager..."
|
|
if ! systemctl is-enabled NetworkManager >/dev/null 2>&1; then
|
|
sudo systemctl enable NetworkManager
|
|
echo "✓ NetworkManager enabled"
|
|
else
|
|
echo "✓ NetworkManager already enabled"
|
|
fi
|
|
|
|
if ! systemctl is-active NetworkManager >/dev/null 2>&1; then
|
|
sudo systemctl start NetworkManager
|
|
echo "✓ NetworkManager started"
|
|
else
|
|
echo "✓ NetworkManager already running"
|
|
fi
|
|
|
|
# PipeWire (user services)
|
|
# echo "Enabling PipeWire services..."
|
|
# systemctl --user enable pipewire pipewire-pulse wireplumber 2>/dev/null || true
|
|
# systemctl --user start pipewire pipewire-pulse wireplumber 2>/dev/null || true
|
|
# echo "✓ PipeWire services enabled and started"
|
|
# echo ""
|
|
|
|
# === CONFIGURATION NOTES ===
|
|
echo "=========================================="
|
|
echo "✅ Package installation complete!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "🔧 Additional setup recommendations:"
|
|
echo ""
|
|
echo "1. Add to your shell rc file (~/.bashrc or ~/.zshrc):"
|
|
echo " export XDG_CURRENT_DESKTOP=sway"
|
|
echo " export XDG_SESSION_DESKTOP=sway"
|
|
echo ""
|
|
echo "2. Weather configuration:"
|
|
echo " - Default location: Pärnu (wttr.in, no API key needed)"
|
|
echo " - Shows weather + sunrise/sunset times"
|
|
echo " - Left click: detailed weather notification"
|
|
echo " - Right click: open wttr.in website"
|
|
echo " - Change location: edit ~/.config/sway/scripts/i3status/wttrin-weather.sh"
|
|
echo ""
|
|
echo "3. Key applications configured:"
|
|
echo " - Terminal: foot"
|
|
echo " - File manager: thunar"
|
|
echo " - Launcher: fuzzel"
|
|
echo " - Display settings: wdisplays"
|
|
echo " - Network: nm-connection-editor"
|
|
echo " - Bluetooth: blueman-manager"
|
|
echo ""
|
|
echo "4. Alternative applications you might prefer:"
|
|
echo " - Terminal: alacritty, kitty, wezterm"
|
|
echo " - File manager: nautilus, dolphin, nemo, pcmanfm"
|
|
echo " - Launcher: wofi, rofi-wayland, bemenu"
|
|
echo ""
|
|
echo "5. To customize apps, edit variables in ~/.config/sway/config:"
|
|
echo " - set \$term foot"
|
|
echo " - set \$filemanager thunar"
|
|
echo " - set \$menu fuzzel"
|
|
echo ""
|
|
echo "6. For HiDPI displays, add to Sway config:"
|
|
echo " output * scale 1.5"
|
|
echo ""
|
|
echo "🚀 Ready to use Sway!"
|
|
echo " - Log out and select Sway from display manager"
|
|
echo " - Or start from TTY with: sway"
|