#!/bin/sh
#
# Skrypt instaluje polskie litery na klawiaturze. Usiluje dostosowac sie do
# aktualnej klawiatury. Sprawdza istnienie klawisza Mode-switch i jezeli
# takiego nie ma usiluje go utworzyc. Sprawdza po kolei istnienie pary
# klawiszy *_L i *_R. Sa to kolejno Alt, Mod, Super i Hyper. Po znalezieniu
# pary odlacza klawisz _R od modyfikatora, przyporzadkowuje mu KeySym rowny
# Mode_switch i przylncza do pierwszego wolnego modyfikatora mod1, mod2, mod3
# lub mod4. Dzialanie klawisza _L pozostaje nie zmienione. Po udanej instalacji
# lub stwierdzeniu istnienia Mode-switch, instaluje KeySym-y polskich liter.
#
PLKBOK=`xmodmap -pm | awk '/Mode_switch/ { print $1; exit }'`
if [ -z "$PLKBOK" ] ; then
  for MODALT in Alt Meta Super Hyper Shift ; do
    SYMALTR=`xmodmap -pk | awk "/${MODALT}_R/ { print \$1; exit }"`
    if [ -n "$SYMALTR" ] ; then
      SYMALTL=`xmodmap -pk | awk "/${MODALT}_L/ { print \$1; exit }"`
      if [ -n "$SYMALTL" ] ; then
        MODALTR=`xmodmap -pm | awk "/${MODALT}_R/ { print \$1; exit }"`
        xmodmap -e "remove $MODALTR = ${MODALT}_R"
        xmodmap -e "keycode $SYMALTR =  Mode_switch"
        MODSWT=`xmodmap -pm | awk '/^mod/ { if ( $2=="" ) { print $1; exit } }'`
        xmodmap -e "add $MODSWT = Mode_switch"
        break
      fi
    fi
  done
fi
PLKBOK=`xmodmap -pm | awk '/Mode_switch/ { print $1; exit }'`
if [ -n "$PLKBOK" ] ; then
  xmodmap -e "keysym a = a A aogonek Aogonek"
  xmodmap -e "keysym c = c C cacute Cacute"
  xmodmap -e "keysym e = e E eogonek Eogonek"
  xmodmap -e "keysym l = l L lstroke Lstroke"
  xmodmap -e "keysym n = n N nacute Nacute"
  xmodmap -e "keysym o = o O oacute Oacute"
  xmodmap -e "keysym s = s S sacute Sacute"
  xmodmap -e "keysym x = x X zacute Zacute"
  xmodmap -e "keysym z = z Z zabovedot Zabovedot"
fi

