feat: initial noctalia-greeter release
QuickShell QML login greeter for greetd, styled after noctalia-shell lockscreen. Runs under niri compositor as _greeter user. Theme is live-synced from noctalia config via runit service. - shell.qml: QuickShell greeter UI + greetd auth flow - sync/: inotifywait theme sync daemon + runit service - greetd/: niri compositor config + wrapper scripts - install.sh: deployment helper - test/check-syntax.sh: 19 syntax/structural checks (0 failures) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
49
sync/noctalia-greeter-sync
Executable file
49
sync/noctalia-greeter-sync
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
# Syncs noctalia theme to /var/lib/noctalia-greeter-theme/ for the _greeter user.
|
||||
export HOME=/home/moze
|
||||
export USER=moze
|
||||
|
||||
THEME_DIR="/var/lib/noctalia-greeter-theme"
|
||||
COLORS="$HOME/.config/noctalia/colors.json"
|
||||
WALLPAPERS_JSON="$HOME/.cache/noctalia/wallpapers.json"
|
||||
|
||||
do_sync() {
|
||||
if [ -f "$COLORS" ]; then
|
||||
cp -f "$COLORS" "$THEME_DIR/colors.json" 2>/dev/null
|
||||
chmod 644 "$THEME_DIR/colors.json" 2>/dev/null
|
||||
fi
|
||||
|
||||
if [ -f "$WALLPAPERS_JSON" ]; then
|
||||
WP=$(python3 -c "
|
||||
import json, sys
|
||||
try:
|
||||
d = json.load(open('$WALLPAPERS_JSON'))
|
||||
m = d.get('wallpapers', {})
|
||||
for s in ['eDP-1', 'DP-1'] + list(m.keys()):
|
||||
if s in m:
|
||||
p = m[s].get('dark') or m[s].get('light') or ''
|
||||
if p:
|
||||
print(p)
|
||||
sys.exit(0)
|
||||
fb = d.get('defaultWallpaper', '')
|
||||
if fb: print(fb)
|
||||
except Exception as e:
|
||||
sys.stderr.write(str(e) + chr(10))
|
||||
" 2>/dev/null)
|
||||
if [ -n "$WP" ] && [ -f "$WP" ]; then
|
||||
cp -f "$WP" "$THEME_DIR/wallpaper.jpg" 2>/dev/null
|
||||
chmod 644 "$THEME_DIR/wallpaper.jpg" 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
do_sync
|
||||
|
||||
exec inotifywait -m -q \
|
||||
-e close_write,moved_to,create \
|
||||
"$HOME/.config/noctalia/" \
|
||||
"$HOME/.cache/noctalia/" 2>/dev/null |
|
||||
while IFS= read -r _line; do
|
||||
sleep 0.3
|
||||
do_sync
|
||||
done
|
||||
Reference in New Issue
Block a user