Files
sway-new-config/install-arch-sway.sh

158 lines
6.2 KiB
Bash
Executable File

#!/bin/bash
# Install Sway configuration files only - Arch Linux version
set -e
echo "Installing Sway configuration files for Arch Linux..."
echo "======================================================="
# Create sway config directory
mkdir -p ~/.config/sway
echo "✓ Created ~/.config/sway directory"
# Backup existing sway config if it exists
if [ -f ~/.config/sway/config ]; then
echo "⚠ Backing up existing sway config to ~/.config/sway/config.backup"
cp ~/.config/sway/config ~/.config/sway/config.backup
fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# === MAKO CONFIG ===
# Create mako config directory
mkdir -p ~/.config/mako
echo "✓ Created ~/.config/mako directory"
echo ""
echo "Installing mako config..."
cp $SCRIPT_DIR/home_dotfiles/.config/mako/config ~/.config/mako/config
echo "✓ mako config installed to ~/.config/mako/config"
# === SWAY CONFIG ===
# Comment out this section if you don't want to install the main config
echo ""
echo "Installing main Sway config..."
cp $SCRIPT_DIR/home_dotfiles/.config/sway/config ~/.config/sway/config
echo "✓ Sway config installed to ~/.config/sway/config"
# === SWAYIMG CONFIG ===
echo ""
echo "Installing swayimg config..."
cp $SCRIPT_DIR/home_dotfiles/.config/swayimg/swayimgrc ~/.config/swayimg/swayimgrc
echo "✓ Swayimg config installed to ~/.config/swayimg/swayimgrc"
# === I3STATUS-RUST CONFIG ===
# Comment out this section if you don't want i3status-rust
echo ""
echo "Installing i3status-rust config..."
cp $SCRIPT_DIR/home_dotfiles/.config/sway/i3status-rust.toml ~/.config/sway/i3status-rust.toml
echo "✓ i3status-rust config installed to ~/.config/sway/i3status-rust.toml"
# === DISPLAY PROFILE TOGGLE (MODE / BAR HEIGHT / OUTPUT POSITION) ===
echo ""
echo "Installing display profile toggle scripts/config..."
mkdir -p ~/.config/sway/scripts/display-profile
for file in display-profile.conf display-profile-toggle.sh display-profile-status.sh; do
if [ -f "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/display-profile/$file" ]; then
cp "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/display-profile/$file" ~/.config/sway/scripts/display-profile/$file
case "$file" in
*.sh)
chmod +x ~/.config/sway/scripts/display-profile/$file
;;
esac
echo "✓ Installed ~/.config/sway/scripts/display-profile/$file"
else
echo "$file not found, skipping..."
fi
done
# === OSRS MODE SCRIPTS ===
echo ""
echo "Installing OSRS mode helper scripts..."
mkdir -p ~/.config/sway/scripts/osrs
for script in osrs-mode-status.sh osrs-mode-toggle.sh; do
if [ -f "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/osrs/$script" ]; then
cp "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/osrs/$script" ~/.config/sway/scripts/osrs/$script
chmod +x ~/.config/sway/scripts/osrs/$script
echo "✓ Installed ~/.config/sway/scripts/osrs/$script"
else
echo "$script not found, skipping..."
fi
done
# === i3status BAR SCRIPTS ===
echo ""
echo "Installing i3status bar scripts..."
mkdir -p ~/.config/sway/scripts/i3status
for script in bluetooth.sh wttrin-weather.sh set-random-bg.sh get-focused-window.sh; do
if [ -f "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/i3status/$script" ]; then
cp "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/i3status/$script" ~/.config/sway/scripts/i3status/$script
chmod +x ~/.config/sway/scripts/i3status/$script
echo "✓ Installed ~/.config/sway/scripts/i3status/$script"
else
echo "$script not found, skipping..."
fi
done
# === SWAY CONFIG SCRIPTS ===
echo ""
echo "Installing sway config scripts..."
mkdir -p ~/.config/sway/scripts/sway
for script in volume-notify.sh; do
if [ -f "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/sway/$script" ]; then
cp "$SCRIPT_DIR/home_dotfiles/.config/sway/scripts/sway/$script" ~/.config/sway/scripts/sway/$script
chmod +x ~/.config/sway/scripts/sway/$script
echo "✓ Installed ~/.config/sway/scripts/sway/$script"
else
echo "$script not found, skipping..."
fi
done
# === SET THUNAR AS DEFAULT FILE MANAGER ===
echo ""
echo "Setting thunar as default file manager..."
xdg-mime default thunar.desktop inode/directory application/x-gnome-saved-search
echo "✓ thunar set as default file manager"
# === SET SWAYIMG AS DEFAULT IMAGE VIEWER ===
echo ""
echo "Setting swayimg as default image viewer..."
xdg-mime default swayimg.desktop image/jpeg image/jpg image/png image/gif image/webp image/bmp image/tiff image/svg+xml
echo "✓ swayimg set as default image viewer"
# === SET WALLPAPER ===
echo ""
echo "Setting wallpaper..."
WALLPAPER_NAME="chris-czermak-PamFFHL6fVY-unsplash.jpg"
#WALLPAPER_NAME="lucas-gallone-2dClJIAR404-unsplash.jpg"
#WALLPAPER_NAME="1742471076220983.jpg"
WALLPAPER_PATH="$SCRIPT_DIR/home_dotfiles/wallpapers/$WALLPAPER_NAME"
cp $WALLPAPER_PATH ~/.config/sway/wallpaper.jpg
echo "✓ Wallpaper installed to ~/.config/sway/wallpaper.jpg"
echo ""
echo "=========================================="
echo "✅ Sway configuration installation complete!"
echo "=========================================="
echo ""
echo "Next steps:"
echo "1. Run ./install-arch-sway-requirements.sh to install packages"
echo "2. Log out and select Sway from your display manager"
echo "3. Or start Sway from TTY with: sway"
echo ""
echo "Config files installed:"
echo "- ~/.config/mako/config (notification styling)"
echo "- ~/.config/sway/config (main Sway config)"
echo "- ~/.config/swayimg/swayimgrc (image viewer config)"
echo "- ~/.config/sway/i3status-rust.toml (status bar config)"
echo "- ~/.config/sway/scripts/display-profile/display-profile.conf (display profile state/overrides)"
echo "- ~/.config/sway/scripts/display-profile/display-profile-toggle.sh (click-to-toggle display profile)"
echo "- ~/.config/sway/scripts/display-profile/display-profile-status.sh (status bar label for display profile)"
echo "- ~/.config/sway/scripts/i3status/wttrin-weather.sh (weather script)"
echo "- thunar set as default file manager"
echo "- swayimg set as default image viewer"
if [ -f ~/.config/sway/scripts/sway/volume-notify.sh ]; then
echo "- ~/.config/sway/scripts/sway/volume-notify.sh (volume notifications)"
fi
makoctl reload