summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/raveos-hyprland-apply.sh
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-06-22 10:34:04 +0200
committerNippy <nippy@rp1.hu>2026-06-22 10:34:04 +0200
commit171cde2891791b8710071458f1b9436a3fdff905 (patch)
tree694e33fd0f58282de0b0aa0d7ebc78d5f8992ad4 /raveos-hyprland-theme/raveos-hyprland-apply.sh
parent9259296e50a4e4bf59583bad03c9360c9c918204 (diff)
downloadRaveOS-PKGBUILD-171cde2891791b8710071458f1b9436a3fdff905.tar.gz
RaveOS-PKGBUILD-171cde2891791b8710071458f1b9436a3fdff905.zip
új sddm config
Diffstat (limited to 'raveos-hyprland-theme/raveos-hyprland-apply.sh')
-rw-r--r--raveos-hyprland-theme/raveos-hyprland-apply.sh316
1 files changed, 151 insertions, 165 deletions
diff --git a/raveos-hyprland-theme/raveos-hyprland-apply.sh b/raveos-hyprland-theme/raveos-hyprland-apply.sh
index 97c4920..96755cf 100644
--- a/raveos-hyprland-theme/raveos-hyprland-apply.sh
+++ b/raveos-hyprland-theme/raveos-hyprland-apply.sh
@@ -1,212 +1,198 @@
#!/usr/bin/env bash
+# raveos-hyprland-apply.sh
+# ------------------------
+# Telepíti a Hyprland téma payloadját:
+# - /etc/skel alá (új usereknek)
+# - minden meglévő, bejelentkező user home-jába
+#
+# Root jogosultság szükséges. A raveos-hyprland-theme-apply.service hívja
+# egyszer, első boot után. Kézzel is futtatható újratelepítéshez.
+
set -euo pipefail
-payload_dir="/usr/share/raveos/hyprland-theme/theme-data"
+PAYLOAD="/usr/share/raveos/hyprland-theme/theme-data"
-if [[ ! -d "$payload_dir" ]]; then
- echo "Missing payload: $payload_dir" >&2
- exit 1
+if [[ ! -d "$PAYLOAD" ]]; then
+ echo "Hiba: hiányzó payload: $PAYLOAD" >&2
+ exit 1
fi
if [[ ${EUID} -ne 0 ]]; then
- echo "Run as root." >&2
- exit 1
+ echo "Root jogosultság szükséges." >&2
+ exit 1
fi
-# --- /etc/skel ---
+# ---------------------------------------------------------------------------
+# SKEL TELEPÍTÉS
+# Új usereknek (useradd által másolt /etc/skel tartalom)
+# ---------------------------------------------------------------------------
+# Hyprland Lua konfig (hyprland.lua + config/ könyvtár)
mkdir -p /etc/skel/.config/hypr
-if [[ -d "${payload_dir}/hypr" ]]; then
- cp -rf "${payload_dir}/hypr/." /etc/skel/.config/hypr/
- # Remove legacy conf-based config if Lua version exists
- [[ -f /etc/skel/.config/hypr/hyprland.lua ]] && rm -f /etc/skel/.config/hypr/hyprland.conf
+if [[ -d "${PAYLOAD}/hypr" ]]; then
+ cp -rf "${PAYLOAD}/hypr/." /etc/skel/.config/hypr/
+ # Ha Lua konfig létezik, a legacy .conf-ot töröljük
+ [[ -f /etc/skel/.config/hypr/hyprland.lua ]] && rm -f /etc/skel/.config/hypr/hyprland.conf
fi
-mkdir -p /etc/skel/.config/dms
-mkdir -p /etc/skel/.config/quickshell/pockets/DMS
-mkdir -p /etc/skel/.config/DankMaterialShell
-dms_src="${payload_dir}/dms"
-[[ -f "${dms_src}/shell.qml" ]] || dms_src="${payload_dir}/DankMaterialShell/quickshell"
-if [[ -d "$dms_src" ]]; then
- cp -r "${dms_src}/." /etc/skel/.config/quickshell/pockets/DMS/
- cp -r "${dms_src}/." /etc/skel/.config/dms/
- if [[ -d "${dms_src}/matugen/configs" ]]; then
- mkdir -p /etc/skel/.config/matugen
- cp -r "${dms_src}/matugen/configs/." /etc/skel/.config/matugen/
- fi
-fi
-if [[ -f "${payload_dir}/DankMaterialShell/settings.json" ]]; then
- install -Dm644 "${payload_dir}/DankMaterialShell/settings.json" /etc/skel/.config/DankMaterialShell/settings.json
-fi
-if [[ -f "${payload_dir}/DankMaterialShell/.firstlaunch" ]]; then
- install -Dm644 "${payload_dir}/DankMaterialShell/.firstlaunch" /etc/skel/.config/DankMaterialShell/.firstlaunch
-fi
+# DankMaterialShell (DMS) felhasználói konfig
+# A dms-shell-hyprland package a binárist és rendszerfájlokat telepíti,
+# ez a blokk a per-user config könyvtárakat állítja be.
+mkdir -p /etc/skel/.config/dms \
+ /etc/skel/.config/quickshell/pockets/DMS \
+ /etc/skel/.config/DankMaterialShell
-mkdir -p /etc/skel/.config/kitty
-if [[ -d "${payload_dir}/kitty" ]]; then
- cp -r "${payload_dir}/kitty/." /etc/skel/.config/kitty/
+DMS_SRC="${PAYLOAD}/dms"
+if [[ -d "$DMS_SRC" ]]; then
+ cp -r "${DMS_SRC}/." /etc/skel/.config/quickshell/pockets/DMS/
+ cp -r "${DMS_SRC}/." /etc/skel/.config/dms/
+ if [[ -d "${DMS_SRC}/matugen/configs" ]]; then
+ mkdir -p /etc/skel/.config/matugen
+ cp -r "${DMS_SRC}/matugen/configs/." /etc/skel/.config/matugen/
+ fi
fi
+[[ -f "${PAYLOAD}/DankMaterialShell/settings.json" ]] && \
+ install -Dm644 "${PAYLOAD}/DankMaterialShell/settings.json" \
+ /etc/skel/.config/DankMaterialShell/settings.json
+[[ -f "${PAYLOAD}/DankMaterialShell/.firstlaunch" ]] && \
+ install -Dm644 "${PAYLOAD}/DankMaterialShell/.firstlaunch" \
+ /etc/skel/.config/DankMaterialShell/.firstlaunch
-if [[ -f "${payload_dir}/hyprland-pp.png" ]]; then
- install -Dm644 "${payload_dir}/hyprland-pp.png" /etc/skel/.face
-fi
+# Kitty terminál konfig
+mkdir -p /etc/skel/.config/kitty
+[[ -d "${PAYLOAD}/kitty" ]] && cp -r "${PAYLOAD}/kitty/." /etc/skel/.config/kitty/
+# Fastfetch konfig
mkdir -p /etc/skel/.config/fastfetch
for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
- if [[ -f "${payload_dir}/fastfetch/${f}" ]]; then
- install -Dm644 "${payload_dir}/fastfetch/${f}" "/etc/skel/.config/fastfetch/${f}"
- fi
+ [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \
+ install -Dm644 "${PAYLOAD}/fastfetch/${f}" "/etc/skel/.config/fastfetch/${f}"
done
-if [[ -f "${payload_dir}/profile.d/raveos-fastfetch.sh" ]]; then
- install -Dm755 "${payload_dir}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh
-fi
+# Fastfetch profile.d script (terminál nyitáskor fut)
+[[ -f "${PAYLOAD}/profile.d/raveos-fastfetch.sh" ]] && \
+ install -Dm755 "${PAYLOAD}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh
-if [[ -d "${payload_dir}/skel" ]]; then
- cp -r --no-preserve=ownership "${payload_dir}/skel/." /etc/skel/
-fi
+# Skel root tartalom (pl. .bashrc, .icons, .themes stb.)
+[[ -d "${PAYLOAD}/skel" ]] && \
+ cp -r --no-preserve=ownership "${PAYLOAD}/skel/." /etc/skel/
-if [[ -f "${payload_dir}/background.jpg" ]]; then
- mkdir -p /usr/share/backgrounds/raveos
- install -Dm644 "${payload_dir}/background.jpg" /etc/skel/.config/background
- install -Dm644 "${payload_dir}/background.jpg" /etc/skel/.config/background.jpg
-fi
+# Háttérkép
+[[ -f "${PAYLOAD}/background.jpg" ]] && \
+ install -Dm644 "${PAYLOAD}/background.jpg" /etc/skel/.config/background.jpg
-for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd hyprshell; do
- if [[ -d "${payload_dir}/${d}" ]]; then
- mkdir -p "/etc/skel/.config/${d}"
- cp -rf "${payload_dir}/${d}/." "/etc/skel/.config/${d}/"
- fi
-done
+# Felhasználói avatar
+[[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" /etc/skel/.face
-if [[ -f "${payload_dir}/sddm/sddm.conf" ]]; then
- install -Dm644 "${payload_dir}/sddm/sddm.conf" /etc/sddm.conf.d/raveos-theme.conf
-fi
-
-if [[ -f "${payload_dir}/sddm/hyprland.lua" ]]; then
- install -Dm644 "${payload_dir}/sddm/hyprland.lua" /usr/share/hypr/sddm/hyprland.lua
-fi
-
-for candidate in \
- "/usr/share/sddm/themes/sddm-astronaut-theme" \
- "/usr/share/sddm/themes/astronaut" \
- "/usr/share/sddm/themes/sddm-astronaut"; do
- if [[ -d "$candidate" ]]; then
- if [[ -f "${payload_dir}/sddm/new-raveos-main-bg.jpeg" ]]; then
- install -Dm644 "${payload_dir}/sddm/new-raveos-main-bg.jpeg" \
- "${candidate}/Backgrounds/new-raveos-main-bg.jpeg"
- fi
- if [[ -f "${payload_dir}/sddm/astronaut.conf" ]]; then
- install -Dm644 "${payload_dir}/sddm/astronaut.conf" \
- "${candidate}/Themes/astronaut.conf"
+# GTK, Thunar, nwg-look, xsettingsd, hyprshell konfigok
+for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd hyprshell; do
+ if [[ -d "${PAYLOAD}/${d}" ]]; then
+ mkdir -p "/etc/skel/.config/${d}"
+ cp -rf "${PAYLOAD}/${d}/." "/etc/skel/.config/${d}/"
fi
- break
- fi
done
-# --- meglévő userek ---
+# SDDM konfig: sddm-rave-theme beállítása alapértelmezettként
+# A téma maga a PKGBUILD által kerül /usr/share/sddm/themes/sddm-rave-theme/-be
+[[ -f "${PAYLOAD}/sddm/sddm.conf" ]] && \
+ install -Dm644 "${PAYLOAD}/sddm/sddm.conf" /etc/sddm.conf.d/raveos-theme.conf
-while IFS=: read -r user _ uid gid _ home shell; do
- [[ "$uid" -ge 1000 ]] || continue
- [[ -d "$home" ]] || continue
- [[ "$shell" != "/usr/bin/nologin" && "$shell" != "/bin/false" ]] || continue
+# ---------------------------------------------------------------------------
+# MEGLÉVŐ USEREK FRISSÍTÉSE
+# /etc/passwd alapján minden UID >= 1000 bejelentkező user home-ja
+# ---------------------------------------------------------------------------
- mkdir -p "${home}/.config/hypr" \
- "${home}/.config/quickshell/pockets/DMS" \
- "${home}/.config/dms" \
- "${home}/.config/DankMaterialShell" \
- "${home}/.config/matugen" \
- "${home}/.config/kitty" \
- "${home}/.config/fastfetch"
+while IFS=: read -r user _ uid gid _ home shell; do
+ [[ "$uid" -ge 1000 ]] || continue
+ [[ -d "$home" ]] || continue
+ [[ "$shell" != "/usr/bin/nologin" && "$shell" != "/bin/false" ]] || continue
- pkill -u "$user" hyprpaper 2>/dev/null || true
- if [[ -d "${payload_dir}/hypr" ]]; then
- cp -rf "${payload_dir}/hypr/." "${home}/.config/hypr/"
- [[ -f "${home}/.config/hypr/hyprland.lua" ]] && rm -f "${home}/.config/hypr/hyprland.conf"
- fi
- printf 'preload = %s/.config/background.jpg\nwallpaper = ,%s/.config/background.jpg\nsplash = false\n' \
- "$home" "$home" > "${home}/.config/hypr/hyprpaper.conf"
+ mkdir -p "${home}/.config/hypr" \
+ "${home}/.config/quickshell/pockets/DMS" \
+ "${home}/.config/dms" \
+ "${home}/.config/DankMaterialShell" \
+ "${home}/.config/matugen" \
+ "${home}/.config/kitty" \
+ "${home}/.config/fastfetch"
- dms_src="${payload_dir}/dms"
- [[ -f "${dms_src}/shell.qml" ]] || dms_src="${payload_dir}/DankMaterialShell/quickshell"
- if [[ -d "$dms_src" ]]; then
- cp -r "${dms_src}/." "${home}/.config/quickshell/pockets/DMS/"
- cp -r "${dms_src}/." "${home}/.config/dms/"
- if [[ -d "${dms_src}/matugen/configs" ]]; then
- cp -r "${dms_src}/matugen/configs/." "${home}/.config/matugen/"
+ # Hyprland konfig
+ pkill -u "$user" hyprpaper 2>/dev/null || true
+ if [[ -d "${PAYLOAD}/hypr" ]]; then
+ cp -rf "${PAYLOAD}/hypr/." "${home}/.config/hypr/"
+ [[ -f "${home}/.config/hypr/hyprland.lua" ]] && \
+ rm -f "${home}/.config/hypr/hyprland.conf"
fi
- fi
- if [[ -f "${payload_dir}/DankMaterialShell/settings.json" ]]; then
- install -Dm644 "${payload_dir}/DankMaterialShell/settings.json" "${home}/.config/DankMaterialShell/settings.json"
- fi
- if [[ -f "${payload_dir}/DankMaterialShell/.firstlaunch" ]]; then
- install -Dm644 "${payload_dir}/DankMaterialShell/.firstlaunch" "${home}/.config/DankMaterialShell/.firstlaunch"
- fi
- if [[ -d "${payload_dir}/skel" ]]; then
- cp -r --no-preserve=ownership "${payload_dir}/skel/." "$home/"
- fi
+ # hyprpaper konfig (háttérkép daemon)
+ printf 'preload = %s/.config/background.jpg\nwallpaper = ,%s/.config/background.jpg\nsplash = false\n' \
+ "$home" "$home" > "${home}/.config/hypr/hyprpaper.conf"
- if [[ -f "${payload_dir}/background.jpg" ]]; then
- install -Dm644 "${payload_dir}/background.jpg" "${home}/.config/background"
- install -Dm644 "${payload_dir}/background.jpg" "${home}/.config/background.jpg"
- fi
+ # DMS per-user konfig
+ if [[ -d "$DMS_SRC" ]]; then
+ cp -r "${DMS_SRC}/." "${home}/.config/quickshell/pockets/DMS/"
+ cp -r "${DMS_SRC}/." "${home}/.config/dms/"
+ if [[ -d "${DMS_SRC}/matugen/configs" ]]; then
+ cp -r "${DMS_SRC}/matugen/configs/." "${home}/.config/matugen/"
+ fi
+ fi
+ [[ -f "${PAYLOAD}/DankMaterialShell/settings.json" ]] && \
+ install -Dm644 "${PAYLOAD}/DankMaterialShell/settings.json" \
+ "${home}/.config/DankMaterialShell/settings.json"
+ [[ -f "${PAYLOAD}/DankMaterialShell/.firstlaunch" ]] && \
+ install -Dm644 "${PAYLOAD}/DankMaterialShell/.firstlaunch" \
+ "${home}/.config/DankMaterialShell/.firstlaunch"
- if [[ -d "${payload_dir}/kitty" ]]; then
- cp -r "${payload_dir}/kitty/." "${home}/.config/kitty/"
- fi
+ # Skel tartalom
+ [[ -d "${PAYLOAD}/skel" ]] && \
+ cp -r --no-preserve=ownership "${PAYLOAD}/skel/." "$home/"
- if [[ -f "${payload_dir}/hyprland-pp.png" ]]; then
- install -Dm644 "${payload_dir}/hyprland-pp.png" "${home}/.face"
- fi
+ # Háttérkép
+ [[ -f "${PAYLOAD}/background.jpg" ]] && \
+ install -Dm644 "${PAYLOAD}/background.jpg" "${home}/.config/background.jpg"
- for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
- if [[ -f "${payload_dir}/fastfetch/${f}" ]]; then
- install -Dm644 "${payload_dir}/fastfetch/${f}" "${home}/.config/fastfetch/${f}"
- fi
- done
+ # Kitty
+ [[ -d "${PAYLOAD}/kitty" ]] && \
+ cp -r "${PAYLOAD}/kitty/." "${home}/.config/kitty/"
- if [[ -f "${payload_dir}/hypr/scripts/raveos-monitor-setup.sh" ]]; then
- bash "${payload_dir}/hypr/scripts/raveos-monitor-setup.sh" --hypr-dir "${home}/.config/hypr"
- fi
+ # Felhasználói avatar
+ [[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" "${home}/.face"
- for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd hyprshell; do
- if [[ -d "${payload_dir}/${d}" ]]; then
- mkdir -p "${home}/.config/${d}"
- cp -rf "${payload_dir}/${d}/." "${home}/.config/${d}/"
- fi
- done
+ # Fastfetch
+ for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
+ [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \
+ install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${home}/.config/fastfetch/${f}"
+ done
- runuser -u "$user" -- xdg-user-dirs-update 2>/dev/null || true
+ # GTK, Thunar, nwg-look, xsettingsd, hyprshell konfigok
+ for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd hyprshell; do
+ if [[ -d "${PAYLOAD}/${d}" ]]; then
+ mkdir -p "${home}/.config/${d}"
+ cp -rf "${PAYLOAD}/${d}/." "${home}/.config/${d}/"
+ fi
+ done
- dms_session="${home}/.local/state/DankMaterialShell/session.json"
- mkdir -p "$(dirname "$dms_session")"
- python3 -c "
-import json, os
-path = '${dms_session}'
-d = {}
-if os.path.isfile(path):
- try:
- with open(path) as f:
- d = json.load(f)
- except Exception:
- d = {}
-if not d.get('wallpaperPath'):
- d['wallpaperPath'] = '/usr/share/raveos/hyprland-theme/theme-data/background.jpg'
- with open(path, 'w') as f:
- json.dump(d, f, indent=2)
-" 2>/dev/null || true
+ # XDG user könyvtárak (Letöltések, Dokumentumok stb.)
+ runuser -u "$user" -- xdg-user-dirs-update 2>/dev/null || true
- chown -R "${uid}:${gid}" "$home"
+ # Tulajdonos visszaállítása
+ chown -R "${uid}:${gid}" "$home"
- if command -v matugen &>/dev/null && [[ -f "${home}/.config/background" ]]; then
- runuser -u "$user" -- matugen image "${home}/.config/background" 2>/dev/null || true
- fi
+ # matugen: wallpaper-alapú színséma generálás
+ if command -v matugen &>/dev/null && [[ -f "${home}/.config/background.jpg" ]]; then
+ runuser -u "$user" -- matugen image "${home}/.config/background.jpg" 2>/dev/null || true
+ fi
+
+ # hyprpaper újraindítás, ha Hyprland fut
+ hypr_sig=$(runuser -u "$user" -- bash -c \
+ 'ls /run/user/'"$uid"'/hypr/ 2>/dev/null | tail -1')
+ if [[ -n "$hypr_sig" ]]; then
+ runuser -u "$user" -- bash -c \
+ "HYPRLAND_INSTANCE_SIGNATURE='${hypr_sig}' hyprctl dispatch exec \
+ 'env LIBGL_ALWAYS_SOFTWARE=1 hyprpaper'" 2>/dev/null || true
+ fi
- hypr_sig=$(runuser -u "$user" -- bash -c 'ls /run/user/'"$uid"'/hypr/ 2>/dev/null | tail -1')
- if [[ -n "$hypr_sig" ]]; then
- runuser -u "$user" -- bash -c "HYPRLAND_INSTANCE_SIGNATURE='${hypr_sig}' hyprctl dispatch exec 'env LIBGL_ALWAYS_SOFTWARE=1 hyprpaper'" 2>/dev/null || true
- fi
done < /etc/passwd
-echo "Automatic apply finished."
+echo "Telepítés kész."