blob: c56ea3f1885f7b9be19cf91fad3449867c803dd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
#!/usr/bin/env bash
# raveos-gnome-apply.sh
# ---------------------
# Modern RaveOS GNOME inicializáló és beállító script:
# - /etc/skel alá telepíti a sablonokat (új usereknek)
# - Meglévő usereknél CSAK a hiányzó fájlokat pótolja (sosem ír felül meglévő beállításokat!)
# - Nem futtat 'dconf load'-ot, így a felhasználó saját beállításai megmaradnak!
# - Csak az általa létrehozott mappákat chownolja (biztonságos)
set -euo pipefail
PAYLOAD="/usr/share/raveos/gnome-theme/theme-data"
wallpaper_dst="/usr/share/backgrounds/raveos/raveos-main-bg.jpeg"
if [[ ! -d "$PAYLOAD" ]]; then
echo "Hiba: hiányzó payload: $PAYLOAD" >&2
exit 1
fi
if [[ ${EUID} -ne 0 ]]; then
echo "Root jogosultság szükséges." >&2
exit 1
fi
# ---------------------------------------------------------------------------
# SEGÉDFÜGGVÉNYEK
# ---------------------------------------------------------------------------
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
}
write_mimeapps_defaults() {
local mimeapps_path="$1"
mkdir -p "$(dirname "$mimeapps_path")"
cat > "$mimeapps_path" <<'MIMEOF'
[Default Applications]
image/jpeg=org.gnome.eog.desktop
image/png=org.gnome.eog.desktop
image/webp=org.gnome.eog.desktop
image/gif=org.gnome.eog.desktop
image/bmp=org.gnome.eog.desktop
image/tiff=org.gnome.eog.desktop
image/avif=org.gnome.eog.desktop
image/heif=org.gnome.eog.desktop
image/heic=org.gnome.eog.desktop
MIMEOF
}
# ---------------------------------------------------------------------------
# RENDSZERSZINTŰ BEÁLLÍTÁSOK
# ---------------------------------------------------------------------------
# Elrejtett felesleges menüelemek
mkdir -p /usr/local/share/applications
for desktop_id in avahi-discover.desktop bssh.desktop bvnc.desktop qv4l2.desktop qvidcap.desktop vim.desktop; do
cat > "/usr/local/share/applications/${desktop_id}" <<'DESKEOF'
[Desktop Entry]
NoDisplay=true
DESKEOF
done
# Egyedi alkalmazás menü ikon Adwaita alá (nem a csomagból tesszük fel, hogy ne ütközzön az adwaita-icon-theme csomaggal)
if [[ -f "${PAYLOAD}/icons/view-app-grid-symbolic.svg" ]]; then
install -Dm644 "${PAYLOAD}/icons/view-app-grid-symbolic.svg" \
/usr/share/icons/Adwaita/symbolic/actions/view-app-grid-symbolic.svg
fi
# dconf és gsettings adatbázisok frissítése
command -v dconf &>/dev/null && dconf update || true
command -v glib-compile-schemas &>/dev/null && glib-compile-schemas /usr/share/glib-2.0/schemas || true
# ---------------------------------------------------------------------------
# /etc/skel (ÚJ FELHASZNÁLÓK ALAPBEÁLLÍTÁSAI)
# ---------------------------------------------------------------------------
mkdir -p \
/etc/skel/.config/kitty \
/etc/skel/.config/fastfetch \
/etc/skel/.config/burn-my-windows/profiles \
/etc/skel/.config/raveos
[[ -f "${PAYLOAD}/kitty/kitty.conf" ]] && \
install -Dm644 "${PAYLOAD}/kitty/kitty.conf" /etc/skel/.config/kitty/kitty.conf
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}/burn-my-windows/burn-my-windows.conf" ]] && \
install -Dm644 "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" \
/etc/skel/.config/burn-my-windows/profiles/burn-my-windows.conf
write_mimeapps_defaults /etc/skel/.config/mimeapps.list
ensure_bashrc_hook /etc/skel/.bashrc
echo "1" > /etc/skel/.config/raveos/gnome-migrated
# ---------------------------------------------------------------------------
# MEGLÉVŐ USEREK FRISSÍTÉSE (KÍMÉLETES / NEM FELÜLÍRÓ MÓDBAN)
# ---------------------------------------------------------------------------
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
# Csak akkor másolunk, ha még nincs saját beállítása
mkdir -p \
"${home}/.config/kitty" \
"${home}/.config/fastfetch" \
"${home}/.config/burn-my-windows/profiles" \
"${home}/.config/raveos"
# Kitty: csak ha nem létezik
if [[ ! -f "${home}/.config/kitty/kitty.conf" && -f "${PAYLOAD}/kitty/kitty.conf" ]]; then
install -Dm644 "${PAYLOAD}/kitty/kitty.conf" "${home}/.config/kitty/kitty.conf"
fi
# Fastfetch: csak ha nem létezik
for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
if [[ ! -f "${home}/.config/fastfetch/${f}" && -f "${PAYLOAD}/fastfetch/${f}" ]]; then
install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${home}/.config/fastfetch/${f}"
fi
done
# Burn-my-windows: csak ha nem létezik
if [[ ! -f "${home}/.config/burn-my-windows/profiles/burn-my-windows.conf" && -f "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" ]]; then
install -Dm644 "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" \
"${home}/.config/burn-my-windows/profiles/burn-my-windows.conf"
fi
# Mimeapps: csak ha nem létezik
if [[ ! -f "${home}/.config/mimeapps.list" ]]; then
write_mimeapps_defaults "${home}/.config/mimeapps.list"
fi
ensure_bashrc_hook "${home}/.bashrc"
echo "1" > "${home}/.config/raveos/gnome-migrated"
# BIZTONSÁGOS JOGBEÁLLÍTÁS: Csak az érintett konfigurációkat chownoljuk,
# SOHA NE a teljes $home mappát!
chown "${uid}:${gid}" "${home}/.config" "${home}/.config/mimeapps.list" 2>/dev/null || true
chown -R "${uid}:${gid}" \
"${home}/.config/kitty" \
"${home}/.config/fastfetch" \
"${home}/.config/burn-my-windows" \
"${home}/.config/raveos" \
"${home}/.bashrc" 2>/dev/null || true
done < /etc/passwd
echo "RaveOS GNOME beállítás sikeresen alkalmazva."
|