{ config, lib, pkgs, ... }: let cfg = config.services.conky; in with lib; { meta.maintainers = [ hm.maintainers.kaleo ]; options = { services.conky = { enable = mkEnableOption "Conky, a light-weight system monitor"; package = mkPackageOption pkgs "conky" { }; extraConfig = lib.mkOption { type = types.lines; default = ""; description = '' Configuration used by the Conky daemon. Check for options. If not set, the default configuration, as described by {command}`conky --print-config`, will be used. ''; }; }; }; config = mkIf cfg.enable { assertions = [ (hm.assertions.assertPlatform "services.conky" pkgs platforms.linux) ]; home.packages = [ cfg.package ]; systemd.user.services.conky = { Unit = { Description = "Conky - Lightweight system monitor"; After = [ "graphical-session.target" ]; }; Service = { Restart = "always"; RestartSec = "3"; ExecStart = toString ([ "${pkgs.conky}/bin/conky" ] ++ optional (cfg.extraConfig != "") "--config ${pkgs.writeText "conky.conf" cfg.extraConfig}"); }; Install.WantedBy = [ "graphical-session.target" ]; }; }; }