Кто из вас пользуется "тайловым оконным менеджером" и наверняка через некоторое время наши обои надоедают нам? Очень раздражает необходимость перекомпилировать, чтобы иметь возможность изменить простые обои или даже повторно запустить «азот» и передать ему другой параметр.
Что ж, сегодня я представляю вам сценарий на bash, он получает случайное изображение из нашей коллекции и помещает его в качестве обоев. Изменить обои азота, если вы загрузите скрипт из здесь не забудьте удалить расширение .txt из файла и дать ему права на выполнение
directory = ~ / Функция изображений my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | вырезать -d "x" -f 2` my_width = `echo" $ res "| вырезать -d "x" -f 1`} function rand_image () {image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --случайная сортировка | head -1` image_dir = `find" $ directory "-iname" $ image "`} function image_resolution () {rand_image high_image = `identify -format"% h "" $ image_dir "` wide_image = `identify -format" % w "" $ image_dir "`} function ratio () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` ratio_width =` echo $ image_width / $ my_width | bc -l`} function scalar () { пропорция если [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; затем азот --set-zoom "$ image_dir" еще азот --set-centered "$ image_dir" fi} масштаб выход
Теперь объяснение сценария.
directory = ~ / Изображения // Переходим в каталог, где находятся ваши обои
Разрешение изображения () // Эта функция определяет разрешение нашего монитора и сохраняет его в переменных:
мой_высокий //Высоко
my_width //Ширина
rand_image () // Эта функция получает изображение внутри "каталога"
image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортировка – случайная сортировка | голова -1`
пример:
imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensión" | sort --random-sort | head -1`
Разрешение изображения () // Эта функция получает разрешение изображения, полученного функцией rand_image ()
пропорция () // Эта функция получает соотношение image_resolution / screen_resolution
подняться () // Эта функция масштабирует изображение, если оно больше разрешения нашего монитора, и устанавливает обои
Теперь, когда у нас есть сценарий для назначения случайных обоев азоту (а также изображение адаптируется к вашему монитору), нам нужно только запускать сценарий время от времени, это достигается путем выполнения следующей команды при запуске
watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script
В этом случае эта команда выполняется каждые 4 секунды, обратите внимание, что path_where_the_script_is_found - это полный путь, по которому находится скрипт, а script_name - это имя, которое было дано скрипту.
Я надеюсь, вы сочтете это полезным.