Скільки з вас використовують «менеджер вікон», і, безумовно, через деякий час наші шпалери нам набридають? Дуже дратує, коли потрібно перекомпілювати, щоб мати змогу змінити прості шпалери, або навіть повторити «азот» і передати йому інший параметр.
Ну, сьогодні я приношу вам скрипт 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`} функція rand_image () {image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` image_dir = `знайти" $ directory "-iname" $ image "`} function image_resolution () {rand_image high_image = `identify -format"% h "" $ image_dir "` wide_image = `identify -format" % w "" $ image_dir "`} пропорція функції () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ my_width | bc -l`} скаляр функції () { пропорція, якщо [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; потім азот --set-zoom "$ image_dir" ще азот - set-center "$ image_dir" fi} масштаб виходу
Тепер йде пояснення сценарію.
каталог = ~ / Зображення // Перехід до каталогу, де розташовані ваші шпалери
image_resolution () // Ця функція визначає роздільну здатність нашого монітора та зберігає її у змінних:
my_high // Високий
моя_ширина // Ширина
rand_image () // Ця функція отримує зображення всередині "каталогу"
image = `ls -1 -b -R" $ каталог "| 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`
image_resolution () // Ця функція отримує роздільну здатність зображення, отриманого функцією 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 !!!)
Джаджаяджаяяджая, дякую, справді прискіплива розіграш, хахаджаяяяяяя
Дякую..
Грекіас
Gracias!
Це не працює для кориці, чи не так?
Я не уявляю, як змінити шпалери в кориці, але впевнений у тому, що функція rand_image служить для зйомки випадкового зображення, тому вам просто потрібно передати його $ dir_image
Дозвольте розслідувати
Дякую, я трохи змінив його для майбутніх поколінь ... Сподіваюся, ви не турбуєтесь
Я хотів би знати, що ви думаєте, я не дуже багато знаю про мову
#! / бін / баш
# ~ Оригінальний автор
#~
# ~ halonsov: математик, любитель GNU / LINUX, програміст, користувач Debian та xmonad.
#~
# ~ Посилання
#~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
#~
# ~ Команда для запуску сценарію кожні 120 секунд
# ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
#~
# ~ Співпраця
# ~ + AMEM +
# ~ Особисто я вважаю за краще використовувати його лише один раз, щоб не використовувати простір
# ~ додавання в autostart.sh
# ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
# ~ Особиста нотатка
# ~ цей сценарій спочатку був зроблений halonsov.
# ~ Я змінив його так, щоб лише трохи, щоб виконати його на початку #CrunchBang!
# ~ мета полягає в тому, щоб можна було побачити всі ті зображення, які є на вашому диску
# ~ так часто, і щоб вони пристосовувались до екрану відповідно до своїх властивостей.
# ~ для цього цей скрипт визначає характеристики вашого монітора,
# ~ та зображення або фотографії вашого «каталогу»,
# ~ для виконання азоту + уникання параметра масштабування або масштабування
# ~ видовжені, нерівні зображення.
# ~ Якщо цей сценарій не відповідає вашим потребам, ви можете змінити його параметри
# ~ Наприклад, азот - з центром набору
# ~ для центрування зображення без масштабування
# ~ Я рекомендую вивчити інструкцію з азоту.
# Каталог
# Каталог зображень, які будуть використовуватися як шпалери, включаючи підкаталоги
# Перейдіть до каталогу, де розташовані ваші шпалери
# Наприклад каталог = / home /… / images
directory = / home / amem / images / Wallpaper
# Роздільна здатність монітора
# Ця функція визначає роздільну здатність нашого монітора та зберігає її у змінних:
функція my_resolution ()
{
# Ми отримуємо роздільну здатність нашого монітора за допомогою xrandr
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`
}
# Випадкове зображення
# Ця функція отримує зображення всередині "каталогу"
функція rand_image ()
{
# Ми отримуємо ім'я якогось зображення всередині каталогу $
image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортувати –випадково-сортувати | голова -1`
# ВАЖЛИВО! Якщо ви помітили, ми фільтруємо всі файли із "розширеннями" .png, .jpg, .jpeg. Додайте -e ".extention" відповідно.
# Приклад:
# image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".ne__ Extension" | сортувати –випадково-сортувати | голова -1`
# Отримуємо шлях $ image
image_dir = `знайти" $ directory "-iname" $ image "`
}
# Роздільна здатність зображення
# Ця функція отримує роздільну здатність зображення, отриманого функцією rand_imagen ()
функція image_resolution ()
{
rand_image
# Отримуємо висоту $ image
high_image = `ідентифікувати -формат"% h "" $ image_dir "`
# Отримуємо ширину $ image
wide_image = `ідентифікувати -формат"% w "" $ image_dir "`
}
# Отримуємо співвідношення image_resolution / screen_resolution
# результат цього ділення повертає значення більше або менше 1
# пропорція 1 зображення більше, ніж екран
пропорція функції ()
{
my_resolution
роздільна здатність зображення
ratio_high = `echo $ image_high / $ my_high | bc -l`
width_proportion = `echo $ width_image / $ my_width | bc -l`
}
# Отримуємо співвідношення image_high / image_width
# результат цього ділення повертає значення більше або менше 1; Якщо зображення не має квадратного значення Oo
# image_proportion 1 зображення вище, ніж широке
співвідношення зображення функції ()
{
роздільна здатність зображення
ratio_image_rate = `echo $ tall_image / $ wide_image | bc -l`
}
# Встановіть шпалери
# Ця функція змінює параметри азоту відповідно до властивостей зображення щодо монітора
# Зображення занадто високе або більше, ніж наш екран Встановлює шпалери, масштабуючи зображення
# –Центр, встановлений по центру, визначає масштаб зображення
# –Встановлений масштаб заповнює екран викривленим зображенням
# –Встановити масштаб заповнює екран з масштабованим зображенням доверху
# –Set-zoom-fill заповнює екран масштабованим зображенням
функція скаляр ()
{
пропорція
if [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; тоді
# Якщо роздільна здатність зображення більша за роздільну здатність нашого екрану, виконайте ...
азот - масштабований "$ image_dir"
ще
if [`echo" $ high_rate> 1 ″ | bc` -eq 1]; тоді
# Якщо роздільна здатність зображення менша, ніж у нашого екрану, виконайте ...
азот –центрований "$ image_dir"
ще
# Коли зображення менше екрана, ми можемо розширити його до довжини або ширини
пропорція зображення
if [`echo« $ proportionimage_reason> 1 ″ | bc` -eq 1]; тоді
#Якщо висота зображення менше, ніж нашого екрану, виконайте ...
азот - встановити масштаб "$ image_dir"
ще
якщо [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; тоді
# Якщо ширина зображення менша, ніж у нашого екрану, виконайте ...
азот –набір-масштабування-заповнення "$ image_dir"
fi
fi
fi
fi
}
підніматися
вихід
Відмінно. Дякую.