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
|
#!/usr/bin/env bash
set -euo pipefail
PAYLOAD="/usr/share/raveos/cosmic-theme/theme-data"
if [[ ! -d "$PAYLOAD" ]]; then
echo "Hiba: hianyzo payload: $PAYLOAD" >&2
exit 1
fi
if [[ ${EUID} -ne 0 ]]; then
echo "Root jogosultsag szukseges." >&2
exit 1
fi
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_cosmic_xkb() {
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 "${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: "",
layout: "${kb_layout}",
variant: "${kb_variant}",
options: None,
repeat_delay: 600,
repeat_rate: 25,
)
XKB_EOF
fi
}
# Rendszerszintu hatterkep es fastfetch
[[ -f "${PAYLOAD}/background" ]] && \
install -Dm644 "${PAYLOAD}/background" /usr/share/backgrounds/raveos/raveos-main-bg.jpeg
[[ -f "${PAYLOAD}/profile.d/raveos-fastfetch.sh" ]] && \
install -Dm755 "${PAYLOAD}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh
# Skel beallitasa uj felhasznaloknak
mkdir -p \
/etc/skel/.config/kitty \
/etc/skel/.config/fastfetch \
/etc/skel/.config/cosmic
[[ -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
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
# 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" \
"${home}/.config/raveos-cosmic-theme"
if [[ -f "${PAYLOAD}/kitty/kitty.conf" && ! -f "${home}/.config/kitty/kitty.conf" ]]; then
install -Dm644 "${PAYLOAD}/kitty/kitty.conf" "${home}/.config/kitty/kitty.conf"
fi
for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do
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"
touch "$user_marker"
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 "COSMIC tema telepites kesz."
|