From 171cde2891791b8710071458f1b9436a3fdff905 Mon Sep 17 00:00:00 2001 From: Nippy Date: Mon, 22 Jun 2026 10:34:04 +0200 Subject: új sddm config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- raveos-hyprland-theme/raveos-hyprland-apply.sh | 338 ++++++++++++------------- 1 file changed, 162 insertions(+), 176 deletions(-) (limited to 'raveos-hyprland-theme/raveos-hyprland-apply.sh') 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 +# 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 + +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 + +# Kitty terminál konfig mkdir -p /etc/skel/.config/kitty -if [[ -d "${payload_dir}/kitty" ]]; then - cp -r "${payload_dir}/kitty/." /etc/skel/.config/kitty/ -fi - -if [[ -f "${payload_dir}/hyprland-pp.png" ]]; then - install -Dm644 "${payload_dir}/hyprland-pp.png" /etc/skel/.face -fi +[[ -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 +# Felhasználói avatar +[[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \ + install -Dm644 "${PAYLOAD}/hyprland-pp.png" /etc/skel/.face + +# 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_dir}/${d}" ]]; then - mkdir -p "/etc/skel/.config/${d}" - cp -rf "${payload_dir}/${d}/." "/etc/skel/.config/${d}/" - fi + if [[ -d "${PAYLOAD}/${d}" ]]; then + mkdir -p "/etc/skel/.config/${d}" + cp -rf "${PAYLOAD}/${d}/." "/etc/skel/.config/${d}/" + fi done -if [[ -f "${payload_dir}/sddm/sddm.conf" ]]; then - install -Dm644 "${payload_dir}/sddm/sddm.conf" /etc/sddm.conf.d/raveos-theme.conf -fi +# 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 -if [[ -f "${payload_dir}/sddm/hyprland.lua" ]]; then - install -Dm644 "${payload_dir}/sddm/hyprland.lua" /usr/share/hypr/sddm/hyprland.lua -fi +# --------------------------------------------------------------------------- +# MEGLÉVŐ USEREK FRISSÍTÉSE +# /etc/passwd alapján minden UID >= 1000 bejelentkező user home-ja +# --------------------------------------------------------------------------- -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" +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 + + 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" + + # 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 - break - fi -done - -# --- meglévő userek --- -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 - - 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" - - 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" - - 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/" + # 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" + + # 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 - 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 - - 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 - - if [[ -d "${payload_dir}/kitty" ]]; then - cp -r "${payload_dir}/kitty/." "${home}/.config/kitty/" - fi - - if [[ -f "${payload_dir}/hyprland-pp.png" ]]; then - install -Dm644 "${payload_dir}/hyprland-pp.png" "${home}/.face" - fi - - 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}" + [[ -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" + + # Skel tartalom + [[ -d "${PAYLOAD}/skel" ]] && \ + cp -r --no-preserve=ownership "${PAYLOAD}/skel/." "$home/" + + # Háttérkép + [[ -f "${PAYLOAD}/background.jpg" ]] && \ + install -Dm644 "${PAYLOAD}/background.jpg" "${home}/.config/background.jpg" + + # Kitty + [[ -d "${PAYLOAD}/kitty" ]] && \ + cp -r "${PAYLOAD}/kitty/." "${home}/.config/kitty/" + + # Felhasználói avatar + [[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \ + install -Dm644 "${PAYLOAD}/hyprland-pp.png" "${home}/.face" + + # 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 + + # 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 + + # XDG user könyvtárak (Letöltések, Dokumentumok stb.) + runuser -u "$user" -- xdg-user-dirs-update 2>/dev/null || true + + # Tulajdonos visszaállítása + chown -R "${uid}:${gid}" "$home" + + # 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 - done - 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 - - 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}/" + # 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 - done - - runuser -u "$user" -- xdg-user-dirs-update 2>/dev/null || true - - 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 - - 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 - - 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." -- cgit v1.3