Files
sway-new-config/install-arch-sway-requirements.sh
2025-12-09 21:23:12 +02:00

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/weather-sway.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"