From 69796b5d6128bd5eb84bbe183252ad8f781e4690 Mon Sep 17 00:00:00 2001 From: Slava Rogozhkin Date: Mon, 18 Aug 2025 22:49:02 +0300 Subject: [PATCH] cw - its works! --- cw | 62 +++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/cw b/cw index d004320..049977d 100755 --- a/cw +++ b/cw @@ -10,7 +10,7 @@ # [ ] - Определение данных о мониторах: имя, вертикальность # [X] - Проверка зависимостей: feh, ffmpeg, X11 # [ ] - Определение соответствия изображения параметрам монитора -# [ ] - Установка изображний на рабочий стол +# [X] - Установка изображний на рабочий стол # [X] - Получение пути изображения # Проверка зависимостей @@ -30,7 +30,8 @@ fi # Директория с изображениями IMGSTORAGE="$HOME/vault/wallpaper" - +#IMGSTORAGE="$HOME/vault/wallpaper-3" +#IMGSTORAGE="/home/slife/Pictures/old_photos/Автозагрузка/Screenshots/" # Получить абсолютный путь к изображению get_path_img() { find "$IMGSTORAGE" -type f | shuf -n 1 @@ -47,21 +48,46 @@ get_height_img() { } # Получить ориентацию изображения +# $1 - путь к файлу - get_path_img get_orientation_img() { - if [ $1 -ge $2 ]; then - printf 'horizontal' - else - printf 'vertical' - fi + [[ $(get_width_img $1) > $(get_height_img $1) ]] && printf 'horizontal' || printf 'vertical' +} + +# Получить вертикальную обоину +get_vertical_wall() { + while true; do + img=$(get_path_img) + orientation=$(get_orientation_img $img) + + if [[ $orientation == "vertical" ]]; then + printf $img + break + fi + done +} + +# Получить горизонтальную обоину +get_horizontal_wall() { + while true; do + img=$(get_path_img) + orientation=$(get_orientation_img $img) + + if [[ $orientation == "horizontal" ]]; then + printf $img + break + fi + done } # Получить список подключенных мониторов get_name_mon() { + for mon in $(xrandr | grep ' connected ' | awk '{print $1}'); do + echo $mon; done } # Получить ширину монитора в пикселях get_width_mon() { - xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $1}' + xdpyinfo | awk '/dimensions/{print $2}' | awk -F "x" '{print $1}' } # Получить высоту монитора в пикселях @@ -71,21 +97,11 @@ get_height_mon() { # Получить ориентацию монитора get_orientation_mon() { + echo } -# 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) +set_wall() { + feh --bg-fill $(get_horizontal_wall) $(get_vertical_wall) +} - 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" +set_wall