#!/bin/bash

if [ $DESKTOP_SESSION == "fly" ]; then
  echo "fly-dpms-callback.sh is not for desktop session"
  exit
fi

if [ -z $1 ]; then
  echo "fly-dpms-callback.sh: 'off' or 'on' arg required"
  exit
fi


power_button_id=`xinput | grep "Power Button" | cut -f2 | cut -c 4-`
gpio_button_id=`xinput | grep "gpio-keys" | cut -f2 | cut -c 4-`

if [ "$1" = "off" ]; then
  #echo "if going in to DPMS then make powerbutton float"
  for button_i in ${power_button_id}; do xinput float $button_i; done
  for button_i in ${gpio_button_id}; do  xinput float $button_i; done
else
  #echo "if going out of DPMS reattach powerbutton to master again"
  power_master_id=`xinput | grep "Power keyboard" | cut -f2 | cut -c 4-`
  if [ -z $power_master_id ]; then
    power_master_id=`xinput | grep "Virtual core keyboard" | cut -f2 | cut -c 4-`
  fi
  for button_i in ${power_button_id}; do xinput reattach $button_i $power_master_id; done
  for button_i in ${gpio_button_id}; do  xinput reattach $button_i $power_master_id; done

  #update orientation after wake up
  fly-orientation -u
fi

exit

#useless part of script: don't disable/enable non-keyboard devices - our X server does it
#enable/disable all touch, pen/eraser devices
#
#if [ -z ${DESKTOP_SESSION} ]; then DESKTOP_SESSION="fly"; fi
#
#if [ ${DESKTOP_SESSION} = "fly-tablet" ] || [ ${DESKTOP_SESSION} = "fly-mobile" ]; then
#
#dev_names=`fly-wmfunc FLYWM_GET_INPUT_DEVICES   0xF | cut -f1  2> /dev/null | tr '\n' ';'`
#IFS=';'
#
#if [ $1 = "off" ]; then
#  on_off="disable"
#else
#  on_off="enable"
#fi
#
#for name_i in ${dev_names}; do
#  xinput $on_off "${name_i}"
#done
#
#fi
