{ config, lib, pkgs, ... }: let cfg = config.programs.nixvim; plugin = cfg.plugins.telescope; inherit (lib) mkDefault optionals; in { config = { programs.nixvim = { plugins.telescope = { enable = mkDefault true; extensions = { file-browser.enable = mkDefault true; fzf-native.enable = mkDefault true; live-grep-args.enable = mkDefault true; manix.enable = mkDefault true; }; keymaps = mkDefault { "" = "file_browser"; "" = "git_files"; "bl" = "buffers"; "fd" = "diagnostics"; "ff" = "find_files"; "fg" = "live_grep"; "fh" = "help_tags"; "fm" = "man_pages"; "fn" = "manix"; "fo" = "oldfiles"; "fb" = "file_browser"; }; }; keymaps = optionals plugin.enable [ { key = ""; action = ":lua require('telescope').extensions.live_grep_args.live_grep_args()"; mode = "n"; } ]; }; home.packages = optionals plugin.enable [ pkgs.ripgrep # for "live_grep" ]; }; }