function last_cmd_state {
  if [ "$1" == 0 ]; then
    echo "\[$(tput setaf 40)\]👍\[$(tput sgr0)\]"
  else
    if [ "$1" == 127 ]; then
      local meaning=" - Not found"
    fi
    echo "\[$(tput setaf 196)\]👎\\[\$1 "$meaning"\]\[$(tput sgr0)\]"
  fi
}

function list_background_tasks {
  local jobs_count=$(jobs | wc -l)
  local sessions=$(tmux list-sessions 2>/dev/null | wc -l)
  local job_info=""
  local session_info=""
  if [ ! "$jobs_count" == "0" ]; then
    job_info="[Jobs: ${jobs_count}]"
  fi
  if [ ! "$sessions" == "0" ]; then
    session_info="[TMux-Sessions: ${sessions}]"
  fi
  if [ ! "${job_info}${session_info}" == "0" ]; then
    echo " \[$(tput setaf 199)\]╟──\[$(tput sgr0)\]${job_info}${session_info}"
  fi
}

function show_user_info {
  echo "\[$(tput setaf 199)\]═╦═\[$(tput sgr0)\][\[$(tput setaf 21)\]\\u\[$(tput sgr0)\]@\[$(tput setaf 40)\]\\H::\\l\[$(tput sgr0)\]]═[\[$(tput setaf 118)\]\\t\[$(tput sgr0)\]]"
}

function show_location {
  echo " \[$(tput setaf 199)\]╟──\[$(tput sgr0)\][\\w]"
}

function last_line {
  echo " \[$(tput setaf 199)\]╙─⚧ \[$(tput sgr0)\]"
}

function _prompt_command {
  local status="$?"
  PS1="$(show_user_info)─[$(last_cmd_state $status)]\n$(list_background_tasks)\n$(show_location)\n$(last_line)"
}