[READ-ONLY] Mirror of https://github.com/mrgnw/dotfiles. My shell customizations - aliases, functions, and themes.
dotfiles shell zinit zsh
0

Configure Feed

Select the types of activity you want to include in your feed.

dotfiles / zellij.zsh
1.4 kB 53 lines
1# Quick zellij session management for mobile/remote use 2 3# Main function - attach or create session 4zj() { 5 if [ "$#" -eq 0 ]; then 6 zellij list-sessions 2>/dev/null || echo "No sessions" 7 else 8 zellij attach "$1" 2>/dev/null || zellij --session "$1" 9 fi 10} 11 12# Resume or create session based on client 13zr() { 14 local zr_session_name="main" 15 if [ -n "$SSH_CLIENT" ]; then 16 # Use SSH_CONNECTION or fallback to simplified client IP 17 if [ -n "$SSH_TTY" ]; then 18 zr_session_name="ssh_$(who am i | awk '{print $NF}' | tr -d '()')" 19 else 20 zr_session_name="ssh_$(echo "$SSH_CLIENT" | awk '{print $1}' | tr '.' '_')" 21 fi 22 fi 23 zellij attach "$zr_session_name" 2>/dev/null || zellij --session "$zr_session_name" 24} 25 26# Quick access to common sessions 27zm() { zj main } 28zw() { zj work } 29zd() { zj dev } 30 31# Kill session 32zk() { 33 [ "$#" -eq 0 ] && { echo "Usage: zk <session>"; return 1; } 34 zellij delete-session "$1" 35} 36 37# Create session with current folder name 38zf() { 39 zj "$(basename "$PWD")" 40} 41 42# List sessions with status 43zl() { 44 zellij list-sessions 2>/dev/null | nl -v0 -nln 45} 46 47# Kill all sessions 48zka() { 49 zellij list-sessions 2>/dev/null | awk '{print $1}' | xargs -I {} zellij delete-session {} 50} 51 52# Auto-resume on SSH (add to your .zshrc) 53# if [[ -n "$SSH_CLIENT" && -z "$ZELLIJ" && $- == *i* ]]; then zr; fi