home-manager/modules/services/conky.nix

54 lines
1.3 KiB
Nix
Raw Normal View History

2023-12-27 12:00:49 +00:00
{ 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
<https://github.com/brndnmtthws/conky/wiki/Configurations> 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" ];
};
};
}