summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/raveos-hyprland-apply.sh
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/raveos-hyprland-apply.sh')
-rw-r--r--raveos-hyprland-theme/raveos-hyprland-apply.sh259
1 files changed, 160 insertions, 99 deletions
diff --git a/raveos-hyprland-theme/raveos-hyprland-apply.sh b/raveos-hyprland-theme/raveos-hyprland-apply.sh
index e91b900..6d7ab85 100644
--- a/raveos-hyprland-theme/raveos-hyprland-apply.sh
+++ b/raveos-hyprland-theme/raveos-hyprland-apply.sh
@@ -19,24 +19,24 @@ xdg_lang=""
xdg_lang="${xdg_lang%%.*}"; xdg_lang="${xdg_lang%%_*}"
case "$xdg_lang" in
hu)
- XDG_DESKTOP="Asztal"; XDG_DOWNLOAD="Letöltések"; XDG_TEMPLATES="Sablonok"
+ XDG_DESKTOP="Asztal"; XDG_DOWNLOAD="Letöltések"; XDG_TEMPLATES="Sablonok"
XDG_PUBLIC="Nyilvános"; XDG_DOCUMENTS="Dokumentumok"; XDG_MUSIC="Zenék"
- XDG_PICTURES="Képek"; XDG_VIDEOS="Videók"; XDG_PROJECTS="Projektek"
- BM_DOCUMENTS="Dokumentumok"; BM_MUSIC="Zen%C3%A9k"; BM_PICTURES="K%C3%A9pek"
+ XDG_PICTURES="Képek"; XDG_VIDEOS="Videók"; XDG_PROJECTS="Projektek"
+ BM_DOCUMENTS="Dokumentumok"; BM_MUSIC="Zen%C3%A9k"; BM_PICTURES="K%C3%A9pek"
BM_VIDEOS="Vide%C3%B3k"; BM_DOWNLOAD="Let%C3%B6lt%C3%A9sek"
;;
de)
- XDG_DESKTOP="Schreibtisch"; XDG_DOWNLOAD="Download"; XDG_TEMPLATES="Vorlagen"
- XDG_PUBLIC="Öffentlich"; XDG_DOCUMENTS="Dokumente"; XDG_MUSIC="Musik"
- XDG_PICTURES="Bilder"; XDG_VIDEOS="Videos"; XDG_PROJECTS="Projekte"
- BM_DOCUMENTS="Dokumente"; BM_MUSIC="Musik"; BM_PICTURES="Bilder"
+ XDG_DESKTOP="Schreibtisch"; XDG_DOWNLOAD="Download"; XDG_TEMPLATES="Vorlagen"
+ XDG_PUBLIC="Öffentlich"; XDG_DOCUMENTS="Dokumente"; XDG_MUSIC="Musik"
+ XDG_PICTURES="Bilder"; XDG_VIDEOS="Videos"; XDG_PROJECTS="Projekte"
+ BM_DOCUMENTS="Dokumente"; BM_MUSIC="Musik"; BM_PICTURES="Bilder"
BM_VIDEOS="Videos"; BM_DOWNLOAD="Download"
;;
*)
- XDG_DESKTOP="Desktop"; XDG_DOWNLOAD="Downloads"; XDG_TEMPLATES="Templates"
- XDG_PUBLIC="Public"; XDG_DOCUMENTS="Documents"; XDG_MUSIC="Music"
- XDG_PICTURES="Pictures"; XDG_VIDEOS="Videos"; XDG_PROJECTS="Projects"
- BM_DOCUMENTS="Documents"; BM_MUSIC="Music"; BM_PICTURES="Pictures"
+ XDG_DESKTOP="Desktop"; XDG_DOWNLOAD="Downloads"; XDG_TEMPLATES="Templates"
+ XDG_PUBLIC="Public"; XDG_DOCUMENTS="Documents"; XDG_MUSIC="Music"
+ XDG_PICTURES="Pictures"; XDG_VIDEOS="Videos"; XDG_PROJECTS="Projects"
+ BM_DOCUMENTS="Documents"; BM_MUSIC="Music"; BM_PICTURES="Pictures"
BM_VIDEOS="Videos"; BM_DOWNLOAD="Downloads"
;;
esac
@@ -56,7 +56,8 @@ setup_xdg_dirs() {
"${home}/${XDG_VIDEOS}" \
"${home}/${XDG_PROJECTS}"
- cat > "${dirs}" <<EOF
+ if [[ ! -f "$dirs" ]]; then
+ cat > "${dirs}" <<EOF
XDG_DESKTOP_DIR="\$HOME/${XDG_DESKTOP}"
XDG_DOWNLOAD_DIR="\$HOME/${XDG_DOWNLOAD}"
XDG_TEMPLATES_DIR="\$HOME/${XDG_TEMPLATES}"
@@ -67,6 +68,7 @@ XDG_PICTURES_DIR="\$HOME/${XDG_PICTURES}"
XDG_VIDEOS_DIR="\$HOME/${XDG_VIDEOS}"
XDG_PROJECTS_DIR="\$HOME/${XDG_PROJECTS}"
EOF
+ fi
}
install_gtk_bookmarks() {
@@ -120,57 +122,83 @@ set_hypr_keyboard() {
sed -i "s/kb_variant[[:space:]]*=[[:space:]]*\"\"/kb_variant = \"${kb_variant}\"/" "$hypr_lua"
}
-mkdir -p /etc/skel/.config/hypr
+ensure_bashrc_hook() {
+ local bashrc_path="$1"
+ local hook_line='[[ -f /etc/profile.d/raveos-fastfetch.sh ]] && source /etc/profile.d/raveos-fastfetch.sh'
+ touch "$bashrc_path"
+ if ! grep -Fqx "$hook_line" "$bashrc_path" 2>/dev/null; then
+ printf '\n%s\n' "$hook_line" >> "$bashrc_path"
+ fi
+}
+
+install_user_avatar() {
+ local user="$1"
+ local home="$2"
+ local uid="$3"
+ local gid="$4"
+
+ mkdir -p /usr/share/sddm/faces
+ chmod 755 /usr/share/sddm/faces
+
+ if [[ -f "${PAYLOAD}/hyprland-pp.png" ]]; then
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" "/usr/share/sddm/faces/${user}.face.icon"
+ if [[ ! -f "${home}/.face" ]]; then
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" "${home}/.face"
+ chown "${uid}:${gid}" "${home}/.face" 2>/dev/null || true
+ fi
+ if [[ ! -f "${home}/.face.icon" ]]; then
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" "${home}/.face.icon"
+ chown "${uid}:${gid}" "${home}/.face.icon" 2>/dev/null || true
+ fi
+ fi
+}
+
+# skel konfiguracio uj felhasznaloknak
+mkdir -p \
+ /etc/skel/.config/hypr \
+ /etc/skel/.config/dms \
+ /etc/skel/.config/quickshell/pockets/DMS \
+ /etc/skel/.config/DankMaterialShell \
+ /etc/skel/.config/kitty \
+ /etc/skel/.config/fastfetch \
+ /etc/skel/.config/raveos \
+ /etc/skel/.local/share/flatpak/overrides
+
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
set_hypr_keyboard /etc/skel/.config/hypr/hyprland.lua
fi
-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
+if [[ -d "${PAYLOAD}/dms" ]]; then
+ cp -r "${PAYLOAD}/dms/." /etc/skel/.config/quickshell/pockets/DMS/
+ cp -r "${PAYLOAD}/dms/." /etc/skel/.config/dms/
+ if [[ -d "${PAYLOAD}/dms/matugen/configs" ]]; then
mkdir -p /etc/skel/.config/matugen
- cp -r "${DMS_SRC}/matugen/configs/." /etc/skel/.config/matugen/
+ cp -r "${PAYLOAD}/dms/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
-mkdir -p /etc/skel/.config/kitty
-[[ -d "${PAYLOAD}/kitty" ]] && cp -r "${PAYLOAD}/kitty/." /etc/skel/.config/kitty/
+if [[ -d "${PAYLOAD}/DankMaterialShell" ]]; then
+ cp -rf "${PAYLOAD}/DankMaterialShell/." /etc/skel/.config/DankMaterialShell/
+fi
+
+if [[ -d "${PAYLOAD}/kitty" ]]; then
+ cp -r "${PAYLOAD}/kitty/." /etc/skel/.config/kitty/
+fi
-mkdir -p /etc/skel/.config/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}" "/etc/skel/.config/fastfetch/${f}"
done
-[[ -f "${PAYLOAD}/profile.d/raveos-fastfetch.sh" ]] && \
- install -Dm755 "${PAYLOAD}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh
-
-[[ -d "${PAYLOAD}/skel" ]] && \
- cp -r --no-preserve=ownership "${PAYLOAD}/skel/." /etc/skel/
-
-setup_xdg_dirs /etc/skel
-install_gtk_bookmarks /etc/skel
-
[[ -f "${PAYLOAD}/background.jpg" ]] && \
install -Dm644 "${PAYLOAD}/background.jpg" /etc/skel/.config/background.jpg
-[[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \
+if [[ -f "${PAYLOAD}/hyprland-pp.png" ]]; then
install -Dm644 "${PAYLOAD}/hyprland-pp.png" /etc/skel/.face
+ install -Dm644 "${PAYLOAD}/hyprland-pp.png" /etc/skel/.face.icon
+fi
for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd Kvantum; do
if [[ -d "${PAYLOAD}/${d}" ]]; then
@@ -182,110 +210,143 @@ done
[[ -f "${PAYLOAD}/raveswitch/config.ron" ]] && \
install -Dm644 "${PAYLOAD}/raveswitch/config.ron" /etc/skel/.config/raveswitch/config.ron
+if [[ -d "${PAYLOAD}/skel" ]]; then
+ cp -r --no-preserve=ownership "${PAYLOAD}/skel/." /etc/skel/
+fi
+
+setup_xdg_dirs /etc/skel
+install_gtk_bookmarks /etc/skel
+ensure_bashrc_hook /etc/skel/.bashrc
+echo "1" > /etc/skel/.config/raveos/hyprland-migrated
+# Meglevo felhasznalok beallitasa
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"
+ mkdir -p \
+ "${home}/.config/hypr" \
+ "${home}/.config/dms" \
+ "${home}/.config/quickshell/pockets/DMS" \
+ "${home}/.config/DankMaterialShell" \
+ "${home}/.config/matugen" \
+ "${home}/.config/kitty" \
+ "${home}/.config/fastfetch" \
+ "${home}/.config/raveos" \
+ "${home}/.local/state/DankMaterialShell" \
+ "${home}/.local/share/flatpak/overrides"
# Hyprland konfig
- pkill -u "$user" hyprpaper 2>/dev/null || true
- if [[ -d "${PAYLOAD}/hypr" ]]; then
+ if [[ ! -f "${home}/.config/hypr/hyprland.lua" && -d "${PAYLOAD}/hypr" ]]; then
cp -rf "${PAYLOAD}/hypr/." "${home}/.config/hypr/"
- [[ -f "${home}/.config/hypr/hyprland.lua" ]] && \
- rm -f "${home}/.config/hypr/hyprland.conf"
+ rm -f "${home}/.config/hypr/hyprland.conf"
set_hypr_keyboard "${home}/.config/hypr/hyprland.lua"
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"
+ # hyprpaper konfig
+ if [[ ! -f "${home}/.config/hypr/hyprpaper.conf" ]]; then
+ printf 'preload = %s/.config/background.jpg\nwallpaper = ,%s/.config/background.jpg\nsplash = false\n' \
+ "$home" "$home" > "${home}/.config/hypr/hyprpaper.conf"
+ 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/"
+ # DMS konfig
+ if [[ -d "${PAYLOAD}/dms" ]]; then
+ cp -rn "${PAYLOAD}/dms/." "${home}/.config/quickshell/pockets/DMS/" 2>/dev/null || true
+ cp -rn "${PAYLOAD}/dms/." "${home}/.config/dms/" 2>/dev/null || true
+ if [[ -d "${PAYLOAD}/dms/matugen/configs" ]]; then
+ cp -rn "${PAYLOAD}/dms/matugen/configs/." "${home}/.config/matugen/" 2>/dev/null || true
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"
- # DMS session.json: háttérkép beállítása
- mkdir -p "${home}/.local/state/DankMaterialShell"
- cat > "${home}/.local/state/DankMaterialShell/session.json" <<-SEOF
+ if [[ -d "${PAYLOAD}/DankMaterialShell" ]]; then
+ for item in "${PAYLOAD}/DankMaterialShell"/{.[!.]*,*}; do
+ [[ -e "$item" ]] || continue
+ dest="${home}/.config/DankMaterialShell/$(basename "$item")"
+ [[ -e "$dest" ]] || cp -r "$item" "$dest"
+ done
+ fi
+
+ # DMS session.json hatterkep
+ if [[ ! -f "${home}/.local/state/DankMaterialShell/session.json" ]]; then
+ cat > "${home}/.local/state/DankMaterialShell/session.json" <<-SEOF
{
"wallpaperPath": "${home}/.config/background.jpg"
}
SEOF
+ fi
- # Skel tartalom
- [[ -d "${PAYLOAD}/skel" ]] && \
- cp -r --no-preserve=ownership "${PAYLOAD}/skel/." "$home/"
-
- setup_xdg_dirs "$home"
- install_gtk_bookmarks "$home"
-
- # Háttérkép
- [[ -f "${PAYLOAD}/background.jpg" ]] && \
+ # Hatterkep
+ if [[ ! -f "${home}/.config/background.jpg" && -f "${PAYLOAD}/background.jpg" ]]; then
install -Dm644 "${PAYLOAD}/background.jpg" "${home}/.config/background.jpg"
+ fi
+
+ # SDDM es user avatar
+ install_user_avatar "$user" "$home" "$uid" "$gid"
# Kitty
- [[ -d "${PAYLOAD}/kitty" ]] && \
+ if [[ ! -f "${home}/.config/kitty/kitty.conf" && -d "${PAYLOAD}/kitty" ]]; then
cp -r "${PAYLOAD}/kitty/." "${home}/.config/kitty/"
-
- # Felhasználói avatar
- [[ -f "${PAYLOAD}/hyprland-pp.png" ]] && \
- install -Dm644 "${PAYLOAD}/hyprland-pp.png" "${home}/.face"
+ fi
# Fastfetch
for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
- [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \
+ if [[ ! -f "${home}/.config/fastfetch/${f}" && -f "${PAYLOAD}/fastfetch/${f}" ]]; then
install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${home}/.config/fastfetch/${f}"
+ fi
done
- # GTK, Thunar, nwg-look, xsettingsd, Kvantum konfigok
+ # GTK, Thunar, nwg-look, xsettingsd, Kvantum
for d in gtk-3.0 gtk-4.0 nwg-look Thunar xfce4 xsettingsd Kvantum; do
- if [[ -d "${PAYLOAD}/${d}" ]]; then
+ if [[ ! -d "${home}/.config/${d}" && -d "${PAYLOAD}/${d}" ]]; then
mkdir -p "${home}/.config/${d}"
cp -rf "${PAYLOAD}/${d}/." "${home}/.config/${d}/"
fi
done
- # RaveSwitch alap config (modifier: Super, lasd fentebb a skel-agnal)
- if [[ -f "${PAYLOAD}/raveswitch/config.ron" && ! -f "${home}/.config/raveswitch/config.ron" ]]; then
+ # RaveSwitch
+ if [[ ! -f "${home}/.config/raveswitch/config.ron" && -f "${PAYLOAD}/raveswitch/config.ron" ]]; then
install -Dm644 "${PAYLOAD}/raveswitch/config.ron" "${home}/.config/raveswitch/config.ron"
fi
- # Icon és GTK téma beállítása (dconf/gsettings)
- # A settings.ini nem elég — a GTK daemonok a dconf-ot olvassák
- # Chroot-ban (Calamares) dbus-launch lehet hogy nincs — ezért set +e
+ # Flatpak global override
+ if [[ ! -f "${home}/.local/share/flatpak/overrides/global" && -f "${PAYLOAD}/skel/.local/share/flatpak/overrides/global" ]]; then
+ install -Dm644 "${PAYLOAD}/skel/.local/share/flatpak/overrides/global" \
+ "${home}/.local/share/flatpak/overrides/global"
+ fi
+
+ setup_xdg_dirs "$home"
+ install_gtk_bookmarks "$home"
+ ensure_bashrc_hook "${home}/.bashrc"
+ echo "1" > "${home}/.config/raveos/hyprland-migrated"
+
+ # GTK tema beallitasa gsettings-szel
(
runuser -u "$user" -- dbus-launch gsettings set org.gnome.desktop.interface gtk-theme 'Yaru-olive-dark' 2>/dev/null
runuser -u "$user" -- dbus-launch gsettings set org.gnome.desktop.interface icon-theme 'Adwaitaru-olive' 2>/dev/null
) || true
- # Tulajdonos visszaállítása
- chown -R "${uid}:${gid}" "$home"
-
- # matugen: wallpaper-alapú színséma generálás
+ # matugen: wallpaper-alapu szinseme generalas ha elerheto
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
+ # Kizarolag az erintett konfiguraciok es konyvtarak jogosultsagait javitjuk
+ chown "${uid}:${gid}" "${home}/.config" "${home}/.local" "${home}/.bashrc" 2>/dev/null || true
+ chown "${uid}:${gid}" \
+ "${home}/${XDG_DESKTOP}" \
+ "${home}/${XDG_DOWNLOAD}" \
+ "${home}/${XDG_TEMPLATES}" \
+ "${home}/${XDG_PUBLIC}" \
+ "${home}/${XDG_DOCUMENTS}" \
+ "${home}/${XDG_MUSIC}" \
+ "${home}/${XDG_PICTURES}" \
+ "${home}/${XDG_VIDEOS}" \
+ "${home}/${XDG_PROJECTS}" 2>/dev/null || true
+ chown -R "${uid}:${gid}" \
+ "${home}/.config" \
+ "${home}/.local" 2>/dev/null || true
+
done < /etc/passwd
-echo "Telepítés kész."
+echo "RaveOS Hyprland beállítás sikeresen alkalmazva."