diff --git a/cw b/cw index 844d42f..df681e2 100755 --- a/cw +++ b/cw @@ -3,6 +3,60 @@ # исходя из параметров подключенных мониторов устанавливает соответствующие обои. # # TO-DO -# [ ] - Определение данных исходного изображения: получение ширины и высоты -# [ ] - Определение вертикальности изображения: если ширина больше высоты -> горизонтальное, иначе вертикальное +# [X] - Определение данных исходного изображения: получение ширины и высоты +# [X] - Определение вертикальности изображения: если ширина больше высоты -> горизонтальное, иначе вертикальное # [ ] - Определение данных о мониторах: имя, вертикальность +# [X] - Проверка зависимостей: feh, ffmpeg, X11 +# [ ] - Определение соответствия изображения параметрам монитора +# [ ] - Установка изображний на рабочий стол +# [X] - Получение пути изображения + +# Проверка зависимостей +requirements_apps=('feh' 'ffmpeg' 'xdpyinfo' 'awk') +for app in ${requirements_apps[@]}; do + if [ ! $app -version &> /dev/null ] || [ $app --version &> /dev/null ]; then + echo "$app not installed" + exit 1 + fi +done + +# Проверка сессии (Х11) +if [ $XDG_SESSION_TYPE != 'x11' ]; then + echo "For X.Org" + exit 1 +fi +IMGSTORAGE="$HOME/vault/wallpaper" +get_path_img() { + find "$IMGSTORAGE" -type f | shuf -n 1 +} + +get_width_img() { + ffprobe -v error -select_streams v:0 -show_entries stream=width -of default=nw=1:nk=1 '"$1"' +} + +get_height_img() { + ffprobe -v error -select_streams v:0 -show_entries stream=height -of default=nw=1:nk=1 '"$1"' +} + +get_orientation_img() { + if [ "$1" > "$2" ]; then + printf 'horizontal' + else + printf 'vertical' + fi +} + +get_width_mon() { + xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $1}' +} + +get_height_mon() { + xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $2}' +} + +# VAR +for i in {1..100}; do + img=$(get_path_img) + orientation_img=$(get_orientation_img $(get_width_img $img) $(get_height_img $img)) + echo $img $orientation_img | grep 'vertical' +done