From 647a1a14e28f7951ad08094ecc5862fef9d5ae8d Mon Sep 17 00:00:00 2001 From: Jonas Harer Date: Sat, 4 Apr 2026 03:22:36 +0000 Subject: [PATCH] Add a fish-like UX to zsh This adds and configures the following packages: * `zsh-history-substring-search` provides a substring search through history and suggests possible arguments * `zsh-autosuggestions` gives suggestions during typing * `zsh-syntax-highlighting` colors commands based on their syntax Resolves #521 --- mkosi.conf.d/10-packages-cli.conf | 3 +++ .../kde-linux-default/kde-linux-default-zshrc.zsh | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/mkosi.conf.d/10-packages-cli.conf b/mkosi.conf.d/10-packages-cli.conf index 1e7d076..9b381a6 100644 --- a/mkosi.conf.d/10-packages-cli.conf +++ b/mkosi.conf.d/10-packages-cli.conf @@ -59,4 +59,7 @@ Packages= ydotool # Basic TUI and GUI app automation zip # the `zip` CLI archiving tool zsh + zsh-autosuggestions # fish-like suggestions zsh-completions + zsh-history-substring-search # fish-like history search + zsh-syntax-highlighting # fish-like syntax highlighting diff --git a/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh b/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh index a0a29b3..e5bdd48 100644 --- a/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh +++ b/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh @@ -79,6 +79,9 @@ compinit # Disable tab cycling through completions. zstyle ':completion:*' menu no +# Make completions case-insensitive. +zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' + # Add colored output for various commands. alias ls='ls --color=auto' alias grep='grep --color=auto' @@ -100,3 +103,12 @@ add-zsh-hook preexec auto_chmod # Wrap journal logs viewed in terminal rather than truncating; friendlier for reading # and copying export SYSTEMD_LESS=FRXMK + +# Add autosuggestions, substring history search and syntax highlighting. +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh + +# Bind Ctrl+↑ and Ctrl+↓ keybinds to substring history search. +bindkey '^[[1;5A' history-substring-search-up # Ctrl+↑ +bindkey '^[[1;5B' history-substring-search-down # Ctrl+↓