module-hm.nix 789 B

12345678910111213141516171819202122232425262728
  1. self: { options, config, lib, pkgs, ... }:
  2. let
  3. cfg = config.programs.discordo;
  4. settingsFormat = pkgs.formats.toml { };
  5. in
  6. {
  7. options.programs.discordo = {
  8. enable = lib.mkEnableOption "discordo";
  9. package = lib.mkPackageOption self.packages.${pkgs.system} "discordo" { };
  10. settings = lib.mkOption {
  11. type = settingsFormat.type;
  12. description = ''
  13. Configuration for discordo.
  14. See https://github.com/ayn2op/discordo?tab=readme-ov-file#configuration
  15. for available options and default values.
  16. '';
  17. default = { };
  18. };
  19. };
  20. config = lib.mkIf cfg.enable {
  21. home.packages = [ cfg.package ];
  22. xdg.configFile."discordo/config.toml".source = settingsFormat.generate
  23. "discordo-config.toml"
  24. cfg.settings;
  25. };
  26. }