From da2d2102fc0186d3bf7c15338f702e5484fe832d Mon Sep 17 00:00:00 2001 From: hobe Date: Wed, 25 Mar 2026 13:53:06 +0900 Subject: [PATCH] feat(zellij): add force-delete function with all-session completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add `df` function (`zjdf`/`zdf`) that runs `zellij delete-session --force`, which can delete running sessions without killing them first (zellij ≥0.44). Completes against all sessions, unlike `d` which only shows exited ones. --- plugins/zellij/README.md | 9 +++++---- plugins/zellij/zellij.plugin.zsh | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/zellij/README.md b/plugins/zellij/README.md index c6e9af24e..2af2792c5 100644 --- a/plugins/zellij/README.md +++ b/plugins/zellij/README.md @@ -45,10 +45,11 @@ taken by another alias, function, or command, it is silently skipped. | Function (default) | Function (with `z`) | Command | Description | | ------------------- | ------------------- | ---------------------------------- | ---------------------- | -| `zja` | `za` | `zellij attach` | Attach to a session | -| `zjd` | `zd` | `zellij delete-session` | Delete a session | -| `zjk` | `zk` | `zellij kill-session` | Kill a session | -| `zjas` | `zas` | `zellij action switch-session` | Switch to a session | +| `zja` | `za` | `zellij attach` | Attach to a session | +| `zjd` | `zd` | `zellij delete-session` | Delete a session (exited only) | +| `zjdf` | `zdf` | `zellij delete-session --force` | Force-delete any session | +| `zjk` | `zk` | `zellij kill-session` | Kill a session | +| `zjas` | `zas` | `zellij action switch-session` | Switch to a session | The following convenience functions are always available (unless the name is already taken): diff --git a/plugins/zellij/zellij.plugin.zsh b/plugins/zellij/zellij.plugin.zsh index 5fc820414..e393338e1 100644 --- a/plugins/zellij/zellij.plugin.zsh +++ b/plugins/zellij/zellij.plugin.zsh @@ -64,6 +64,11 @@ if ! _omz_zellij_taken "${_zellij_short_prefix}d"; then _zellij_exited_session_targets+=("${_zellij_short_prefix}d") fi +if ! _omz_zellij_taken "${_zellij_short_prefix}df"; then + eval "${_zellij_short_prefix}df() { command zellij delete-session --force \"\$@\"; }" + _zellij_all_session_targets+=("${_zellij_short_prefix}df") +fi + if ! _omz_zellij_taken "${_zellij_short_prefix}k"; then eval "${_zellij_short_prefix}k() { command zellij kill-session \"\$@\"; }" _zellij_running_session_targets+=("${_zellij_short_prefix}k") @@ -92,6 +97,7 @@ if ! _omz_zellij_taken "${_zellij_short_prefix}h"; then '${_zellij_short_prefix}s:zellij -s ' '${_zellij_short_prefix}a:zellij attach ' '${_zellij_short_prefix}d:zellij delete-session ' + '${_zellij_short_prefix}df:zellij delete-session --force ' '${_zellij_short_prefix}k:zellij kill-session ' '${_zellij_short_prefix}da:zellij delete-all-sessions' '${_zellij_short_prefix}ka:zellij kill-all-sessions'