diff --git a/nixos/modules/programs/television.nix b/nixos/modules/programs/television.nix index 1989df2b925b..51685f04d733 100644 --- a/nixos/modules/programs/television.nix +++ b/nixos/modules/programs/television.nix @@ -7,7 +7,6 @@ let inherit (lib.options) mkEnableOption mkPackageOption; inherit (lib.modules) mkIf; - inherit (lib.meta) getExe; cfg = config.programs.television; in @@ -26,13 +25,13 @@ in programs = { zsh.interactiveShellInit = mkIf cfg.enableZshIntegration '' - eval "$(${getExe cfg.package} init zsh)" + source ${cfg.package}/share/television/completion.zsh ''; bash.interactiveShellInit = mkIf cfg.enableBashIntegration '' - eval "$(${getExe cfg.package} init bash)" + source ${cfg.package}/share/television/completion.bash ''; fish.interactiveShellInit = mkIf cfg.enableFishIntegration '' - ${getExe cfg.package} init fish | source + source ${cfg.package}/share/television/completion.fish ''; }; diff --git a/pkgs/by-name/te/television/package.nix b/pkgs/by-name/te/television/package.nix index d42137fa558d..f6ec6930f2bf 100644 --- a/pkgs/by-name/te/television/package.nix +++ b/pkgs/by-name/te/television/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, callPackage, installShellFiles, + writableTmpDirAsHomeHook, nix-update-script, testers, targetPackages, @@ -33,41 +34,25 @@ let strictDeps = true; nativeBuildInputs = [ installShellFiles + writableTmpDirAsHomeHook ]; # TODO(@getchoo): Investigate selectively disabling some tests, or fixing them # https://github.com/NixOS/nixpkgs/pull/423662#issuecomment-3156362941 doCheck = false; - postPatch = '' - # Remove keybinding overrides from shell completion scripts - # Users should configure their own keybindings - - # Bash: Remove bind commands - sed -i '/^# Bind the functions to key combinations/,$d' \ - television/utils/shell/completion.bash - - # Fish: Remove bind commands for both modes - sed -i '/^for mode in default insert/,$d' \ - television/utils/shell/completion.fish - - # Nushell: Remove keybinding configuration - sed -i '/^# Bind custom keybindings/,$d' \ - television/utils/shell/completion.nu - - # Zsh: Remove zle and bindkey commands - sed -i '/^zle -N tv-smart-autocomplete/,$d' \ - television/utils/shell/completion.zsh - ''; - postInstall = '' installManPage target/${stdenv.hostPlatform.rust.cargoShortTarget}/assets/tv.1 + # These are actually shell integrations with keybindings + install -Dm644 television/utils/shell/completion.* -t $out/share/television/ + '' + + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd tv \ - television/utils/shell/completion.bash \ - television/utils/shell/completion.fish \ - television/utils/shell/completion.nu \ - television/utils/shell/completion.zsh + --bash <($out/bin/tv init bash) \ + --fish <($out/bin/tv init fish) \ + --zsh <($out/bin/tv init zsh) \ + --nushell <($out/bin/tv init nu) ''; passthru = {