about summary refs log tree commit diff stats
path: root/modules/by-name/zs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/ni/nix-index/command_not_found.sh (renamed from modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh)12
-rw-r--r--modules/by-name/zs/zsh/config/command_not_found/command_not_found_insult.sh11
-rw-r--r--modules/by-name/zs/zsh/config/custom_cursor.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/edit_command_line.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/.safe.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/command.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/emacs.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/isearch.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/vicmd.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/viins.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/viopp.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps/visual.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps_end.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/keymaps_start.zsh10
-rw-r--r--modules/by-name/zs/zsh/config/zsh-init.zsh10
-rw-r--r--modules/by-name/zs/zsh/module.nix219
-rw-r--r--modules/by-name/zs/zsh/plugins/zsh-history-substring-search.zsh45
17 files changed, 292 insertions, 125 deletions
diff --git a/modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh b/modules/by-name/ni/nix-index/command_not_found.sh
index fb21b676..f650cf7b 100644
--- a/modules/by-name/zs/zsh/config/command_not_found/command_not_found.sh
+++ b/modules/by-name/ni/nix-index/command_not_found.sh
@@ -1,5 +1,15 @@
 #!/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
 
@@ -48,7 +58,7 @@ 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")"
+        echo "$attrs" | awk --assign=toplevel="$toplevel" 'BEGIN{counter=0} {printf("%3s)", counter); printf("  nix shell %s#%s\n", toplevel, $1); counter+=1}'
         ;;
     esac
 
diff --git a/modules/by-name/zs/zsh/config/command_not_found/command_not_found_insult.sh b/modules/by-name/zs/zsh/config/command_not_found/command_not_found_insult.sh
index 5126845a..a5d71939 100644
--- a/modules/by-name/zs/zsh/config/command_not_found/command_not_found_insult.sh
+++ b/modules/by-name/zs/zsh/config/command_not_found/command_not_found_insult.sh
@@ -1,4 +1,15 @@
 #! /usr/bin/env bash
