# Television — fuzzy finder with custom channels for tldr, git-diff, and git-log. { config, lib, ... }: with lib; let cfg = config.base.cliTools.television; in { # Enabled by default — base modules are always-on. options.base.cliTools.television.enable = (mkEnableOption "enable television") // {default = true;}; config = mkIf cfg.enable { programs.television = { enable = true; channels = { tldr = { metadata = { description = "Browse TLDR pages"; name = "tldr"; requirements = ["tldr"]; }; preview = { command = "tldr '{}'"; }; source = { command = "tldr --list"; }; }; git-diff = { metadata = { description = "A channel to select files from git diff commands"; name = "git-diff"; requirements = ["git"]; }; preview = { command = "git diff HEAD --color=always -- '{}'"; }; source = { command = "git diff --name-only HEAD"; }; }; git-log = { metadata = { description = "A channel to select from git log entries"; name = "git-log"; requirements = ["git"]; }; preview = { command = "git show -p --stat --pretty=fuller --color=always '{0}'"; }; source = { command = "git log --oneline --date=short --pretty=\"format:%h %s %an %cd\" \"$@\""; output = "{split: :0}"; }; }; }; }; }; }