{ ... }:
{
  text = ''
    # Create/attach to named session.
    # By default uses current dir name.
    # Usage: ta [NAME]
    function ta() {
      local name="''${1}"

      # Set default name.
      # [[ "''${name}" = "" ]] && name="main"
      [[ "''${name}" = "" ]] && name=$(parse_alnum "''${PWD##*/}")

      # Create session.
      tmux new-session -s "''${name}" -d &> /dev/null

      # Attach to session.
      if _is_tmux; then
        tmux switch-client -t "''${name}"
      else
        tmux attach-session -t "''${name}"
      fi
    }

    # Detach from running session.
    function td() {
      tmux detach-client
    }

    # Detach all other tmux clients.
    function tda() {
      tmux detach-client -s $(tmux display-message -p '#S')
    }

    # List running sessions.
    function tl() {
      tmux list-sessions
    }

    # Assign name to session. Uses current dir name by default.
    # Usage: tns [NAME]
    function tns() {
      local name="''${1}"

      [[ "''${name}" = "" ]] && name=$(parse_alnum "''${PWD##*/}")

      tmux rename-session "''${name}"
    }

    # Assign name to window. Uses current dir name by default.
    # Usage: tnw [NAME]
    function tnw() {
      local name="''${1}"

      [[ "''${name}" = "" ]] && name=$(parse_alnum "''${PWD##*/}")

      tmux rename-window "''${name}"
    }

    # Kill specified session.
    # By default uses current dir name.
    # Usage: tk [NAME]
    function tk() {
      local name="''${1}"

      [[ "''${name}" = "" ]] && name=$(parse_alnum "''${PWD##*/}")

      tmux kill-session -t "''${name}"
    }

    # Kill all sessions.
    function tka() {
      local sessions=$(tmux list-sessions | sed -e 's/:.*//')

      for session in $sessions; do
        tmux kill-session -t "$session"
      done
    }

    # Autocomplete with running sessions once.
    function _complete_tmux_session() {
      _autocomplete_first "$(tmux list-sessions 2> /dev/null | sed -e 's/:.*//')"
    }

    # Autocomplete with running sessions.
    function _complete_tmux_sessions() {
      _autocomplete "$(tmux list-sessions 2> /dev/null | sed -e 's/:.*//')"
    }

    # Autocomplete with current dir name and dirs inside this one.
    function _complete_tmux_name() {
      _autocomplete_first "''${PWD##*/}"$'\n'$(ls --classify | grep /$ | sed -e 's/\/$//')
    }

    complete -F _complete_tmux_session ta
    complete -F _complete_tmux_sessions tk
    complete -o nosort -F _complete_tmux_name tns tnw
  '';
}