#!/usr/bin/env bash # tmux-session-name.sh — Auto-name new tmux sessions with emoji + codename # # Called by the session-created hook in .tmux.conf.local # Usage: tmux-session-name.sh # # Only renames if the current name is purely numeric (tmux's default # auto-numbering: 0, 1, 2 …). Explicitly named sessions are left alone. CURRENT_NAME="${1:-}" SESSION_ID="${2:-}" # Skip if name is not a plain number (user explicitly named the session) if [[ ! "$CURRENT_NAME" =~ ^[0-9]+$ ]]; then exit 0 fi # ── Name pool ───────────────────────────────────────────────────────────────── EMOJIS=( "⚡" "🔥" "🌙" "🚀" "🎯" "💎" "🌊" "🎸" "🦊" "🐉" "🌟" "🎭" "🔮" "🦋" "🌸" "🏔️" "🎪" "🦁" "🐺" "🦅" "🐬" "🌋" "⚗️" "🧠" "🔭" "🎲" "🏹" "🌀" "🦄" "🐙" "🎮" "🛸" "🌈" "🔱" "⚜️" "🧬" "🦾" "💫" "🎆" "🌌" ) ADJECTIVES=( swift blazing cosmic silent wild golden dark frozen epic neon cyber ghost storm iron crystal hyper zen rogue nova apex void shadow turbo lunar sonic electric primal ancient savage brave mystic toxic ultra prime omega alpha delta sigma raging burning ) NOUNS=( wolf phoenix raven otter falcon dragon viper lynx shark cobra titan spectre nexus cipher forge matrix pulse blade hawk panther manta kraken hydra mantis raptor condor jaguar orca wraith banshee golem oracle anvil tempest quasar nebula comet prism zenith apex ) # ── Pick random combination ─────────────────────────────────────────────────── EMOJI="${EMOJIS[$RANDOM % ${#EMOJIS[@]}]}" ADJ="${ADJECTIVES[$RANDOM % ${#ADJECTIVES[@]}]}" NOUN="${NOUNS[$RANDOM % ${#NOUNS[@]}]}" NEW_NAME="${EMOJI} ${ADJ}-${NOUN}" # ── Rename ──────────────────────────────────────────────────────────────────── if [[ -n "$SESSION_ID" ]]; then tmux rename-session -t "$SESSION_ID" "$NEW_NAME" 2>/dev/null else # Called standalone — just print the name echo "$NEW_NAME" fi