aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLibravatar sommerfeld <[email protected]>2026-04-17 10:53:33 +0100
committerLibravatar sommerfeld <[email protected]>2026-04-17 10:53:33 +0100
commit70c58e6e1c587dfc95e474f6facc18fb685b7512 (patch)
tree511cfee8248a9555fd1090928407ca21da5ec532
parent788856ff716659eeb0f230320689aeb0f82fb961 (diff)
downloaddotfiles-70c58e6e1c587dfc95e474f6facc18fb685b7512.tar.gz
dotfiles-70c58e6e1c587dfc95e474f6facc18fb685b7512.tar.bz2
dotfiles-70c58e6e1c587dfc95e474f6facc18fb685b7512.zip
feat: add Ctrl-Z toggle for foreground/background
Single Ctrl-Z press suspends a process AND resumes it — no need to type 'fg' manually. If no jobs are suspended, clears the screen instead. Very ergonomic for editor/build workflows.
-rw-r--r--home/.config/zsh/.zshrc14
1 files changed, 14 insertions, 0 deletions
diff --git a/home/.config/zsh/.zshrc b/home/.config/zsh/.zshrc
index 412b628..cd6458e 100644
--- a/home/.config/zsh/.zshrc
+++ b/home/.config/zsh/.zshrc
@@ -103,6 +103,20 @@ bindkey '^[[1;3D' backward-word # Alt-Left
bindkey '^H' backward-kill-word # Ctrl-Backspace
bindkey '^[[3;5~' kill-word # Ctrl-Delete
+# Ctrl-Z: toggle foreground/background (no need to type 'fg')
+toggle-fg-bg() {
+ if (( ${#jobstates} )); then
+ zle .push-input
+ BUFFER="fg"
+ zle .accept-line
+ else
+ zle .push-input
+ zle .clear-screen
+ fi
+}
+zle -N toggle-fg-bg
+bindkey '^Z' toggle-fg-bg
+
# Ctrl-D exits even on non-empty line
exit_zsh() { exit }
zle -N exit_zsh