mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 13:40:28 +03:00
fzf: Update package and module (shell-completions)
Update derivation to not install old shell-completions Update module to load completion for bash, fish (new) and zsh (or oh-my-zsh plugin) with changed way through fzf-binary Added change to release note as it is backwards-incompatible.
This commit is contained in:
parent
debcd5675a
commit
e3812e1875
4 changed files with 36 additions and 29 deletions
|
@ -1,32 +1,46 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.programs.fzf;
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.fzf = {
|
||||
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf");
|
||||
keybindings = mkEnableOption (mdDoc "fzf keybindings");
|
||||
};
|
||||
};
|
||||
config = {
|
||||
environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf;
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "programs" "fzf" "keybindings" ] ''
|
||||
Use "programs.fzf.enabled" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings seperatly.
|
||||
If you want to change/disable certain keybindings please check the fzf-documentation.
|
||||
'')
|
||||
(lib.mkRemovedOptionModule [ "programs" "fzf" "fuzzyCompletion" ] ''
|
||||
Use "programs.fzf.enabled" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings seperatly.
|
||||
If you want to change/disable certain keybindings please check the fzf-documentation.
|
||||
'')
|
||||
];
|
||||
|
||||
programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
|
||||
source ${pkgs.fzf}/share/fzf/completion.bash
|
||||
'' + optionalString cfg.keybindings ''
|
||||
source ${pkgs.fzf}/share/fzf/key-bindings.bash
|
||||
options = {
|
||||
programs.fzf.enable = mkEnableOption (mdDoc "fuzzy completion with fzf and keybindings");
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.fzf ];
|
||||
|
||||
programs.bash.interactiveShellInit = ''
|
||||
eval "$(${getExe pkgs.fzf} --bash)"
|
||||
'';
|
||||
|
||||
programs.zsh.interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable)
|
||||
(optionalString cfg.fuzzyCompletion ''
|
||||
source ${pkgs.fzf}/share/fzf/completion.zsh
|
||||
'' + optionalString cfg.keybindings ''
|
||||
source ${pkgs.fzf}/share/fzf/key-bindings.zsh
|
||||
'');
|
||||
programs.fish.interactiveShellInit = ''
|
||||
eval "$(${getExe pkgs.fzf} --fish)"
|
||||
'';
|
||||
|
||||
programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ];
|
||||
programs.zsh = {
|
||||
interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable) ''
|
||||
eval "$(${getExe pkgs.fzf} --zsh)"
|
||||
'';
|
||||
|
||||
ohMyZsh.plugins = mkIf (config.programs.zsh.ohMyZsh.enable) [ "fzf" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ laalsaas ];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue