LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File genmap4systemd.sh of Package kbd (Project home:sbrabec:branches-kbd-fi-1085432)

#!/bin/bash

# Generate entries for systemd's /usr/share/systemd/kbd-model-map

if [ $# -eq 0 ]; then
  pushd /usr/share/kbd/keymaps/xkb > /dev/null || exit 1
else
  pushd > /dev/null $1 || exit 1
fi

echo "# generated from xkb generated keymaps (basic layouts *without* variant)"
for i in $(ls *.map.gz|grep -v "-"); do
  consolelayout=$(echo $i|sed 's/.map.gz//g')
  layout=$consolelayout
  variant="-"
  printf '%s' "$consolelayout"
  printf "\t\t\t"
  printf '%s' "$layout"
  printf '\t'
  printf 'microsoftpro\t\t'
  printf '%s' "$variant"
  printf '\t\t'
  printf 'terminate:ctrl_alt_bksp\n'
done | sort -u

echo "# generated from xkb generated keymaps (layouts *with* variant)"
for i in $(ls *-*.map.gz); do 
  consolelayout=$(echo $i|sed 's/.map.gz//g')
  conlen=$(echo "$consolelayout" |wc -m)
  conlen=$((conlen - 1))

  layout=$(echo $i|cut -d "-" -f 1)

  variant=$(echo $i|cut -d "-" -f 2,3,4,5,6,7,8,9,10|cut -d "." -f1)
  varlen=$(echo $variant|wc -m)
  varlen=$((varlen -1))

  printf '%s' "$consolelayout"
  if [ $conlen -lt 8 ]; then
    printf "\t\t\t"
  elif [ $conlen -lt 16 ]; then 
    printf "\t\t"
  elif [ $conlen -lt 24 ]; then 
    printf "\t"
  else
    printf ' '
  fi
  printf '%s' "$layout"
  printf '\t'
  if [ "$layout" == "br" ]; then
    printf 'abnt2\t\t'
  elif [ "$layout" == "jp" ]; then
    printf 'jp106\t\t'
  else
    printf 'microsoftpro\t\t'
  fi
  printf '%s' "$variant"
  if [ $varlen -lt 8 ]; then
    printf "\t\t"
  elif [ $varlen -lt 16 ]; then 
    printf "\t"
  else
    printf ' '
  fi
  printf 'terminate:ctrl_alt_bksp\n'

done | sort -u

popd > /dev/null