116 lines
2.5 KiB
Bash
Executable File
116 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
ORIG_PWD=$(pwd)
|
|
|
|
# Elevate to root if needed
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
exec sudo "$0" "$@"
|
|
fi
|
|
|
|
ORIG_USER=$(logname)
|
|
ORIG_HOME=$(getent passwd "$ORIG_USER" | cut -d: -f6)
|
|
|
|
# === Update system ===
|
|
echo "Updating system..."
|
|
pacman -Syu --noconfirm
|
|
|
|
# === Essential tools ===
|
|
ESSENTIAL_PACKAGES="
|
|
python3
|
|
vim
|
|
neovim
|
|
ranger
|
|
firefox
|
|
"
|
|
|
|
# === Display manager ===
|
|
DISPLAY_MANAGER="
|
|
sddm
|
|
"
|
|
|
|
# === Wayland & Hyprland environment ===
|
|
WAYLAND_ENVIRONMENT="
|
|
hyprland
|
|
hyprpaper
|
|
waybar
|
|
kitty
|
|
wofi
|
|
mako
|
|
libnotify
|
|
grim
|
|
slurp
|
|
wl-clipboard
|
|
wayland-utils
|
|
xorg-xwayland
|
|
"
|
|
|
|
# === Audio ===
|
|
AUDIO_PACKAGES="
|
|
pipewire
|
|
wireplumber
|
|
pipewire-pulse
|
|
pavucontrol
|
|
"
|
|
|
|
# === Fonts & theming ===
|
|
FONTS_AND_THEME="
|
|
otf-font-awesome
|
|
noto-fonts
|
|
noto-fonts-cjk
|
|
ttf-jetbrains-mono
|
|
orchis-theme
|
|
"
|
|
|
|
# === Multimedia ===
|
|
MEDIA_PACKAGES="
|
|
mpv
|
|
eog
|
|
ffmpeg
|
|
"
|
|
|
|
# === Install all packages ===
|
|
echo "Installing packages..."
|
|
pacman -S --noconfirm --needed \
|
|
$ESSENTIAL_PACKAGES \
|
|
$DISPLAY_MANAGER \
|
|
$WAYLAND_ENVIRONMENT \
|
|
$AUDIO_PACKAGES \
|
|
$FONTS_AND_THEME \
|
|
$MEDIA_PACKAGES
|
|
|
|
# === Enable display manager ===
|
|
echo "Enabling SDDM..."
|
|
systemctl enable sddm
|
|
# === Apply GTK settings for theme and color scheme ===
|
|
echo "Applying GTK settings..."
|
|
|
|
# Extract DBus address from the user's environment
|
|
USER_DBUS_ENV=$(sudo -u "$ORIG_USER" -- dbus-launch)
|
|
eval "$USER_DBUS_ENV"
|
|
|
|
export DBUS_SESSION_BUS_ADDRESS
|
|
export XDG_RUNTIME_DIR="/run/user/$(id -u $ORIG_USER)"
|
|
|
|
sudo -u "$ORIG_USER" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
|
|
XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
|
|
gsettings set org.gnome.desktop.interface gtk-theme "Orchis-Dark-Compact"
|
|
|
|
sudo -u "$ORIG_USER" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
|
|
XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
|
|
gsettings set org.gnome.desktop.interface icon-theme "Orchis-Dark-Compact"
|
|
|
|
sudo -u "$ORIG_USER" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
|
|
XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
|
|
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
|
|
|
echo "GTK settings applied successfully."
|
|
|
|
# === Run dotfiles setup ===
|
|
echo "Running dotfiles setup as $ORIG_USER..."
|
|
cd "$ORIG_PWD" || exit 1
|
|
sudo -u "$ORIG_USER" HOME="$ORIG_HOME" python3 setup.py
|
|
sudo -E -u "$ORIG_USER" HOME="$ORIG_HOME" mkdir -p "$ORIG_HOME/Downloads" "$ORIG_HOME/Documents" "$ORIG_HOME/Pictures" "$ORIG_HOME/Videos" "$ORIG_HOME/Repositories"
|
|
|
|
echo "Dotfiles installed successfully."
|