{
  lib,
  pkgs,
  config,
  osConfig,
  ...
}: {
  options.programs.signal-desktop-bin = {
    enable = lib.mkEnableOption "enable signal";
  };

  config = lib.mkIf config.programs.signal-desktop-bin.enable (lib.mkMerge [
    {
      home.packages = with pkgs; [
        signal-desktop-bin
      ];
    }
    (
      lib.mkIf osConfig.host.impermanence.enable {
        # TODO: map impermanence for signal
      }
    )
  ]);
}