#!/bin/bash

# This file is sourced by /etc/X11/fly-dm/Xsession, not executed.

echo fly misc setup  `date '+%F %T.%3N'`

#export GTK_USE_PORTAL=1

#by A.Kovalenko (BT-10204)
if [ -d /parsecfs ]; then
 rm -f /run/user/$(id -u)/pulse/native
fi

if [ ! -z "$IS_TOUCH" ]; then
 export MOZ_USE_XINPUT2=1
fi

export QT_ENABLE_HIGHDPI_SCALING=1
export QT_SCALE_FACTOR_ROUNDING_POLICY=Round
export QT_DPI_ADJUSTMENT_POLICY=AdjustDpi
export QT_QUICK_CONTROLS_STYLE=org.kde.desktop

#alex: check free space (optional)
/usr/bin/fly-dm-check-space.sh "$HOME"

#alex: check home rights at the first start
if [ -z "$FLY_KIOSK_CONFIG_DIR" ]; then
  if [ ! -d "$HOME/.fly" ]; then
    if ! test -w "$HOME"; then
      if [ "$LANG" = "ru_RU.UTF-8" ]; then
        HOME_CAPTION="Внимание"
        HOME_MESSAGE="Ваш домашний каталог защищен от записи.\nВсе результаты будут утрачены после выхода."
        HOME_ERR="Не задана XDG_RUNTIME_DIR"
      else
        HOME_CAPTION="Attention"
        HOME_MESSAGE="You home directory is not writable.\nAll results will be lost after exit."
        HOME_ERR="XDG_RUNTIME_DIR is undefined"
      fi
      if [ ! -z $XDG_RUNTIME_DIR ]; then
        export HOME=$XDG_RUNTIME_DIR
        fly-dialog --caption "$HOME_CAPTION" --error "$HOME_MESSAGE"
      else
        fly-dialog --caption "$HOME_CAPTION" --error "$HOME_ERR"
        mkdir /tmp/$USER
        export XDG_RUNTIME_DIR=/tmp/$USER
        export HOME=/tmp/$USER
      fi
    fi
  fi
fi

#check write to home (any kind of home or ALD only?)
CHECK_WRITE=
if test -w "$HOME"; then
case "$HOME" in
 /home/*)
 CHECK_WRITE="yes"
 ;;
 /root*)
 CHECK_WRITE="yes"
 ;;
esac
fi

if [ "$CHECK_WRITE" = "yes" ]; then
#failed due to unsupported op:
#fallocate -l 10M $HOME/fly.space.file.test
#passed always due to no real space check:
#truncate -s 10M $HOME/fly.space.file.test
dd if=/dev/zero of="$HOME/fly.space.file.test" bs=5M count=10
if [ $? -ne "0" ]; then
  if [ "$LANG" = "ru_RU.UTF-8" ]; then
        HOME_CAPTION="Внимание"
        HOME_MESSAGE="Ваш домашний каталог не дает записать пробный файл (размер 50Мб).\nВозможны сбои в работе графической сессии.\nОбратитесь к администратору по поводу ваших прав на запись или свободного места и ваших квот."
  else
        HOME_CAPTION="Attention"
        HOME_MESSAGE="You home folder is not writable for file 50Mb, troubles are possible\nCheck with Administrator you write rights, free space and you quotes."
  fi
  fly-dialog --caption "$HOME_CAPTION" --error "$HOME_MESSAGE"
else
  rm -f "$HOME/fly.space.file.test"
fi
fi

FLY_NO_SYMLINK_FROM_HOME="0"

if [ -d /usr/share/wallpapers ]; then
  PICT_DIR=`xdg-user-dir PICTURES`
  if [ ! -d "$PICT_DIR" ]; then PICT_DIR="$HOME/Pictures"; fi
  if [ -d "$PICT_DIR" ]; then
    if [ ! -L "$PICT_DIR/SystemWallpapers" ]; then
      ln -s /usr/share/wallpapers "$PICT_DIR/SystemWallpapers"
      if [ $? -ne "0" ]; then
         FLY_NO_SYMLINK_FROM_HOME="1"
         export FLY_NO_SYMLINK_FROM_HOME=1
      fi
    fi
  fi
fi
#test symlink from $HOME  to / i.e. check if it is enabled by samba
if [ "$FLY_NO_SYMLINK_FROM_HOME" = "0" ]; then
    if [ ! -L "$HOME/fly_test_symlink" ]; then
      ln -s /usr/share "$HOME/fly_test_symlink"
      if [ $? -ne "0" ]; then
        FLY_NO_SYMLINK_FROM_HOME="1"
        export FLY_NO_SYMLINK_FROM_HOME=1
      else
        rm -f "$HOME/fly_test_symlink"
      fi
    fi
fi
if [ "$FLY_NO_SYMLINK_FROM_HOME" = "1" ]; then
 echo "Faied to create test symlink $HOME/... to /usr/share/..., probably $HOME is samba share"
fi


echo fly misc setup finished  `date '+%F %T.%3N'`
