{ config, pkgs, lib, ... }: let cfg = config.programs.iamb; settingsFormat = pkgs.formats.toml {}; iambIcon = pkgs.fetchFromGitHub { owner = "ulyssa"; repo = "iamb"; rev = "refs/tags/v0.0.9"; hash = "sha256-UYc7iphpzqZPwhOn/ia7XvnnlIUvM7nSFBz67ZkXmNs="; } + "/docs/iamb.png"; in { options = { programs.iamb = { enable = lib.mkEnableOption "Enable iamb program"; package = lib.mkPackageOption pkgs "iamb" { nullable = true;}; enableDesktopIcon = lib.mkOption { type = lib.types.bool; default = true; }; settings = lib.mkOption { inherit (settingsFormat) type; }; }; }; config = lib.mkIf cfg.enable { home.packages = lib.mkMerge [ [ cfg.package ] (lib.mkIf cfg.enableDesktopIcon [ (pkgs.makeDesktopItem { name = "iamb"; desktopName = "Iamb"; comment = "Terminal Matrix.org client"; exec = "kitty iamb"; # TODO: specify terminal icon = iambIcon; }) ]) ]; xdg.configFile."iamb/config.toml".source = settingsFormat.generate "config.toml" config.programs.iamb.settings; }; }