56 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
# notify me when a command is finished
 | 
						|
# todo : secret managment is shit
 | 
						|
{
 | 
						|
  config,
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}:
 | 
						|
with lib;
 | 
						|
{
 | 
						|
  options.components.gui.noti.enable = mkOption {
 | 
						|
    type = lib.types.bool;
 | 
						|
    default = config.components.gui.enable;
 | 
						|
  };
 | 
						|
 | 
						|
  # todo : put this in `/homes`
 | 
						|
  config = mkIf (config.components.gui.noti.enable) {
 | 
						|
 | 
						|
    clan.core.facts.services.noti = {
 | 
						|
      secret."noti.yaml" = { };
 | 
						|
      generator = {
 | 
						|
        prompt = "noti.yaml";
 | 
						|
        path = with pkgs; [ coreutils ];
 | 
						|
        script = ''
 | 
						|
          echo "$prompt_value" > "$secrets"/noti.yaml
 | 
						|
        '';
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    systemd.tmpfiles.settings.noti = {
 | 
						|
      # don't like to use a non tmpfs here, but does not work another way
 | 
						|
      "${config.users.users.mainUser.home}/.config/noti/noti.yaml"."C+" = {
 | 
						|
        user = config.users.users.mainUser.name;
 | 
						|
        group = config.users.users.mainUser.group;
 | 
						|
        mode = "400";
 | 
						|
        argument = config.clan.core.facts.services.noti.secret."noti.yaml".path;
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    #    sops.secrets.pushover_user_key = { };
 | 
						|
    #    sops.secrets.pushover_api_key = { };
 | 
						|
    #    sops.templates."noti.yaml".owner = config.users.users.mainUser.name;
 | 
						|
    #    sops.templates."noti.yaml".group = config.users.users.mainUser.group;
 | 
						|
    #    sops.templates."noti.yaml".content = ''
 | 
						|
    #      pushover:
 | 
						|
    #        userKey: ${config.sops.placeholder.pushover_user_key}
 | 
						|
    #        apiToken: ${config.sops.placeholder.pushover_api_key}
 | 
						|
    #    '';
 | 
						|
 | 
						|
    home-manager.users.mainUser = {
 | 
						|
      programs.noti.enable = true;
 | 
						|
      #      xdg.configFile."noti/noti.yaml".target = "/run/facts/mainUser.noti.yaml";
 | 
						|
    };
 | 
						|
 | 
						|
  };
 | 
						|
}
 |