+
+# 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>.
+
 print_message() {
 
     local messages
diff --git a/modules/by-name/zs/zsh/config/custom_cursor.zsh b/modules/by-name/zs/zsh/config/custom_cursor.zsh
index 071bb5fe..aa137173 100644
--- a/modules/by-name/zs/zsh/config/custom_cursor.zsh
+++ b/modules/by-name/zs/zsh/config/custom_cursor.zsh
@@ -1,5 +1,15 @@
 #!/usr/bin/env zsh
 
+# 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>.
+
 autoload -U add-zsh-hook
 autoload -U add-zle-hook-widget
 
diff --git a/modules/by-name/zs/zsh/config/edit_command_line.zsh b/modules/by-name/zs/zsh/config/edit_command_line.zsh
index 1d51a4e8..e14da5c6 100644
--- a/modules/by-name/zs/zsh/config/edit_command_line.zsh
+++ b/modules/by-name/zs/zsh/config/edit_command_line.zsh
@@ -1,5 +1,15 @@
 #! /usr/bin/env zsh
 
+# 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>.
+
 autoload -Uz edit-command-line
 
 wrapped_edit-command-line() {
diff --git a/modules/by-name/zs/zsh/config/keymaps/.safe.zsh b/modules/by-name/zs/zsh/config/keymaps/.safe.zsh
index ee3bfa32..b37d22f2 100644
--- a/modules/by-name/zs/zsh/config/keymaps/.safe.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/.safe.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -M .safe "^J" .accept-line
 bindkey -M .safe "^M" .accept-line
 bindkey -R -M .safe "^@"-"^I" .self-insert
diff --git a/modules/by-name/zs/zsh/config/keymaps/command.zsh b/modules/by-name/zs/zsh/config/keymaps/command.zsh
index 81ae6dda..e195ed4c 100644
--- a/modules/by-name/zs/zsh/config/keymaps/command.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/command.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 # Keymap used in the vicmd `execute-named-cmd` mode
 bindkey -N command
 
diff --git a/modules/by-name/zs/zsh/config/keymaps/emacs.zsh b/modules/by-name/zs/zsh/config/keymaps/emacs.zsh
index b789faf5..1cbf77e9 100644
--- a/modules/by-name/zs/zsh/config/keymaps/emacs.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/emacs.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -N emacs
 
 bindkey -M emacs "^[A" accept-and-hold
diff --git a/modules/by-name/zs/zsh/config/keymaps/isearch.zsh b/modules/by-name/zs/zsh/config/keymaps/isearch.zsh
index db80bae8..d5e68f1b 100644
--- a/modules/by-name/zs/zsh/config/keymaps/isearch.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/isearch.zsh
@@ -1,2 +1,12 @@
+# 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>.
+
 # Nothing?
 bindkey -N isearch
diff --git a/modules/by-name/zs/zsh/config/keymaps/vicmd.zsh b/modules/by-name/zs/zsh/config/keymaps/vicmd.zsh
index ceb4f348..acf3746d 100644
--- a/modules/by-name/zs/zsh/config/keymaps/vicmd.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/vicmd.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -N vicmd
 
 # Bind in string to out string
diff --git a/modules/by-name/zs/zsh/config/keymaps/viins.zsh b/modules/by-name/zs/zsh/config/keymaps/viins.zsh
index d215d190..3353956c 100644
--- a/modules/by-name/zs/zsh/config/keymaps/viins.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/viins.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -N viins
 
 # Completion Debugging
diff --git a/modules/by-name/zs/zsh/config/keymaps/viopp.zsh b/modules/by-name/zs/zsh/config/keymaps/viopp.zsh
index 8b291d00..3dd900f8 100644
--- a/modules/by-name/zs/zsh/config/keymaps/viopp.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/viopp.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -N viopp
 
 bindkey -M viopp "t" down-line
diff --git a/modules/by-name/zs/zsh/config/keymaps/visual.zsh b/modules/by-name/zs/zsh/config/keymaps/visual.zsh
index c09cd578..73191d94 100644
--- a/modules/by-name/zs/zsh/config/keymaps/visual.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps/visual.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 bindkey -N visual
 
 bindkey -M visual "^[" deactivate-region
diff --git a/modules/by-name/zs/zsh/config/keymaps_end.zsh b/modules/by-name/zs/zsh/config/keymaps_end.zsh
index 2e973de4..2ce403a5 100644
--- a/modules/by-name/zs/zsh/config/keymaps_end.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps_end.zsh
@@ -1,2 +1,12 @@
+# 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>.
+
 # Use the vi imitation keymap as default
 bindkey -A viins main
diff --git a/modules/by-name/zs/zsh/config/keymaps_start.zsh b/modules/by-name/zs/zsh/config/keymaps_start.zsh
index 2504e799..dfae8dcc 100644
--- a/modules/by-name/zs/zsh/config/keymaps_start.zsh
+++ b/modules/by-name/zs/zsh/config/keymaps_start.zsh
@@ -1,3 +1,13 @@
+# 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>.
+
 # Delete all default keymaps (with the exception of .safe)
 bindkey -D command emacs isearch main vicmd viins viopp visual
 
diff --git a/modules/by-name/zs/zsh/config/zsh-init.zsh b/modules/by-name/zs/zsh/config/zsh-init.zsh
index aac344dc..740fc44b 100644
--- a/modules/by-name/zs/zsh/config/zsh-init.zsh
+++ b/modules/by-name/zs/zsh/config/zsh-init.zsh
@@ -1,5 +1,15 @@
 #!/usr/bin/env zsh
 
+# 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>.
+
 # Display current tasks
 [ -z "$NVIM" ] && task next
 
diff --git a/modules/by-name/zs/zsh/module.nix b/modules/by-name/zs/zsh/module.nix
index 833da126..038048da 100644
--- a/modules/by-name/zs/zsh/module.nix
+++ b/modules/by-name/zs/zsh/module.nix
@@ -1,111 +1,148 @@
+# 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>.
 {
   config,
   lib,
-  shell_library,
   system,
+  pkgs,
   ...
 }: let
   cfg = config.soispha.programs.zsh;
-  homeConfig = config.home-manager.users.soispha;
+
+  zDotDir = ".config/zsh";
 
   sourceFile = path: "source ${path}\n";
+
+  extraFiles = builtins.concatStringsSep "\n" (
+    builtins.map (value:
+      if builtins.isPath value
+      then (sourceFile value)
+      else value) (
+      builtins.attrValues cfg.integrations
+    )
+  );
 in {
   options.soispha.programs.zsh = {
     enable = lib.mkEnableOption "zsh";
-  };
-
-  config.home-manager.users.soispha = lib.mkIf cfg.enable {
-    home.sessionPath = [];
-
-    programs.zsh = {
-      enable = true;
-      enableCompletion = true;
-      autosuggestion = {
-        enable = true;
-        strategy = [];
-      };
-      syntaxHighlighting.enable = true;
 
-      autocd = true;
+    integrations = lib.mkOption {
+      type = lib.types.attrsOf (lib.types.either lib.types.path lib.types.str);
+      example = ''
+        {
+          atuin = ./integrations/atuin.zsh;
+        }
+      '';
+      default = {};
+    };
+  };
 
-      # Must be relative to the users home directory (for whatever reason)
-      # Thus no `${homeConfig.xdg.configHome}`
-      dotDir = ".config/zsh";
+  config = lib.mkIf cfg.enable {
+    environment.variables = {
+      ZDOTDIR = "${config.home-manager.users.soispha.home.homeDirectory}/${zDotDir}";
+    };
 
-      # TODO: Remove the whole history and replace it completely with `atuin` <2024-10-21>
-      history = {
-        path = "/dev/null";
-        # save = 0; # number of lines to save
-        # size = 0; # number of lines to keep
-        # share = false; # share between sessions
-      };
+    home-manager.users.soispha = {
+      home.sessionPath = lib.mkForce [];
 
-      loginExtra =
-        # bash
-        ''
-          setopt AUTO_CD
-          setopt AUTO_PUSHD
-          setopt CHASE_DOTS
-
-          setopt ALWAYS_TO_END
-
-          setopt EXTENDED_HISTORY
-          setopt HIST_ALLOW_CLOBBER
-          setopt HIST_VERIFY
-          setopt HIST_FCNTL_LOCK
-          setopt APPEND_HISTORY
-
-          setopt DVORAK
-          setopt CORRECT
-
-          setopt PROMPT_SUBST
-          setopt TRANSIENT_RPROMPT # maybe?
-
-          setopt COMBINING_CHARS
-          setopt VI
-        '';
-
-      initExtraFirst =
-        sourceFile ./config/zsh-init.zsh
-        + ''
-          SHELL_LIBRARY_VERSION="2.1.2" source ${shell_library.rawLib.${system}}
-        '';
-
-      initExtra = let
-        start = lib.modules.mkBefore (
-          # NOTE: This must be before the insult, as we otherwise override the previous handler <2024-02-28>
-          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
-          + sourceFile ./config/keymaps/command.zsh
-          + sourceFile ./config/keymaps/emacs.zsh
-          + sourceFile ./config/keymaps/isearch.zsh
-          + sourceFile ./config/keymaps/vicmd.zsh
-          + sourceFile ./config/keymaps/viins.zsh
-          + sourceFile ./config/keymaps/viopp.zsh
-          + sourceFile ./config/keymaps/visual.zsh
-          + sourceFile ./config/keymaps_end.zsh
-        );
-      in
-        lib.modules.mkMerge
-        [
-          start
-          end
-        ];
-
-      localVariables = {
-        HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND = "bg=cyan,fg=white";
-        HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND = "fg=red,underline,standout,bold";
-      };
+      # This just includes a `source ~/.config/zsh/.zshenv`, because home-manger by-default
+      # can't access the root `/etc/zshenv`. We can and thus, we can remove this file.
+      home.file.".zshenv".enable = false;
 
-      shellAliases = {
-        ll = ". ll";
-        lm = ". lm";
+      programs.zsh = {
+        enable = true;
+        enableCompletion = true;
+        autosuggestion = {
+          enable = true;
+          strategy = [];
+        };
+        syntaxHighlighting.enable = true;
+
+        autocd = true;
+
+        # Must be relative to the users home directory (for whatever reason)
+        # Thus no `${homeConfig.xdg.configHome}`
+        dotDir = zDotDir;
+
+        # TODO: Remove the whole history and replace it completely with `atuin` <2024-10-21>
+        history = {
+          path = "/dev/null";
+          # save = 0; # number of lines to save
+          # size = 0; # number of lines to keep
+          # share = false; # share between sessions
+        };
+
+        loginExtra =
+          # bash
+          ''
+            setopt AUTO_CD
+            setopt AUTO_PUSHD
+            setopt CHASE_DOTS
+
+            setopt ALWAYS_TO_END
+
+            setopt EXTENDED_HISTORY
+            setopt HIST_ALLOW_CLOBBER
+            setopt HIST_VERIFY
+            setopt HIST_FCNTL_LOCK
+            setopt APPEND_HISTORY
+
+            setopt DVORAK
+            setopt CORRECT
+
+            setopt PROMPT_SUBST
+            setopt TRANSIENT_RPROMPT # maybe?
+
+            setopt COMBINING_CHARS
+            setopt VI
+          '';
+
+        initContent = let
+          start = lib.modules.mkBefore (
+            sourceFile ./config/zsh-init.zsh
+            + sourceFile ./config/custom_cursor.zsh
+            + sourceFile ./config/edit_command_line.zsh
+            + sourceFile ./plugins/zsh-history-substring-search.zsh
+          );
+          end = lib.modules.mkAfter (
+            # 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
+            + sourceFile ./config/keymaps/vicmd.zsh
+            + sourceFile ./config/keymaps/viins.zsh
+            + sourceFile ./config/keymaps/viopp.zsh
+            + sourceFile ./config/keymaps/visual.zsh
+            + sourceFile ./config/keymaps_end.zsh
+          );
+        in
+          lib.modules.mkMerge
+          [
+            start
+
+            extraFiles
+
+            end
+          ];
+
+        localVariables = {
+          HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND = "bg=cyan,fg=white";
+          HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND = "fg=red,underline,standout,bold";
+        };
+
+        shellAliases = {
+          ll = ". ${lib.getExe pkgs.ll}";
+          lm = ". ${lib.getExe pkgs.lm}";
+        };
       };
     };
   };
diff --git a/modules/by-name/zs/zsh/plugins/zsh-history-substring-search.zsh b/modules/by-name/zs/zsh/plugins/zsh-history-substring-search.zsh
index 4314b784..cc2b6e98 100644
--- a/modules/by-name/zs/zsh/plugins/zsh-history-substring-search.zsh
+++ b/modules/by-name/zs/zsh/plugins/zsh-history-substring-search.zsh
@@ -1,46 +1,25 @@
 #!/usr/bin/env zsh
-##############################################################################
-# Original Source before 2024 modifications:
-# https://github.com/zsh-users/zsh-history-substring-search/blob/87ce96b1862928d84b1afe7c173316614b30e301/zsh-history-substring-search.zsh
+
+# nixos-config - My current NixOS configuration
 #
 # Copyright (c) 2009 Peter Stephenson
 # Copyright (c) 2011 Guido van Steen
-# Copyright (c) 2011 Suraj N. Kurapati
 # Copyright (c) 2011 Sorin Ionescu
+# Copyright (c) 2011 Suraj N. Kurapati
 # Copyright (c) 2011 Vincent Guerci
 # Copyright (c) 2016 Geza Lore
 # Copyright (c) 2017 Bengt Brodersen
-# Copyright (c) 2024 Benedikt Peetz
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
+# Copyright (c) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
-#  * Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
+# This file is part of my nixos-config.
 #
-#  * Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-#  * Neither the name of the FIZSH nor the names of its contributors
-#    may be used to endorse or promote products derived from this
-#    software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-##############################################################################
+# 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>.
+
+# Original Source before 2024 modifications:
+# https://github.com/zsh-users/zsh-history-substring-search/blob/87ce96b1862928d84b1afe7c173316614b30e301/zsh-history-substring-search.zsh
 
 #-----------------------------------------------------------------------------
 # declare global configuration variables