1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

Update dms-greeter permissions & post install

This commit is contained in:
purian23
2025-10-15 23:11:53 -04:00
parent 2cc7777e16
commit daa0d368ab

View File

@@ -54,7 +54,7 @@ install -Dm755 Modules/Greetd/assets/dms-greeter %{buildroot}%{_bindir}/dms-gree
install -Dm644 Modules/Greetd/README.md %{buildroot}%{_docdir}/dms-greeter/README.md install -Dm644 Modules/Greetd/README.md %{buildroot}%{_docdir}/dms-greeter/README.md
# Create cache directory for greeter data # Create cache directory for greeter data
install -dm750 %{buildroot}%{_sharedstatedir}/cache/dms-greeter install -dm750 %{buildroot}%{_localstatedir}/cache/dms-greeter
# Remove build and development files # Remove build and development files
rm -rf %{buildroot}%{_sysconfdir}/xdg/quickshell/dms-greeter/.git* rm -rf %{buildroot}%{_sysconfdir}/xdg/quickshell/dms-greeter/.git*
@@ -69,7 +69,7 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/quickshell/dms-greeter/dms-greeter.spec
%doc %{_docdir}/dms-greeter/README.md %doc %{_docdir}/dms-greeter/README.md
%{_bindir}/dms-greeter %{_bindir}/dms-greeter
%{_sysconfdir}/xdg/quickshell/dms-greeter/ %{_sysconfdir}/xdg/quickshell/dms-greeter/
%dir %attr(0750,greeter,greeter) %{_sharedstatedir}/cache/dms-greeter %dir %attr(0750,greeter,greeter) %{_localstatedir}/cache/dms-greeter
%pre %pre
# Create greeter user/group if they don't exist (greetd expects this) # Create greeter user/group if they don't exist (greetd expects this)
@@ -79,5 +79,74 @@ getent passwd greeter >/dev/null || \
-c "System Greeter" greeter -c "System Greeter" greeter
exit 0 exit 0
%post
# Set SELinux context for the wrapper script on Fedora systems
if [ -x /usr/sbin/semanage ]; then
semanage fcontext -a -t bin_t %{_bindir}/dms-greeter 2>/dev/null || true
restorecon -v %{_bindir}/dms-greeter 2>/dev/null || true
fi
# Auto-configure greetd if config file exists and contains no dms-greeter command
GREETD_CONFIG="/etc/greetd/config.toml"
if [ -f "$GREETD_CONFIG" ] && ! grep -q "dms-greeter" "$GREETD_CONFIG"; then
# Backup existing config
BACKUP_FILE="${GREETD_CONFIG}.backup-$(date +%%Y%%m%%d-%%H%%M%%S)"
cp "$GREETD_CONFIG" "$BACKUP_FILE" 2>/dev/null || true
# Check if niri or hyprland exists
COMPOSITOR="niri"
if ! command -v niri >/dev/null 2>&1; then
if command -v Hyprland >/dev/null 2>&1; then
COMPOSITOR="hyprland"
fi
fi
# Update command in default_session section
sed -i "/^\[default_session\]/,/^\[/ s|^command =.*|command = \"/usr/bin/dms-greeter --command $COMPOSITOR\"|" "$GREETD_CONFIG"
sed -i '/^\[default_session\]/,/^\[/ s|^user =.*|user = "greeter"|' "$GREETD_CONFIG"
fi
cat << EOF
===============================================================================
DMS Greeter Installation Complete!
===============================================================================
Configuration status:
- Greeter cache directory: /var/cache/dms-greeter (created with proper permissions)
- SELinux contexts: Applied (if semanage available)
- Greetd config: $([ -f "$GREETD_CONFIG" ] && grep -q "dms-greeter" "$GREETD_CONFIG" && echo "Auto-configured " || echo "Needs manual setup")
Next steps to enable the greeter:
1. IMPORTANT: Disable any existing display managers:
sudo systemctl disable gdm sddm lightdm
(Only greetd should run as the display manager)
2. Verify greetd configuration:
Check /etc/greetd/config.toml contains:
[default_session]
user = "greeter"
command = "/usr/bin/dms-greeter --command niri"
(Also supported: hyprland, sway)
Note: Existing config backed up to config.toml.backup-* if modified
3. Enable greetd service:
sudo systemctl enable greetd
4. (Optional) Sync your user's theme with the greeter:
sudo usermod -aG greeter YOUR_USERNAME
# Then LOGOUT and LOGIN to apply group membership
ln -sf ~/.config/DankMaterialShell/settings.json /var/cache/dms-greeter/settings.json
ln -sf ~/.local/state/DankMaterialShell/session.json /var/cache/dms-greeter/session.json
ln -sf ~/.cache/quickshell/dankshell/dms-colors.json /var/cache/dms-greeter/colors.json
Documentation: /usr/share/doc/dms-greeter/README.md
===============================================================================
EOF
%changelog %changelog
{{{ git_dir_changelog }}} {{{ git_dir_changelog }}}