This commit is contained in:
Slava Rogozhkin 2025-08-18 20:17:32 +03:00
parent cc9a398c14
commit 0753ff1f4e
1 changed files with 35 additions and 6 deletions

41
cw
View File

@ -1,6 +1,8 @@
#!/bin/bash #!/bin/bash
# Установщик обоев (change wallpaper): # Установщик обоев (change wallpaper):
# исходя из параметров подключенных мониторов устанавливает соответствующие обои. # исходя из параметров подключенных мониторов устанавливает соответствующие обои.
# (вертикальные изображения на вертикальные мониторы
# горизонтальные изображения на горизонтальные - без пересечений)
# #
# TO-DO # TO-DO
# [X] - Определение данных исходного изображения: получение ширины и высоты # [X] - Определение данных исходного изображения: получение ширины и высоты
@ -25,38 +27,65 @@ if [ $XDG_SESSION_TYPE != 'x11' ]; then
echo "For X.Org" echo "For X.Org"
exit 1 exit 1
fi fi
# Директория с изображениями
IMGSTORAGE="$HOME/vault/wallpaper" IMGSTORAGE="$HOME/vault/wallpaper"
# Получить абсолютный путь к изображению
get_path_img() { get_path_img() {
find "$IMGSTORAGE" -type f | shuf -n 1 find "$IMGSTORAGE" -type f | shuf -n 1
} }
# Получить ширину изображения в пикселях
get_width_img() { get_width_img() {
ffprobe -v error -select_streams v:0 -show_entries stream=width -of default=nw=1:nk=1 '"$1"' ffprobe -v error -select_streams v:0 -show_entries stream=width -of default=nw=1:nk=1 "$1" 2> /dev/null
} }
# Получить высоту изображения в пикселях
get_height_img() { get_height_img() {
ffprobe -v error -select_streams v:0 -show_entries stream=height -of default=nw=1:nk=1 '"$1"' ffprobe -v error -select_streams v:0 -show_entries stream=height -of default=nw=1:nk=1 "$1" 2> /dev/null
} }
# Получить ориентацию изображения
get_orientation_img() { get_orientation_img() {
if [ "$1" > "$2" ]; then if [ $1 -ge $2 ]; then
printf 'horizontal' printf 'horizontal'
else else
printf 'vertical' printf 'vertical'
fi fi
} }
# Получить список подключенных мониторов
get_name_mon() {
}
# Получить ширину монитора в пикселях
get_width_mon() { get_width_mon() {
xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $1}' xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $1}'
} }
# Получить высоту монитора в пикселях
get_height_mon() { get_height_mon() {
xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $2}' xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $2}'
} }
# VAR # Получить ориентацию монитора
get_orientation_mon() {
}
# TEST
counter_ver=0
counter_hor=0
for i in {1..100}; do for i in {1..100}; do
img=$(get_path_img) img=$(get_path_img)
orientation_img=$(get_orientation_img $(get_width_img $img) $(get_height_img $img)) width_img=$(get_width_img $img)
echo $img $orientation_img | grep 'vertical' 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 done
printf "vertical: $counter_ver\nhorizontal: $counter_hor"