41 lines
No EOL
1.1 KiB
Nix
41 lines
No EOL
1.1 KiB
Nix
{ pkgs, config, lib, ... }: with lib; let
|
|
cfg = config.services.akkoma.emotes;
|
|
in {
|
|
options.services.akkoma.emoji = {
|
|
enable = mkEnableOption "Akkoma Emoji";
|
|
|
|
emojiPackages = mkOption {
|
|
type = with types; listOf package;
|
|
default = [];
|
|
description = ''
|
|
List of packages to install into Akkoma's emoji store.
|
|
|
|
Each entry will be its own category in the emoji picker.
|
|
|
|
These can be _any_ package/derivation, Akkoma is expecting .png and .gif files, though.
|
|
'';
|
|
};
|
|
|
|
};
|
|
config = mkIf cfg.enable {
|
|
services.akkoma = {
|
|
config.":pleroma".":emoji" = with (pkgs.formats.elixirConf { }).lib; {
|
|
# shortcode_globs = ["/emoji/**/*.png" "/emoji/**/*.gif"];
|
|
groups = mkMap(builtins.listToAttrs(
|
|
map (package: {
|
|
name = package.name;
|
|
value = "/emoji/${package.name}/*";
|
|
}) cfg.emotePackages
|
|
));
|
|
};
|
|
|
|
extraStatic = builtins.listToAttrs(
|
|
map (package: {
|
|
name = "emoji/${package.name}";
|
|
value = package;
|
|
}) cfg.emotePackages
|
|
);
|
|
|
|
};
|
|
};
|
|
} |