馃敡 Where my dotfiles lives in harmony and peace, most of the time
1#!/usr/bin/env bash
2set -euo pipefail
3
4DOTFILES=$(dirname "$(dirname "$(realpath "$0")")")
5HYPR_CONFIG_DIR="${HOME}/.config/hypr"
6WAYBAR_CONFIG_DIR="${HOME}/.config/waybar"
7MAKO_CONFIG_DIR="${HOME}/.config/mako"
8FUZZEL_CONFIG_DIR="${HOME}/.config/fuzzel"
9PICTURES_DIR="${HOME}/Pictures"
10
11packages=(
12 bemoji
13 cliphist
14 fuzzel
15 hypridle
16 hyprland
17 hyprland-guiutils
18 hyprlock
19 hyprpaper
20 hyprpolkitagent
21 hyprshot
22 mako
23 pavucontrol
24 pipewire
25 pipewire-alsa
26 pipewire-pulse
27 pipewire-libcamera
28 playerctl
29 waybar
30 wireplumber
31 wl-clip-persist
32 wl-clipboard
33 xdg-desktop-portal-gtk
34 xdg-desktop-portal-hyprland
35 xdg-utils
36 uwsm
37)
38
39# Install Hyprland and related packages
40paru -S --needed --noconfirm "${packages[@]}"
41
42# Start Polkit agent for Hyprland (https://wiki.hypr.land/Hypr-Ecosystem/hyprpolkitagent/)
43if ! systemctl --user is-active --quiet hyprpolkitagent.service; then
44 systemctl --user enable --now hyprpolkitagent.service
45fi
46
47mkdir -p "${HYPR_CONFIG_DIR}" "${WAYBAR_CONFIG_DIR}" "${MAKO_CONFIG_DIR}" "${FUZZEL_CONFIG_DIR}" "${PICTURES_DIR}"
48
49ln -sf "${DOTFILES}/hypr/wallpaper.png" "${PICTURES_DIR}/wallpaper.png"
50ln -sf "${DOTFILES}/hypr/frappe.conf" "${HYPR_CONFIG_DIR}/frappe.conf"
51ln -sf "${DOTFILES}/hypr/hyprland.conf" "${HYPR_CONFIG_DIR}/hyprland.conf"
52ln -sf "${DOTFILES}/hypr/hyprpaper.conf" "${HYPR_CONFIG_DIR}/hyprpaper.conf"
53ln -sf "${DOTFILES}/hypr/hypridle.conf" "${HYPR_CONFIG_DIR}/hypridle.conf"
54ln -sf "${DOTFILES}/hypr/hyprlock.conf" "${HYPR_CONFIG_DIR}/hyprlock.conf"
55ln -sf "${DOTFILES}/hypr/xdph.conf" "${HYPR_CONFIG_DIR}/xdph.conf"
56ln -sf "${DOTFILES}/hypr/waybar/config.jsonc" "${WAYBAR_CONFIG_DIR}/config"
57ln -sf "${DOTFILES}/hypr/waybar/style.css" "${WAYBAR_CONFIG_DIR}/style.css"
58ln -sf "${DOTFILES}/hypr/waybar/frappe.css" "${WAYBAR_CONFIG_DIR}/frappe.css"
59ln -sf "${DOTFILES}/hypr/mako/config" "${MAKO_CONFIG_DIR}/config"
60ln -sf "${DOTFILES}/hypr/fuzzel/fuzzel.ini" "${FUZZEL_CONFIG_DIR}/fuzzel.ini"