lactozora/modules/zellij.bash
2025-02-18 23:18:00 -06:00

71 lines
1.4 KiB
Bash
Executable file

#!/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