{ lib, config, namespace, pkgs, inputs, ... }: let inherit (lib) mkIf; inherit (lib.${namespace}) mkEnableModule; cfg = config.${namespace}.programs.amfora; inherit (config.${namespace}) theme; themeFiles = { rose-pine = "${inputs.rose-pine-amfora}/themes/rose-pine.toml"; }; themeFile = themeFiles.${theme.colors.base}; in { options = mkEnableModule "programs.amfora"; config = mkIf cfg.enable { home.packages = with pkgs; [ amfora ]; xdg.configFile."amfora/theme.toml".source = "${themeFile}"; # https://github.com/makeworld-the-better-one/amfora/blob/master/default-config.toml # Amfora requires a number of options to run - omitting everything I didn't # care to customize resulted in go panic errors. xdg.configFile."amfora/config.toml".text = # toml '' include = "./theme.toml" [a-general] # Defaults {{{ home = "gemini://geminiprotocol.net" auto_redirect = false http = 'default' search = "gemini://geminispace.info/search" color = true ansi = true highlight_code = true bullets = true show_link = false max_width = 80 downloads = ''' page_max_size = 2097152 # 2 MiB page_max_time = 10 scrollbar = "auto" underline = true # }}} highlight_style = "${theme.colors.base}" # Defaults {{{ [auth] [auth.certs] [auth.keys] [keybindings] [url-handlers] other = 'default' [url-prompts] [cache] max_size = 0 max_pages = 30 timeout = 1800 [proxies] [subscriptions] popup = true update_interval = 1800 workers = 3 entries_per_page = 20 header = true [theme] # }}} ''; }; }