From 3be5ccd67f28feefb75f8339ae46b42cdbe06fa7 Mon Sep 17 00:00:00 2001
From: lassulus <lass@lassul.us>
Date: Tue, 14 Mar 2017 11:17:10 +0100
Subject: k 3 fetchWallpaper: don't use user services

---
 krebs/3modules/fetchWallpaper.nix | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

(limited to 'krebs/3modules/fetchWallpaper.nix')

diff --git a/krebs/3modules/fetchWallpaper.nix b/krebs/3modules/fetchWallpaper.nix
index e226a9060..e00c0ec9b 100644
--- a/krebs/3modules/fetchWallpaper.nix
+++ b/krebs/3modules/fetchWallpaper.nix
@@ -21,10 +21,9 @@ let
         OnCalendar = "*:00,10,20,30,40,50";
       };
     };
-    # TODO find a better default stateDir
     stateDir = mkOption {
       type = types.str;
-      default = "$HOME/wallpaper";
+      default = "/var/lib/wallpaper";
     };
     display = mkOption {
       type = types.str;
@@ -52,27 +51,35 @@ let
     mkdir -p ${cfg.stateDir}
     cd ${cfg.stateDir}
     (curl --max-time ${toString cfg.maxTime} -s -o wallpaper.tmp -z wallpaper ${shell.escape cfg.url} && mv wallpaper.tmp wallpaper) || :
-    feh --no-fehbg --bg-scale wallpaper
+    feh --no-fehbg --bg-scale ${shell.escape cfg.stateDir}/wallpaper
   '';
 
   imp = {
-    systemd.user.timers.fetchWallpaper = {
+    users.users.fetchWallpaper = {
+      name = "fetchWallpaper";
+      uid = genid "fetchWallpaper";
+      description = "fetchWallpaper user";
+      home = cfg.stateDir;
+      createHome = true;
+    };
+
+    systemd.timers.fetchWallpaper = {
       description = "fetch wallpaper timer";
       wantedBy = [ "timers.target" ];
 
       timerConfig = cfg.timerConfig;
     };
-    systemd.user.services.fetchWallpaper = {
+    systemd.services.fetchWallpaper = {
       description = "fetch wallpaper";
-      wantedBy = [ "default.target" ];
+      after = [ "network.target" ];
 
       path = with pkgs; [
         curl
         feh
-        coreutils
       ];
 
       environment = {
+        URL = cfg.url;
         DISPLAY = cfg.display;
       };
       restartIfChanged = true;
@@ -80,6 +87,7 @@ let
       serviceConfig = {
         Type = "simple";
         ExecStart = fetchWallpaperScript;
+        User = "fetchWallpaper";
       };
 
       unitConfig = cfg.unitConfig;
-- 
cgit v1.2.3