From 6781b0585e09a47747f576c1c41eafde11fadc31 Mon Sep 17 00:00:00 2001 From: Emmet Date: Sun, 2 Mar 2025 12:58:35 -0600 Subject: [PATCH] added sddm avatars --- modules/system/hyprland/default.nix | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/modules/system/hyprland/default.nix b/modules/system/hyprland/default.nix index 2012b4b9..60128d61 100644 --- a/modules/system/hyprland/default.nix +++ b/modules/system/hyprland/default.nix @@ -47,6 +47,38 @@ in package = pkgs.libsForQt5.sddm; }; + # Define systemd service to run on boot to load avatars for sddm + systemd.services."sddm-avatar" = { + description = "Service to copy or update users Avatars at startup."; + wantedBy = [ "multi-user.target" ]; + before = [ "sddm.service" ]; + script = '' + set -eu + mkdir -p /var/lib/AccountsService/icons + for user in /home/*; do + username=$(basename "$user") + if [ -f "$user/.face.icon" ]; then + if [ ! -f "/var/lib/AccountsService/icons/$username" ]; then + cp "$user/.face.icon" "/var/lib/AccountsService/icons/$username" + else + if [ "$user/.face.icon" -nt "/var/lib/AccountsService/icons/$username" ]; then + cp "$user/.face.icon" "/var/lib/AccountsService/icons/$username" + fi + fi + fi + done + ''; + serviceConfig = { + Type = "simple"; + User = "root"; + StandardOutput = "journal+console"; + StandardError = "journal+console"; + }; + }; + + # # Ensures SDDM starts after the service. + systemd.services.sddm = { after = [ "sddm-avatar.service" ]; }; + # xwayland services.xserver = { enable = true;