#!/bin/bash # Default configuration config="main" export ZELLIJ_CONFIG="$config" # Function to check if zellij is installed is_zellij_installed() { if ! command -v zellij &> /dev/null; then echo "This module needs zellij to be installed." exit 1 fi } # Function to check if a session is running is_session_running() { if pgrep -x "zellij" > /dev/null; then return 0 else return 1 fi } # Function to list all zellij sessions list_sessions() { zellij list-sessions } # Function to create a new session create_session() { local session_name="${1:-$config}" zellij -s "$session_name" } # Function to attach to a session attach_session() { local session_name="${1:-$config}" zellij attach "$session_name" } # Function to kill a session kill_session() { local session_name="${1:-$config}" zellij kill-session "$session_name" } # Function to load a layout load_layout() { local layout_name="$1" if [ -z "$layout_name" ]; then echo "Please specify a layout name." return 1 fi zellij --layout "$layout_name" } # Main function to handle session management zellij_main() { is_zellij_installed if is_session_running; then attach_session else create_session fi } # Execute main function if script is run directly if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then zellij_main fi