diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-05-16 16:47:23 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-05-16 16:48:21 +0200 |
commit | 01b7dbf69e52957c2f19d6169ef5862f8042c60d (patch) | |
tree | 42db8f6baa040696cb4d6befca0fa22c07842ea3 /modules/by-name/zs/zsh | |
parent | hosts: Move to a `by-name` schema (diff) | |
download | nixos-config-01b7dbf69e52957c2f19d6169ef5862f8042c60d.zip |
modules/legacy/nix-index: Migrate to by-name
Diffstat (limited to 'modules/by-name/zs/zsh')
-rw-r--r-- | modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh | 74 | ||||
-rw-r--r-- | modules/by-name/zs/zsh/module.nix | 8 |
2 files changed, 4 insertions, 78 deletions
diff --git a/modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh b/modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh deleted file mode 100644 index 5f7461e6..00000000 --- a/modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env dash - -# nixos-config - My current NixOS configuration -# -# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> -# SPDX-License-Identifier: GPL-3.0-or-later -# -# This file is part of my nixos-config. -# -# You should have received a copy of the License along with this program. -# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. - -# This was taken from the -# `${pkgs.nix-index}/etc/profile.d/command-not-found.sh` file on 2024-02-28 - -# for bash 4 -# this will be called when a command is entered -# but not found in the user’s path + environment -command_not_found_handle() { - # taken from http://www.linuxjournal.com/content/bash-command-not-found - # - do not run when inside Midnight Commander or within a Pipe - if [ -n "${MC_SID-}" ] || ! [ -t 1 ]; then - >&2 echo "$1: command not found" - return 127 - fi - - toplevel=nixpkgs # nixpkgs should always be available even in NixOS - cmd="$1" - attrs=$(nix-locate --minimal --no-group --type x --type s --top-level --whole-name --at-root "/bin/$cmd") - len=$(if [ -n "$attrs" ]; then echo "$attrs" | wc -l; else echo 0; fi) - - case "$len" in - 0) - eprintln "$cmd: command not found" - ;; - 1) - # If only one package provides this, then we can invoke it - # without asking the user. - - # These will not return 127 if they worked correctly. - - >&2 cat <<EOF -The program '$cmd' is currently not installed. A shell will be opened -with it. -EOF - if nix build "$toplevel#$attrs" --no-link; then - nix shell "$toplevel#$attrs" - return $? - else - >&2 cat <<EOF -Failed to build: '$toplevel#$attrs' -$cmd: command not found -EOF - fi - ;; - *) - >&2 cat <<EOF -The program '$cmd' is currently not installed. It is provided by -several packages. You can run it once with: -EOF - awk --assign=toplevel="$toplevel" 'BEGIN{counter=0} {printf("%3s)", counter); printf(" nix shell %s#%s\n", toplevel, $1); counter+=1}' "$(ptmp "$attrs")" - ;; - esac - - return 127 # command not found should always exit with 127 -} - -# for zsh... -# we just pass it to the bash handler above -# apparently they work identically -command_not_found_handler() { - command_not_found_handle "$@" - return $? -} diff --git a/modules/by-name/zs/zsh/module.nix b/modules/by-name/zs/zsh/module.nix index 6c3adb2b..038048da 100644 --- a/modules/by-name/zs/zsh/module.nix +++ b/modules/by-name/zs/zsh/module.nix @@ -105,16 +105,16 @@ in { initContent = let start = lib.modules.mkBefore ( - # NOTE: This must be before the insult, as we otherwise override the previous handler <2024-02-28> sourceFile ./config/zsh-init.zsh - + sourceFile ./config/command_not_found/command_not_found.sh - + sourceFile ./config/command_not_found/command_not_found_insult.sh + sourceFile ./config/custom_cursor.zsh + sourceFile ./config/edit_command_line.zsh + sourceFile ./plugins/zsh-history-substring-search.zsh ); end = lib.modules.mkAfter ( - sourceFile ./config/keymaps_start.zsh + # NOTE(@bpeetz): Put this here, so that command handler in `extraFiles` + # are not overriding this. <2025-05-16> + sourceFile ./config/command_not_found/command_not_found_insult.sh + + sourceFile ./config/keymaps_start.zsh + sourceFile ./config/keymaps/command.zsh + sourceFile ./config/keymaps/emacs.zsh + sourceFile ./config/keymaps/isearch.zsh |