Commit 2b59dd8
6
files
+70
added
-4
deleted
@@ -150,7 +150,7 @@ cargo test -p luna-demo --test interaction # te same interakcje jako aserc
150
150
151
151
`scripts/install.sh` buduje binarki w trybie release i instaluje **środowisko Luna**
152
152
(kompozytor `selene`, powłoka `luna-shell`, sesja `luna-session`, demo, tłumaczenia, motywy,
153
-wpis sesji Wayland):
153
+wpis sesji Wayland i **ikonę sesji**):
154
154
155
155
```bash
156
156
# instalacja testowa do katalogu (bez ruszania systemu) — nic nie wymaga uprawnień
@@ -166,7 +166,9 @@ sudo ./scripts/install.sh --prefix /usr
166
166
sudo ./scripts/install.sh --prefix /usr --uninstall
167
167
```
168
168
169
-Po instalacji sesja „Luna” pojawia się w menedżerze logowania (`share/wayland-sessions/selene.desktop`).
169
+Po instalacji sesja „Luna” pojawia się w menedżerze logowania (`share/wayland-sessions/selene.desktop`),
170
+z ikoną Luna (`share/icons/hicolor/.../apps/luna.svg` + PNG w kilku rozmiarach oraz `pixmaps/luna.png`,
171
+rysowanymi z `assets/branding/luna.svg`).
170
172
Na sprzęcie Selene przejmuje ekran przez DRM/KMS — trzeba **wylogować bieżący pulpit** (wolny
171
173
master DRM) i mieć dostęp do `/dev/input` (grupa `input`) dla wejścia. Testowo, obok działającej
172
174
sesji, można uruchomić `SELENE_BACKEND=nested selene` (okno na obecnym pulpicie) i podłączyć
173
175
new file mode 100644
@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!-- Ikona środowiska Luna (sesja w menedżerze logowania).
3
+ Motyw: półksiężyc na akcentowym tle (Luna = Księżyc).
4
+ Plik źródłowy — instaluje go `scripts/install.sh` do hicolor/scalable/apps. -->
5
+<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
6
+ <defs>
7
+ <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
8
+ <stop offset="0" stop-color="#4a97ec"/>
9
+ <stop offset="1" stop-color="#2b6fc4"/>
10
+ </linearGradient>
11
+ <mask id="crescent">
12
+ <rect x="0" y="0" width="128" height="128" fill="#000000"/>
13
+ <circle cx="60" cy="70" r="38" fill="#ffffff"/>
14
+ <circle cx="82" cy="52" r="33" fill="#000000"/>
15
+ </mask>
16
+ </defs>
17
+
18
+ <!-- Tło: zaokrąglony kwadrat w akcencie Luny. -->
19
+ <rect x="4" y="4" width="120" height="120" rx="28" ry="28" fill="url(#bg)"/>
20
+
21
+ <!-- Półksiężyc. -->
22
+ <rect x="0" y="0" width="128" height="128" fill="#ffffff" mask="url(#crescent)"/>
23
+
24
+ <!-- Gwiazda (iskra) w prawym górnym rogu. -->
25
+ <path d="M99 25 l3.2 7.8 7.8 3.2 -7.8 3.2 -3.2 7.8 -3.2 -7.8 -7.8 -3.2 7.8 -3.2 z"
26
+ fill="#ffffff" opacity="0.92"/>
27
+</svg>
@@ -146,7 +146,9 @@ sudo ./scripts/install.sh --prefix /usr # instalacja syst
146
146
```
147
147
148
148
Pliki sesji: `de/session/luna-session` (launcher) i `de/session/selene.desktop`
149
-(`share/wayland-sessions`).
149
+(`share/wayland-sessions`). Ikona sesji (`Icon=luna`) to `assets/branding/luna.svg` — instalator kładzie
150
+go w `share/icons/hicolor/scalable/apps` oraz rasteryzuje (rsvg-convert) do PNG w rozmiarach
151
+16–256 i `share/pixmaps`, więc greeter pokaże go nawet bez obsługi SVG.
150
152
151
153
Klienta podłączysz ustawiając `WAYLAND_DISPLAY=wayland-0` (`XDG_RUNTIME_DIR` klient wybierze
152
154
awaryjnie sam, tak jak Selene — patrz `libluna_core::runtime`). Renderowanie pojawi się, gdy
@@ -6,4 +6,5 @@ Comment=Luna desktop — Selene Wayland compositor
6
6
Comment[pl]=Środowisko Luna — kompozytor Wayland Selene
7
7
Exec=luna-session
8
8
TryExec=selene
9
+Icon=luna
9
10
DesktopNames=Luna
10
11
new file mode 100644
11
12
Binary files /dev/null and b/docs/images/luna-logo.png differ
@@ -4,6 +4,9 @@
4
4
# Buduje binarki w trybie release i instaluje je do prefiksu (domyślnie /usr/local):
5
5
# bin/selene, bin/luna-shell, bin/luna-demo, bin/luna-session
6
6
# share/wayland-sessions/selene.desktop (sesja „Luna” w menedżerze logowania)
7
+# share/icons/hicolor/scalable/apps/luna.svg (ikona sesji)
8
+# share/icons/hicolor/<N>x<N>/apps/luna.png (rastrowe, dla greeterów bez SVG)
9
+# share/pixmaps/luna.png
7
10
# share/luna/i18n/*.lang, share/luna/themes/*.theme
8
11
# share/licenses/luna/LICENSE
9
12
#
@@ -90,6 +93,7 @@ files() {
90
93
printf '%s|%s|%s\n' "$lib/gallery" "$dest/bin/luna-gallery" "755"
91
94
printf '%s|%s|%s\n' "$root/de/session/luna-session" "$dest/bin/luna-session" "755"
92
95
printf '%s|%s|%s\n' "$root/de/session/selene.desktop" "$dest/share/wayland-sessions/selene.desktop" "644"
96
+ printf '%s|%s|%s\n' "$root/assets/branding/luna.svg" "$dest/share/icons/hicolor/scalable/apps/luna.svg" "644"
93
97
printf '%s|%s|%s\n' "$root/LICENSE" "$dest/share/licenses/luna/LICENSE" "644"
94
98
local f
95
99
for f in "$root"/crates/libluna-i18n/i18n/*.lang; do
@@ -100,16 +104,28 @@ files() {
100
104
done
101
105
}
102
106
107
+# Rozmiary rastrowej ikony sesji (greeter bez wsparcia SVG użyje którejś z nich).
108
+icon_sizes="16 24 32 48 64 128 256"
109
+
103
110
if [ "$uninstall" = 1 ]; then
104
111
step "Odinstalowywanie Luna z $dest"
105
112
while IFS='|' read -r _ dst _; do
106
113
do_cmd rm -f "$dst"
107
114
done < <(files)
115
+ # Rastrowa ikona sesji (generowana w trakcie instalacji).
116
+ for s in $icon_sizes; do
117
+ do_cmd rm -f "$dest/share/icons/hicolor/${s}x${s}/apps/luna.png"
118
+ done
119
+ do_cmd rm -f "$dest/share/pixmaps/luna.png"
108
120
# Puste katalogi po naszych plikach.
109
121
for d in "$dest/share/luna/i18n" "$dest/share/luna/themes" "$dest/share/luna" \
110
- "$dest/share/wayland-sessions" "$dest/share/licenses/luna"; do
122
+ "$dest/share/wayland-sessions" "$dest/share/licenses/luna" \
123
+ "$dest/share/icons/hicolor/scalable/apps"; do
111
124
do_cmd rmdir "$d" 2>/dev/null || true
112
125
done
126
+ for s in $icon_sizes; do
127
+ do_cmd rmdir "$dest/share/icons/hicolor/${s}x${s}/apps" 2>/dev/null || true
128
+ done
113
129
say "Gotowe."
114
130
exit 0
115
131
fi
@@ -144,6 +160,24 @@ while IFS='|' read -r src dst mode; do
144
160
do_cmd install -D -m "$mode" "$src" "$dst"
145
161
done < <(files)
146
162
163
+# Ikona sesji w rozmiarach rastrowych — dla greeterów bez rsvg.
164
+step "Ikona sesji (rastrowa)"
165
+if command -v rsvg-convert >/dev/null 2>&1; then
166
+ for s in $icon_sizes; do
167
+ dir="$dest/share/icons/hicolor/${s}x${s}/apps"
168
+ do_cmd install -d "$dir"
169
+ do_cmd rsvg-convert -w "$s" -h "$s" "$root/assets/branding/luna.svg" -o "$dir/luna.png"
170
+ done
171
+ do_cmd install -d "$dest/share/pixmaps"
172
+ do_cmd rsvg-convert -w 256 -h 256 "$root/assets/branding/luna.svg" -o "$dest/share/pixmaps/luna.png"
173
+ # Odświeżenie cache ikon tylko w instalacji systemowej (bez DESTDIR).
174
+ if [ "$destdir" = "" ] && command -v gtk-update-icon-cache >/dev/null 2>&1; then
175
+ do_cmd gtk-update-icon-cache -q -t -f "$dest/share/icons/hicolor" || true
176
+ fi
177
+else
178
+ say " (pomijam PNG — brak rsvg-convert; greeter użyje SVG)"
179
+fi
180
+
147
181
step "Gotowe"
148
182
say "Zainstalowano w: $dest"
149
183
say ""