Колко от вас използват „Мениджър на прозорци с плочки“ и със сигурност след известно време нашият тапет ни отегчава? Много е досадно да трябва да прекомпилирате, за да можете да смените обикновен тапет или дори да повторите "азот" и да му предадете друг параметър.
Ами днес ви нося скрипт в bash, той получава произволно изображение от нашата колекция и го поставя като тапет Променете азотния тапет, ако изтеглите скрипта от тук не забравяйте да премахнете разширението .txt от файла и да му дадете разрешения за изпълнение
директория = ~ / Функция за изображения my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` ехо "$ res" | cut -d "x" -f 2` my_width = `echo" $ res "| cut -d "x" -f 1`} функция rand_image () {image = `ls -1 -b -R" $ директория "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортиране - произволно сортиране | head -1` image_dir = `намери" $ directory "-iname" $ image "`} функция 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" else азот - set-centered "$ image_dir" fi} мащаб изход
Сега идва обяснението на сценария.
директория = ~ / Изображения // Преминете към директорията, в която се намират вашите тапети
image_resolution () // Тази функция открива разделителната способност на нашия монитор и я записва във променливите:
my_high //Висок
my_width // Ширина
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, който искам да направя :)
Иначе добър пост ... хахахаха, отлична снимка, която сте избрали за публикацията (LOL на Snoopy's !!!)
Jjajajajjajajajaja благодаря, наистина snoopy томбола, hahahahajajajjajaj
Благодаря ти..
благодаря
Грасиас!
Това не работи за канела, нали?
Нямам представа как да сменя тапета в канела, но сигурно е, че функцията 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!
# ~ целта е всички тези изображения, които имате на вашия диск, да можете да ги видите
# ~ на всеки толкова често, и че те се приспособяват към екрана според техните свойства.
# ~ за това този скрипт идентифицира характеристиките на вашия монитор,
# ~ и тези на изображението или снимката от вашата «директория»,
# ~, за да се изпълни азот + избягване на параметър за мащабиране или мащабиране
# ~ удължени, пикселизирани изображения.
# ~ Ако този скрипт не отговаря на вашите нужди, можете да промените параметрите му
# ~ Например азот - съсредоточен в центъра
# ~ за центриране на изображението без мащабиране
# ~ Препоръчвам ви да изучите ръководството за азот.
#Directory
# Директория на изображения, които ще се използват като тапет, включително поддиректории
# Променете в директорията, в която се намират вашите тапети
# Например директория = / home / ... / images
directory = / home / amem / images / Wallpaper
# Резолюция на монитора
# Тази функция открива разделителната способност на нашия монитор и я записва във променливите:
функция my_resolution ()
{
# Получаваме разделителната способност на нашия монитор с xrandr
res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' "
# Височина на монитора
my_high = `ехо" $ res "| изрежете -d "x" -f 2`
# Ширина на монитора
my_width = `ехо" $ res "| изрежете -d "x" -f 1`
}
#Random Image
# Тази функция получава изображение в "директория"
функция 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__extention" | сортиране –случайно сортиране | глава -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
image_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 изображението е по-високо, отколкото е широко
пропорция на изображението на функцията ()
{
image_resolution
ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
}
# Задайте тапета
# Тази функция променя параметрите на азота според свойствата на изображението по отношение на монитора
#Image твърде висок или по-голям от нашия екран Задава тапета чрез мащабиране на изображението
# –Центрирано в центъра центрира немащабираното изображение
# –Set-scaled запълва екрана с изкривеното изображение
# –Задаване на мащабиране изпълва екрана с мащабираното изображение до върха
# –Set-zoom-fill запълва екрана с мащабираното изображение
скаларна функция ()
{
пропорция
ако [`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
}
изкачване
изход
Отлично. Благодаря ти.