diff options
Diffstat (limited to 'raveos-cosmic-theme/raveos-cosmic-apply.sh')
| -rwxr-xr-x[-rw-r--r--] | raveos-cosmic-theme/raveos-cosmic-apply.sh | 96 |
1 files changed, 53 insertions, 43 deletions
diff --git a/raveos-cosmic-theme/raveos-cosmic-apply.sh b/raveos-cosmic-theme/raveos-cosmic-apply.sh index 13853dd..3cedb60 100644..100755 --- a/raveos-cosmic-theme/raveos-cosmic-apply.sh +++ b/raveos-cosmic-theme/raveos-cosmic-apply.sh @@ -1,24 +1,15 @@ #!/usr/bin/env bash -# raveos-cosmic-apply.sh -# ---------------------- -# Telepíti a COSMIC 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-cosmic-theme-apply.service hívja -# egyszer, első boot után. - set -euo pipefail PAYLOAD="/usr/share/raveos/cosmic-theme/theme-data" if [[ ! -d "$PAYLOAD" ]]; then - echo "Hiba: hiányzó payload: $PAYLOAD" >&2 + echo "Hiba: hianyzo payload: $PAYLOAD" >&2 exit 1 fi if [[ ${EUID} -ne 0 ]]; then - echo "Root jogosultság szükséges." >&2 + echo "Root jogosultsag szukseges." >&2 exit 1 fi @@ -31,24 +22,34 @@ ensure_bashrc_hook() { fi } -# A Calamares (systemd-localed) altal beallitott billentyuzet-kiosztast atirja -# a cosmic-comp xkb_config-jaba, hogy a COSMIC mar az elso bejelentkezeskor a -# valasztott kiosztast hasznalja (nem az angol alapallapotot). write_cosmic_xkb() { - local home="$1" + local target_cosmic="$1" local kb_layout="hu" local kb_variant="" local xorg_kb="/etc/X11/xorg.conf.d/00-keyboard.conf" + if [[ -f "${xorg_kb}" ]]; then kb_layout="$(awk '/XkbLayout/ {print $3}' "${xorg_kb}" 2>/dev/null | tr -d '"' | head -1)" kb_layout="${kb_layout%%,*}" kb_variant="$(awk '/XkbVariant/ {print $3}' "${xorg_kb}" 2>/dev/null | tr -d '"' | head -1)" kb_variant="${kb_variant%%,*}" + elif [[ -f /etc/default/keyboard ]]; then + kb_layout="$(awk -F'"' '/^XKBLAYOUT=/{print $2; exit}' /etc/default/keyboard 2>/dev/null)" + kb_layout="${kb_layout%%,*}" + kb_variant="$(awk -F'"' '/^XKBVARIANT=/{print $2; exit}' /etc/default/keyboard 2>/dev/null)" + kb_variant="${kb_variant%%,*}" + elif command -v localectl >/dev/null 2>&1; then + local loc_layout loc_var + loc_layout="$(localectl status 2>/dev/null | awk -F': ' '/X11 Layout/{print $2}')" + [[ -n "$loc_layout" ]] && kb_layout="${loc_layout%%,*}" + loc_var="$(localectl status 2>/dev/null | awk -F': ' '/X11 Variant/{print $2}')" + [[ -n "$loc_var" ]] && kb_variant="${loc_var%%,*}" fi [[ -n "$kb_layout" ]] || kb_layout="hu" - mkdir -p "${home}/.config/cosmic/com.system76.CosmicComp/v1" - cat > "${home}/.config/cosmic/com.system76.CosmicComp/v1/xkb_config" <<EOF + mkdir -p "${target_cosmic}/com.system76.CosmicComp/v1" + if [[ ! -f "${target_cosmic}/com.system76.CosmicComp/v1/xkb_config" ]]; then + cat > "${target_cosmic}/com.system76.CosmicComp/v1/xkb_config" <<XKB_EOF ( rules: "", model: "", @@ -58,66 +59,75 @@ write_cosmic_xkb() { repeat_delay: 600, repeat_rate: 25, ) -EOF +XKB_EOF + fi } -# Háttérkép rendszerkönyvtárba +# Rendszerszintu hatterkep es fastfetch [[ -f "${PAYLOAD}/background" ]] && \ install -Dm644 "${PAYLOAD}/background" /usr/share/backgrounds/raveos/raveos-main-bg.jpeg -# 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 -# COSMIC rendszerfájlok színátírása (RaveOS paletta) -if [[ -d /usr/share/cosmic ]]; then - find /usr/share/cosmic -type f -exec sed -i \ - -e 's/0.3882353/0.29411766/g' \ - -e 's/0.8156863/0.52156866/g' \ - -e 's/0.8745098/0.003921569/g' \ - {} + || true -fi - -# SDDM: a téma és konfig a PKGBUILD + .install hook által van telepítve, itt nincs teendő - +# Skel beallitasa uj felhasznaloknak mkdir -p \ /etc/skel/.config/kitty \ /etc/skel/.config/fastfetch \ - /etc/skel/.config/cosmic/com.system76.CosmicTerm/v1 + /etc/skel/.config/cosmic [[ -f "${PAYLOAD}/kitty/kitty.conf" ]] && \ install -Dm644 "${PAYLOAD}/kitty/kitty.conf" /etc/skel/.config/kitty/kitty.conf -[[ -d "${PAYLOAD}/cosmic-term/v1" ]] && \ - cp -r "${PAYLOAD}/cosmic-term/v1/." /etc/skel/.config/cosmic/com.system76.CosmicTerm/v1/ + 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 + +if [[ -d "${PAYLOAD}/cosmic" ]]; then + cp -r "${PAYLOAD}/cosmic/." /etc/skel/.config/cosmic/ +fi + +write_cosmic_xkb /etc/skel/.config/cosmic ensure_bashrc_hook /etc/skel/.bashrc -write_cosmic_xkb /etc/skel +# Meglevo felhasznalok kimeletes frissitese 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 + user_marker="${home}/.config/raveos-cosmic-theme/.applied" + [[ -f "$user_marker" ]] && continue + mkdir -p \ "${home}/.config/kitty" \ "${home}/.config/fastfetch" \ - "${home}/.config/cosmic/com.system76.CosmicTerm/v1" + "${home}/.config/cosmic" \ + "${home}/.config/raveos-cosmic-theme" - [[ -f "${PAYLOAD}/kitty/kitty.conf" ]] && \ + if [[ -f "${PAYLOAD}/kitty/kitty.conf" && ! -f "${home}/.config/kitty/kitty.conf" ]]; then install -Dm644 "${PAYLOAD}/kitty/kitty.conf" "${home}/.config/kitty/kitty.conf" - [[ -d "${PAYLOAD}/cosmic-term/v1" ]] && \ - cp -r "${PAYLOAD}/cosmic-term/v1/." "${home}/.config/cosmic/com.system76.CosmicTerm/v1/" + fi + for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do - [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \ + if [[ -f "${PAYLOAD}/fastfetch/${f}" && ! -f "${home}/.config/fastfetch/${f}" ]]; then install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${home}/.config/fastfetch/${f}" + fi done + + if [[ -d "${PAYLOAD}/cosmic" ]]; then + cp -rn "${PAYLOAD}/cosmic/." "${home}/.config/cosmic/" 2>/dev/null || true + fi + + write_cosmic_xkb "${home}/.config/cosmic" ensure_bashrc_hook "${home}/.bashrc" - write_cosmic_xkb "${home}" + touch "$user_marker" - chown -R "${uid}:${gid}" "$home" + for dir in "${home}/.config/kitty" "${home}/.config/fastfetch" "${home}/.config/cosmic" "${home}/.config/raveos-cosmic-theme"; do + [[ -d "$dir" ]] && chown -R "${uid}:${gid}" "$dir" 2>/dev/null || true + done + [[ -f "${home}/.bashrc" ]] && chown "${uid}:${gid}" "${home}/.bashrc" 2>/dev/null || true done < /etc/passwd -echo "Telepítés kész." +echo "COSMIC tema telepites kesz." |