#!/bin/sh

#########################
#
# confirms the keyboard shortcut changes and saves them
#
# for use with the jwmConfigMgr & keyboard scripts
#
# author: thoughtjourney
# date: 18/08/2005
# 
#########################

##--------variables---------->>
TMP1="/tmp/confmask.tmp.$$"
TMP2="/tmp/maskkey.tmp.$$"
DEL="NO"
NEWKEY=$KY
ACTION=$A
MASKKEY=
OLDKEY=
OLDMASK=
OLD=
OLDFILE="/tmp/short"
CHANGE_SED=
DEL_SED=
CONF_FILE=/root/.jwm/jwmrc-personal
CONF_FILE2=/root/.jwm/jwmrc-personal2
TEST=

##------confirmation--------->>

#xmessage -buttons Exit -bg black -fg green -name "New Shortcut" -nearmouse "KEY: $KY MASK: $MSK ACTION: $A DELETE: $CHECK" 

##------preparation---------->>

OLDMASK=`awk -F\| '/old/ {print $2}' $OLDFILE`
OLDKEY=`awk -F\| '/old/ {print $3}' $OLDFILE`

if [ "$MSK" = "mask" ];then
   MASKKEY=
else
  echo "$MSK" > $TMP1
  sed -e "s#ALT#1#i" \
      -e "s#CTRL#2#i" \
      -e "s#HYPER#3#i" \
      -e "s#META#4#i" \
      -e "s#SHIFT#5#i" \
      -e "s#SUPER#6#i" \
      -e "s#A#1#i" \
      -e "s#C#2#i" \
      -e "s#H#3#i" \
      -e "s#M#4#i" \
      -e "s#S#5#i" \
      -e "s#P#6#i" \
      -e "s#[^123456]##g" \
      -e "s#1#A#" \
      -e "s#2#C#" \
      -e "s#3#H#" \
      -e "s#4#M#" \
      -e "s#5#S#" \
      -e "s#6#P#" $TMP1 > $TMP2

  MASKKEY=`cat $TMP2`
  rm -f $TMP1
  rm -f $TMP2
fi

#-------delete??------->
if [ $CHECK = "true" ]; then

   #-----mask and key---->
   if [ -z $OLDMASK ];then 
     DEL=`Xdialog --title "Delete Shortcut?"\
                  --yesno "KEY: $OLDKEY\n\
ACTION: $A\n\n\
Are you sure you wish to delete this shortcut?\n\n" 0 0`

      if [ $DEL = "NO" ]; then
         exit 0
      else
         DEL_SED=/y\ key=\"$OLDKEY\"\>/d
      fi

   #-------key only----->
   else
      DEL=`Xdialog --title "Delete Shortcut?"\
                  --yesno "MASK: $OLDMASK
KEY: $OLDKEY
ACTION: $A\n\n
Are you sure you wish to delete this shortcut?\n\n" 0 0`

      if [ $DEL = "NO" ]; then       
         exit 0
      else
         DEL_SED=/Key\ mask=\"$OLDMASK\"\ key=\"$OLDKEY\"\>/d
      fi
   fi

 sed "$DEL_SED" $CONF_FILE > $CONF_FILE2
 mv $CONF_FILE2 $CONF_FILE
 exit 0

#------change---------->
else
  #---previous shortcut had no mask--->
  if [ -z $OLDMASK ]; then

     echo NEWMASK: $MSK
     if [ -z $MASKKEY ];then 

        #--new shortcut doesn't have mask-->
        GAP="y key="
        CHANGE_SED=s!y\ key=\"$OLDKEY\"\>!y\ key=\"$NEWKEY\"\>!g
        sed -e "$CHANGE_SED" $CONF_FILE > $CONF_FILE2

     else
        #--new shortcut has mask-->
        CHANGE_SED=s!Key\ key=\"$OLDKEY\"\>!Key\ mask=\"$MASKKEY\"\ key=\"$NEWKEY\"\>!g
        sed -e "$CHANGE_SED" $CONF_FILE > $CONF_FILE2
     fi

   else #---previous shortcut had mask--->
     if [ -z $MASKKEY ];then 

        #--new shortcut doesn't have mask-->
        CHANGE_SED=s!y\ mask=\"$OLDMASK\"\ key=\"$OLDKEY\"\>!y\ key=\"$NEWKEY\"\>!g
        sed -e "$CHANGE_SED" $CONF_FILE > $CONF_FILE2

     else
        #--new shortcut has mask-->
        CHANGE_SED=s!Key\ mask=\"$OLDMASK\"\ key=\"$OLDKEY\"\>!Key\ mask=\"$MASKKEY\"\ key=\"$NEWKEY\"\>!g
        sed -e "$CHANGE_SED" $CONF_FILE > $CONF_FILE2
     fi
  fi

fi


#---------confirm-------->
cp $CONF_FILE2 $CONF_FILE

Xdialog --title "ショートカットの変更" --msgbox "次のショートカットが追加されました。\n\n 
$MASKKEY+$NEWKEY $A\n\n" 0 0

sync


