some_scripts/cw

92 lines
3.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Установщик обоев (change wallpaper):
# исходя из параметров подключенных мониторов устанавливает соответствующие обои.
# (вертикальные изображения на вертикальные мониторы
# горизонтальные изображения на горизонтальные - без пересечений)
#
# 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" 2> /dev/null
}
# Получить высоту изображения в пикселях
get_height_img() {
ffprobe -v error -select_streams v:0 -show_entries stream=height -of default=nw=1:nk=1 "$1" 2> /dev/null
}
# Получить ориентацию изображения
get_orientation_img() {
if [ $1 -ge $2 ]; then
printf 'horizontal'
else
printf 'vertical'
fi
}
# Получить список подключенных мониторов
get_name_mon() {
}
# Получить ширину монитора в пикселях
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}'
}
# Получить ориентацию монитора
get_orientation_mon() {
}
# TEST
counter_ver=0
counter_hor=0
for i in {1..100}; do
img=$(get_path_img)
width_img=$(get_width_img $img)
height_img=$(get_height_img $img)
orientation_img=$(get_orientation_img $width_img $height_img)
if [ "$orientation_img" == "vertical" ]; then
counter_ver=$((counter_ver+1))
else
counter_hor=$((counter_hor+1))
fi
done
printf "vertical: $counter_ver\nhorizontal: $counter_hor"