1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 inherit (lib.options) mkEnableOption mkPackageOption;
9 inherit (lib.modules) mkIf;
10 inherit (lib.meta) getExe;
11
12 cfg = config.programs.television;
13in
14{
15 options.programs.television = {
16 enable = mkEnableOption "Blazingly fast general purpose fuzzy finder TUI";
17 package = mkPackageOption pkgs "television" { };
18
19 enableBashIntegration = mkEnableOption "Bash integration";
20 enableZshIntegration = mkEnableOption "Zsh integration";
21 enableFishIntegration = mkEnableOption "Fish integration";
22 };
23
24 config = mkIf cfg.enable {
25 environment.systemPackages = [ cfg.package ];
26
27 programs = {
28 zsh.interactiveShellInit = mkIf cfg.enableZshIntegration ''
29 eval "$(${getExe cfg.package} init zsh)"
30 '';
31 bash.interactiveShellInit = mkIf cfg.enableBashIntegration ''
32 eval "$(${getExe cfg.package} init bash)"
33 '';
34 fish.interactiveShellInit = mkIf cfg.enableFishIntegration ''
35 ${getExe cfg.package} init fish | source
36 '';
37 };
38
39 };
40
41 meta.maintainers = with lib.maintainers; [ pbek ];
42}