{ config, pkgs, lib, ... }: let link-handler = pkgs.writeShellScriptBin "link-handler" '' #!/usr/bin/env sh case "$(printf "mpv\\nmpv audio\\nbrowser" | tofi --prompt "Open link with what program?")" in "mpv") ${pkgs.mpv}/bin/mpv "$@" ;; "mpv audio") ${pkgs.mpv}/bin/mpv "$@" --no-video ;; "browser") ${pkgs.librewolf}/bin/librewolf "$@" ;; esac ''; in { options = { crony.newsboat.enable = lib.mkEnableOption "Enable and config newsboat how I wan't it"; }; config = lib.mkIf config.crony.newsboat.enable { programs.newsboat = { enable = true; browser = "${link-handler}/bin/link-handler"; autoReload = true; reloadThreads = 10; extraConfig = '' unbind-key ENTER unbind-key j unbind-key k unbind-key J unbind-key K bind-key j down bind-key k up bind-key l open bind-key h quit bind-key g home bind-key G end bind-key a toggle-article-read confirm-mark-feed-read yes urls-source "ttrss" ttrss-url "https://ttrss.cronyakatsuki.xyz" ttrss-login "crony" ttrss-passwordfile "~/.config/newsboat/password.txt" download-path "~/Downloads" max-downloads 2 player "mpv" ''; }; home.file = { ".config/newsboat/urls".source = ./configs/newsboat-queries; }; }; }