Кто из вас пользуется "тайловым оконным менеджером" и наверняка через некоторое время наши обои надоедают нам? Очень раздражает необходимость перекомпилировать, чтобы иметь возможность изменить простые обои или даже повторно запустить «азот» и передать ему другой параметр.
Что ж, сегодня я представляю вам сценарий на 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 - это имя, которое было дано скрипту.
Я надеюсь, вы сочтете это полезным.
Я проверю этот азот на предмет скрипта для KDE, который я хочу сделать :)
В остальном хороший пост ... хахахаха, отличное фото, которое вы выбрали для поста (Snoopy LOL !!!)
Jjajajajjajajaja спасибо, действительно любопытная лотерея, hahajjajajjajaj
Спасибо ..
спасибо
спасибо!
Это не работает с корицей, верно?
Понятия не имею, как поменять обои на корицу, но я уверен, что функция rand_image работает для вас, чтобы получить случайное изображение, поэтому вам просто нужно передать его $ dir_image
Позвольте мне исследовать
Спасибо, немного доработал для будущих поколений ... Надеюсь, вы не беспокоитесь
Я хотел бы знать, что вы думаете, я плохо разбираюсь в языке
#! / Bin / Баш
# ~ Оригинальный автор
#~
# ~ halonsov: математик, любитель GNU / LINUX, программист, пользователь Debian и xmonad.
#~
# ~ Ссылки
#~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
#~
# ~ Команда для запуска скрипта каждые 120 секунд
# ~ смотреть -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
#~
# ~ Сотрудничество
# ~ + AMEM +
# ~ Лично я предпочитаю использовать его только один раз, чтобы не использовать пространство
# ~ добавление в autostart.sh
# ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
# ~ Личное примечание
# ~ этот скрипт изначально был сделан halonsov.
# ~ Я изменил его так, чтобы он выполнялся в начале #CrunchBang!
# ~ цель состоит в том, чтобы все изображения, которые у вас есть на вашем диске, вы могли видеть
# ~ время от времени, и что они подстраиваются под экран в соответствии со своими свойствами.
# ~ для этого скрипт определяет характеристики вашего монитора,
# ~ и изображения или фотографии вашего «каталога»,
# ~ для выполнения азота + параметр масштабирования или масштабирования, избегая
# ~ удлиненные пиксельные изображения.
# ~ Если этот скрипт вам не подходит, вы можете изменить его параметры
# ~ Например, азот - центрированный
# ~ для центрирования изображения без масштабирования
# ~ Я рекомендую вам изучить руководство по азоту.
#Directory
# Каталог изображений, которые будут использоваться в качестве обоев, включая подкаталоги
# Перейдите в каталог, где находятся ваши обои
# Например, каталог = / home /… / images
каталог = / home / amem / images / Обои
# Разрешение монитора
# Эта функция определяет разрешение нашего монитора и сохраняет его в переменных:
функция my_resolution ()
{
# Получаем разрешение нашего монитора с помощью xrandr
res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
# Высота монитора
my_high = `echo" $ res "| cut -d "x" -f 2`
Ширина монитора
my_width = `echo" $ res "| cut -d "x" -f 1`
}
#Random Image
# Эта функция получает изображение внутри "каталога"
функция rand_image ()
{
# Получаем имя некоторого изображения внутри $ directory
image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортировка – случайная сортировка | голова -1`
#ВАЖНЫЙ! Если вы заметили, мы фильтруем все файлы с «расширением» .png, .jpg, .jpeg. При необходимости добавьте -e ".extension".
#Пример:
# image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | сортировка – случайная сортировка | голова -1`
# Получаем путь к $ image
image_dir = `найти" $ directory "-iname" $ image "`
}
# Разрешение изображения
# Эта функция получает разрешение изображения, полученного функцией rand_imagen ()
функция image_resolution ()
{
rand_image
# Получаем высоту $ image
high_image = `identify -format"% h "" $ image_dir "`
# Получаем ширину $ image
image_width = `identify -format"% w "" $ image_dir "`
}
# Получаем соотношение image_resolution / screen_resolution
# результат этого деления возвращает значение больше или меньше 1
# пропорция 1 изображение больше экрана
функция пропорции ()
{
my_resolution
Разрешение изображения
tall_rate = `echo $ tall_image / $ my_high | bc -l`
width_proportion = `echo $ width_image / $ my_width | bc -l`
}
# Получаем соотношение image_high / image_width
# результат этого деления возвращает значение больше или меньше 1; Если изображение не квадратное Oo
# image_proportion 1 изображение больше в высоту, чем в ширину
соотношение сторон изображения ()
{
Разрешение изображения
ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
}
# Установить обои
# Эта функция изменяет параметры азота в соответствии со свойствами изображения по отношению к монитору
# Изображение слишком высокое или больше нашего экрана Установка обоев путем масштабирования изображения
# - Центрирует немасштабированное изображение по центру.
# –Set-scaled заполняет экран деформированным изображением.
# –Set-zoom заполняет экран масштабированным изображением вверх
# –Set-zoom-fill заполняет экран масштабированным изображением вдоль
скалярная функция ()
{
доля
если [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; тогда
# Если разрешение изображения больше, чем у нашего экрана, выполните ...
азот - масштабированный "$ image_dir"
еще
если [`echo" $ high_rate> 1 ″ | bc` -eq 1]; тогда
# Если разрешение изображения меньше, чем у нашего экрана, выполните ...
азот - центрированный по множеству "$ image_dir"
еще
# Когда изображение меньше экрана, мы можем расширить его до длины или ширины
пропорция изображения
если [`echo« $ ratioimage_reason> 1 ″ | bc` -eq 1]; тогда
# Если высота изображения меньше, чем у нашего экрана, выполняем ...
азот –set-zoom "$ image_dir"
еще
if [`echo« $ ratioimage_reason <1 "| bc` -eq 1]; то
# Если ширина изображения меньше, чем ширина нашего экрана, выполнить ...
азот –set-zoom-fill "$ image_dir"
fi
fi
fi
fi
}
восхождение
выход
Превосходно. Спасибо.