#!/bin/bash

KEYMAP_DIRECTORY='/usr/share/kbd/keymaps'

# Aprrently localectl status does not update on keymap change. However, setxkbmap does.
XKB_OUTPUT=$(setxkbmap -query)
VC_KEYMAP=$(echo "${XKB_OUTPUT}" | grep "layout" | awk -F ':' '{print $2}' | tr -d ' ')
VC_VARIANT=$(echo "${XKB_OUTPUT}" | grep "variant" | awk -F ':' '{print $2}' | tr -d ' ')

# Keymap has not been specific, so it's not configured properly
if [[ "${VC_KEYMAP}" == "" ]]; then
  exit 1
fi

KEYMAP_FILE="${VC_KEYMAP}*"

if [[ "${VC_VARIANT}" != "" ]]; then
  KEYMAP_FILE="${KEYMAP_FILE}${VC_VARIANT}*"
fi

KEYMAP_NAME=$(basename $(dirname $(find ${KEYMAP_DIRECTORY} -name "${KEYMAP_FILE}")))

if [[ "${KEYMAP_NAME}" ]]; then
  echo "${KEYMAP_NAME}"
  echo "${KEYMAP_NAME}"
  echo ""
fi