diff --git a/plugins/zellij/README.md b/plugins/zellij/README.md index c91d2c880..2828466a5 100644 --- a/plugins/zellij/README.md +++ b/plugins/zellij/README.md @@ -38,15 +38,17 @@ taken by another alias, function, or command, it is silently skipped. | `zjs` | `zs` | `zs` | `zellij -s` | Start a named session | | `zjda` | `zda` | `zda` | `zellij delete-all-sessions` | Delete all sessions | | `zjka` | `zka` | `zka` | `zellij kill-all-sessions` | Kill all sessions | -| `zjr` | — | — | `zellij run` | Run a command in a pane | +| `zjr` | — | — | `zellij run` | Run a command in a pane | +| `zjad` | `zad` | `zad` | `zellij action detach` | Detach from current session | ## Functions -| 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 | +| 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 | 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 f79ff420a..68b599008 100644 --- a/plugins/zellij/zellij.plugin.zsh +++ b/plugins/zellij/zellij.plugin.zsh @@ -69,6 +69,16 @@ if ! _omz_zellij_taken "${_zellij_short_prefix}k"; then _zellij_running_session_targets+=("${_zellij_short_prefix}k") fi +if ! _omz_zellij_taken "${_zellij_short_prefix}ad"; then + alias ${_zellij_short_prefix}ad='zellij action detach' + _zellij_comp_targets+=("${_zellij_short_prefix}ad") +fi + +if ! _omz_zellij_taken "${_zellij_short_prefix}as"; then + eval "${_zellij_short_prefix}as() { command zellij action switch-session \"\$@\"; }" + _zellij_all_session_targets+=("${_zellij_short_prefix}as") +fi + (( $+functions[zr] || $+aliases[zr] || $+commands[zr] )) || zr() { command zellij run -- "$@"; } (( $+functions[zrf] || $+aliases[zrf] || $+commands[zrf] )) || zrf() { command zellij run --floating -- "$@"; } (( $+functions[ze] || $+aliases[ze] || $+commands[ze] )) || ze() { command zellij edit "$@"; }